日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

设备树之编译和烧写

發布時間:2023/12/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设备树之编译和烧写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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/”目錄下,然后解壓
    //設置環境變量并更新:
  • cd vim .bashrc shift + g //添加編譯器目錄,到環境變量 export PATH=$PATH:/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro- multilib-2011.12/fsl-linaro-toolchain/bin //保存,退出, 然后更新環境變量 source .bashrc echo $PATH
  • 進入解壓源碼得到的“itop4412_kernel_4_14_2_bsp”目錄下
    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

    u-boot-iTOP-4412.bin

    使它支持具有設備樹功能到Linux系統,
    進入fastboot,鍵入燒寫命令:

    fastboot.exe flash bootloader u-boot-iTOP-4412.bin

    fastboot reboot

    再次進入UBOOT,此時UBOOT已經支持設備樹,進入fastboot 模式,UBOOT進入fastboot 模式:

    fastboot 0

    此過程如果連接不上,需要重新安裝驅動(可以借助驅動人生)
    上位機燒寫命令:

    fastboot.exe flash kernel uImage fastboot.exe flash dtb exynos4412-itop-elite.dtb fastboot.exe flash system system.img

    燒寫成功后,兩端的控制臺都會顯示OK
    5.斬殺BUG
    重啟進入文件系統,控制臺打印出如下錯誤…可見存儲介質編號不一致,系統無法啟動
    修改配置文件

    arch/arm/configs/iTop-4412_scp_defconfig

    vim打開,查找

    /mmcblk

    修改mmcblk0p2修改后
    編譯->燒寫->啟動—>>>一直打印出tty的錯誤,
    因為三星使用的是ttySACx的tty驅動,所以 可以將名為ttyx的驅動在vim etc/init.d/rcS中全部屏蔽掉.
    屏蔽后,重新編譯生成img鏡像:

    make_ext4fs -s -l 314572800 -a root -L Linux system.img system

    編譯->燒寫->重啟->發現新的問題,文件系統上,無法新建文件夾,文件系統為只讀
    修改 arch/arm/configs/iTop-4412_scp_defconfig,
    文件中搜索root .在root=/dev/mmcblk1p2 后面添加 rw,表示文件系統可讀可寫,否則只能讀,就不能新建文件夾和文件.
    執行編譯腳本 ->再次燒寫.
    開機啟動后,看到自動建立了/mnt/disk文件夾 ,

    這個文件夾是在啟動腳本中建立的,
    它的建立,說明文件系統可以正常寫入了

    總結

    以上是生活随笔為你收集整理的设备树之编译和烧写的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。