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