欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux系統(tǒng)燒寫實(shí)操

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:嵌入式攻城獅 ? 2023-04-18 15:20 ? 次閱讀

系統(tǒng)燒寫實(shí)操

Linux系統(tǒng)燒寫初探一文中介紹了mfgtool燒寫工具及其工作原理,下面以 I.MX6U-ALPHA EMMC開發(fā)板為平臺(tái),分別介紹如何燒寫 NXP官方系統(tǒng),以及燒寫自制系統(tǒng)

1. 燒寫NXP官方系統(tǒng)

燒寫 NXP官方的系統(tǒng)到 I.MX6U-ALPHA EMMC開發(fā)板(512MB DDR3 + 8G EMMC)中,具體步驟如下:

  • 連接好USB,撥碼開關(guān)撥到USB下載模式
  • 彈出TF卡,然后按下開發(fā)板復(fù)位按鍵
  • 打開MobaXterm串口助手終端
  • 雙擊mfgtool2-yocto-mx-evk-emmc.vbs
  • 點(diǎn)擊Start按鈕燒寫 NXP 官方系統(tǒng)

燒寫過程如下示

圖片

MobaXterm串口助手終端上顯示的燒寫過程

圖片

燒寫完成后點(diǎn)擊Stop按鈕停止燒寫,點(diǎn)擊Exit鍵退出

圖片

拔出USB線,將撥碼開關(guān)撥到EMMC啟動(dòng)模式,重啟后就會(huì)從EMMC啟動(dòng)

圖片

此時(shí)啟動(dòng)后的系統(tǒng)是 NXP給 I.MX6ULL EVK開發(fā)板制作的,需要輸入用戶名,用戶名為“root”,沒有密碼

2. 燒寫自制系統(tǒng)

燒寫自制系統(tǒng)到 I.MX6U-ALPHA EMMC開發(fā)板(512MB DDR3 + 8G EMMC)中。 準(zhǔn)備好自制的 uboot、kernel、. dtb 和 rootfs(壓縮包)這四個(gè)燒寫文件,對(duì)其進(jìn)行重命名

##根文件系統(tǒng) rootfs 打包
cd rootfs/ 
tar -vcjf rootfs.tar.bz2 *

圖片

將改名后的uboot、kernel、. dtb 這三個(gè)文件拷貝到firmware目錄中,替換掉原來的文件

將改名后的所有四個(gè)文件拷貝到files目錄中

雙擊mfgtool2-yocto-mx-evk-emmc.vbs文件,打開燒寫軟件,點(diǎn)擊Start按鈕即可燒寫

圖片

燒寫完成后從EMMC啟動(dòng)系統(tǒng),如下圖示可見自制系統(tǒng)已經(jīng)燒寫成功

圖片

3. 改造燒寫工具

3.1 改造Mfgtool

上面是將 NXP官方的系統(tǒng)更換成自制的系統(tǒng)來完成燒寫,下面將介紹如何改造 MfgTool工具,讓其支持自己的開發(fā)板。 改造MfgTool,主要從以下三方面著手

確定系統(tǒng)文件名字:確定系統(tǒng)文件名字是為了兼容不同的產(chǎn)品

圖片

新建.vbs文件:復(fù)制 mfgtool2-yocto-mx-evk-emmc.vbs 文件,重新按需要命令,比如命名成 mfgtool2-andyxi-emmc.vbs

修改OS Firmware文件夾里的 ucl2.xml文件:改為如下所示內(nèi)容



    "BootStrap" dev="MX6UL" vid="15A2" pid="007D"/>
    "BootStrap" dev="MX6ULL" vid="15A2" pid="0080"/>
    "Updater" dev="MSC" vid="066F" pid="37FF"/>
class="hljs-name"CFG>
	
  
  <LIST name="eMMC" desc="Choose eMMC as media">
    "BootStrap" type="boot" body="BootStrap" file
    ="firmware/u-boot-andyxi-emmc.imx" ifdev="MX6ULL">Loading Ubootclass="hljs-name"CMD>
    "BootStrap" type="load" file="firmware/zImage-andyxi-emmc" address="0x80800000"
    loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" 
    ifdev="MX6SL MX6SX MX7D MX6UL MX6ULL">Loading Kernel.class="hljs-name"CMD>
    "BootStrap" type="load" file="firmware/%initramfs%" address="0x83800000"
    loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE"
    ifdev="MX6SL MX6SX MX7D MX6UL MX6ULL">Loading Initramfs.class="hljs-name"CMD>
    "BootStrap" type="load" file="firmware/imx6ull-andyxi-emmc.dtb" address="0x83000000"
    loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE"
    ifdev="MX6ULL">Loading device tree.class="hljs-name"CMD>
    "BootStrap" type="jump" > Jumping to OS image. class="hljs-name"CMD>

    
    "Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shellclass="hljs-name"CMD>
    "Updater" type="push" body="$ tar xf $FILE ">Partitioning...class="hljs-name"CMD>
    "Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk%mmc%"> Partitioning...class="hljs-name"CMD>

    
    "Updater" type="push" body="$ dd if=/dev/zero
    of=/dev/mmcblk%mmc% bs=1k seek=768 conv=fsync count=8">clear u-boot arg

    
    "Updater" type="push" body="$ echo 0 > /sys/block/mmcblk%mmc%boot0/force_ro">
    access boot partition 1class="hljs-name"CMD>
    "Updater" type="push" body="send" file="files/u-boot-andyxi-emmc.imx" ifdev="MX6ULL">
    Sending u-boot.binclass="hljs-name"CMD>
    "Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk%mmc%boot0 bs=512 seek=2">
    write U-Boot to sd cardclass="hljs-name"CMD>
    "Updater" type="push" body="$ echo 1 > /sys/block/mmcblk%mmc%boot0/force_ro">
    re-enable read-only accessclass="hljs-name"CMD>
    "Updater" type="push" body="$ mmc bootpart enable 1 1 /dev/mmcblk%mmc%">
    enable boot partion 1 to bootclass="hljs-name"CMD>

    
    "Updater" type="push" body="$ while [ ! -e
    /dev/mmcblk%mmc%p1 ]; do sleep 1; echo \\"waiting...\"; done ">Waiting for the partition ready
    "Updater" type="push" body="$ mkfs.vfat /dev/mmcblk%mmc%p1">
    Formatting rootfs partitionclass="hljs-name"CMD>
    "Updater" type="push" body="$ mkdir -p /mnt/mmcblk%mmc%p1"/>
    "Updater" type="push" body="$ mount -t vfat /dev/mmcblk%mmc%p1 /mnt/mmcblk%mmc%p1"/>

    
    "Updater" type="push" body="send" file="files/zImage-andyxi-emmc">
    Sending kernel zImageclass="hljs-name"CMD>
    "Updater" type="push" body="$ cp $FILE /mnt/mmcblk%mmc%p1/zImage">
    write kernel image to sd cardclass="hljs-name"CMD>

    
    "Updater" type="push" body="send" file="files/imx6ull-andyxi-emmc.dtb" ifdev="MX6ULL">
    Sending Device Tree fileclass="hljs-name"CMD>
    "Updater" type="push" body="$ cp $FILE /mnt/mmcblk%mmc%p1/imx6ull-andyxi-emmc.dtb" ifdev="MX6ULL">
    write device tree to sd cardclass="hljs-name"CMD>
    "Updater" type="push" body="$ umount /mnt/mmcblk%mmc%p1">
    Unmounting vfat partitionclass="hljs-name"CMD>

    
    "Updater" type="push" body="$ mkfs.ext3 -F -E nodiscard /dev/mmcblk%mmc%p2">
    Formatting rootfs partitionclass="hljs-name"CMD>
    "Updater" type="push" body="$ mkdir -p /mnt/mmcblk%mmc%p2"/>
    "Updater" type="push" body="$ mount -t ext3 /dev/mmcblk%mmc%p2 /mnt/mmcblk%mmc%p2"/>
    "Updater" type="push" body="pipe tar -jxv -C /mnt/mmcblk%mmc%p2" 
    file="files/rootfs-andyxi-emmc.tar.bz2" ifdev="MX6UL MX7D MX6ULL">Sending and writting rootfsclass="hljs-name"CMD>
    "Updater" type="push" body="frf">Finishing rootfs writeclass="hljs-name"CMD>
    "Updater" type="push" body="$ umount /mnt/mmcblk%mmc%p2">Unmounting rootfs partitionclass="hljs-name"CMD>
    "Updater" type="push" body="$ echo Update Complete!">Doneclass="hljs-name"CMD>
class="hljs-name"LIST>
class="hljs-name"UCL>

3.2 燒寫測(cè)試

MfgTool 工具修改好后就可以進(jìn)行燒寫測(cè)試了,將自制的 uboot、linux kernel、和 .dtb 這三個(gè)文件拷貝到firmware目錄中,替換掉原來的文件; 將所有四個(gè)文件拷貝到files目錄中

雙擊 mfgtool2-andyxi-emmc.vbs文件,打開燒寫軟件,點(diǎn)擊“Start”按鈕即可燒寫。 燒寫完成,設(shè)置撥碼開關(guān)為 EMMC 啟動(dòng),重啟開發(fā)板,系統(tǒng)啟動(dòng)信息如下圖示:

圖片

開發(fā)板最終卡在 “Starting kernel …”,內(nèi)核啟動(dòng)失敗。 下面介紹如何解決內(nèi)核啟動(dòng)失敗的問題

3.3 解決內(nèi)核啟動(dòng)失敗

仔細(xì)觀察 uboot 輸出的 log 信息,會(huì)發(fā)現(xiàn)如下圖所示的兩行信息:

圖片

可見在讀取設(shè)備樹文件時(shí)就出錯(cuò)了。 重啟 uboot,進(jìn)入到命令行模式,輸入如下命令查看 EMMC 的分區(qū) 1 里面有沒有設(shè)備樹文件

mmc dev 1 	//切換到EMMC
ls mmc 1:1 	//輸出EMMC1分區(qū)1中的所有文件

圖片

可見此時(shí) EMMC的分區(qū)1中是存在設(shè)備樹文件的,只是名字不同,因此讀取 imx6ull-14x14-evk.dtb肯定會(huì)出錯(cuò)。 出現(xiàn)這個(gè)錯(cuò)誤的原因是 uboot里默認(rèn)的設(shè)備樹名字是imx6ull-14x14-evk.dtb,解決方法有以下兩種:

重新設(shè)置 bootcmd環(huán)境變量值:在 uboot的命令行模式下,重設(shè) bootcmd 和 bootargs 這兩個(gè)環(huán)境變量的值

setenv bootcmd 'mmc dev 1;fatload mmc 1:1 80800000 zImage;fatload mmc 1:1 83000000
			    imx6ull-andyxi-emmc.dtb;bootz 80800000 - 83000000'
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
saveenv

修改 uboot源碼:上面方法每次重新燒寫都要再設(shè)置,以下方法只需設(shè)置一次,uboot源碼 include/configs/mx6ull_andyxi_emmc.h文件里,在宏 CONFIG_EXTRA_ENV_SETTINGS中找到如下所示內(nèi)容:

"findfdt="\\
"if test $fdt_file = undefined; then " \\
    "if test $board_name = EVK && test $board_rev = 9X9; then " \\
	"setenv fdt_file imx6ull-9x9-evk.dtb; fi; " \\
    "if test $board_name = EVK && test $board_rev = 14X14; then " \\
	"setenv fdt_file imx6ull-14x14-evk.dtb; fi; " \\
    "if test $fdt_file = undefined; then " \\
	"echo WARNING: Could not determine dtb to use; fi; " \\
"fi;\\0" \\

findfdt 是用于確定設(shè)備樹文件名字的環(huán)境變量, fdt_file環(huán)境變量保存著設(shè)備樹文件名。 上面代碼中的兩個(gè)設(shè)備樹都是 NXP官方開發(fā)板使用的。 因此將 findfdt 值改為如下內(nèi)容:

"findfdt="\\
"if test $fdt_file = undefined; then " \\
    "setenv fdt_file imx6ull-andyxi-emmc.dtb; " \\
"fi;\\0" \\

修改后重新編譯 uboot,然后將新的 uboot燒寫到開發(fā)板后重啟測(cè)試,內(nèi)核啟動(dòng)正常。 至此自制系統(tǒng)燒寫完成,并測(cè)試成功,開發(fā)板可以在沒有網(wǎng)絡(luò)的情況下正常啟動(dòng)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7988

    瀏覽量

    266248
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11351

    瀏覽量

    210494
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    596

    瀏覽量

    27524
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5126

    瀏覽量

    98310
  • 燒寫
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    14376
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux系統(tǒng)移植開發(fā)篇2:linux鏡像

    本文章為《STM32MP157 Linux系統(tǒng)移植開發(fā)篇》系列中的一篇,筆者使用的開發(fā)平臺(tái)為華清遠(yuǎn)見FS-MP1A開發(fā)板(STM32MP157開發(fā)板)。stm32mp157是ARM雙核,2個(gè)A7核
    發(fā)表于 09-29 16:00 ?3247次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>移植開發(fā)篇2:<b class='flag-5'>燒</b>寫<b class='flag-5'>linux</b>鏡像

    i.MX6ULL嵌入式Linux開發(fā)6-系統(tǒng)寫到eMMC

    本篇主要介紹了Linux移植的系統(tǒng)打包燒錄的EMMC的方法,使用MfgTool工具,將**uboot、linux kernel、.dtb和rootfs這4個(gè)文件**寫到板子的EMMC
    的頭像 發(fā)表于 03-17 09:17 ?5265次閱讀
    i.MX6ULL嵌入式<b class='flag-5'>Linux</b>開發(fā)6-<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>燒</b>寫到eMMC

    ok2440linux系統(tǒng)

    用u***linux系統(tǒng)的時(shí)候,linux操作系統(tǒng)zImage成功,但是
    發(fā)表于 04-27 18:34

    【OK210試用體驗(yàn)】之(二)——Linux系統(tǒng)寫和Android HDMI顯示

    ` 本帖最后由 郎中令2000年 于 2015-7-21 01:47 編輯 在開箱貼之后,今天帖子的主要內(nèi)容是對(duì)OK210測(cè)試板進(jìn)行Linux系統(tǒng)和Android系統(tǒng)寫,并在
    發(fā)表于 07-09 14:46

    【OK210試用體驗(yàn)】SDLinux系統(tǒng)

    的。WinPM.EXE在我win7 64位上打開失敗,后來在虛擬機(jī)中用xp系統(tǒng)寫成功。搞開發(fā)還是得用xp啊!寫過程中可以使用串口查看寫過程的。
    發(fā)表于 07-26 08:36

    TQ210 Linux系統(tǒng)

    :  使用以下命令把linux文件系統(tǒng)鏡像下載到開發(fā)板的內(nèi)存中,然后程序會(huì)把linux文件系統(tǒng)鏡像寫到NAND FLASH中。   ./d
    發(fā)表于 10-30 16:53

    TQ210 Linux系統(tǒng)

    下命令把linux文件系統(tǒng)鏡像下載到開發(fā)板的內(nèi)存中,然后程序會(huì)把linux文件系統(tǒng)鏡像寫到NAND FLASH中?! ?/dnw root
    發(fā)表于 11-09 10:48

    3399 開發(fā)板Linux 系統(tǒng)

    `` Linux 鏡像寫 平臺(tái):iTOP-3399開發(fā)板系統(tǒng)Linux 系統(tǒng) 1 RKTool 驅(qū)動(dòng)安裝 解 壓 光 盤 02 工 具
    發(fā)表于 02-14 15:22

    [充電樁計(jì)費(fèi)控制單元主板]如何一鍵寫啟動(dòng)Linux系統(tǒng)

    飛凌嵌入式于日前推出CDZ-335xD充電樁計(jì)費(fèi)控制單元主板,完全符合國網(wǎng)充電樁標(biāo)準(zhǔn),下面簡單的介紹一下如何通過SD卡一鍵Linux系統(tǒng)。所謂的一鍵
    發(fā)表于 04-13 16:46

    Linux系統(tǒng)寫DNW報(bào)錯(cuò)這是什么問題

    按照Linux 3.0.1用戶手冊(cè)“一鍵Linux系統(tǒng)”相關(guān)內(nèi)容,在最后一步寫時(shí)DNW報(bào)錯(cuò):** Unable to read "u-
    發(fā)表于 01-13 06:41

    如何linux鏡像

    使用tftp下載方式進(jìn)行鏡像的驗(yàn)證,以及使用scp方式來更新linux內(nèi)核與設(shè)備樹。STM32CubeProgrammer寫方式STM32CubeProgrammer工具已經(jīng)在前面的章節(jié)進(jìn)行了安裝,現(xiàn)在我們可以通過使用這個(gè)工具來燒錄
    發(fā)表于 02-16 06:18

    STM32MP157 Linux系統(tǒng)移植開發(fā)篇2:linux鏡像

    使用tftp下載方式進(jìn)行鏡像的驗(yàn)證,以及使用scp方式來更新linux內(nèi)核與設(shè)備樹。 STM32CubeProgrammer寫方式 STM32CubeProgrammer工具已經(jīng)在前面的章節(jié)進(jìn)行了安裝,現(xiàn)在我們可以通過使用這個(gè)工具來燒錄
    發(fā)表于 12-17 18:22 ?11次下載
    STM32MP157 <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>移植開發(fā)篇2:<b class='flag-5'>燒</b>寫<b class='flag-5'>linux</b>鏡像

    STM32MP157系列教程連載-Linux系統(tǒng)移植篇2:STM32MP1微處理器之系統(tǒng)鏡像

    STM32MP157系列教程連載-Linux系統(tǒng)移植篇2:STM32MP1微處理器之系統(tǒng)鏡像寫第 1 章 系統(tǒng)鏡像
    發(fā)表于 12-17 18:22 ?14次下載
    STM32MP157系列教程連載-<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>移植篇2:STM32MP1微處理器之<b class='flag-5'>系統(tǒng)</b>鏡像<b class='flag-5'>燒</b>寫

    Linux系統(tǒng)寫初探

    嵌入式 Linux開發(fā)中通常是用網(wǎng)絡(luò)來進(jìn)行測(cè)試,但最終的產(chǎn)品中可能不會(huì)通過網(wǎng)絡(luò)來運(yùn)行。因此需要將 uboot、linux kernel、.dtb(設(shè)備樹) 和 rootfs這四個(gè)文件寫到開發(fā)板
    的頭像 發(fā)表于 04-18 15:24 ?1044次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>燒</b>寫初探

    數(shù)位板的手寫實(shí)現(xiàn)原理

    數(shù)位板的手寫實(shí)現(xiàn)原理
    的頭像 發(fā)表于 05-26 11:48 ?1545次閱讀