Debian 最新版 nonfree 韌體安裝筆記
介紹
在使用 Debian GNU/Linux 這個發行版時,我們想要在兼顧 Debian Stable 穩定的特性下使用版本較新的套件,這時候 Backports 就是一個被官方社群支援的選項。然而有時我們還是會遇到裝了新版 backport kernel, non-free 韌體內容跟不上或找不到的小問題 (不影響系統運作)。除了 Bug Report 回報給相關社群之外,在等待的期間還可以做哪些處置來兼顧新版套件安裝與後續套件管理(apt)支援? 我們可以利用 Debian Salsa 的 GitLab 資源來協助我們參閱或修改測試中或已經釋出的打包腳本,讓 Debian 及其衍生發行版的套件資源變得更加健全。
筆記
每次在 Debian Stable 想裝 backports 的 kernel (通常版本是次新釋出的穩定分支) 遇到了缺某些韌體的訊息
雖然看不出來系統會因此發生什麼問題,還是記一下更新的方式
首先要用 apt
先安裝 linux-support-<kernel version>
套件
以及建立 Debian 標準套件包所需要的工具1 :
git
(要從 Debian Salsa 抓 repo)build-essential
fakeroot
devscripts
(利用 debhelper 建標準 Debian 套件)
然後
1 | git clone https://salsa.debian.org/kernel-team/firmware-nonfree.git \ |
再 git clone
kernel.org 維護的 linux-firmware
專案:
1 | git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git \ |
進去 /path/to/workdir/debian_firmware_nonfree/firmware-nonfree
:
1 | PYTHONPATH=/usr/share/linux-support-<kernel version>/lib/python debian/rules \ |
或是改 debian/rule.defs
確認自己的 kernel 版號對不對後,debian/rules debian/control
(通常不對,因為沒有 debian 後綴版號)
然後
1 | PYTHONPATH=/usr/share/linux-support-<kernel version>/lib/python \ |
然後忘記會不會幫你解包了
之後就把 debian/
目錄放到解好的地方 或是在有放 debian/
的目錄解包解過去
然後就照常
1 | mk-build-deps debian/control ## 通常東西都裝完了,不會裝新的東西 |
然後再往上層目錄找包好的套件
然後再選你要裝的 linux 韌體 sudo apt install ./<套件名稱>.deb
完工! 重開機
通常應該不會出事… 吧…
結論
Debian Salsa 和 Debian backports 都是很好用的東西,嫌 Debian 太舊的人都該先試試這些東西並且嘗試 Bug Report 看 Maintainer 態度再來評論好壞。
Note
說到這個想到有時在裝完 backport kernel 時且把 quiet splash
關掉之後
就會在 systemd 訊息看到 networking.service
跟 NetworkManager.service
打架的訊息
(networking.service
本質上還是 SysV init 的東西只是 systemd 向下相容它)
這時都是選擇留 NetworkManager
砍 networking
相關的 script 套件
做完之後確定 NetworkManager
有在做事就搞定了