H3 Linux4.11核心裝置樹裝置驅動開發1
阿新 • • 發佈:2019-01-05
AllWinnerH3 linux4.11版本的bsp下載:
https://pan.baidu.com/s/1mhU4a8K 密碼: b375
H3-linux4.11_bsp目錄就是所需的原始碼及編譯工具.
下載後, 先安裝tools目錄裡的dtc工具. 解包dtc-master.zip, 執行”make && make install”即可.
1 配置gcc-linaro-7.2.1交叉編譯器。因新版的uboot需要大於6.x版本以上的編譯器才可以。
配置好後才可以編譯uboot及核心原始碼.
2 編譯uboot:
解包u-boot原始碼後,進入原始碼目錄:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- orangepi_lite_defconfig //配置uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- //編譯
sudo dd if=./spl/sunxi-spl.bin of=/dev/sdb bs=1k seek=8 //燒寫bl1到sd卡
sudo dd if=./u-boot.bin of=/dev/sdb bs=1k seek=40 //燒寫uboot.bin到sd卡里
//燒寫後,正常情況下應可用sd卡啟動板,可通過uart接收到板上uboot的輸出資訊.
3 編譯核心:
解包linux核心原始碼後,進入核心原始碼目錄下操作:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig //配置核心
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage -j4 //編譯出核心映象
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs //編譯出裝置樹檔案
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf - modules //編譯出驅動模組
//完成後,就可以把裝置樹檔案,核心映象,檔案系統放在sd卡分割槽裡.
檔案系統可沿用前面所做的檔案系統,或者重編busybox製作檔案系統也可.
//我這裡是所有所需檔案及檔案系統都放在sd卡的第一個分割槽(ext4格式)裡, 掛載在/run/media/jk/linux/
//複製編譯出來的裝置樹檔案到sd卡分割槽裡,並重命名為orangepi_lite.dtb
sudo cp arch/arm/boot/dts/sun8i-h3-orangepi-lite.dtb /run/media/jk/linux/orangepi_lite.dtb
//複製核心映象到sd卡分割槽裡
sudo cp arch/arm/boot/zImage /run/media/jk/linux/zImage
//把編譯出來的驅動模組安裝到sd卡分割槽裡
sudo make ARCH=arm modules_install INSTALL_MOD_PATH=/run/media/jk/linux
以上步驟完成後, 即可把sd卡接板上啟動系統. 進入uboot後,還需要設定好環境變數:
//設定uboot啟動後自動引導系統
setenv bootcmd "ext4load mmc 0:1 0x46000000 zImage; ext4load mmc 0:1 0x47000000 orangepi_lite.dtb; bootz 0x46000000 0:0 0x47000000"
//設定核心啟動引數.這裡需要注意sd卡在uboot上是第0個裝置,但在linux核心裡變成了第2個裝置(可在核心的log看到).
setenv bootargs "root=/dev/mmcblk2p1 rw console=ttyS0,115200n8"
以上步驟完成後,應就可以進入檔案系統了.