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

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

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

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

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

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

每次啟動樹莓派時,都會檢查是否有任何更新,如果是24小時插電的,則每24小時額外檢查一次更新。如果有更新可用,就會顯示更新圖標和通知消息。

還貼心地安排了一個進度條來顯示安裝進度。

系統內大多數應用程序都升級到了最新版本,例如Chromium Web瀏覽器現在是92版,并且已經過優化,可以使用Raspberry PI硬件加速視頻播放。在時區數據庫中也添加了更多的城市。
文件管理的試圖選項也得到了略微的簡化。在之前的版本中,用戶可以選擇四種模式之一來瀏覽文件:縮略圖、圖標、小圖標和列表。但這四種分類的命名容易讓用戶迷惑,尤其是縮略圖和小圖標之間的界限并不清楚,更多的都是借鑒于早期Windows系統的命名方式。

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

至于如何安裝新系統,官方的建議下載新映像后,重新安裝任何應用程序,并將數據從當前系統內備份到其他位置。
由于Debian的版本更新包含了許多細節上更改,對于系統中某些地方所做的小修改來說,與用戶所做的一些更改不兼容現象是非常常見的,極有可能會遇到系統崩潰或無法啟動Raspberry PI的現象。
如果真的要升級系統,那最好也先備份一份,以防不測,畢竟數據無價!