设备树之编译和烧写
0.本文中所有文件都來源于訊為itop4412視頻教程
1.1 Ubuntu12.04.2 (訊為提供),基于itop4412_scp_elite開發板
1.2 安裝設備樹編譯器:apt-get install device-tree-compiler
1.3 uboot及內核的源碼和編譯器
源碼文件 itop4412_kernel_4_14_2_bsp-20190225.tar.gz
編譯器gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz
1.4 編譯器安裝和環境變量
編譯器拷貝到“/usr/local/arm/”目錄下,然后解壓
//設置環境變量并更新:
uboot、kernel和設備樹一起編譯的命令:
編譯命令
./build_all.sh- 通過查看 上述編譯腳本,可以了解到:
u-boot-2017.11/u-boot/ 下./build.sh腳本單獨編譯uboot
linux-4.14.2_iTop-4412_scp 下./build_kernel.sh腳本單獨編譯內核
build_kernel.sh編譯腳本中可知:iTop-4412_scp_defconfig 是默認的編譯配置文件(.config)
arch/arm/configs/iTop-4412_scp_defconfig
如果修改內核配置文件,需要覆蓋掉iTop-4412_scp_defconfig,才能編譯成功
uboot鏡像:
u-boot-2017.11/u-boot/u-boot-iTOP-4412.bin
內核鏡像:
linux-4.14.2_iTop-4412_scp/arch/arm/boot/uImage
設備樹鏡像:
linux-4.14.2_iTop-4412_scp/arch/arm/boot/dts/exynos4412-itop-elite.dtb
.設備樹的燒寫
先燒寫UBOOT
使它支持具有設備樹功能到Linux系統,
進入fastboot,鍵入燒寫命令:
啟
fastboot reboot再次進入UBOOT,此時UBOOT已經支持設備樹,進入fastboot 模式,UBOOT進入fastboot 模式:
fastboot 0此過程如果連接不上,需要重新安裝驅動(可以借助驅動人生)
上位機燒寫命令:
燒寫成功后,兩端的控制臺都會顯示OK
5.斬殺BUG
重啟進入文件系統,控制臺打印出如下錯誤…可見存儲介質編號不一致,系統無法啟動
修改配置文件
vim打開,查找
/mmcblk修改mmcblk0p2修改后
編譯->燒寫->啟動—>>>一直打印出tty的錯誤,
因為三星使用的是ttySACx的tty驅動,所以 可以將名為ttyx的驅動在vim etc/init.d/rcS中全部屏蔽掉.
屏蔽后,重新編譯生成img鏡像:
編譯->燒寫->重啟->發現新的問題,文件系統上,無法新建文件夾,文件系統為只讀
修改 arch/arm/configs/iTop-4412_scp_defconfig,
文件中搜索root .在root=/dev/mmcblk1p2 后面添加 rw,表示文件系統可讀可寫,否則只能讀,就不能新建文件夾和文件.
執行編譯腳本 ->再次燒寫.
開機啟動后,看到自動建立了/mnt/disk文件夾 ,
這個文件夾是在啟動腳本中建立的,
它的建立,說明文件系統可以正常寫入了
總結
- 上一篇: Ubuntu18.04下安装NFS详细步
- 下一篇: 一个完整的gdb调试过程以及一些常用的命