2020-11-30
寫部落格比寫論文好玩多了, 而且不必出國開會。 不過今年因為疫情, 有很多不出國就可以發表論文的機會, 那就勉強寫一篇吧。 寫論文時最煩的就是整理參考資料。 這次發現有 George Mason 大學所開發的 zotero 可用, 太開心了! Zotero 本身是一個獨立的軟體; 但是還需要另外安裝 LibreOffice 的 zotero 外掛及瀏覽器的 zotero 外掛搭配主 app 才好用。 從官網連到 這個專案, 不要用 wget ... | sudo bash 這樣可怕危險的姿勢安裝, 而是把 install.sh 抓回來, 從裡面剪貼指令並小改執行: wget -qO- https://github.com/retorquere/zotero-deb/releases/download/apt-get/deb.gpg.key | gpg -
2020-11-28
找了很久才找到製作 UEFI 開機光碟 iso 映像檔的方法。 Syslinux 官網的描述 看不太懂; 照著 這個 gist 做, 又參考 這個問答 跟 線上版 xorriso 手冊 (電腦版的竟然不太完整?) 才終於理解。 用 xorriso 製作開機光碟時, 最簡單的就是採用 isolinux 所提供的標準開機機制 -- 這部分的設定跟 extlinux 差不多。 但其實你還可以用 "-eltorito-alt-boot -e boot/efi.img -no-emul-boot" 選項組指定額外的開機管理員。 這三個選項一定要連在一起。 其中 boot/efi.img 的路徑可以自選, 必須指向 (更深一層的) 一個磁碟片映像檔。 而且這樣的選項三人組可以不只一組, 也就是說 「額外開機管理員」 可以不只一個。 事實上 -b 選項相當於
2020-11-17
Grml 是專門為網管/系統管理員所設計的羽量級 linux, 官網的 small 版只有 350M; 即使是 貴哥實驗室版 (grml64-small-g20?.iso) 也不到500M, 很容易就可以 boot to ram 毫邁帥氣裸奔。 它本身就提供了 grml2usb 指令可以把系統安裝到 usb 上變成可開機隨身碟。 不過我習慣用 extlinux 來處理開機的部分, 因為它的設定比 grub2 簡單很多, 只需要改設定檔、 把檔案放對位置就好。 假設你用 貴哥版的 ulyana 開機、 假設你的隨身碟是 /dev/sdz, 其中第一分割 /dev/sdz1 已經格式化為 fat32。 一、 自製開機隨身碟 安裝 MBR 及 extlinux 開機管理員、 設定可開機等等最煩瑣的工作, 用一句話完成: mbootuz.py mkboot /dev/
2020-11-05
上個星期手機重刷好幾次, 慢慢從昏頭轉向的逐步操作學習模式整理出一些觀念性的心得, 趕快趁記憶猶新記下爬文網址與心得。 本文的重點不是步驟, 而是解說 (希望可以) 適用於多數廠牌型號的 「分割區」 與 「模式」 這兩個觀念。 本文假設你粗略熟悉 linux 的分割區及開機流程概念 (vmlinuz、 initrd、 root file system) 如果對以下幾篇我的舊文的主題有一點概念, 會有點幫助 (但並非必須): extlinux 啟動系統的步驟 要或不要 root/越獄/刷機的理由 Root/刷機之前的知識補給站 建議可以細讀本篇觀念文, 然後從 這裡 或 這裡 列出的多款 custom ROMs 當中挑一個, 屆時再根據你的手機型號及選擇的 ROM 去搜尋/爬其他教學文, 希望 root/刷機的過程可以因此順利很多、 少走冤枉路。
2020-10-25
Linux 開機時最早載入的兩個檔案是 vmlinuz (kernel) 及 initrd.img。 較舊的 initrd.img 是一個單純的壓縮過的 cpio 檔; 但較新的 initrd.img (我拿 ulyana 實驗) 則是在主要壓縮檔的前面還放了兩個未壓縮的 cpio 檔, 裡面分別包含了 kernel/x86/microcode/AuthenticAMD.bin 跟 early2/kernel/x86/microcode/GenuineIntel.bin 兩個檔案, 所以如果用 cpio -idv < .../initrd.img 只會看到 AuthenticAMD.bin 。 查到最接近有用的答案是 這個。 不過後來想起來/查到有更簡單的方法: mkdir /tmp/initrd/ ; unmkinitramfs .../initrd.img /tmp/initrd/
2020-10-14
切割硬碟有兩種方式。 已沿用幾十年的舊式 MBR 分割方式 最多只能切成 3+1 個主分割區且只支援容量 2T 以下的硬碟。 較新的 GPT 分割方式則可切成最多 128 個分割、 支援硬碟容量是 MBR 限制的 2^32 倍 (約 40 億倍)。 另一方面, 主機板的韌體也有新舊之分。 二十世紀的板子採用 BIOS; 近十年來的板子幾乎都是較新的 UEFI。 新舊不同方式切割的硬碟, 搭配新舊不同的主機板韌體, 會產生四種組合。 本文關心其中一種組合 (表格左下角) 的 linux 開機設定方式。 (表格畫法參考 這篇) 主機板 BIOS/模擬 BIOS UEFI 硬碟 MBR 2TB 限制 把 檔案放在正確位置 即可 GPT 要設定分割屬性 因為硬碟越來越大, 現在買硬碟, 切割方式勢必得選 GPT。 但是新的 UEFI 韌體真的有比較
2020-10-13
原來製作 UEFI 版開機隨身碟完全不需要什麼特殊安裝動作, 只要把檔案放對位置就可以了! 請下載 uefi-boot-files.tgz、 移到你的隨身碟根目錄、 解壓縮、 重開機、 按某個鍵進入 UEFI 的開機選單。 在選單裡若看到 「你的隨身碟廠牌名稱」 跟 「UEFI 你的隨身碟廠牌名稱」, 則此時選擇有 UEFI 的那個選項, 然後就可以看到屠龍背景圖版本的 extlinux.conf 選單、 選擇啟動 "mint 20 ulyana xfce g20K forgetful"。 在左下角應該會看到它成功載入 vmlinuz 與 initrd.img, 最後卡在找不到 root file system, 這就成功了! 接下來只要照著 「講師趕時間」 的第二節 「聽眾回家必須自己做的事」 就可以完整開機進入 貴哥實驗室 ulyana 版。 前半 (只需十分鐘) 與後半所有
2020-10-09
以前需要錄影桌面時, 採用的是 gtk-recordmydesktop ; 但是 它太老舊沒在維護了, 所以現在改用 vokoscreen-ng。 安裝套件: apt install vokoscreen-ng 如果從命令列啟動, 指令是 vokoscreenNG 。 操作畫面很簡潔, 主要是上方那一排圖像選單。 "兩個開關" 圖像 (從左邊數來第四個圖像) => 設定存檔的路徑。 "紅底白色播放鍵" 圖像 => 設定影像品質與存檔格式。 "麥克風" 圖像 => 選取一個聲音輸入裝置 (麥克風)。 我在幾部跑 mint 20 的電腦上, 需要先插著麥克風、 進 alsamixer 打開麥克風, (可能還要重新開機) 然後在 vokoscreenNG 裡面才會看到 「內部音效 類比立體聲」 可以
2020-10-09
最近敗了一部新的桌機, 原本在舊機器用得好好的 usb 喇叭, 在新機器上出現了持續不斷的雜音。 換了兩組喇叭都一樣, 原本都快要抱上車送修了, 又突然想到用耳機測試一下, 結果耳機竟然正常沒雜音! 那兩組喇叭都是耳機線加 usb 電源線很便宜的那種, 所以結論很明顯: 雜音是 usb 供電造成的。 於是改用手機的 usb 充電器供電給喇叭, 雜音果然就沒了。 搜尋 「usb 喇叭 雜音」 可以看到不少文章, 很多大大說這種 「usb 只供電不傳訊號」 的喇叭品質較差, 若是 「只有一條 usb 線、 不需要接耳機線」 的喇叭, 因為傳的是數位訊號, 當然也就不會有這個問題, 而且喇叭有內建音效卡, 品質較好。 買較高級的喇叭當然也是一個解決方法; 不過如果同樣的便宜喇叭在某些電腦上可以在另外的電腦卻不行, 那是不是也意謂著有雜音的電腦的主機板或電源供應器確實有雜訊呢? 而且我的耳朵沒
2020-10-01
如果你有至少一顆 ssd 硬碟, 貴哥大力推薦升級至較新版的 linux (kernel 5.4 以上, 例如 貴哥實驗室 ulyana 版), 快來享用可快照、 可容網多個系統根目錄、 省記憶體、 超讚的 btrfs 檔案系統。 一、 預備觀念 根據 這個討論串, 最新一代 (除了先軀 zfs 之外, 其他大約近十年) 具有一些共通特性的檔案系統包含昇陽 (Sun Microsystems) 所開發 (現為 Oracle 所擁有) 的 zfs、 Linux 上原生的 btrfs、 蘋果的 apfs、 微軟的 refs 等等。 草草看一下維基百科的 檔案系統的對比, apfs 沒有資料、 refs 只支援 windows, 兩者都可以直接丟到垃圾桶裡面。 以 「元資料」 和 「特點」 兩個表格來看, zfs 跟 btrfs 看來也是四者當中最佳的選擇。 過去兩年
2020-09-15
2020 年的暑假, 又是跟隨著 ubuntu 新版 LTS 升級作業系統的時節。 在 20.04 focal fossa 版當中, 因為 ubuntu 強勢推動 (實用, 但也便利無原始碼軟體入侵 linux 的) snap 技術而引發自由派社群的抗議, 所以 (基於 ubuntu 的) mint 20 (代號 ulyana) 決定把 snap 割掉, 於是我也從 ubuntu 移民到 mint ulyana, xfce 版。 安裝完成後, 再度 用 debian live 技術製作 live CD、 製作 kvm 映像檔 ulyana-g20?.qcow2 跟 virtualbox 映像檔 ulyana-g20?.vdi, 通通放在 這裡, 歡迎大家下載。 以下是我的客製化的一些重點摘要。 採用 btrfs 檔案系統, 跟 zfs 一樣可快照, 而且是
2020-09-15
凡是遇到 「用指標實作深層資料結構」 的程式語言, 一定要知道淺層拷貝 (shallow copy) vs 深層拷貝 (deep copy) 兩者的差別。 網路上文章很多, 但圖畫得很清楚的卻很少, 連英文的也不是很滿意, 只好自己來舉一個例子、 畫一張圖。 以 python 為例, 以下指令: x = [[[1,2],[3,4]], [[5,6],[7,8]]] y = x z = x[:] 會產生上圖。 可以看到: y = x 只複製了最上 (外) 層陣列的位址。 而 z = x[:] 則把最上 (外) 層陣列的每一個元素 (也就是第二層每一個陣列的位址) 都複製過來。 接下來請在 python interpreter 裡面試試這幾個指令: x[0][0][0] = 37 x[0][0] = [41,43] x[0] = [[47,53],[59,61]] 每下一個
2020-09-15
我的新家 mint ulyana 大致上住得很順手。 但是在兩部 nvidia 顯卡的電腦上, 兩大覽器都會無緣無故造成整部電腦死當。 於是把兩大瀏覽器裡的「硬體加速」選項關掉。 是可以上網了, 但換中文輸入法出問題 -- 換過 fcitx、 gcin、 ibus 都一樣 -- 打沒幾個字, 畫面就亂掉、 整部電腦當掉。 我的經驗是: 會讓 linux 死當, 沒什麼好說的, 一定就是 nvidia 顯卡的問題, 因為他們不希望別人幫他們寫自由軟體驅動程式。 最簡單的解法就是在開機命令列加上 nouveau.noaccel=1 選項, 例如我的 extlinux.conf 裡面, live CD 開機模式的部分長得像這樣: label live:ulyana menu label mint 20 ulyana xfce, live CD [broken GeForce 7025]
2020-09-10
手機的資安與隱私比電腦要難保護很多 -- 因為不離身、 感測器多、 防護軟體少等等諸多因素。 本文列出幾個具體策略來提高手機的資安與隱私。 今天這篇主要是為了避免日常生活一般的廣告追蹤與惡意釣魚信件, 適用於一般人。 如果是要避免邪惡政府的監聽 -- 例如 2019 年之後的香港朋友們 -- 請參考幾年前寫的 保護智慧手機安全與隱私的軟體與建議 以及具有實戰經驗的中國網友所寫的 为啥朝廷总抓不到俺——十年反党活动的安全经验汇总。 本文僅適用於 android 手機。 至於蘋果產品用戶... 我完全幫不上忙... 只能推薦 62078 後門 這一篇, 尤其是第一段的諸多連結。 [刷機] 我買手機, 從搜尋 「root friendly phone 2019」 開始。 買來之後第一件事就是刷機成 LineageOS。 除了比較安全之外, 也比較熟悉, 因為不同款的手機的
2020-09-04
如果說 kvm 是 linux 虛擬機的引擎, 那麼 virt-manager 就是完工的車子。 以前年輕喜歡耍帥直接開著 引擎裸露 的 (網路連線) 拼裝車 上街拉風; 現在懶惰了, 還是開著完工的成品車比較簡單。 gtwang 的文章 有 virt-manager 慢動作分解教學; 笑傲紅塵路 有更多關於虛擬化技術的詳盡解說。 這篇我只想簡單筆記一下我的使用方式, 特別是對外網路的部分。 KVM/virt-manager 預設把虛擬機保護在 NAT 後面, 所以虛擬機可以上網; 但外界看不見虛擬機的 IP。 我的課需要讓學生們互相登入/攻擊彼此的虛擬機, 所以需要把每一部學生機的虛擬機拉出來、 讓它在區網裡曝光。 當然, 這會增加虛擬機遭到網路攻擊的風險 -- 尤其是以 iso 檔開機、 預設簡單登入密碼的虛擬機 -- 請謹慎使用。 這時需要做兩件事。 第一
2020-09-03
Ubuntu 18.04 (還是更早?) 棄 /etc/network/interfaces 改用 netplan 以來, 我一直不敢面對, 一直還是堅持用 懷舊網路設定。 最近 移民 mint 20 ulyana, 總算搞懂 netplan: 它只是一個最高階層、 負責出一張嘴的空殼, 在它的設定檔 /etc/netplan/*.yaml 裡面有一句最重要的 renderer, 由這句話指定到底要用 NetworkManager 還是要用 networkd 來實作網路連線 -- 它們才是真正做苦工的程式。 有點像是董事長 (呃,我剛剛說了什麼~) 決定要請哪一位來當總經理/執行長: 沒有太多選擇, 大概就只有這兩位, 而且最好不要請兩位同時上任。 爬文時, 有人也人把這兩個選擇稱為不同的 backends。 很棒的 stackexchange 問答。 [總經理 A] 一般

軟體自由運動 需要您的支持!

數位路平

軟體自由推動成果:數位路平

為向政府單位宣導開放文件格式,軟體自由協會在 2015 年主辦了「數位路平★台灣騎跡」縣市政府宣導活動,成員們以單車為交通工具,騎車到西部及離島的各縣市政府前,大聲的說出我們追求數位路平的心聲。

捐款給SLAT

若您肯定協會多年來的努力,敬請捐款支持軟體自由運動!

立即捐款
自由軟體納入檢定

軟體自由推動成果:自由軟體納入國家技能檢定

2016 年,軟體自由協會向國家技能檢定中心要求檢討考場預裝軟體的規定,並將自由軟體納入選項中。在經過數場會議之後,技檢中心終於在 2017 年 8 月底公佈修正草案,這對考生的選擇自由、技職體系的教育公平性來說,都是非常大的進步。

捐款給SLAT

若您肯定協會多年來的努力,敬請捐款支持軟體自由運動!

立即捐款
training of ODF

軟體自由推動成果:協助推廣開放格式文件

自從 2015 年國發會開始「推動ODF為政府文件標準格式」之計劃以來,台灣各縣市政府已逐步落實開放格式文件的使用,能有這麼亮眼的成果,軟體自由協會的夥伴們是不可或缺的幕後功臣

捐款給SLAT

若您肯定協會多年來的努力,敬請捐款支持軟體自由運動!

立即捐款
ezgo saminar

軟體自由推動成果:專屬教育現場的自由軟體體驗包

"ezgo" 是軟體自由協會以 Kubuntu 為基礎而打造的「自由軟體體驗包」,包含了各種適合日常工作使用的自由軟體,以及豐富的教育類軟體和自由教材,是一套專為教育現場打造的作業系統。

捐款給SLAT

若您肯定協會多年來的努力,敬請捐款支持軟體自由運動!

立即捐款