1. 程式人生 > >樹莓派3B 核心編譯

樹莓派3B 核心編譯

轉載:http://blog.csdn.net/wjgwrr/article/details/52251248
1.準備工作:
1.1開發環境系統ubuntu 16(64位)
1.2下載原始碼:https://github.com/raspberrypi
linux:樹莓派核心原始碼
tools:樹莓派的交叉編譯工具
下載方式:
(1)網頁下載
直接下載zip
(2)命令下載
git clone –depth=1 https://github.com/raspberrypi/linux
git clone https://github.com/raspberrypi/tools
儲存路徑為~/Raspberry/下
2.確定版本
2.1檢視當前樹莓派編譯器的資訊

[email protected]:~# cat /proc/version
Linux version 4.4.13-v7+ ([email protected]) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #894 SMP Mon Jun 13 13:13:27 BST 2016

2.2 確定交叉編譯工具
[email protected]:~/Raspberry/tools-master/arm-bcm2708# ls
arm-bcm2708hardfp-linux-gnueabi
arm-bcm2708-linux-gnueabi
arm-rpi-4.9.3-linux-gnueabihf
gcc-linaro-arm-linux-gnueabihf-raspbian
gcc-linaro-arm-linux-gnueabihf-raspbian-x64

此目錄下有5個目錄,是不同版本的交叉編譯工具。其中arm-rpi-4.9.3-linux-gnueabihf和gcc-linaro-arm-linux-gnueabihf-raspbian-x64是64位機器用的。
每一個交叉編譯工具的目錄下都有bin目錄進入,執行./arm-linux-gnueabihf-gcc -v可檢視gcc版本。
這裡我使用arm-rpi-4.9.3-linux-gnueabihf,因為目前板子上的gcc版本是4.9.3
3.開始編譯
3.1 進入linux核心目錄:
cd /Raspberry/linuxrpi4.4.y

KERNEL=kernel7
makeARCH=armCROSSCOMPILE= /Raspberry/toolsmaster/armbcm2708/armrpi4.9.3linuxgnueabihf/bin/armlinuxgnueabihfbcm2709defconfigNote:jn,n1.5 make -j4 zImage modules dtbs

3.2 建立目錄modules
在linux核心目錄頂層下建立modules目錄。
mkdirmodules make INSTALL_MOD_PATH=modules modules_install

3.3 更新先有先有樹莓派的核心將有系統的記憶體卡插入電腦上:
在/media/ubuntu/ 目錄下會出現兩個目錄boot/2f840c69-cecb-4b10-87e4-01b9d28c231c/

執行命令
sudo cp arch/arm/boot/zImage /media/ubuntu/boot/$(KERNEL).img
sudo cp arch/arm/boot/dts/*.dtb /media/ubuntu/boot/
sudo cp arch/arm/boot/dts/overlays/.dtb /media/ubuntu/boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /media/ubuntu/boot/overlays/
cp modules/lib/ /media/ubuntu/2f840c69-cecb-4b10-87e4-01b9d28c231c/ -r
4.重新啟動樹莓派,成功更新了核心
參考連線:https://www.raspberrypi.org/documentation/linux/kernel/building.md