樹(shù)莓派進(jìn)入Bullseye版本!完全兼容Linux,視頻驅(qū)動(dòng)全開(kāi)源
基本上每隔兩年,Debian Linux都會(huì)進(jìn)行一次重大的版本更新。
自2019年以來(lái),樹(shù)莓派的操作系統(tǒng)Raspberry Pi OS一直都是基于Debian10「Buster」開(kāi)發(fā)的。
最新的Debian 11.0版本已經(jīng)于8月14日正式發(fā)布,10月9日又發(fā)布了第二個(gè)版本11.1,本次大版本的命名為「Bullseye」。
Debian的版本命名規(guī)則都來(lái)源于玩具總動(dòng)員,臭小子Buster和紅心Bullseye都是里面角色。
樹(shù)莓派的操作系統(tǒng)隨著Debian也一起迎來(lái)了更新。
雖然說(shuō)Debian Bullseye對(duì)用戶可見(jiàn)的改進(jìn)來(lái)說(shuō)相對(duì)較少,大多數(shù)都是一些修補(bǔ)上的工作,還有將現(xiàn)有的應(yīng)用程序和功能進(jìn)行了升級(jí)。
但在Debian本身的更改之上,Raspberry PI OS的Bullseye版本在桌面環(huán)境和對(duì)Raspberry PI硬件的支持方面有一些重大變化。

首先是所有的桌面組件和應(yīng)用都切換為GTK+3。
GTK+是一個(gè)軟件層,應(yīng)用程序可以用它來(lái)繪制標(biāo)準(zhǔn)的用戶界面組件Widget,如按鈕、菜單等,以便所有應(yīng)用程序都有一致的外觀和視覺(jué)感受。
到目前為止,仍然有大多數(shù)桌面應(yīng)用還在使用GTK+工具包的第2版,但越來(lái)越多的Debian應(yīng)用程序已經(jīng)開(kāi)始切換到GTK+3,因此為了保持一致,樹(shù)莓派操作系統(tǒng)已經(jīng)將所有軟件和桌面程序升級(jí)到新版本GTK+3。
GTK+3實(shí)際上已經(jīng)平穩(wěn)運(yùn)行了好幾年了,經(jīng)常有用戶對(duì)樹(shù)莓派為什么以前不切換到GTK+3,官方給出的答案是:使用GTK+2比使用GTK+3做很多事情要容易得多,尤其是在定制小部件外觀時(shí),GTK+3刪除了一些之前依賴的幾個(gè)特性。但現(xiàn)在已經(jīng)沒(méi)必要再找回原來(lái)的特性,還是努力再寫一份吧。
更換以后可以發(fā)現(xiàn)樹(shù)莓派的Widget發(fā)生了一些變化,對(duì)于可視化用戶來(lái)說(shuō)是比較直觀的。

其他一些控件的外觀略有不同,但開(kāi)發(fā)人員也在試圖確保所有東西看起來(lái)都很熟悉,基本沒(méi)有變化就是最好的改變。GTK+3能夠?yàn)闃?shù)莓派未來(lái)的發(fā)展提供了更現(xiàn)代的圖形基礎(chǔ),并使樹(shù)莓派系統(tǒng)與其他linux桌面環(huán)境保持一致。
技術(shù)棧切換到GTK+3帶來(lái)的另一個(gè)變化就是樹(shù)莓派系統(tǒng)采用了一個(gè)名為mutter 的窗口管理器(window manager),而不再使用openbox窗口管理。窗口管理器的主要功能是負(fù)責(zé)在每個(gè)應(yīng)用程序窗口周圍繪制標(biāo)題欄(title bar)和窗口框架(window framework)。
mutter是一個(gè)復(fù)合(compositing)窗口管理器,也就是它將所有窗口拉到屏幕上的內(nèi)存緩沖區(qū),可以為整個(gè)屏幕創(chuàng)建一個(gè)完整的圖像,而不是單獨(dú)將窗口框架直接拉到屏幕上的現(xiàn)有窗口上,然后將數(shù)據(jù)發(fā)送到要顯示的硬件。
由于它可以控制整個(gè)屏幕,因此組合窗口管理器可以創(chuàng)建一些與傳統(tǒng)窗口管理器不可能或至少不容易實(shí)現(xiàn)的視覺(jué)效果:例如,它可以在窗口的拐角處旋轉(zhuǎn),或在每個(gè)窗口后面顯示陰影邊界。
雖然在openbox中也有圓角,但那是以一種相當(dāng)?shù)托У膶?shí)現(xiàn)方式完成的,為每個(gè)窗口繪制多個(gè)不同大小的框架雖然有用,但代碼并不優(yōu)雅!
mutter還提供優(yōu)秀的窗口打開(kāi)和關(guān)閉動(dòng)畫(huà),并在每個(gè)窗口邊框后面提供陰影,雖然變化不大,但他們確實(shí)讓桌面看起來(lái)更現(xiàn)代化了。

但mutter也有缺點(diǎn),由于它在顯示之前需要將整個(gè)屏幕繪制到內(nèi)存里,在RAM內(nèi)存方面的要求非常苛刻,只能在Raspberry PI 2GB以上的設(shè)備上運(yùn)行。因此,如果樹(shù)莓派的內(nèi)存不夠2GB的話,那就會(huì)仍然使用較舊的OpenBox窗口管理器。
另一個(gè)更新的部分是通知系統(tǒng)(Notification),開(kāi)發(fā)人員在Taskbar中添加了一個(gè)常見(jiàn)的通知管理器,插件和其他應(yīng)用程序都可以訪問(wèn)通知系統(tǒng)。

通知顯示在屏幕的右上角,并按時(shí)間順序展示,最新的通知顯示在屏幕頂部。并且會(huì)在15秒后或者通過(guò)單擊窗口立即隱藏通知。

通知的超時(shí)時(shí)間也是可以設(shè)置的,或者干脆取消掉通知系統(tǒng),但樹(shù)莓派官方表示并不建議這樣做。
目前的話,當(dāng)移除USB設(shè)備、電源電壓過(guò)低以及固件檢測(cè)到各種錯(cuò)誤情況(如內(nèi)存分配問(wèn)題和無(wú)效配置選項(xiàng))時(shí)會(huì)生成通知。雖然其中一些功能在以前的系統(tǒng)版本中已經(jīng)會(huì)通知到用戶,但新版本能夠以一種更一致和用戶友好的方式進(jìn)行。
另一個(gè)基于通知系統(tǒng)的改進(jìn)就是系統(tǒng)和應(yīng)用的更新問(wèn)題。以往更新需要在命令行中使用apt,在新版本系統(tǒng)中,樹(shù)莓派開(kāi)發(fā)了一個(gè)對(duì)用戶更友好的圖形界面,可以在屏幕頂部任務(wù)欄中的提供可用的新插件。

每次啟動(dòng)樹(shù)莓派時(shí),都會(huì)檢查是否有任何更新,如果是24小時(shí)插電的,則每24小時(shí)額外檢查一次更新。如果有更新可用,就會(huì)顯示更新圖標(biāo)和通知消息。

還貼心地安排了一個(gè)進(jìn)度條來(lái)顯示安裝進(jìn)度。

系統(tǒng)內(nèi)大多數(shù)應(yīng)用程序都升級(jí)到了最新版本,例如Chromium Web瀏覽器現(xiàn)在是92版,并且已經(jīng)過(guò)優(yōu)化,可以使用Raspberry PI硬件加速視頻播放。在時(shí)區(qū)數(shù)據(jù)庫(kù)中也添加了更多的城市。
文件管理的試圖選項(xiàng)也得到了略微的簡(jiǎn)化。在之前的版本中,用戶可以選擇四種模式之一來(lái)瀏覽文件:縮略圖、圖標(biāo)、小圖標(biāo)和列表。但這四種分類的命名容易讓用戶迷惑,尤其是縮略圖和小圖標(biāo)之間的界限并不清楚,更多的都是借鑒于早期Windows系統(tǒng)的命名方式。

新版本中,樹(shù)莓派只采用了兩種模式,圖標(biāo)和列表,圖標(biāo)的大小可以通過(guò)縮進(jìn)來(lái)解決。
KMS 視頻驅(qū)動(dòng)也得到了更新,在之前的版本中一直是一個(gè)實(shí)驗(yàn)的功能,在新系統(tǒng)中成為標(biāo)準(zhǔn)的視頻驅(qū)動(dòng)程序。KMS是一種用于控制與顯示器連接的Linux標(biāo)準(zhǔn)機(jī)制。
以前的視頻驅(qū)動(dòng)程序是為Raspberry PI專門開(kāi)發(fā)的,在自定義固件中構(gòu)建的,并且源代碼也是閉源的。雖然能夠讓開(kāi)發(fā)人員對(duì)硬件進(jìn)行一些優(yōu)化,但也意味著任何希望直接訪問(wèn)顯示器的應(yīng)用程序都必須專門為Raspberry PI編寫一份。
通過(guò)采用KMS驅(qū)動(dòng),任何使用標(biāo)準(zhǔn)Linux顯示API編寫的應(yīng)用程序無(wú)需任何修改即可在Raspberry PI上運(yùn)行,而不必修改。
這種方法的另一個(gè)優(yōu)點(diǎn)是,用于Raspberry PI的顯示驅(qū)動(dòng)程序現(xiàn)在都是Linux內(nèi)核的一部分,因此可以由第三方編寫或修改,即協(xié)議要求的開(kāi)源,這也使得定制顯示器等產(chǎn)品的制造商更容易增加對(duì)Raspberry PI的支持。
樹(shù)莓派的攝像頭模塊驅(qū)動(dòng)程序也已被標(biāo)準(zhǔn)Linux API libcamera取代。隨著視頻驅(qū)動(dòng)程序的變化,這意味著閉源代碼更少,使得第三方更容易開(kāi)發(fā)新的攝像機(jī)硬件和軟件。
如果你以前寫過(guò)基于攝像頭的應(yīng)用程序的人來(lái)說(shuō),就可以發(fā)現(xiàn)這是一個(gè)重大的變化,很快應(yīng)該就會(huì)有一個(gè)專門為新的攝像頭驅(qū)動(dòng)程序發(fā)布的博客帖子,里面應(yīng)該會(huì)有更多好玩的內(nèi)容。

至于如何安裝新系統(tǒng),官方的建議下載新映像后,重新安裝任何應(yīng)用程序,并將數(shù)據(jù)從當(dāng)前系統(tǒng)內(nèi)備份到其他位置。
由于Debian的版本更新包含了許多細(xì)節(jié)上更改,對(duì)于系統(tǒng)中某些地方所做的小修改來(lái)說(shuō),與用戶所做的一些更改不兼容現(xiàn)象是非常常見(jiàn)的,極有可能會(huì)遇到系統(tǒng)崩潰或無(wú)法啟動(dòng)Raspberry PI的現(xiàn)象。
如果真的要升級(jí)系統(tǒng),那最好也先備份一份,以防不測(cè),畢竟數(shù)據(jù)無(wú)價(jià)!