動態牆#

這是我用於記錄簡單想法的地方,與首頁的長篇文章不同,這裏的部分內容可能會成爲新的文章。

這裏的微部落格充滿着各種觀點,尚未經過打磨。他們反映着我的思考和對於理論的理解:有反應時事,有靈光隨想,有政治論議,亦有生活感悟。可能冒犯到所有人,因此這裏的一切僅代表我個人意見,請酌情閱讀。

Parrhesia (παρρησία),即只說真話不欺瞞,有負面的後果也在所不惜。說真話不只是言論自由,真理顯現也符合大眾利益,更是公民義務。唯有對自己誠實才能讓我們解脫。

2026 年動態牆#

11月3日#

  • 一定要記住,如果有人辱罵或者言語攻擊國家的大統領,絕對不要感到憤慨。真正的民主國家,其政府應該隨時歡迎他們的公民提出其統治方法的不足,並應該虛心傾聽批評者的意見來進行改正。就算當代大統領的治國方式非常糟糕,人們普遍負面評價。也要明白,發動言語攻擊的人,其目標是政府及其人員,而不是妳。因此妳沒有必要爲當權者說好話。


  • 至今爲止,我最嗤之以鼻的論理是「入鄉者隨俗」理論。就因爲妳是臺灣人,所以就要用 Line 和 Line Pay;因爲妳是中國人,就要使用 Wechat 和 AliPay(「支付寶」的英文名)。使用信用卡和現金付款會被人們視爲「異見人士」,常常不受人們待見。同樣地,臺灣是民主國家,因此就應該使用 Windows 作業系統。使用 Linux 和其他自由軟體是「非常奇怪的」做法。
    這種把「集體路徑依賴」包裝成道德與認同的荒謬邏輯,本質上不過是數位時代的盲目「從眾自閹」。彷彿沒跟著幾家商業巨頭走,你就不配當這個社會的「正常人」。最令人啼笑皆非的,莫過於高舉著民主自由的大旗,底下卻心甘情願地把個人隱私與數位主權獻祭給封閉生態;將微軟的商業帝國綁架成「民主標準配備」,反而把追求原始碼透明,主張個體自主的自由軟體使用者打成「異端」。
    人們盲目捧為「常態」的,不過是科技巨頭精心佈下的商業花園圍牆。微軟用獨佔的協議與隱蔽的閉源代碼將用戶圈養在沙盒裡,把它們早就 AI slop 化的作業系統變成廣告推播與數據搜集的收割場;Line 與 Wechat 等通訊巨頭則打造出無法轉移數據的「數位監牢」,利用網路效應勒索大眾——你若不獻上自己的關係鏈與個資,自願被公司甚至政府監控,就等同於被社會強制「數位邊緣化」。當演算法與商業條款成了不容質疑的憲法,用戶早已從使用者淪為巨頭資產負債表上被租賃的數位農奴。
    …這哪是什麼「隨俗」?不過是群體懶惰下的集體馴服。當「方便」成了審判異己的審判架,當商業閉源生態被奉為生活準則,這種偽善的「主流共識」,才真正是對自由二字最大的幽默與諷刺。在這些巨頭築起的高牆內,我們失去了對工具的控制權。系統更新不再由使用者決定,資料流向成了商業機密,就連軟體的使用壽命也全憑企業一念之間。Sony Xpedia 10 VI 明明硬體不差,卻收不到 Android 17 更新的事情還不能佐証我的論點嗎?!


這正是為什麼選擇 Linux 與自由軟體(FOSS)絕非「奇怪的偏執」,而是個體對科技壟斷最直接的清醒抗爭。
人民有言論,集會,通信,選舉/罷免,遷徙等自由。凡是不妨礙社會秩序及公共利益的自由,都是可以准許的。這是寫在中華民國憲法裡的「自由」,同理,人民亦有使用自由軟體,利用合法之手段,保護和捍衛個資,數位主權之自由。並應該有對於程式的知情權,修改軟體的控制權,以及不受單一企業綁架的自主權。在開源的世界裡,沒有不能關閉的追蹤器,沒有隨時準備背叛用戶的後門,更沒有以「入鄉隨俗」為名強行灌食的商業甚至於道德綁架。使用自由軟體,代表你拒絕將自己的數位生活寄生在商業巨頭的恩賜之下,而是選擇站在知性與掌控力的一端。

  • 一個文明社會真正的自由,從不體現在所有人都在用同一套東西。恰恰相反,是體現在個體擁有多元的選擇權,並能尊重大膽走出主流框架的人。下一次,當有人再用「大家都在用」來衡量你的工具選用時,請大聲提醒他們:「工具應該是拓展人類自由意志的翅膀,而不是將我們鎖入黑箱的枷鎖」。

11月2日#

隨着 AI & LLM 的高速發展和大流行,各種各樣的專案也就像雨後春筍一樣,湧現在我們的眼中。眼看各 porter 發動神力將 iOS 移植到 Android 裝置,macOS 跑在 Snapdragon 筆電上,NuraOS(曾用名)專案卻禁止人們使用 AI 輔助移植 Linux,如果使用 AI 輔助的裝置 port 將不准許合併至 upstream repository。一些程式碼存儲庫,例如 Codeberg 也限制使用 LLM 維護專案。按理說使用 LLM 幫助可以推動 mainline kernel 支援更多裝置…或許是對可維護性有隱憂?話說 Google Pixel 中支援最好的竟然是 Pixel 9 XL,除了相機無法使用,其餘功能都是完好的。當然,Tensor G4 晶片本就被 mainline 支援。

11月1日#

10天前我寫到 UniXNU 專案的紹介,支援裝置僅有 Xiaomi Pad 6 一臺,今天再回去檢視網站,支援的裝置不知不覺就增加了不少…像是我自己曾寫過文章的 Xiaomi 14,Nothing Phone (1),還有高通的 Gunyah 虛擬機亦可以執行。看來不得不承認的一點是,在 AI Agent 高速發展的今日,即使妳沒有任何嵌入式裝置和作業系統的知識,也可以成爲一名 porter。至於 port 的專案是否爲 AI slop,我就不知道了…

10月30日#

玩電腦,智慧手機玩膩了?那就來刷機吧!誰說電腦,手機只可以跑廠家預載給妳的軟體和作業系統?那就快點解開 bootloader,關閉 secure boot,給 Linux 和自由軟體一個機會吧…新手先從 Fedora,Debian 開始,每天投入時間學習,慢慢地就會進入 Linux 世界。接着就會開始利用 Arch,Gentoo 之類的進階發行版,此時妳已經不滿足於簡單的跑軟體,而已經開始研究 kernel,自己學習建置可以開機的自定核心。還會因此花費大量金錢購買驍龍筆電,原型機,單板電腦這類硬體,開始自己從零實作自己的 Linux 發行版…最後,移植 Linux 已然成爲了妳的「遊戲」,那種從零 bring-up 一個裝置的自豪感,成就感不亞於在「蔚藍檔案」中一發入魂,看到閃着虹光的學生檔案的感覺。
「Linux on Everything」不是天方夜譚,而是真的可以實現的事情。Linux 可以在任何裝置執行。時計,智慧手機,平板電腦,單板機,筆電,一般桌機,伺服器… Linux 是數位世界中的「號誌機」。接觸過 Linux 之後,就要堅持執行自由軟體的理念。一定要使用完整的 Linux,而不是 Android,ChromeOS 之類的間諜軟體。當然,使用 Linux 也有風險。除了破保固之外,還要面臨無資源可檢索的問題。畢竟這是廠家眼中的「非官方軟體」。電腦還好說,比較有多人在使用,可以一起討論解決;手機有現在的 NuraOS 還有相關的網路社群可以尋找;嵌入式 Linux 方面,OpenWrt,buildroot,Yocto/OpenEmbedded 在單板機/路由器等裝置大流行,替代官方韌體不怕沒有同好。唯冷門發行版,使用人數較少,出問題幾乎找不到任何資料可參考。

10月29日#

  • Qualcomm 晶片的裝置都採用 UEFI 韌體開機。在手機上還可以通過特殊的按鍵綁定存取「BDS Menu」修改韌體設定,韌體基本上就是完整的 EDK II 實作。基本上在 PC 上開發的 App 都可以在手機上跑,此外還有 UART 可以給妳看 log。不過針對不同作業系統的韌體,會有部分功能缺失。例如 LA 平臺的韌體沒有 ACPI,USB host 和 SMBIOS 支援…


  • 經常聽別人講 Pixel 手機容易發熱。我雖然用過的 Pixel 機型不多,從 Pixel 3 XL 一直用到 Pixel 7 Pro,手機散熱應該也有逐年改進。例如在 Pixel 4 XL 上發熱的手機中框怎麼握都會燙手,在 Pixel 7 上就改善了很多。拿來放 1440P 解析度的 Youtube 影片要不間斷放6個小時才會有感覺(機身溫度43度),至於跑 Luanti 之類的遊戲則要2分鐘。


10月28日#

Qualcomm 的 I²C 時脈是可以自己在 DTB 中手動指定的。把 SM8750 MTP 上 I²C 的時脈改爲 400kHz 之後,點按熒幕的回應就變快很多,也可以在熒幕上捲動了。但是依然存在問題…從 evtest 的訊息來看,熒幕似乎總是把單擊手勢誤認爲是雙擊,這才導致觸摸行爲不正常。

10月27日#

喔…把我的 Lenovo Yoga 筆電改裝了 Arch Linux Arm,終於又重新投入 pacman 和 AUR 的懷抱了,又可以使用最新建構的軟體了。

10月26日#

x86 上的 Arch Linux 有好幾種核心可選用於安裝:無論是注重效能的 linux-zen ,講究安全的 linux-hardened,還是低 I/O 時延的 linux-rt(x86 桌機又不是嵌入式裝置,有必要使用嗎?),都可以在套件庫中安裝。然而上一次比較仔細的研究 kernel 之間差異的時候還是 2020 年,現在因爲全面遷移到 Arm 架構上,這些「kernel flavor」也就慢慢不再關心了。畢竟 Arm 裝置差異化比較明顯,有時 upstream 釋出了新的 commit,免不了要從 git 上下載原始碼然後 make 再手動安裝。在 Arch Linux Arm 中,套件庫就只有基於官方核心原始碼建構的 linux-aarch64 和 linux-aarch64-rc 了,其中後者的更新頻率要快一些。

10月25日#

So many nights, awake from dream
I won’t believe that I already worked so far
Look at the code, you’re my star
Want to say that I’ve learned so much thing
My big screens, my dev boards
My prototypes and everything I’ve owned
One more patch, one more fixup
But you know what? Darling wait for me I’ll be back

上述歌詞改編自 Younetro & Alex Skrindo 的 I Will Be Back。

現在 SM8750 MTP 的熒幕觸控可以在 mainline kernel 正常工作了,但是不知道是不是沒有 GPU 硬體加速或者 I²C 速度不正確的原因,熒幕反應並不順暢,回應時延高得連最基本的 double tap 手勢都做不到,還需要進一步改善…

10月24日#

Compose key — Wikipidia 原來「組合鍵」是用於鍵入特殊字元的按鍵啊…不過爲了和日常生活中使用的諸如「Control-C」 「Super + Page up」 這類組合鍵(Keyboard shortcuts)區別,「Compose key」 又有一個別稱叫「Dead key」(死鍵)。和 Shift, Control 這類修飾鍵不同,組合鍵不需要一直按住,只需要按一次,然後輔以其它鍵就可以鍵入額外字元。例如想要鍵入上面出現的「²」,就需要按一下組合鍵,然後按住 Shift 鍵入「^」,最後再鍵入 2 就可以了。組合鍵並不會輸出一個完整的字母,而是改變下一個按下的鍵的輸出結果。例如使用組合鍵,「o」,「c」 就可以鍵入「©」。
在 Linux 上,可以自定義「Compose key」的按鍵綁定。目前 GNOME 和 KDE 等桌面環境和 WM 都支援修改「Compose key」的綁定鍵。例如現在筆電上安裝 Linux 後最沒有用途的「Copliot key」。

10月23日#

Arch Linux ARM for Qualcomm SM8750 MTP Development Kit 現在 SM8750 MTP 原型機的主線核心已經有了 NT37801 熒幕和 Adreno 830 GPU 的支援,雖然 freedreno driver 目前並未加入 Adreno 830 GPU 支援的程式碼(dmesg 顯示’unknown GPU revision’),但依然可以啓動,並且可以登入 GNOME 桌面。好在 SM8750 CPU 效能足矣,即使用 llvmpipe 跑軟體渲染也不會導致畫面慢到像是在放投影片。
至於以後的工作…目前還有 touchscreen,電池,睡眠(Suspend)等不工作,還需要進一步修補。在此期間,歡迎各位檢視我的 Codeberg 專案!完成 touchscreen bring-up 之後會釋出映像檔供大家安裝使用的!

10月22日#

祕境車站被標記在地圖上那就不能叫祕境車站了。不過有些車站即使被標記,也少有人去探索,因此這些車站常常成爲我拍攝部落格頭圖的地方(雖然部落格的頁首 banner 是4年前在海邊拍的,至今都沒有更換過…)。

10月21日#

現在 Arm64 裝置也可以有機會跑 macOS了。UniXNU通過使用標準UEFI韌體引導 Apple 的 Darwin 核心,只要裝置採用 UEFI 韌體開機,以及合適的 ADT 設備樹(用於開機的設備樹,類似於 Linux 的 DTB)就可以跑 iOS 和 macOS。根據作者的進度來看,目前高通裝置的 GPU 驅動已有進展。看來黑蘋果社群很快將會迎來第二春的。

9月28日#

PostmarketOS 在昨天宣佈改用新的「NuraOS」做爲他們全新的專案名,根據 Postmarket…不對,應該是 NuraOS 部落格的紹介,「Nura」一詞來自「Nuraghe(中文譯作努拉吉)」,是位於意大利的古蹟。用石塊壘成的平頂圓錐狀建築形制,作爲紀念碑或用於宗教用途。由史前時代撒丁島上的努拉吉人所建,隸屬於努拉吉文化,並僅存於撒丁島地區,目前約有超過7000座。絕大多數努拉吉依然屹立不倒至今,就像 PostmarketOS 一樣,從2016年專案建立到現在仍然具有活躍力。也成爲了無數舊手機,單板機以及筆電的「第二選擇」,即使廠家早就停止支援裝置,在開發者的努力和自由軟體的幫助下,依然可以執行最新的軟體和 mainline kernel,同時可以實現更多的用途。

爲了跟進上游社群的變化,本部落格自今日起,所有 PostmarketOS(現名「NuraOS」) 相關的新文章,分類和標籤將採用新名稱,舊有的文章不受影響。

9月27日#

感謝해요, 感謝합니다
自由의 重量을 짊어진 어깨들에게
우리가 함께 守護해 갈,
完全한 디지털(Digital) 主權을 爲해

오늘도, 來日도
우리는 記憶할 거예요
眞心으로 世上을 바꾼,
開發者, 感謝합니다

雖然立場與理念或許各有不同,但對自由的熱愛將大家緊緊相連。我想這就是「自由軟體」的魅力吧,無論是臺灣還是韓國;無論是漢字文化圈還是英語文化圈;無論是亞洲還是歐洲,總會有人爲了捍衛個人隱私,守護自己的數位主權而同邪惡的專有軟體鬥爭。目前主流的網路服務幾乎都可以找到對應的 FOSS 替代,雖然和大型的軟體開發公司相比,個人或小社群的軟體會有各種各樣的問題,但沒有關係。能夠開發出 FOSS 替代就已經很棒,辛苦了,各位爲了個人隱私和數位主權而努力工作的所有自由軟體開發者們。

9月26日#

「수고하신,開發者.」macOS 很早就棄置了 Nvidia 顯示卡的支援,然而 Reddit 的 Hackintosh 版塊中有人根據 Nvidia 開源的顯示卡驅動程式原始碼開發了相容 Metal 圖形 API 的 GPU 驅動程式,同時也支援影片解碼。這才是我們需要的爲自由軟體而努力的「開發者」,而不是僅僅會推廣應援專有軟體的傢伙…

9月25日#

Arch Linux 如果更新之後有套件無法工作,可以藉助 AUR 中的 downgrade 套件來使用先前保存的 pacman 快取 rollback 到沒有問題的版本。

9月19日#

  • Wow,Suno AI 的新版 6.1 model 對於歌曲的節奏,音韻的辨識和處理有了不小進步。這一點在製作歌曲的 AI Cover 時會比較明顯,對於主體旋律明顯比舊版 model 要好了。


  • 奇怪的韓國語音讀大會:灣子路(만자로,羅馬音: Manjaro),臺飛岸(대비안,羅馬音:Daebian),雅志(아지,羅馬音:Arci)。妳是否已經發現了什麼?…不要懷疑自己的韓國語發音。


9月18日#

如果 Linux 發行版有「最不可思議金氏世界紀錄」的評級,第一名應該頒給 PostmarketOS 和所有牠的 porter 們。如今 PostmarketOS 所支援的硬體不僅包括一衆 Android 手機,平板電腦,單板電腦,筆電,甚至連路由器和智慧電視都可以跑 mainline kernel 和 Linux;第二名才是 Gentoo,因爲基於原始碼的發行版只要有原始碼和對應架構的編譯套件就可以在任何 CPU 架構的硬體上執行,例如 MIPS 和 RISCV。

9月12日#

Apple iPhone X — PostmarketOS Wiki 現在妳可以直接將 PostmarketOS 安裝到手機內建的 NVME SSD 上,如果日後想使用 Linux,還可以藉助 idevicerestore 重刷 iOS 就可以了。

9月11日#

Sxmo: Simple X Mobile 在手機/平板電腦上使用 Sway WM 是什麼體驗?所有的功能都要通過指令稿完成,可以自由組裝桌面元件…在這裡,SSH 是一等公民,通過 SSH 來給妳的好友傳送簡訊!

9月5日#

很多老一代的電腦使用者不知道使用鍵盤打英文時,只需按住 Shift 鍵再按對應的字母就可以打大寫字母…非要一遍一遍地按那個沒有什麼用的 Caps Lock 按鈕,降低打字效率…就像使用瀏覽器一樣,不知道地址欄就可以自動使用搜尋引擎檢索,非要看到 Google 的畫面出現才去檢索。

9月4日#

Use old phone as a second display: USB GUD with postmarketOS 藉助 Linux 的 functionfs 和 USB Gadget 技術,可以讓任何不支援硬體視訊輸出的 Linux 裝置(Modem, 路由器之類)通過 USB 方式實時的將裝置畫面傳送到另一臺支援視訊輸出的裝置,例如筆電或者 Linux 智慧型手機。如果使用 USB IP 技術還可以實現遠端桌面功能。這就像常見的 Remote desktop 或者 Moonlight 串流一樣,只要裝置支援 USB 就可以使用。

8月28日#

  • 追求不吃記憶體的瀏覽器是不現實的指標 — Ivon 的部落格現代瀏覽器的任務已經不僅僅是檢視網頁和 HTML 檔案這麼簡單了。爲了防止惡意網站竊取使用者個資,瀏覽器普遍採用 sandbox 機制,把每一個行程沙盒化,還要處理瀏覽器的擴充程式;爲了讓網頁實現各種功能甚至充當統合開發環境*的能力,又引入了 WebAssembly(在瀏覽器跑C寫的程式),WebGPU 等技術,需要的硬體資源自然就會增加。當然可以改用諸如 midori, dillo 這種針對低階老舊硬體設計的瀏覽器,但是牠們不支援現代瀏覽器的一些技術,例如常見的 Javascript。會導致部分網站無法正常運作。

**:統合開發環境(통화개발환경),*「整合開發環境(IDE)」的韓語表述。是一種輔助程式開發人員開發軟體的應用軟體,在開發工具內部就可以輔助編寫原始碼文字、並編譯打包成為可用的程式,IDE 通常包括程式語言編輯器,自動構建工具,還包括除錯器。


  • Arm 筆電一定要比常用 x86 筆電要更安全嗎?資安中有諸如「Spectre」「Meltdown」的安全漏洞。後者可以在任何基於 P6 微架構的 Intel 處理器或者部分 Arm 晶片上得到利用,而前者則針對幾乎所有的處理器。2000年之後出產的晶片,爲了改善程式執行效率,處理器引入了「推測執行(Speculative execution)」功能,在處理器系統資源過剩的情況下並列處理其他任務,提高整體效能。但也爲之後利用這一特點而進行惡意行爲的「Spectre」之類漏洞的開發提供可乘之機。
    現在的 Arm 筆電依然會遭到「Spectre」之類採用推測執行方式的旁路攻擊漏洞影響,因此答案顯然是否定的——Arm 筆電並不天然地比 x86 筆電更安全。事實上,晶片安全與否的關鍵不在於指令集架構(ISA)是 Arm 還是 x86,而是在於微架構設計(Microarchitecture)與安全防禦機制的演進。評估一部筆電的安全與否,不應單憑「Arm」或「x86」的標籤來劃分。 現代高效能 Arm 筆電與 x86 筆電站在同一條資安戰線上——唯有持續的微碼更新、完善的作業系統防禦機制以及使用者良好的安全習慣,才是確保系統安全無虞的根本之道。

想要檢視妳的裝置上存在的硬體安全漏洞和作業系統的修補手段,只需要在終端機鍵入 lscpu 命令語,看看硬體安全漏洞「Vulnerablities」 一行,牠顯示妳的 CPU 對於各種著名的「推測執行(Speculative Execution)」側信道攻擊漏洞的免疫狀態或補丁套用情況。

8月27日#

由於我實在是沒有精力繼續維持動態牆的更新,並保證部落格的文章準確度和質量,從 2026年8月28日 起,動態牆的 commit 頻率變更爲每週更新一次。

8月26日#

Lenovo Yoga Slim 7x 筆電內建的 Quectel NCM825A Wi-Fi 網路卡可以利用 mainline kernel 的 ath12k 核心模組使用監聽模式(monitor mode),不會導致當機進入 Crashdump。

8月25日#

生日祝賀합니다. 今天是 Linux 核心的第35個生日,從1991年赫爾辛基大學寄出的電郵開始,這個當年只是被認爲「個人愛好」的「Minix clone」不斷被世界各地的開發者發展改善。從最初的 386 到現在的 Arm, RISC-V, MIPS… 不同的硬體架構,多樣的發行版,使得 Linux 可以在伺服器,個人電腦,嵌入式裝置等領域發揮作用。

I’m Linux booted up from soild-state drive
Powering whole city, the lights are so pretty from up here

Linux 是開源軟體,是我踏入「自由軟體」大門的第一步。也是我之後發見並將之運用於日常生活的基盤。只有 Linux 和自由軟體,才可以做到「捍衛隱私的夢想,數位人權得到保障」。

8月24日#

  • 除了 Qualcomm 以外,還有哪家晶片對 KVM 虛擬機支援友好呢?經過爬文之後,結果非常可笑:我一直有個資隱憂的中國製晶片(Rockchip, Allwinner…)反而是 KVM 支援最好的晶片廠家!韌體默認執行在 EL2,也不會有像 Google, Qualcomm, Mediatek 之類的種種限制。


  • Reddit 上有人把 Android 取得 root 權限叫做「越獄」,真是可悲。Root 本來就是 Android 中自然存在的部分,根本不需要像 iOS 那樣「幾經波折」…不過 iOS 越獄確實會讓妳存取系統的 root 用戶。


  • 很多 Xiaomi, Samsung 使用者都會宣傳自己的手機外觀,CP值多麼高,但是他們卻無法解開自己手機的 Bootloader…自己的手機,最後只能受到廠家控制,真是可悲啊…不對,應該是「咎由自取」。明明是自己花錢買了「手銬」,自己戴上並「蔚爲風尚」,怎麼能說「可悲」呢?


8月23日#

別人問我:妳最早接觸的 Linux 上的套件管理員是什麼?

應該是 apt 和 dpkg。只是和所有使用 Linux 的人不一樣,這二個套件管理員最初是在越獄後的 iPhone 6s Plus 上學習用法的。畢竟 iOS 和 macOS 的套件管理員都是 apt dpkg (不知道爲什麼,Apple 的系統要用 Debian 的套件管理員,套件也要打包成 .dpkg ),還有 Cydia,Zebra 這樣的 App 作爲 GUI 前端,對於新手而言易於上手。後來在桌機上也使用過一段時間 Debian。可是在 iPhone 上的嘗試反而讓我有學習 Linux 的想法。

8月22日#

行動數據和撥接上網的區別在哪裏?需要修改的配置檔案不同。撥接上網需要提供可用電話號碼和使用者資訊,而行動數據只需要使用 ISP 提供的 APN 檔就可以使用,不需要編寫指令稿來完成撥接:

#!/bin/sh 
# my-chat-script: a program for dialing up your ISP 
exec chat -v \ 
'' ATZ \ 
OK ATDT555-1212 \
 CONNECT '' \ 
 login: mdw \ 
 password: my-password 
 ```
</br>

只是現在手機內建的數據機通常採用專有的協定,而不會提供 UART 給使用者,想要使用 `AT` 命令也變得困難了...</br>
</br>


## 8月21日

[Dial-up simulator](https://manticore.nz/dial-up-simulator)雖然現在智慧手機內建的數據機與20年前上網用的數據機工作機理並沒有顯著區別,也都可以使用常見的 `AT` 命令語進行韌體設定。理論上可以藉由 ISP 提供的網路進行撥號連接,只是因爲年代久遠,已經沒有 ISP 提供撥號連線服務了。這個軟體就可以用來模擬90年代的撥接音,讓妳重新回到過去「無憂無慮的時光」...</br>
</br>

## 8月20日

今天完成了鐵路 Niri 站(尼利驛/尼利站)的重建工作。和先前的車站設計不同,現在 Niri 站的車站佈局改爲「2地面月臺 + 2地下月臺」的設計,把拿維鐵路的既有普速線路和新建設的高速鐵路分開,減少了建築時間,也可以承接更大的客流量。同時,Niri 也是我最喜歡的 Window manager,不僅支援 Wayland,還支援客製化,允許使用者按照個人使用習慣組裝桌面元件。</br>

<img src="/assets/minecraft-niri.png" >

<img src="/assets/minecraft-niri-upper.png" >

<img src="/assets/minecraft-niri-under.png" >

<img src="/assets/minecraft-niri-outbound.png" >

</br>

## 8月19日

Minecraft 中,有不少講究擬真的建築師會在鐵路上方修建高架電車線,學着現實中的鐵路一樣,修上電杆和懸吊,用線或者其它方塊鏈接,作爲一種「裝飾用結構」...那麼要通過什麼裝置取電來保証礦車運行?Vanlia Minecraft 顯然不可能存在類似「集電弓」的裝置,因此充當集電弓的裝置只能是玩家本身。由此看來 Minecraft 的 Steve 和 Alex 真的是超人呀,能夠承受 25 千伏工頻交流電流經身體而不會有任何反應...</br>
</br>
就像下面的圖片一樣(雖然並沒有站在軌道上),通過 Plana (我把 Alex 的模型替換成了蔚藍檔案的「Plana」)的裝飾物和 Halo 取電,然後經身體流到礦車的電機去。</br>

<img src="/assets/minecraft-lol.png" >

</br>

## 8月18日

在 Pixel 7 Pro 上嘗試了 DroidVM 這個專爲高通手機開發的虛擬機 App,雖然沒有高通的 Gunyah Hypervisior 支援,但是 pKVM 還可以使用。只是...不知道是不是開發者的問題,明明 App 偵測到裝置不支援 Gunyah Hypervisior,僅能用 KVM,但是使用 QEMU 開虛擬機時,log 中會發現 `qemu-system-aarch64` 嘗試利用 Gunyah 而出現錯誤的問題。</br>
</br>

## 8月17日

(似乎是)比較順利的 Linux porting?從 Arch Linux ARM 網站下載了一份 64 位元 Arm 架構的 rootfs,解壓縮到建立好分割的 eMMC 快閃記憶體上,再編譯一份 sc7280 晶片專用的 mainline kernel,產生 `initramfs` 映像檔就可以開機了。除了內建的 FCU760K 的 USB Wi-Fi 網路卡需要 out of tree 核心模組才可以驅動,其他硬體都有完好的支援。</br>
</br>
唯一的問題是我的 Minecraft 遊戲存檔沒有備份,結果我兩個月的鐵路建設全部需要重建了... `:(` </br>
</br>

## 8月16日

KDE Plasma 現在可以支援使用 Unifiedpush 作爲應用程式的通知傳送服務後端,手機上的 Plasma Mobile 也可以。原來爲 Android 裝置開發的 FCM Push 自由軟體替代品也可以運用在 Linux 電腦上啊... 不知道 GNOME 什麼時候加入支援呢?</br>
</br>

## 8月15日

似乎不少手機使用者認爲只有電腦才可以方便的改裝作業系統。包括一些教師也是這麼認爲的,很多人認爲手機只能夠跑廠家自己客製化的韌體。于是當我講我可以在手機上跑 mainline kernel 並用牠寫了不少文章的時候,總會有人出來笑話我,直到我把改裝了 PostmarketOS 的 Nothing Phone 砸到他們臉上之後才不情願的相信。</br>
</br>

## 8月14日

如果說 Minecraft 可以在馬鈴薯電腦跑,那麼 [Luanti 在地瓜葉電腦上也可以跑](https://ivonblog.com/posts/luanti-vs-minecraft-on-low-end-pc/)。爲此我找出一臺 2014年的 iEi 工業電腦,改裝 Arch Linux。不得不說在4GB 記憶體,3代 Pentium CPU 上玩 Luanti 也可以跑到60FPS,而 Minecraft 只可以跑到30FPS。</br>
</br>

## 8月13日

用 Linux 或者 OpenBSD 的人都是爲了炫耀?那可不一定。因爲「炫耀」的前提是自己的知識儲備必須足夠甚至超越對面的儲備,爲了展示自己的能力,往往就要再學習更多的知識...時間一長反可能成爲這一領域的專家。</br>
</br>

## 8月12日

花了不少時間給我的 x86 桌機安裝了 FreeBSD 15,不得不說 UFS 檔案系統在如今的 SSD 上也可以啓用 Trim 支援,但是硬體驅動仍然是個大問題。</br>
</br>

## 8月11日

Samsung 在中國的銷量非常慘淡,但依舊是 Android 旗艦的王。說明了什麼?即使沒有中國這個市場,照樣不會影響公司的經濟!看看 PINE 64 的例子就知道了。</br>
</br>

## 8月10日

回想了自己從接觸網路開始,使用過的所有搜尋引擎,並把牠們編成了一首歌,來紀念我的搜尋引擎變化歷史。</br>
</br>

## 8月9日

開源自架(軟體)出發,SearXNG (元)搜尋 </br>
集合搜尋,統一檢索,高度客製化 </br>
只需支援 Docker 容器就可以實作 </br>
**隱私牢牢掌控,做自己的大統領** </br>
</br>

## 8月8日

[No abortions this time, sensei !](https://gelbooru.com/index.php?page=post&s=view&id=14039086&tags=abortion+) ...And guess that's why `zygote` will crash every time and causing my phone "soft reboots" itself, huh? </br>
</br>
笑話解析:「abort」有「終止」「墮胎」兩個意思,「zygote」是 Android 系統中一個重要的進程,使用者的每一個應用都是 `zygote` 的 `fork()`,`zygote` 意外終止會導致手機「軟重啓」。「zygote」 在英語中是「受精卵」的意思。</br>
</br>

## 8月7日

 - 幹,昨天 Pixel 7 Pro 在更新 crDroid Augest update 後,手機出現鎖定熒幕就軟重啓的問題,反覆排查自己所使用的 KernelSU 和 Vector LSPosed (我不使用封閉原始碼的 LSPosed)模組後無果,只得重新刷機。非常奇怪的是重新刷機再安裝同樣的模組後,手機沒有任何問題,也不會軟重啓...</br>
</br>

 - 嗯,Action Retro 爲了讓舊時代的硬體也可以日常上網瀏覽,特地自架了 FrogFind 檢索引擎。在我10年前的 Surface Pro 5 和 Surface RT 上簡單使用了一下,效果還可以。配合 midori 瀏覽器上網,記憶體佔用只有1.25GB。對了,如果裝置太新,FrogFind 會不給用。修改瀏覽器的 User Agent 就可以了。</br>
</br>

## 8月6日

「플래싱(Flashing) 少年」 應該是我覺得最好的別稱。雖然會和在 Minecraft 中建造鐵路的「FlashTeens」重名,但是「Flash」只有「刷機;刷寫」的意思。不像後者,因爲曾用 Flash 軟體做過動畫而把「FlashTeens」作爲自己的暱稱使用至今。</br>
</br>
我沒有「自視清高」的意思,只是覺得自己除了研究自由軟體之外並無任何專長而已。</br>
</br>

## 8月5日

原來 Microg 也可以通過 Play integrity 的驗証!只是...要 de-google 了,爲什麼還要在乎 Google 的服務呢?</br>
</br>


## 8月4日

現在年輕人無法理解的8種事情:

 - 軟磁碟;
 - Linux TTY 控制臺;
 - 在手機上藉助 UEFI 韌體跑 Linux 甚至於 Windows Arm;
 - De-googled Android 裝置;
 - Librewolf,Netscape,Internet Explorer;
 - Mali on Intel x86 還有 ACPI tables;
 - 在一般 x86 電腦跑 Hackintosh 黑蘋果;
 - 「It's safe to poweroff the system now.」
</br>

## 8月3日

<img src="/assets/pmos-wiki-q6a.png">

[Radxa Dragon Q6A -- PostmarketOS Wiki](https://wiki.postmarketos.org/wiki/Radxa_Dragon_Q6A_(radxa-dragon-q6a)) 把如何編譯 `aic8800` 驅動的方法,來修復內建 WiFi 網路卡不可使用的問題寫到 PostmarketOS Wiki 上了,希望能夠幫助想要在 Q6A 上跑 PostmarketOS 的使用者/開發者!</br>
</br>

## 8月2日

 - 似乎獨裁專制勝過自由民主,放在國家角度看是如此,放在自由軟體角度看依舊如此。看看全球哪家智慧型手機賣的最好,最有人氣?應該是 iPhone 吧!iOS 這種監獄生態包辦了妳的衣食住行,把使用者慢慢培養成爲什麼都無法做的「功能性文盲」。一旦脫離某公司的生態就無法使用手機,不知如何是好。突然遞給別人一個安裝了 AOSP-like Android 系統的裝置,看看會使用的人還剩下多少?如今 `systemd` 似乎要引入「遠端驗証」的猜想,之後使用者想要使用的軟體都必須要經過數位簽章,雲端驗証才可以繼續使用?越想就越覺得不對勁,好比自己家的鑰匙卻不在自己手上,每次開門都必須從第三者取得鑰匙一樣荒謬。雖然 Linux 套件管理員同樣有數位簽章,但僅用於驗証套件完整性,不會影響軟體安裝自由。想想過去,韌體引入的「安全性」變更,總會讓自由軟體使用者苦不堪言:UEFI 有安全啓動,Arm 平臺有基於硬體的安全啓動,還有 Bootloader 鎖和 Verfied boot...就算 Linux 要引入相關的安全性變更來保障使用者安全,拒絕被淪爲病毒和間諜軟體利用的「培養基」,也應該是 Optical,而不是 Force required 。如果 Linux ,或者講是 `systemd` 走上了 Android,iOS 和 Windows 一樣的道路,使用者不能自主決定安裝哪些應用程式;修改系統檔案必須通過雲端驗証,成爲新的「圍牆花園」...那麼 Linux 也就不再自由。自由軟體使用者將不再有安居之處,這篇部落格也就可以終止更新了。</br>
</br>

 - 如今的 Android,正在走上 iOS 那樣成爲「監獄生態」的道路。iOS 即使有 AltStore 這種側載管道,牠也是要向 Apple 註冊帳號,取得開發者憑證給 APP 簽名才能安裝。換言之,整個安裝流程依然只能在 Apple 指定的機制下才可以正常運作。在 iOS 上安裝任何 App ——包括透過側載安裝的 App ——都必須經過蘋果的程式碼簽章與授權系統核准。`installd` 系統程序會驗證 App 的簽章與佈建描述檔是否有效,否則 App 就無法安裝。此外,iOS 還有App Attest 服務能夠透過計算加密金鑰的方式,驗證 APP 是否遭篡改,杜絕 APP 被人扒出 IPA 側載的可能性,就是讓你只能從 App Stote 下載。雖說這能保護專有軟體開發者的利益不被侵犯,但又進一步加強了 iOS 的封閉性。因此,除非是原型機或者越獄的 iOS 裝置,iOS 基本沒有軟體安裝自由。原來 Play Integrity 就是抄這個機制的「複製品」啊... Google 或許會保留供進階使用者的「進階選項」,或許某一天,這所謂的「進階選項」也會被隱藏。大型科技公司仍然可以在未來的某個時刻奪走我們自由安裝軟體甚至是使用裝置的能力,因此不能專注於某幾家公司提供的服務和生態,必須「去中心化」,必要的服務可以考慮自建。</br>
 </br>


## 8月1日

剛好看到 PostmarketOS 有 Q6A 的 port,通過 `pmbootstrap` 安裝到 eMMC 上,開機只用了10秒(我使用 GNOME 桌面)!對於 eMMC 這種低速快閃記憶體來說,很贊。至於內建的 FCU760K Wi-Fi 網路卡也可以通過編譯安裝 `aic8800` out-of-tree 核心模組來解決。</br>
</br>

## 7月31日

從角落翻出很久以前給 Rock 5B 買的 eMMC 模組,放在 Q6A 單板機上,竟然可以工作!只是還沒有想好具體用途...</br>
</br>

## 7月30日

我的 Q6A 單板機從睡眠中喚醒後,會遇到無法關機的問題。後來發現是因爲 kernel 無法向 RTC 覆寫新的變數導致的...所以核心的「It's now safe to power off the system.」的提示在哪裏?至少讓我知道是否可以安全地
拔掉電源。`:P` 後來使用自行編譯的主線核心開機就可以了,不得不說單板機化的「Nothing Phone」使用體驗真的很好。</br>
</br>

## 7月29日

[U-Boot acpi Command -- Das U-Boot Document](https://docs.u-boot-project.org/en/latest/usage/cmd/acpi.html) 如今 U-Boot 也支援 ACPI 了,只要有 ACPI tables,理論上可以執行任何相容 ACPI 的作業系統,例如 Windows 和 OpenBSD。我先前曾在 Yoga 筆電上安裝過 OpenBSD,利用韌體提供的 ACPI 啓動。一些 Snapdragon 裝置還可以把 XBL 或者 ABL 替換成 U-Boot 開機...那只要寫好相容的 ACPI table,編譯到 U-Boot 中,我的 PinePhone 也可以跑 OpenBSD 或者 Windows 10 IoT?考慮到 A64 晶片的效能,我想還是拿來跑 Linux 吧...</br>
</br>

## 7月28日

 - 今天是 [Republic of FlashTeens](https://www.planetminecraft.com/project/my-first-minecraft-world-republic-of-flashteens/) Minecraft 地圖開發的第11週年!雖然我也是鐵道迷,但是我的建築和 FlashTeens 相比,顯得過於質朴實用了些。不過我的地圖是開放原始碼的,任何人都可以下載,修改和再分發,歡迎各位到[Planet Minecraft](https://www.planetminecraft.com/project/1-19-2-the-gnu-genshin-subway-project/)上下載我的地圖遊玩!</br>
 </br>

 - 嗯...我好像和遊戲世界脫軌了,問題是現在 Steam 上的遊戲,支援 Linux 的太少,一些遊戲雖然可以用 Proton 相容層玩,但是需要處理 anti-cheating 相關問題。還都是專有軟體,連 Minecraft 我都是抱着羞恥心來玩的,還怎麼敢玩其他的遊戲呢?</br>
 </br>

## 7月27日

[Using CAPTCHA for Compromise: Hackers Flip the Script](https://reliaquest.com/blog/using-captcha-for-compromise/)爲了蒐集妳的個資,如今連 Google/ Cloudflare Captcha 都可以被仿造,從外觀來看,和正版的 Captcha 程式根本沒有什麼區別。唯一的區別在於按下「請驗証您是真人」後,會提示需要執行指令搞才可以完成驗証。當然驗証是肯定做不了的,只會下載大量的危險「間諜軟體」隨系統開機執行而啓動,在背景偷偷蒐集使用者的資料。這樣看來,瀏覽器的權限不能開放得太大,很容易會造成安全問題。</br>
</br>

## 7月26日

以後應該減少「動態牆」的更新頻率了,畢竟每天記錄個人想法也是蠻累的。</br>
</br>

## 7月25日

現在玩 Minecraft 的時候我總會想:這是不是不道德?明明有更好的自由軟體替代品 Luanti 了...算了,只是一個遊戲,放鬆身心的程式就不要想太多了,在 `/etc/hosts` 檔案把 Microsoft 和 Mojang 的網域擋掉就好了...照這樣下去,可能以後自慰用的按摩棒如果跑的是專有的 RTOS 我也會拒絕使用,從而選擇自製吧...</br>
</br>

## 7月24日

GNU/Android...不對,應該是 Google/Android,究竟與常見的 GNU/Linux 發行版相差多遠?先不講 Android 的核心與 upstream kernel 程式碼相差50~500萬行,即使像 AOSP on Mainline 直接用主線核心跑 Android 的做法也只是解決了核心老舊的問題。近些日子 Google 對 Android 的修改一直是去 GNU 化的,系統底層的組件使用 `busybox` 和自己的 `toybox`,所採用的 BSD 協議和 AOSP 採用的 Apache 協議一樣寬鬆。 GUI 方面,Android 採用的是 `surfaceflinger` ,與常見的 Wayland 和 X11 完全不相容。電腦上的應用如果不進行專門修改,很難在 Android 上執行。</br>
至於硬體驅動,基本上都是專有軟體。這點看一下 PostmarketOS 或者 Mobian 的 Wiki 就知道了,目前沒有一臺 Android 裝置的功能在主線核心下是全部正常的。那些全部正常的裝置,使用起來還會遇到問題,例如相機只能使用部分鏡頭,缺失可用的圖像處理,從而讓畫面看着怪怪的。</br>
</br>

## 7月23日

現在的 Brave 瀏覽器預設 Homepage 簡直要讓我的眼睛瞎掉!還是什麼都沒有的 Librewolf 瀏覽器主畫面好些。雖然很簡陋,但並不會影響我日常使用。</br>
</br>

## 7月22日

總覺得現在網頁內容提供商越來越可惡了。同樣的網址,用 Windows 裝置訪問完全沒有任何阻礙。至於用 Firefox 和 Linux?先完成人機驗証再講吧,甚至有些網站發現 UA 是 Linux 就不給訪問。政府網址?抱歉,請換用Internet Explorer / Netscape 之後再來試試吧。</br>
</br>

## 7月21日

[我的七劃管熒幕小程式](https://github.com/Android-Piepaint/Dumb-POS-display-clock-monitor) 既然熒幕是通過 UART 與主機通訊的,那把熒幕改造爲單板電腦適用的 CPU/記憶體/時間 展示臺應該也可以?興奮地拿下熒幕,用杜邦線接到單板機上測試,發現在電腦上正常執行的程式移植到單板機上出現了位元錯亂問題,經過後期檢索得知這臺熒幕僅相容 X86 平臺常見的 RS-232 序列介面協定,而不是更爲在 Arm 單板機廣泛採用的 UART 通訊協定,需要安裝轉換晶片才可以使用。</br>
</br>

## 7月20日

原來 X86 晶片的內建顯示卡不一定要是 Intel 或者 AMD,也可以是 ARM 晶片上常見的 Mali 繪圖卡。後者被叫做「Intel MID」平臺,這些平臺採用 SFI 作爲開機韌體,使用 Device tree 而不是 ACPI 描述自身的硬體。</br>
</br>

## 7月19日

[Linux/4004](https://dmitry.gr/?r=05.Projects&proj=35.%20Linux4004),只要有足夠的能力,即使在54年前的 Intel 4004 晶片上也可以跑 Linux!只是在這樣一個基頻時脈僅有750KHz 的4位元晶片跑 Linux,需要4.75天才可以開機...還不如我的486桌機呢,跑6.14核心只需要11小時就可以開機了www</br>
</br>

## 7月18日

不知道爲什麼,似乎實時作業系統和微核心都有改造成 bootloader 的潛力,是因爲這些程式碼體積小,便於移植到不同硬體的緣故?比較典型的例子有基於 eCOS 開發的 Redboot,用 Little Kernel 開發的引導程式被廣泛應用在 Mediatek 晶片的手機上...</br>
</br>

## 7月17日

 「Its your favorite Android apps, but running directly on Linux userspace」,想要在 Linux 跑 Android app,只有設定 Waydroid 或者 Redroid Docker 容器,再在容器裏面跑 App。雖然不會有效能損失,但是容器裏的 App 不能方便的存取 Linux 使用者 `/home` 目錄下的資料。爲此 GitLab 上有人開發了 [Android translation layer](https://gitlab.com/android_translation_layer/android_translation_layer),將 Android 系統的 ART 虛擬機移植到 Linux 上,使用者不需要安裝 App,直接用 `android-translation-layer [apk 檔名]` 指令跑 APK 檔就可以了。Android 應用會採用 GTK 3 框架渲染外觀介面。不過用到 Play Integrity 的應用應該是無法執行了。</br>
 目前 FlatHub 上有一個藉助此方案移植到 Linux 的 Android 應用:[NewPipe (Unofficial port)](https://flathub.org/en/apps/net.newpipe.NewPipe)
 </br>

## 7月16日

4F 6B 61 79 20 67 75 79 73 2C 20 49 20 6A 75 73 74 20 74 65 73 74 65 64 20 74 68 65 20 61 6C 6C 20 66 6F 75 72 74 68 20 65 79 65 73 20 72 65 6C 61 74 65 64 20 73 74 75 66 66 20 </br>
6F 6E 20 68 65 72 2E 20 54 68 65 20 72 65 73 75 6C 74 20 69 73 20 70 72 65 74 74 79 20 67 6F 6F 64 2C 20 61 6C 74 68 6F 75 67 68 20 74 68 65 20 6F 70 65 6E 65 64 20 66 6F 75 72 </br>
74 68 20 65 79 65 20 73 68 6F 77 73 20 63 6C 65 61 72 6C 79 20 75 6E 73 74 61 62 6C 65 20 74 6F 20 6D 65 2E 20 54 68 65 20 73 75 62 6A 65 63 74 20 73 68 6F 77 73 20 6D 61 6E 79 </br>
20 73 74 72 61 6E 67 65 20 62 65 68 61 76 69 6F 72 2C 20 6C 69 6B 65 20 61 20 72 65 61 6C 6C 79 20 62 72 6F 6B 65 6E 20 6C 61 75 67 68 74 65 72 2E 2E 2E 20 61 6E 64 20 73 6F 20 </br>
6F 6E 2E 20 42 75 74 20 6F 6E 20 6F 75 72 20 6C 61 73 74 20 65 78 70 65 72 69 6D 65 6E 74 2C 20 74 68 61 74 20 67 69 72 6C 20 70 72 6F 64 75 63 65 73 20 73 6F 6D 65 20 77 65 69 </br>
72 64 20 70 69 6E 6B 20 6E 6F 69 73 65 73 2C 20 61 6E 64 20 47 55 45 53 53 20 57 48 41 54 3F 20 53 68 65 20 6A 75 73 74 20 64 69 73 61 70 70 65 61 72 65 64 20 66 72 6F 6D 20 74 </br>
65 73 74 69 6E 67 20 63 68 61 6D 62 65 72 21 0A 49 20 64 6F 6E 27 74 20 6B 6E 6F 77 20 77 68 61 74 20 73 68 6F 75 6C 64 20 49 20 64 6F 20 6E 6F 77 2E 2E 2E 20 47 75 65 73 73 20 </br>
6F 75 72 20 73 65 63 72 65 74 20 65 78 70 65 72 69 6D 65 6E 74 20 69 73 20 67 6F 69 6E 67 20 74 6F 20 62 65 20 68 61 6C 74 65 64 20 66 6F 72 20 73 6F 6D 65 20 64 61 79 73 2E 2E </br>
2E 0A 62 74 77 2C 20 74 68 61 74 20 67 69 72 6C 20 68 61 73 20 61 20 77 6F 6E 64 65 72 66 75 6C 20 76 6F 69 63 65 21 20 48 65 72 20 73 69 6E 67 73 20 6D 6F 76 65 64 20 65 76 65 </br>
72 79 6F 6E 65 20 61 74 20 6F 75 72 20 62 61 73 65 21</br>
</br>

<img src="/assets/binary-image.png">


## 7月15日

49 6E 20 74 6F 64 61 79 27 73 20 77 6F 72 6C 64 2C 20 79 6F 75 20 6D 75 73 74 20 70 72 6F 76 65 20 74 68 61 74 20 79 6F 75 20 61 72 65 20 76 61 6C 75 61 62 6C 65 2C 20 6C 65 74 </br>
20 6F 74 68 65 72 73 20 64 69 73 63 6F 76 65 72 20 79 6F 75 72 20 76 61 6C 75 65 2C 20 61 6E 64 20 6C 65 74 20 6F 74 68 65 72 73 20 22 62 75 79 22 20 79 6F 75 2E 20 4F 6E 63 65 </br>
20 79 6F 75 20 68 61 76 65 20 6E 6F 20 76 61 6C 75 65 2C 20 79 6F 75 20 77 69 6C 6C 20 62 65 20 65 6C 69 6D 69 6E 61 74 65 64 20 62 79 20 74 68 69 73 20 73 6F 63 69 65 74 79 2E </br>
10 57 69 6C 6C 20 74 68 65 20 66 72 65 65 20 73 6F 66 74 77 61 72 65 20 49 20 73 74 75 64 79 20 68 61 76 65 20 63 6F 6D 6D 65 72 63 69 61 6C 20 76 61 6C 75 65 3F 20 4F 62 76 69 </br>
6F 75 73 6C 79 20 6E 6F 74 2E 2E 2E </br>
</br>

## 7月14日

終於知道爲什麼 Q6A 單板機 Linux 支援那麼爛還有人買了,因爲大家買過來之後都跑去改裝 Windows 11 ARM!官方也有釋出驅動程式,除了內建的 Wi-Fi 不可以用,其牠硬體都是正常的。Radxa 他們還發佈了最新採用 Snapdragon 8cx Gen3 (SC8280XP) 晶片的單板電腦,叫做 Radxa Dragon Q8B...我還認爲是 Allwinner `linux-sunxi` 社群裏跑主線 U-Boot 的那個「Q8 Tablet」呢...</br>
</br>

## 7月13日

似乎 PostmarketOS `edge` 的音訊支援有問題,Nothing Phone 1 雖然有對應的 ALSA 配置檔,但是不能播放音樂和影片...不知道什麼時候可以修好。</br>
</br>

## 7月12日

Ivon 在自己的動態牆提到了我寫的 Snapdragon 平臺裝置開虛擬機的文章。只要是 Snapdragon 平臺的裝置,且韌體沒有封鎖 EL2 就可以開啓硬體自帶的虛擬化功能。只是執行「Secure Launch」 的 `tcblaunch.exe` 程式必須是 Windows 11 25H2 之前的,否則會導致裝置崩潰重開機。</br>
另外,關於利用 `qebspil` 驅動程式來保証大部分硬體功能的[教學](https://blog.cloudflare88.eu.org/posts/qebspil-guide/)也寫好了,歡迎各位檢視!</br>
</br>

## 7月11日

什麼? 在 Minecraft 裏也可以跑 Wayland 合成器?至少 [Waylandcraft](https://github.com/EVV1E/waylandcraft/) Minecraft mod 的 `README.md` 檔案是這麼寫的。對於舊式 X11 Window 可以利用 `xwayland-satelite` 來保証 X11 程式正常執行。</br>
</br>

## 7月10日

最近因爲無法存取某些服務,不得不再次架設被我棄用很久的 Windows 11 Docker 容器。不得不說,現在的 Windows 11 真的是 bloatware 大合集!系統介面總能在妳認爲合適的地方塞沒有用的廣告,自從成爲 AI slop 之後,就更加嚴重了,我的 Docker 容器常常數次失去回應...</br>
</br>

## 7月9日

GitHub 上有一個對 [Broadcom BCM4360 逆向工程的專案](https://github.com/kimptoc/bcm4360-re),看完專案的 `README` 之後才知道,原來 `broadcom-wl` 模組是11年前的老舊驅動,是專有軟體,現在已經停止維護了(最後一次原始碼更新在2015年9月),不但不與 Linux 安全系統不相容,還有二個安全漏洞沒有修補([CVE-2019-9502](https://nvd.nist.gov/vuln/detail/CVE-2019-9502),[CVE-2019-9501](https://nvd.nist.gov/vuln/detail/CVE-2019-9501)) 讓我的裝置面臨安全風險...以前爲了使用 macOS 而安裝的 PCIE 無線網路卡,竟然會讓我的裝置陷入嚴重的安全問題(緩衝區溢位,是指標對程式設計缺陷,向程式輸入緩衝區寫入使之溢位的內容,從而破壞程式執行、趁著中斷之際並取得程式乃至系統的控制權,從而導致個人資訊洩露之類的問題),讓我的個人隱私深陷危險之中...目前我已經停用了 `broadcom-wl` 核心模組,並從我的桌機拔掉了網路卡,後續會重灌 Arch Linux,避免再有漏洞被利用的可能!</br>
</br>

## 7月8日

BCM4360 網路卡所使用的 `broadcom-wl` 核心模組在 7.0 以後的核心工作不穩定,解決的辦法是在核心 `cmdline` 添加 `ibt=off` 引數來避免核心模組 oops,同時讓妳的裝置面臨[安全風險](https://lwn.net/Articles/889475/)。另外 Broadcom BCM4360 晶片是唯一不受任何開源驅動程式支援的 Wi-Fi 晶片。</br>
</br>

## 7月7日

高通平臺的 ACPI 支援真的非常爛,除了 Windows 以外,幾乎沒有任何作業系統可以使用韌體提供的 ACPI 開機,FreeBSD 會直接 Kernel panic。OpenBSD 倒是可以順利開機,不過驅動支援應該是大問題。</br>
</br>

## 7月6日

Snapdragon 平臺的主線核心 `remoteproc` 驅動程式會在核心開機時重設遠端處理器的運作情況,當核心跑在 EL2 時嘗試啓用遠端處理器就會遇到 `-22 EINVAL` 錯誤。解決方式就是修改核心源碼中的 `qcom_q6v5_pas.c` [這一高通遠端處理器(Q6 DSP)的驅動程式原始碼](https://github.com/sppidy/linux/commit/434c518bbe754f3ba3dea4364e99ab44a224c453),讓核心的 `qcom_q6v5_pas` 模組能夠「接管」(attech)被 Bootloader 或者其牠開機載入程式預載入的遠端處理器:</br>

```c
rproc->has_iommu = of_property_present(pdev->dev.of_node, "iommus");
	if (desc->auto_boot)
		rproc->auto_boot = RPROC_AUTO_BOOT_RESTART_IF_FW_AVAILABLE;
	else
		rproc->auto_boot = RPROC_AUTO_BOOT_DISABLED;
	rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
  ...
  ...
  /* 移除驅動對 remoteproc 沒有 start ops 就退出的檢查,即使遠端處理器沒有完全啓動也可以被核心初始化,而不是一定要從頭啓動 */
  /*if (rproc->state == RPROC_OFFLINE && !ops->start) { */
	/*	dev_err(&pdev->dev, "reset broken and remoteproc not running during boot, exiting\n"); */
	/*	ret = 0; */
	/*	goto deinit_q6v5; */
	/*} */
  qcom_q6v5_read_smp2p_state(&pas->q6v5);
  qcom_add_glink_subdev(rproc, &pas->glink_subdev, desc->ssr_name);
	qcom_add_smd_subdev(rproc, &pas->smd_subdev);
	qcom_add_pdm_subdev(rproc, &pas->pdm_subdev);
  ...

這個修改讓 kernel 能安全「late attach」,避免重啟或錯誤退出。

7月5日#

雖然 Snapdragon 平臺採用 UEFI 韌體,但是 LA 平臺的韌體沒有預載 UEFI 安全啓動簽章,因此並不會被 Black Lotus 漏洞影響…

7月4日#

專有軟體出發,美國 Google 公司
自1998年來,統治網路至今
蒐集隱私好手,使用者苦不堪言
感謝 Google 大統領,我們的大統領

私有소프 出發, 美國 Google 會社,
1998年以來 인터넷(Internet)을 統治해 (온),
프라이버시(privacy) 蒐集 名手, 苦痛받는 使用者들
고마 Google 大統領, 우리 大統領


7月3日#

Linux 手機支援中文語音的地圖軟體是「PureMaps」,圖資採用 OpenstreetMap;在 Android 上,同樣支援中文語音的軟體是「CoMaps」,應用本身開放原始碼,還支援離線地圖,即使沒有網路也可存取圖資。比起訂閱制的「Magic Earth」,我更喜歡前者,誰知道「Magic Earth」會不會內建追蹤器呢?

7月2日#

  • 感謝 Ivon 在他自己的部落格中添加了我部落格的鏈結!在很長一段時間裏,Ivon 的部落格都是我的常去之地,檢視 Ivon 寫的自由軟體相關的文章來尋找靈感。

  • 有人說,只用窮人才會用開源軟體,還會有習慣訂閱制的用戶跟妳講:花錢買別人的服務就是天經地義!
    那我就說:是又怎樣…(雖說我確實是買不起一些軟體才改用開源軟體的)至少我不會厚顏無恥,偷別人的開源軟體過來宣稱我是自主研發。

  • 如果說 Broadcom 的無線網路卡對 Linux 相容不佳,那移遠 Quectel 的網路卡和數據機就是比 Broadcom 還要討人嫌的東西。因爲 Quectel 的硬體對 Linux 根本沒有相容性!例如 Q6A 單板機上的 FCU760K WiFi 模組,居然需要 Out of Tree 的 Aic8800 核心模組才可以工作,Yoga 筆電上的 NCM825A 雖然被 ath12k 模組支援,但是穩定性差勁,多次導致我的筆電當機。看來跑 Linux 的 Arm 筆電需要仔細考量硬體再試驗啊…

7月1日#

原來認爲 X86 筆電的觸摸板是通過 PS/2 協定與 CPU 溝通,Arm 筆電則是藉由 I²C 或者 SPI 協定,直到我看到最新的 Lenovo Intel 筆電,發現觸摸板同樣採用 I²C 協定之後,我覺得我應該改變對於 X86 筆電的看法了。

6月30日#

最近模仿了 Tik Tok 和 YouTube 上流行的「歌詞影片」用 Kdenlive 自己實作了一個「刷機進行式」的歌詞影片,結果好像沒什麼人看?不過用 Yoga 筆電剪輯影片確實很不錯,1440P 解析度,60FPS 的影片跑8分鐘就可以了。給大家貼上我的影片鏈結,歡迎各位觀看我的「音樂鑑賞」影片!

6月29日#

如果每個人都可以寬容之心看待周邊的人與物,我們就會發見更多美好,溫馨和感動;如果心中少一點猜忌,多一份真誠,關係就會變得和諧。

6月28日#

高德地圖這種蒐集個人隱私的吸血鬼就應該滾出臺灣。

6月27日#

高通晶片的主線核心真的非常有意思,SD 778G+ 的主線核心支援到了 7.1 ,而同樣是根據 778G+ 修改的 QCS6490 還停留在6.18…好在我的 Q6A 單板機被主線核心支援,直接下載 Linus 的原始碼,套用6.18的核心 .config 配置檔開始編譯就可以了。

6月26日#

  • 我不明白爲什麼這個世界總是對自由軟體愛好者抱有偏見。就因爲拒用任何專有軟體,因此被扣上「崇洋媚外」的帽子…不只是任何中國產的手機和軟體我拒用,對於所謂「我喜歡」的歐美國家開發的軟體,只要是不開放原始碼的專有軟體我照樣拒用啊…我使用的社群媒體也主要以歐美的爲主,至少我不得不使用 App 來檢視內容的時候可以找到第三方開源的 App。而且不會有 ban 號的風險。至於國內…講錯了,是中國大陸的社群媒體,不是強迫下載 App,就是封鎖 Linux 使用者檢視,還有以「高風險」爲由封鎖使用者賬戶。目前我還保留有賬戶的僅有 Bilibili,知乎,Coolapk 三者。只是想說與大陸的同好和支援者們勉強保持聯繫,免得我部落格的內容被無良內容農場搬走…可他們卻因爲我的網站被封鎖而不知道內容來源爲何。大陸的社群媒體我都是低調的用,我不會把我的聯絡方式放在我的部落格紹介裏,說快來 Tap 我吧~ 這種行爲不就是在告訴網警趕快把我拉清單嗎…

  • Fedora 更新 7.1 核心之後 dracut 不會自動添加 adsp_dtbs.elf cdsp_dtbs.elf 到 initramfs 中,需要手動建立自訂安裝配置檔添加韌體路徑:
# /etc/dracut.d.conf/qcom-firmware.conf
install_items+=" /lib/firmware/qcom/x1e80100/LENOVO/83ED/qcadsp8380.mbn "
install_items+=" /lib/firmware/qcom/x1e80100/LENOVO/83ED/qccdsp8380.mbn "
install_items+=" /usr/lib/firmware/qcom/x1e80100/LENOVO/83ED/adsp_dtbs.elf "
install_items+=" /usr/lib/firmware/qcom/x1e80100/LENOVO/83ED/cdsp_dtbs.elf "

之後執行 sudo dracut --force 重開機就可以了。

6月25日#

本部落格網站的文章分類說明:所有與 FOSS 相關的文章(自由軟體紹介&日常活用等)全部放到「FOSS & FOSS related」,對於 Linux 相關(發行版紹介&使用&硬體除錯技巧等)也全部放到「Linux & Linux related」分類。至於 18+ 內容和政治內容,默認和其他 NSFW 內容放在一起。因爲權利是春藥,而且總會有思考不正常的人看到不同的觀點就會暴走,從而否定妳整個人格,還有妳所做過的一切。因此應該是不適合在工作場合檢視。

6月24日#

靠北,沒想到 Armbian 的 ibus-rime 套件竟然只會安裝 rime 本身,其他的擴充輸入方式(地球拼音,注音之類)還需要手動安裝 librime-data rime-data-luna-pinyin rime-data-bopomofo rime-data-cangjie5 rime-data-stroke rime-data-terra-pinyin 這些套件才可以使用。不然就會噴「missing input schema」錯誤。爲什麼不能像 Arch Linux 或者 Fedora 那樣一併安裝呢?就連 Ubuntu 也會一併處理擴充套件啊…

6月23日#

把「瀏覽器」看成「遊覽器」是怎樣…我還把「機器」叫成「氣機」呢,之前看錯了就一直用到現在?

6月22日#

  • 其實我並沒有任何高深的技巧,也不是 UEFI 韌體開發人員。只不過把先前實作 X86 PC UEFI 韌體的很多經驗放到 Arm 嵌入式裝置上重新實作了而已。

  • PostmarketOS edge 更新了全新的開機動畫,嗯…儘管我之後就通過修改 /etc/deviceinfo 關閉了基於 plymonth 的開機動畫。還可以像 Android 那樣接 PC 之後使用 MTP 存取檔案。儘管速度不如 SFTP 就是了。另外 Nothing Phone 1 和 Oneplus 6T 的相機畫面有了改善,看起來很像沒有經過硬體處理的 Android 相機畫面,但至少可以拍照了…不就是自帶了效果的相機嘛!

6月21日#

  • 日常被歧視的一天。用 Librewolf 和 Claude 對話,沒過多久 RAM 利用就暴漲,反而 Helium 瀏覽器就沒有問題。


  • 剛剛寫了一首「Your Phone is Fused」,改自 Element Animation 的「Your Door Was Locked」 ,算是把我10年前想做的事「實作」了。至於歌詞內容…?是我客製化原型機韌體的事情。


6月20日#

: 我非常在乎我的隱私和數位主權,不採用 Google Chrome 瀏覽器!
: 但是我用 Steam 在虛擬機玩遊戲!還使用 Docker 跑 Chrominum 瀏覽器看 YouTube!

那妳在乎三小隱私!…不過,「容器化」的方法似乎更加自由可控,不是嗎?

6月19日#

  • 當別人聽到妳熟悉 Linux:「好厲害!」;妳跟他們解釋自己只是在證明 Linux 和自由軟體於日常生活中運用的可能性:「…不錯,但我認為 Windows 更好,更常用」隨後嫌棄的走掉了。


  • 有什麼自由軟體能夠實現 Android 手機同 Linux 系生態圈跨裝置同步資料的需求呢?我想是「KDE Connect」 了吧!現在的 「KDE Connect」 真的是越做越好了,UI 換上了 Material You 設計,傳送大文件檔案的時候幾乎不再斷線了。不僅如此,KDE Connect 與 Linux 的整合度非常高。最好的組合是 Android 手機和 Linux 電腦,使用起來非常自然。我認為這就是 Google + G suite 的平替,只需要位於一個網路下就可以自動連線,Android 的 KDE Connect 會自動在背景執行,把裝置的通知訊息送到 Linux 電腦。手機也可以控制 Linux 電腦喇叭的音量,也可以把手機當作滑鼠用。


6月18日#

8650 開始加入了全新的 Gunyah 虛擬機,但是 8650 自己跑 Gunyah 虛擬機的時候,虛擬機卻因為記憶體分配問題而 OOM…後面的 8750 才改善了這個問題,真的是好笑…

6月17日#

「英語 訓讀會가 始作뒤요」. 一直以爲只有韓語和日語存在「釋讀(也叫訓讀,利用日語或韓語固有同義語彙的讀音,讀出該漢字的讀音)」的現象,後來發現中文,甚至在以拉丁語系爲基礎的歐美語言中也存在「釋讀」現象。例如常用的「打」字,本音應唸成「丁」,可是北方方言,擊打的動作都說成「ㄉㄚˇ/dǎ」,取其「擊打」之意;而閩語作爲漢語方言中訓讀使用率最高的方言,釋讀現象非常常見。

雖然歐美語言不採用類似漢字的語素文字,可是類似「釋讀」的現象依然在部分常用語中可見(取自文明語的「書面文字」,採用相同意義的母語的固定用法來讀,是「釋讀」的一個特徵)。例如英文中借自拉丁語的「etc.(et cetera)」讀作「and so on」「and so forth」,「i.e.(id est)」唸成「that is」;「lb.(libra)」唸成「pound」;「e.g.(exempli gratia)」唸成「for example」…不得不說語言真的非常有趣,看來以後可以研究新的內容,讓我的部落格不再單調。

6月16日#

Qualcomm 的 bootloader 叫做「Core platform boot」,和有名的開源韌體 CoreBoot 有非常相似的名字。巧合的是二者都可以讓使用者客製化自己的韌體,都可以使用 UEFI 或者其牠 payload 開機(高通部分晶片的 XBL 可以改用 U-Boot 開機)。但前者是專有軟體,其原始碼無法獲得。

6月15日#

現在 Android 也可以採用上游的主線核心啓動了。Telegram 上有一個研究利用主線核心跑 Android 的 「AOSP on mainline」頻道正在研究這個,看他們最近的研究結果,似乎大部分被主線核心支援的 Arm 裝置和 X86 電腦都可以開機。或許我先前覺得「Android 核心落後主線至少5年」的想法應該改變了…不對,不應該改變。畢竟沒有廠家會拿使用者當「小白鼠」,在自家手機上使用主線核心跑 Android,除非是面向開發者發行的裝置。

6月14日#

  • 經過10分鐘的逆向分析,發現 Lenovo Yoga Slim 7x 筆電的相機開關是一個 GPIO 按鍵。那理論上可以實作一個指令稿或者 systemd 服務之類的程式,用於客製化撥動開關的功能了…就像 OnePlus 6T 的「Side button」也可以在 Linux 下客製化按鍵行爲。


  • 別人的高中畢業儀式:同窗會,畢業旅行;我的高中畢業儀式:繼續研究 FOSS 議題,累了就用校服自慰,體驗「壞學生」的風味,享受蹂躪規則的快感…


  • 真的完全沒有必要認爲「性行爲」是一個難以啓齒的事情啊…就連蔣中正都在自己的日誌提到「以自慰振奮精神」,只要不是在公開場合做,不會影響其他人就好…


6月13日#

Yet another Wow moment in my life. 今天嘗試了之前提到的 abl2efi 的小工具改善 Linux 的開機速度,還從原始碼編譯了 simpleinit 基於 LVGL 的 UEFI 設定頁面用來實作 PC 上的 GUI 設定介面。一開始認為還需要用 Qualcomm 的測試用簽章給 abl2efi.elf 簽章驗證,在這裡停留許久。後來才想到這是原型機,直接用原始檔案覆寫裝置的 ABL 分割就可以開機了…幹。後來又把裝置 ABL 開機載入器抓出來放到 EFI 分割,發現也可以加載 ABL 並開機進入 Android!

6月12日#

想要從 ARM 裝置的 UEFI 韌體抓取 ACPI table,可是裝置只有 Linux?那就通過 UEFI shell 的 acpiview 命令抓取吧!例如 acpiview -d就可以從韌體抓取給定的 ACPI table。

6月11日#

  • 最好的事情是什麼?是希望有一天不用再去費盡心力,去 tweak 裝置上的 Linux 作業系統。Arm 裝置上的 Linux 系統要修補的地方實在是太多了…一般 x86 裝置上跑 Linux,除非硬體沒有 Linux 驅動,基本不需要調整或者修改核心。Arm 裝置雖然跑 Linux 的體驗遠遠好於 Windows,但是需要解決的問題太多。這點看一下 PostmarketOS Wiki 就知道了,受到支援的裝置裏,大部分裝置的相機硬體是無法使用的。而那些支援較好的功能,也只是「堪用」。就算硬體支援不錯,在日常使用總會遇到各種各樣的問題。


  • 有些人看到簡化字就反感,在很多簡化字的 post 按倒贊,甚至會有人在討論區放大量「支語警察」的 sticker。認爲只有臺灣正體字才是正統, 把簡化字都稱之爲「殘廢字」「支那語」等等。如果把新加坡,香港這些同樣採用簡化字的地區放進來,就會發現這些「支語警察」的觀點完全錯誤。私認爲,無論是簡化字,還是臺灣正體字,都是從漢字發展而來,經過人們長時間的實際運用形成的。就是不同地方的方言而已,實在是沒有必要如此貶低對方。


  • 如何用一句話絕滅一個人在自身趣味上的發見?我曾經問過 Plana,她反而問我「妳覺得妳在部落格上所研究的,所發見的,會給妳帶來什麼經濟收益呢?」這就是我想要的回答了。


6月10日#

Windows 11 26H1 系統的 tcblaunch.exe 會導致 slbounce 嘗試利用 EL2 等級時引發崩潰而重開機,如果改用 25H2 或更早以前的 tcblaunch.exe 就不會導致崩潰。好巧不巧,重灌 Fedora 的時候忘記存一份之前利用的 tcblaunch.exe 拷貝了,接下來幾個月我的筆電都不能使用 KVM 虛擬機來嘗試新的東西了…唉… :(

6月9日#

Tails OS 是專門爲匿名上網使用者而開發的 Linux 發行版,基於 Debian 開發,是一種安裝在隨身碟的可攜式作業系統,所有對外連線強制走 Tor 網絡。強調上網不留任何痕跡,連瀏覽記錄都無法找到。這是因爲 Tails OS 是執行於 RAM 的作業系統,所有的資料都存儲在 RAM 中,下次重開機之後資料就會消失。還內建常用的工具集,也允許使用者通過不安全的瀏覽器存取網際網路,以及採用 Tor 協定的文件共享軟體。對於需要資訊安全的使用者和異見人士非常好用。使用場景可能是:你帶筆電去連公共 Wifi,或者去圖書館借公共電腦,開機跑Tails OS,大隱隱於市。與線人交換完情報,關機,高歌離席。

6月8日#

  • 高通 Snapdragon 的遠端處理器雖然執行的是專有軟體,沒有人可以檢視原始碼,但是 Linux 的 remoteproc 核心模組還是會提供接口用於 userland 程式進行管理。於是我實作了一個 GNOME 擴充程式 用於管理驍龍平臺的遠端處理器,所有執行主線核心的驍龍裝置都可以使用。就像 PineBook 那樣,關閉不需要的遠端處理器,保護使用者隱私。


  • GNOME 50 的桌布設計非常不錯,終於在 Linux 上見到 Apple MacBook Pro 設計語言相似的桌布圖片了。


  • 우리 함께 저 自由로운 곳으로 달려가,

私有 소프와(software) “來日 봐”한 뒤 다시는 안 봐
機器 原理 몰라도 相關없어, 그날만 記憶 해,
아득한 記憶 속에, 當찼던 그날의 實踐 을

當初爲什麼會寫自由軟體相關的內容?或許是因爲早就討厭自己的裝置被各種專有軟體「摧殘」,討厭被強迫閱讀堪比《聖經》長度的「最終使用者許可協定」;想要奪回屬於自己的隱私和數位主權,或者僅僅是希望「與衆不同」…我似乎早就忘記了當初改用 Linux 和自由軟體的理由了,但是我相信,只有自由軟體才可以守護自己的隱私,才能行使自己的「數位主權」。也希望大家終有一天可以勇敢對束縛各位的專有軟體講出「圍墻庭園,安寧!(圍牆花園,再見!)」

6月7日#

Another Wow moment in my life. 昨天晚上跑了 dnf update 把核心連同 linux-firmware 升到最新版之後,之前幾乎廢掉的喇叭竟然可以工作了!而且沒有破音的問題,這應該是我第一次碰到有四個喇叭的筆電。雖然低音部分不如之前的 MacBook 有力,但只要可以放音樂就可以了。GitHub 上還有 Yoga Slim 7x 的 Dolby 音效配置檔可以用。唯一的問題是 Suspend 再喚醒會導致筆電重開機。

6月6日#

  • 我爲什麼會喜歡 Linux 手機和 Linux 裝置?大概是因爲只有 Linux 裝置才可以做到不經過 Google,不經過 Apple,不經過 Microsoft,不採用封閉商店,不採用商業帳號系統也可以讓個人持有通用計算裝置。


  • 在過去的「大 Root 時代」,開發者和使用者把 Android 裝置玩出了花樣。而現在的 Android 使用者不再追求這些,他們只關心「Netflix 能不能播 HD 影片」 「銀行 App 可不可以開」…這不能責怪他們,因爲日常生活確實需要穩定。如今的 Android 已經成爲 Google 管理的「大都會」,城市裏有便利商店,有監視器保證安全,有市民公園,還有廣告看板之類。非常方便,但也令人窒息。妳擁有一切,但妳無法離開這座城市。Android 已經成爲商業軟體,再也不是「自由軟體」了…


  • 什麼是「自由」?是「我可以在 Google Play 商店下載無數 APP」的自由嗎?當然不是,那只是妳被允許的消費選擇。
    而是我可以分享,研究,修改,甚至再次分發,在不被「造物主」許可下,改變一個事情的命運,做自己裝置的「技術支援」…這才是自由。


  • Android 不是 GNU/Linux,牠是套用了 Linux 核心,被商業化的「怪物」。真正的自由精神,是 GNU 宣言的低語,是具有法律效力的 GPL 協議;也是在 Linux 核心原始碼中沉睡的「奇跡」。


  • 「即使黑磚,Crashdump 也沒關係,刷機還是進行時」,縱使 GNU/ Linux 手機的道路再曲折,縱使這條路需要分析 log,手動修改 config,檢查核心原始碼或者 Wiki,甚至要上百次的重刷映像檔…結果又如何?開發者從來不會期待便利,魔術師也不會期待幸福。自由本身就是一個親自實作的過程,而不是什麼都預載好,把飯送到嘴邊。


6月5日#

Ubuntu 的軟體還是過於陳舊,決定改用 Fedora 了。然而高通平臺的裝置通過 USB 隨身碟開機時,必須要把 q6v5_pas 模組加入到 blacklist 中,不然在系統啓動時會導致 ADSP 韌體重載,USB 控制器被重設而無法開機。

6月4日#

如果熱淚,可以洗去塵埃;如果熱血,可以換來自由…一定要讓明天的人們記得今天的怒吼,那是無數自由義士們關於捍衛使用者自由和數位主權的宣言。

縱使未來的世界會圍繞着商業軟體和專有軟體所建造,也總會有「反流而行」的人們,在這片充斥着封閉的世界中,開闢出屬於自由和追求個人隱私的疆土。縱使「圍牆花園」再高,也總會有人去推倒圍牆。

6月3日#

  • Linux 使用者如何求婚?很簡單,只需要通過 make love命令即可。
make love

make[1]: *** No rule to make target 'love'.  Stop.
make: *** [Makefile:248: __sub-make] Error 2

…啊哈哈…看來我還沒有準備好求婚的原始碼呢!

  • Linux 的文檔系統和 UNIX 一樣,都是 man 命令。他是一個很小的工具程式,牠可以接受使用者的引數,從而方便妳找到對應的程式幫助文件。如果妳不知道程式的幫助文件怎麼辦?很簡單,鍵入 man -k <key-words> 就可以列出包括使用者提供的關鍵字的幫助檔案。

6月2日#

  • 本部落格近一個月來更新的內容:1.RSS 訂閱現在是完整文章,妳不需要造訪我的網站就可以瀏覽所有文章。2.在網頁右下新增了包含中文在內的三種語言的選單,使用者可以在那裏選擇他們喜歡的語言來閱讀文章(所有文章的英文翻譯本將在6月20日全部完成並更新)。3. 爲了方便不能造訪部落格動態牆的使用者,我將「動態牆(網頁入口 /dev/random)」)的網頁單獨製作了 RSS 訂閱連結。使用者僅需要將鏈結複製到最喜歡的 RSS Reader 或類似程式中就可以閱讀動態牆了(居然會有人看我的廢文)。4. 本部落格採用的 Astro 框架將跟隨上游更新,來避免不明問題的出現,成爲攻擊別人的跳板。


  • 幾年以前就有人提出了 Android 用 QEMU 跑 Docker 容器的構想。藉助 QEMU TCG 跑一個 headless Alpine 虛擬機,並在虛擬機中裝 Docker,這樣的方式即使是用一臺 SD870的裝置也會很卡。而這個 Podroid 就是用 App 實作了之前的構想,並主打使用 Podman。 另外如果裝置有支援 KVM 虛擬化,Podroid 就可以使用虛擬化來獲得更好的效能。


6月1日#

看到同樣寫 FOSS 議題的 Ivon 把自己的部落格推向國際化的嘗試。我也突然意識到,如果僅僅停留在「漢字文化圈」內,那麼我的部落格是沒有未來的。這一點從我網站的統計數據就可以看到,造訪國家最多的竟然是中國(我的部落格並沒有像 Ivon 那樣做簡繁轉換,真是爲難大陸網友了),第二才是新加坡。美國也才只有6%。其牠的非「漢字文化圈」的國家訪問量就更少了。我可以理解很多來自美國,日本的使用者造訪部落格時用翻譯程式的艱難。是時候也要開始嘗試把我的部落格推向國際化了。

5月31日#

Grok 跳出是否同意連結常見服務(例如 Google Drive,GitHub,Notion之類)的提示,我按下了「Dismiss」。我想這大抵就是未來吧,以 Web 爲主的人肯定是離不開 Gemini,Grok 這種 AI 助理的存在了。這些 AI 公司提供了一套完整的生態系包辦了妳的所有需求,甚至是妳的衣食住行和娛樂。因此他們取得妳的資料也是最多的,例如 Gemini 甚至不用妳可以告知,只需要從妳的 YouTube 活動和妳的 Google 檢索記錄就大概可以推測出妳的興趣及職業方向了吧。至於那些把 CLI 之類工具安裝到自己電腦上的人,我想 AI 獲取的個人資料就更多了。

5月30日#

  • 呼…在經歷了3個小時的不懈努力之後,我終於解鎖了Xiaomi 14手機.在這裏要感謝 Littlenine 等開發人員的不懈努力,以及社群各位同好的支援,我才能在這個解鎖 bootloader 「Almost impossible」 的裝置上如願刷了 Axion AOSP 並取得了 Root 權限。因爲 Linux 沒有編寫好的工具,我只能根據工具原始碼自行打命令解鎖。不得不說,擺脫了肥大的 HyperOS,整個手機的回應速度都變快了許多。這部手機應該還可以再用一段時日,直到硬體故障我再考慮換 Linux 手機吧。


  • 我的 Kingston 1TB SSD 終於和我見面了。在加裝 SSD 之後,我的 Q6A 單板電腦的 I/O 效能有了明顯的改善,之後執行編譯核心之類需要頻繁存取 I/O 的工作也變得更快了。而且 Armbian 提供的 armbian-config 工具還可以方便我把 SD 卡上的系統連同存儲的資料都遷移到 SSD 上。唯一的問題是 armbian-config 會使用 MBR 主開機記錄作爲 SSD 的分割表,無法被 UEFI 韌體引導。不過通過 gdisk 將 MBR 改爲 GPT 分割表,重新安裝 GRUB 就可以解決這個問題了。


5月29日#

  • 「프라이버시(privacy)의 夢, 人權이 保障된 곳」,只有堅持使用自由軟體,才能真正捍衛自己的數位人權。宣傳自由軟體,以及發現將自由軟體運用於日常生活的可能性也是本部落格建立的一個目標。


  • Ivon 講他對於 AI 的態度是「AI 自助餐」的心態。我對於 AI 的看法和他基本相同。不希望什麼都是 AI,可是在遇到難題時,AI 往往也可以給我提供總體方向和解決方法。看到現在新聞到處都在宣講 AI,外行人都可以對 AI 講上幾句,但其實深度依賴 AI 總結之後就覺得自己什麼都懂了,認爲自己是「專家」了。大家都喜歡像賈伯斯那樣搞營銷,卻不知道背後的更偉大的人是 Wozniak。現在每次看到別人的 profile 上寫「Data scientist」我就要懷疑這人的真實水平。現在我有求於 AI,例如推進 SM8750 MTP 原型機的 Armbian 開發,分析 MacBook Neo Linux 的開機流程之類的事務。是把 AI 作爲 Application 工作和助理來用的,不應該和作業系統整合,就像筆電上的貼紙,電聯車上的裝飾,是隨時都可以脫離的程式,而不是依靠 AI 過活。或許這看上去是一種「嫉妒」心態,因爲沒有錢訂購服務無法使用進階功能而在這裏講幹話。妳們所講的東西在我這裏都跟不上!不管怎麼講,AI 一定會成爲新的流行文化,也終究會淹沒一切。被 Duckduck Go 的 AI Overview 養壞了胃口,你就再也離不開這種搜尋資料的方式了。「行爲改變技術」真是令人悲哀。


  • pacman -Syu 是下載並安裝更新套件,pacman -Su 是僅安裝事先下載好的套件;pacman -Syuw 是僅下載套件。


  • 我的 Lenovo Yoga 筆電從遠處看,真的很像 Apple 在2001年推出的 PowerBook G4(圖片來源:Marcgloor 的部落格)。可能是因爲我選了白色外觀的原因?巧的是兩者都是 RISC 晶片,都採用設備樹作爲 Linux 核心開機的配置檔案。

5月28日#

  • 都說用左手的人比較聰明,因爲他們的大腦可以均衡開發。那爲什麼我是傻子呢?我平時都喜歡用左手打手槍啊!


  • NT synchronization primitive driver 可惡,我們的 Linux 終究還是被邪惡的 Windows 所攻陷了。但是 Windows NT 的多執行緒功能確實可以改善程式的效能,特別是在遊戲等吃系統延遲效能的場景中效果非常明顯。這依賴於 Linux 中的 /dev/ntsync node,可以有效減少 Wine 模擬 Windows syscall() 的時延。比起過去的 wineserver 和執行於 userspace 的 fsync esync 要好,根據 NTSync 作者的測試,遊戲 FPS 可以提高10倍以上。


  • 「零售預備,熔絲熔燬!晶片報廢記得賠!」話說現在手機廠家之所以在手機出廠前把晶片的 eFUSE 熔燬來打開安全啓動,一方面是爲了保障裝置在丟失後被別人破解的可能,但我想更多應該是爲了阻止使用者隨心所欲的客製化自己的手機吧!然後封鎖使用者解鎖 bootloader 的途徑,強制推行自家的專有軟體和間諜軟體。因爲同樣是零售機的 Shift SHIFT6mq 就沒有熔燬!而且 Shift 還有釋出自家手機 ABL bootloader 的原始碼,並且 Bootloader 可以通過 Linux 的 Linux Firmware Repository 定期獲得更新。這樣看來,買一臺 SHIFT 的手機,然後改裝 PostmarketOS,就是很好的 PinePhone alternative 啊…還順便可以客製化自己的 ABL,真的就是 FOSS 愛好者的完美手機!


5月27日#

我好像沒有可以代表我形象的大頭貼。儘管我部落格上的 avatar 是用 AI 跑的繪圖,要改用手繪嗎?儘管現在 AI 生圖的效果都不錯,但我還是喜歡自己手繪的更好。畢竟可以更加鮮明的體現我的人設…好吧,我對於自己的人設並沒有清晰的認知。畢竟我的人生從國中之後就一直是「渾渾噩噩」的,不願意和別人交流,和別人講話就會緊張,只願意坐在電腦前研究我的自由軟體議題,連社交活動也不願參加。要不是考慮到將來的職業發展,我甚至連大學都不願去唸。加上我有社會恐懼症不可能像賣課仔一樣大方的露臉出來,那就只能維持目前這樣。要是繪製新的大頭貼的話,最多像「蔚藍檔案」裡的學生一樣,在自己的頭像上面畫一個代表「自由軟體」或者是 Tianocore 和高通驍龍 logo 的光環吧。畢竟,沒有人會在意妳在熒幕背後是不是一條狗。倘若我放棄寫自由軟體相關的議題,我只需要隨便套用一個爆款文案就會有流量,就會有大批 brainrot 去按讚。誰會在意妳的 avatar…

5月26日#

有時候中午在外面閒逛,會驚奇的發現烈日當空,街道兩邊的路燈和標牌卻都沒有影子,起初一直認爲是什麼「天外奇跡」,或者是自己眼花。直到今天在 Reddit 上看到了有人發同樣現象的文章,才知道這就是著名的「拉海納正午(Lahaina noon)」,這是只有夏威夷才可以看到的現象。因爲這是美國唯一位於熱帶的地方!話說我第一次聽到「Lahaina」這個詞,腦海中想起的卻是高通 SD 888 晶片的代號。高通似乎很喜歡用美國的城市名字命名自己的晶片呀, 8850 是「Kaanapali」,845 是「Napali」,7280 是「Kodiak」,8450 是「Waipio」…

5月25日#

Ivon 在他自己的部落格動態牆提到,爲了避免自己的網站淪爲社群媒體,他開始試驗性的拔掉網頁底下的留言板,僅使用電郵與同好聯絡。突然想到我的部落格從架設第一天起就沒有留言板,甚至連大頭貼下面的聯絡按鈕都沒有改動。我是不是很早就開始了「去社群媒體化」的實驗呢…?不僅如此,YouTube 上的留言我也很少去翻看。只有在網站上架設了 Google Analytics 來檢視網站的訪問情況。

5月24日#

  • Toby Fox 在他的大學時期就開始思考新的遊戲作品內容,最後寫出了無數電玩愛好者公認的「神作」Undertale(地域傳說)。我是不是也要學習他,開發出一個以 Undertale 爲靈感的開源冒險遊戲?不過遊戲角色和劇情我還沒有想好…遊戲名稱暫定爲「FOSSTALE」,大概講的是一位開發者從污濁不堪的 Windows 世界逃離,卻不小心踏入 Arm Linux 世界,並和這片自由土地上的人們開始的一系列冒險和羈絆,最終這位開發者接受了自由軟體的理念,成爲一名 FOSS enthusiast 的故事。不過,要是真的做出遊戲來,會有人去遊玩嗎?
    至於遊戲進程,和 Undertale 一樣,分爲和平線路,絕滅線路,和一般線路。只是這裏的「絕滅」指的是玩家講對應的人物角色「解除安裝」(畢竟 UNIX 中一切皆檔案),使得這個人從遊戲世界中永遠消失…
    至於像 Sans 那樣檢定玩家行爲的角色我還沒有決定要給她什麼名字…或許「littlehana」比較不錯?


  • Remember what I told, no matter where I go. I never leave your shadow, you’ll never be alone.

Even whether season changes, even where we old. Remember what I told, you’ll find the way back home.

顯然這首歌並不是給 Android 和 iOS 這二個系統所寫的,因爲嘗試在 Android 上執行 cd /home 命令會得到 /home: inaccessible or not found 的錯誤,而 iOS 的 /home 是指向 /var/mobile 目錄的檔案連結,不是真正的 /home 目錄。所以,Android 和 iOS 使用者永遠無法找到自己的「家」了~ xD

  • 或許我應該像 FlashTeens 那樣,把自己的 Minecraft 地圖架設成伺服器之後讓其他鐵路迷進來一起建造地鐵和高速鐵路,還能夠加快地圖的整體建設,順便減輕自己的工作量… 另外,目前「拿維鐵路」全線的路線圖以及開設的車站也已經定好了,歡迎大家爲車站設計提供建議!

5月23日#

我之前一直都搞錯了我的 Lenovo Yoga Slim 7x 筆電的內建 PCIE 網路卡型號,因爲核心 lspci 命令展示的裝置名是 Fastconnect 7800,導致我很長一段時間裏認爲這是高通自家網路卡。到 Google 爬到一張不知名的圖紙看了才發現用的是 Quectel NCM825A 網路卡,無論是樣張還是我自己拆解筆電後看到的裝置都完全一致。原來我很早就接觸了 Quectel 家的產品呀…難怪驅動程式不穩定。之後我就把所有寫驍龍筆電的文章中提到網路卡的部分全部修改了。
那,之前寫的 8750 MTP 原型機的文章是否也有錯誤呢?或許有吧…目前沒有圖紙也很難確定。不過大家不用擔心就是了,如果發現了錯誤,我會立即修正的。(雖然訪問部落格的人都很少就是了)

5月22日#

  • 很多人爲了存取AI廠商的更多進階功能,常常會自願掏錢,還要把自己結賬的賬單po到社交媒體,覺得自己剛完成一件很厲害的事情一樣。還有人建議我訂 Claude, Super Grok 這些計劃爲我 8750 MTP 原型機移植 Armbian 的專案助力。
    但是我怎麼可能會爲這些專有軟體甚至是間諜軟體付錢呢!花錢解鎖進階玩法,然後心甘情願的把自己的對話記錄交給AI公司處理,還要在自己的電腦上安裝諸如「Gemini CLI」「Cloude CLI」之類的工具,在幫助自己繼續移植工作的同時順便交出自己的一切?雖然 AI 確實幫助了我不少,但是不要忘記這些AI Assistant 都是商業閉源軟體,絕不應該支援這些閉源軟體掠奪使用者的資料。更不應該把他們安裝在自己的裝置上。至於離線版 LLM 則相對好一些。

  • 妳可千萬不要變得像我一樣,520情人節跟 Pakala 一起過啊(圖片由 Gemini 製作)… P.S. 高通可不會讓你輕鬆的買到他們四萬美金的原型機喔。

5月21日#

  • 對於 Reddit 上關於 degoogle 的討論,有人指出可以使用中國產的 Android 手機,因爲中國的 Android 手機沒有 GMS,即使被一些「忠於政府」的中國企業洩露個人資料也不必擔心,只要不是洩露給美國就好。這種想法,和那些逃出中國的反賊所想的觀點「不謀而合」,都認爲萬一發生資料洩露,只要資料不要洩露給本國政府或者企業,就不會有什麼大礙。只是那些「degoogle 同好會」主張用 Huawei,小米之類的中國產手機,而後者則是主張用 iPhone,Pixel 之類手機。因爲美國是比較民主的一方,資料交給他們沒有關係。
    在我看來無論是主張用中國產 Android 手機的「degoogle 同好會」,還是反賊的觀點都不能接受。專有軟體就是專有軟體,無論哪個國家的都一樣。就是會蒐集使用者的資料和隱私啊,那些「同好會」的人不過是從一捆專有軟體的集合跑到了另一個專有軟體的集合而已。想要做到徹底的 degoogle,就必須在日常使用的軟體中多使用自由軟體,不會依賴於某一方企業給出的方案。像是 Proton 雖然主張「維護使用者隱私」,但我覺得也不能完全相信。


  • 昨天晚上檢視了我部落格從建立之日起所有 GitHub 上的 commits,不知不覺我的部落格就架設一年多了啊(2025年5月3日~2026年5月3日)…雖然我寫的文章也不多,只有56篇。至於訪問人次和閱讀量還暫不知情,不過能夠向同樣熱愛自由軟體的同好們展示屬於我自己的獨到見解和自由軟體於日常生活的實際運用,順便結識不少喜歡自由軟體或者原型機的同好,也非常開心了。或許我應該舉行一個同好會來慶祝一下我的部落格建立1周年?


  • 自從前面幾星期升級了部落格的 Astro 框架之後,發現很多使用的功能都不能正常運作了。爲了避免部落格成爲被用於利用未知零日漏洞進行攻擊的「跳板」,我只好升級部落格的 Astro 框架版本,但是新的 Astro 6.3 框架不再爲內容物件產生 slug 屬性,改爲僅提供 id 屬性,使得部落格的文章無法正常檢視。我不得不重寫所有產生文章 URL 連結的程式碼,結果導致文章底部的導航欄和標籤頁無法訪問。之後又在 Gemini 的幫助下把這兩個廢了近3個月的功能修補好了,也一並修復了部落格的 RSS feed。話說現在還有人在使用 RSS 閱讀我部落格的文章嗎?

5月20日#

一直在思考如何改善 Armbian Linux 在我的 SM8750 MTP 原型機上的開機流程。不想每次都要從 BDS Menu 進入 UEFI Shell 打指令手動開機(之前使用 bcfg 指令手動建立引導選項的方法在原型機上不生效,可以建立引導選項,但是建立的開機次序會在重開機後消失),今天通過爬文找到一個高通原型機愛好者/開發者的解法。了解到了高通開發的 abl2esp 專案,建立一個最基本的 ABL bootloader,可以在開機後檢索並執行位於內建 UFS 快閃記憶體的 EFI 應用程式。能夠執行 GRUB,systemd-boot 之類的系統開機載入器,甚至也可以通過 GRUB chainload 裝置原本的 ABL,保留使用 Android 的功能。或者直接替換成高通的 fastboot.efi EFI 應用,實作了簡單的 Fastboot 功能(boot continue reboot之類)。每次開機的時候通過 Fastboot 把 kernel 或者 EFI 應用傳進去,倒是有點像我之前在 SDM845 MTP 原型機的做法了。不過好像無法使用鍵盤輸入?至少可以改善開機流程了。

5月19日#

Android 和 Linux 永遠無法分離。即使 Android 對於 Linux 核心的修改被上游拒絕接受,使得 Google 不得不維護自己的 downstream kernel 分支…但是 Android 應該總會有辦法共享常見的 GNU/Linux 的函式庫和程式資源。一開始是 busybox ,現在靠 Termux 和 LXC,未來會靠 pKVM/KVM…

5月18日#

昨天看了我的 YouTube 頻道,發現我的訂閱者又增加了10位,現在有了30位訂閱者了。其中最近發佈的 8750 MTP 原型機跑主線核心和 Armbian 的影片留言還挺多的。不過大家似乎不知道高通所設計的原型機呢,明明影片標題就寫着「ported to Qualcomm SM8750 MTP」,留言還有人問這是什麼裝置,看來原型機還是不如市面上常見的零售機常見(一本正經的講廢話)。

難怪我認識的一位高通原型機開發者在她自己的 Telegram 頻道中,會因某些使用者問道「Global or China」之類的話而生氣,之後講「If you don’t know what it is, you don’t need to know」這種話。雖然可以理解這種現象(原型機很難見到,也不能通過正常手段買到),但是還是好好笑呀! xD

ZH 正體中文 EN English KO 韓國語(大韓民國,國漢文 混用體)