編譯樹莓派linux核心然後用qemu測試

2022-08-23 16:18:16 字數 2870 閱讀 6655

更新:原帖內容有點過時了

直接用buildroot,換上國內源,一鍵製作所有東西。

make raspberrypi3_64_defconfig

make

然後去output/images資料夾找 sdcard.img 就行了,直接燒錄到sd卡,樹莓派3b就能執行。

其他關於buildroot的使用介紹,網上已經很多

原帖:這個教程也不錯。

安裝必須的包:直接複製執行即可,apt包管理器自動跳過已安裝的。

實際用的只是這個:

2.  將工具鏈加入環境變數(讓系統能找到它)

本次生效:

export path=$path:$home/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin

echo path=\$path:~/tools/arm-bcm2708/arm-linux-gnueabihf/bin >> ~/.bashrc

source ~/.bashrc

3.  編譯

切換到原始碼目錄,我的路徑是~/rpi-4.11.y

選擇晶元:for pi 2, pi 3, pi 3+, or compute module 3:  bcm2709_defconfig

kernel8.img:64位的raspberry pi 3和raspberry pi 4;

kernel7l.img:32位的raspberry pi 4(使用lpae);

kernel7.img:32位的raspberry pi 4、raspberry pi 3和raspberry pi 2(未使用lpae);

kernel.img:其他版本的樹莓派。

cd ~/rpi-4.11.y
kernel=kernel7

make arch=arm cross_compile=arm-linux-gnueabihf- bcm2709_defconfig

配置核心:可以一切預設:

make arch=arm cross_compile=arm-linux-gnueabihf- menuconfig
編譯: $(nproc) 獲取你的cpu最大支援執行緒,全速編譯

make arch=arm \

cross_compile=arm-linux-gnueabihf-\

-j $(nproc)\

zimage dtbs modules

4.  獲取核心映象和裝置樹

編譯生成的各種最終檔案的區別可以參考:

zimage:

~/rpi-4.11.y/arch/arm/boot/zimage

dtb:

~/rpi-4.11.y/arch/arm/boot/dts/bcm2710-rpi-2-b.dtb

用zimage 就可以啟動qemu。當然解壓成kernel7.img 也可以。

官網教程沒說:怎麼用zimage製作kernel.img,就是:

~/rpi-4.11.y/scripts/mkknlimg ~/rpi-4.11.y/arch/arm/boot/zimage~/rpi-4.11.y/scripts/kernel7.img
注意:驅動安裝我沒有做,請參考這個 

5.  qemu配置

windows .bat 指令碼

樹莓派 Linux 核心編譯

5.1配置config arch arm cross compile arm linux gnueabihf kernel kernel7 make bcm2709 defconfig 5.2 編譯 arch arm cross compile arm linux gnueabihf kernel ...

樹莓派 Linux 核心驅動編譯

寫好驅動 pin4module.c include include include include include include include include static struct class pin4 class 建立乙個類 static struct device pin4 class...

樹莓派Linux核心配置 編譯

4929703.html驅動 的編譯需要乙個提前編譯好的核心,編譯核心就必須配置,配置的最終目標會生成 config檔案,該檔案指導makefile去把有用東西組織成核心。第一種方式 make menuconfig 一項項配置 arch arm cross compile arm linux gnu...