# Ubuntu 24.04 作業系統安裝經驗紀錄
紀錄我安裝 Ubuntu 24.04 的各種感想與問題

## 內容大綱
[TOC]
## 重現環境
本章節說明重現本過程的環境細節:
### 系統
Framework Laptop 13(AMD 7040 系列)
### 中央處理器
AMD Ryzen 7 7840U
### 顯示界面
AMD Radeon 780M Graphics
### 主板韌體
03.05
### 儲存裝置
Samsung SSD 970 EVO Plus 2TB NVMe 固態硬碟(全空)
### 作業系統
Ubuntu 24.04 LTS (使用 `toram` 作業系統核心命令列引數將作業系統安裝媒體載入到主記憶體中開機)
### ubuntu-desktop-bootstrap Snap 軟體包版本
0+git.2d119e1b3
### Wi-Fi 網路界面
MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter
## 流程
1. 將家目錄備份到外部儲存裝置
1. 重新安裝 Ubuntu
1. 將備份出來的家目錄還原回去
1. 恢復已安裝軟體與設定
## 已知問題
多災多難(泣)
### 作業系統安裝程式高機率程式崩潰
重現方式未知,但是滑鼠/觸控板捲動多次就有機會觸發,作業系統安裝程式視窗直接消失然後如果是安裝模式就會直接進使用者作業階段
這個問題看 Reddit 上也有使用者反饋,應該蠻容易重現的
終端輸出:
```
flutter: DEBUG subiquity_client: GET http://localhost/keyboard
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
ubuntu_bootstrap: ../../src/xcb_io.c:278: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
Aborted (core dumped)
```
### 在部份網路環境下 Wi-Fi 網路連線設定步驟的「下一步」按鈕於建立網路連線後會一直維持在 spinner 狀態無法點選

並非所有網路環境都能重現,原因未知
已知的 Workaround 為直接改成不建立網路連線再點擊「下一步」,後續需要網路連線的功能仍會正常運作的樣子
考慮到使用者體驗(UX),如果作業系統安裝程式當前在做什麼檢查也應該要以文字方式顯示在操作界面上,讓使用者知道到底卡在什麼地方
### 無法使用 HTTP(S) 代理伺服器連線網際網路
創建連線後安裝程式仍提示為離線狀態,無論是用:
* 「系統設定 > 網路」中的代理伺服器設定界面
* http_proxy、https_proxy 環境變數
* `snap set system proxy.http{,s}` 命令
都一樣
### 無法選擇於指定分區的檔案系統直接進行文件安裝而不格式化既有的檔案系統

選擇掛載目錄後該檔案系統的「格式化」勾選框無法取消勾選
### 無法啟用中文輸入法
雖然可以在「系統設定」界面中啟用新酷音輸入法(其他應用可正常輸入),但是該設定在作業系統的「無障礙功能」步驟按下一步後就會被重設,後續就算重新於「系統設定」界面中啟用輸入法仍無法正常輸入中文(如,使用者設定步驟中的使用者顯示名稱欄位)
原本是這樣:

點擊「下一步」按鈕後變這樣:

### 「基於 TPM 的 ZFS 全磁碟加密」選項於前步驟勾選安裝「第三方驅動」的情境下會被禁用且不會說明因為什麼原因被禁用


很大的使用者體驗(UX)問題
### 手動配置磁碟分割步驟無法選擇使用使用者既有的 LVM 分區進行安裝
可能只有 Ubuntu 做的 LVM 分區才能正常用吧,使用者自己分區的不行,安裝程式只會列舉 PV 但不會列舉 LV
### 台灣中文的安裝期間介紹簡報的第一頁內容排版異常
我是翻譯那一頁字串的人 不知道為什麼排版會跑掉……

其他頁面的排版也有些不理想:


### 在系統安裝完成後重新啟動安裝程式,啟動後的「Preparing Ubuntu...」spinner 停滯
應該要有進度報告訊息說明當前到底在進行/卡在什麼操作
看終端機輸出最後的狀態報告訊息為:
```
flutter: DEBUG desktop: Inhibiting Gnome session
```
>[name=林博仁] 過很長一段時間寫文件之後突然又不能重現問題了@@
### 「電腦為離線狀態」警告訊息在筆電未連接電源情境下不會顯示:

### 「基於 TPM 的 ZFS 全磁碟加密」系統無法正常驅動 AMD RZ616(MediaTek Filogic 330(MT7922)) Wi-Fi / 藍牙介面卡的藍牙部份
作業系統核心運行紀錄中可看到作業系統核心無法成功自檔案系統載入韌體文件:
```dmesg
kernel: bluetooth hci0: Direct firmware load for mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin failed with error -2
kernel: Bluetooth: hci0: Failed to load firmware file (-2)
kernel: Bluetooth: hci0: Failed to set up firmware (-2)
```
於 pc-kernel 作業系統核心 Snap 軟體包中的確也找不到該韌體文件:
```
brlin@brlin-fw13:/snap/pc-kernel/current/firmware$ ls mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin
ls: 無法存取 'mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin': 沒有此一檔案或目錄
```
### 「審閱你的選擇」畫面的「分割區」區段描述不完整
參閱以下截圖:

nvme0n1p{2,3,4} 分區只有說會被創建,但沒有說會被創建來做什麼
## 問題排解
以下說明問題排解期間的相關操作
### 重新啟動 Subiquity 後端服務
以 root 身份於終端機應用軟體中執行下列命令:
```
snap restart ubuntu-desktop-bootstrap.subiquity-server
```
## 參考資料
本章節列舉撰寫本文件期間所參考的第三方資源:
* [TPM-backed Full Disk Encryption is coming to Ubuntu | Ubuntu](https://ubuntu.com/blog/tpm-backed-full-disk-encryption-is-coming-to-ubuntu)
說明「基於 TPM 的 ZFS 全磁碟加密」功能的基本概念
* [Hardware-Backed Full Disk Encryption Grayed Out : r/Ubuntu](https://www.reddit.com/r/Ubuntu/comments/1cdec11/hardwarebacked_full_disk_encryption_grayed_out/)
說明「基於 TPM 的 ZFS 全磁碟加密」選項無法勾選的可能原因與解決方法