您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎樣將3B系統升級到兼容3B+樹莓派,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
一、前言
樹莓派使用的鏡像比較舊了,可以通過三種方式進行升級。一種是本地下載編譯升級,即Local build,還有一種采用交叉編譯,第三種最簡單,輸入一條命令就可以升級。
下面主要講第一種方式。
二、升級過程
1、目前的內核版本,使用 uname -a 查看
2、使用 sudo apt-get install git bc 安裝必備軟件
3、使用 git clone --depth=1 https://github.com/raspberrypi/linux 下載最新內核
4、使用如下命令進行編譯前配置
cd linux
KERNEL=kernel7
make bcm2709_defconfig
5、make,共有三個東西需要make,這個過程會花費很少時間,同時為了避免出錯,可以分別make.
1.make -j4 zImage
2.make -j4 modules
3.make -j4 dtbs
- 6、執行 sudo make modules_install 進行安裝
- 7、依次使用如下命令拷貝
1.sudo cp arch/arm/boot/dts/*.dtb /boot/
2.sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
3.sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
4.sudo cp arch/arm/boot/zImage /boot/$KERNEL.img
8、執行完上述步驟,不出錯的話,重啟后,內核應該就升級成功了。
三、升級情況
make的過程非常舊,如果不加參數 -j4 的話,編譯需要好幾個小時,加上參數使用 4核同時編譯,編譯速度明顯加快。時間如下:
1.make -j4 zImage 34min
2.make -j4 modules 66min
3.make -j4 dtbs <1min
除去兩個編譯過程特別耗時外,其他的指令都很快完成。
四、錯誤及解決方法
可能出現的錯誤
如上執行完了所有步驟,并沒有那一步出現錯誤。執行完步驟后查看版本號是沒有變化的,重啟后就無法網卡燈不閃爍,路由器看不到樹莓派連接,SSH自然登陸不上。沒有顯示器,因此看不出系統是否啟動,感覺應該是沒有。
目前不知道是什么原因導致的。升級完成后,/boot目錄下多了幾個.dts文件,刪除后試了不行。最新版的樹莓派官方系統默認不開啟SSH,需要在/boot目錄下手動添加一個名為ssh的空白文件,添加了也不行。
拷貝升級前的/boot文件夾內容進行替換后,可以連上樹莓派,查看版本號并沒有更新。
解決方法
出現上面這個情況的原因是樹莓派無法boot,bootbin和升級后的內核并不兼容,也就是說原有的舊的bootbin不能boot新的內核。
可以使用新版本的固件文件替換。代碼在樹莓派github倉庫的firmware項目下。具體的替換有三個,如下:
1bootcode.bin
2fixup.dat
3start.elf
將新版本的這三個文件拷貝到/boot目錄下替換掉原有的文件,便可以啟動了。
五、第二種方式
第二種方式是使用的交叉編譯,宿主機是搭建在VM虛擬機里的一個ubuntu。具體的步驟可以看官網的文檔,交叉編譯的工具在樹莓派github倉庫tools項目中。
編譯的原理都差不多,也可以使用menuconfig來自定義編譯的內核。由于虛擬機的ubuntu也僅僅只分配了一個CPU核,實際的編譯效果和樹莓派四核編譯時間雖有減少,但也不是很多。
編譯完成之后見內存卡插入電腦,掛載進ubuntu里,拷貝新編譯好的內核和模塊進去,便可。若出現不開機的情況,和上面提到的錯誤類型是一致的。也就是固件和內核不兼容,比如說我這里使用內核4.1,升級到最新的內核4.9之后就出現這個問題,同時升級固件就不會。
六、第三種方式
使用命令升級,最簡單也不會出錯。
sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
上述內容就是怎樣將3B系統升級到兼容3B+樹莓派,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。