tiny4412u-boot烧写及根文件系统制作(不进入终端问题)
http://m.blog.csdn.net/article/details?id=51400196(轉(zhuǎn))
?
VMware12
環(huán)境:ubuntu12.4
開(kāi)發(fā)板:tiny4412
首先燒寫(xiě)bootloader,我用一個(gè)8G的內(nèi)存卡,現(xiàn)在不說(shuō)sd卡的制作過(guò)程了,網(wǎng)上可以參考。
現(xiàn)在就把我給arm的emmc燒寫(xiě)過(guò)程開(kāi)始說(shuō)。
用sd卡啟動(dòng),開(kāi)發(fā)板的右下角有個(gè)開(kāi)關(guān)控制啟動(dòng)方式,往下是sd卡啟動(dòng),往上是mmc啟動(dòng)。
1,、先用sd卡啟動(dòng)?
注意:把右下角的開(kāi)關(guān)撥到下面。啟動(dòng)后的是[940122@xxxxxxx] #
fdisk -p命令 查看內(nèi)存分區(qū) ,fdisk -p 1 查看mmc的分區(qū) fdisk -p 0查看sd卡的信息如下:
[940122@xxxxxx] #fdisk -p 1 ? ? ? ? ? ? ? ? //mmc的信息
partion # ? ?size(MB) ? ? block start # ? ?block count ? ?partition_Id?
? ?1 ? ? ? ? ? 695 ? ? ? ? ?6070812 ? ? ? ? 1424478 ? ? ? ? ?0x0C?
? ?2 ? ? ? ? ? 320 ? ? ? ? ? 134244 ? ? ? ? ?656304 ? ? ? ? ?0x83?
? ?3 ? ? ? ? ?2057 ? ? ? ? ? 790548 ? ? ? ? 4213770 ? ? ? ? ?0x83?
? ?4 ? ? ? ? ? 520 ? ? ? ? ?5004318 ? ? ? ? 1066494 ? ? ? ? ?0x83?
[940122@tengfei] #fdisk -p 0 ? ? ? ? ? ? ? ? ? ?//這是sd卡的信息
?partion # ? ?size(MB) ? ? block start # ? ?block count ? ?partition_Id?
? ?1 ? ? ? ? 14756 ? ? ? ? ? ? 8192 ? ? ? ?30220288 ? ? ? ? ?0x0C?
?2、進(jìn)去之后給mmc分區(qū)
?
??? fdisk -p 1(設(shè)備號(hào)) 對(duì)1查看
??? fdisk -c 1 320 2057 520?分區(qū)為4個(gè),數(shù)字對(duì)應(yīng)大小
結(jié)果像上面fdisk -p 1 那樣
?3、格式化分區(qū) ?
格式化四個(gè)分區(qū)時(shí)注意,第一分區(qū)是fatformat格式的
?
fatformat mmc 1:1 ? ? ? ??
2、3、4分區(qū)都是ext3format的
ext3format mmc 1:2
ext3format mmc 1:3
ext3format mmc 1:4
格式化完成
4、燒寫(xiě)bootloader
首先打開(kāi)mmc使用如下命令[940122@tengfei] #fdisk -p 0 ?emmc open 1?
eMMC OPEN Success.!!
? ? ? ? ? ? ? ? ? ? ? ? !!!Notice!!!
!You must close eMMC boot Partition after all image writing!
!eMMC boot partition has continuity at image writing time.!
!So, Do not close boot partition, Before, all images is written.!
打開(kāi)成功
事先編譯好Exxx_bl1.bin ?、bl2.bin 、?Exxx_tzsw.bin 、../../u-boot.bin(上上層目錄)
將這四個(gè)文件分別寫(xiě)入四個(gè)分區(qū)
? ? ? ? ? ? ? ?開(kāi)發(fā)板下 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?pc下
? ? ? ? ? ? ? ? dnw 50000000 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?dnw ? Exxxx_bl1.bin?
mmc ?write ?1 ?50000000 0x0 0x10
?
dnw 50000000 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?dnw ? bl2.bin?
mmc write 1 50000000 0x10 0x20
dnw 50000000 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?dnw ? ../../u_boot.bin
mmc write 1 50000000 0x30 0x290
dnw 50000000 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?dnw ? Exxxx_tzsw.bin?
mmc?write 1 50000000 0x2c0 0xb8
關(guān)閉mmc
[940122@tengfei] #emmc close 1
添加共享目錄vim /etc/exports
加上 /rootfs (rootfs是要共享的目錄)*(rw,sync,no_root_squash)保存退出
?
設(shè)置引導(dǎo),打開(kāi)共享目錄中的/rootfs/etc/inittab?
vim /rootfs/etc/inittab?然后?添加上::sysinit:/etc/init.d/rcS
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ttySAC0::askfirst:-/bin/sh兩行保存退出(你可以先將根文件的壓縮包先解壓到/rootfs(就是你的共享目錄))
*******************注意是共享目錄下的etc不是pc根目錄下的******************
奶奶的我就出錯(cuò)到這了,自動(dòng)掛載pc的rootfs死活掛不到,這樣出現(xiàn)的效果是眼睜睜的看著開(kāi)發(fā)板內(nèi)核已經(jīng)啟動(dòng)好了,minicom終端就是進(jìn)不去,無(wú)法獲得終端控制權(quán),急死人。
5、加載內(nèi)核?
先將右下角的開(kāi)關(guān)推上去mmc啟動(dòng)
[tiny4412@name #
?先將根文件系統(tǒng)解壓到PC機(jī)作為開(kāi)發(fā)板掛載目錄nfsroot,然后將內(nèi)核(zImage需要提前編譯好)和根文件系統(tǒng)的包放進(jìn)去,用內(nèi)核引導(dǎo)開(kāi)發(fā)板掛載pc的共享目錄
?
設(shè)置bootargs
set bootargs "root=/dev/nfs ?nfsroot=192.168.0.6:/rootfs? ip=192.168.0.199 console=ttySAC0,115200lcd=S70 init=linuxrc"
我pc的ip是192.168.0.6 ?開(kāi)發(fā)板是0.199
設(shè)置bootcmd
set bootcmd "dnw 40008000;bootm 40008000"
設(shè)置cmd后就不用手動(dòng)去40008000這個(gè)地址執(zhí)行了
重啟開(kāi)發(fā)板就出現(xiàn)等待dnw接收zImage的提示了 ? ?在pc端找到zImage,#dnw ?zImage
開(kāi)發(fā)板下就啟動(dòng)內(nèi)核了,可能碰到的錯(cuò)誤nosoundcard 這是網(wǎng)絡(luò)出現(xiàn)了問(wèn)題 沒(méi)有掛載上pc的共享目錄。這時(shí)就得檢查你的共享目錄、pc中、etc/export中的設(shè)置、板子的ip,網(wǎng)線是否鏈接。出現(xiàn)Please press Enter to activate this console. 就說(shuō)明掛載上了。
在pc端將你的zImage和根文件系統(tǒng)放到共享目錄中,我的是rootfs。
掛載mmc的分區(qū)執(zhí)行mount ?/etc/mmcblk0p2 ?/mnt/
cp zImage /mnt/ 將zImage拷貝到第二分區(qū)中,待會(huì)啟動(dòng)的時(shí)候就會(huì)自己去這個(gè)分區(qū)找內(nèi)核并啟動(dòng)內(nèi)核
*****************umount ? /mnt/一定記得卸載******************
?6、制作根文件系統(tǒng)
?
掛載mmc第三分區(qū)寫(xiě)根目錄
??????? ?????????????? mount /dev/mmcblk0p3 /mnt/
??????????????????? ?? tar rootfs—2014tar.gz -C /mnt/將根文件系統(tǒng)的壓縮包指定路徑(-C大寫(xiě))解壓到/mnt 這是板子的
??????????????????? ???進(jìn)去/mnt中rootfs—2014(解壓后的跟文件目錄)文件目錄中,把里面全部的東西拷貝到放在/mnt中,可以用mv ?* ?/mnt/刪除空的解壓目錄?rootfs—2014
? ? ? ? ? ? ? ? ? ? ? ?然后拷貝inittab ? ? ? ?到/mnt/etc ? ? cp /etc/inittab?? /mnt/etc
? ? ? ? ? ? ? ? ? ? ?記得 ?umount /mnt
????????重啟設(shè)置引導(dǎo)到此為止燒寫(xiě)成功了bootloader和內(nèi)核鏡像
設(shè)置開(kāi)發(fā)板的參數(shù)
重啟開(kāi)發(fā)板,按回車鍵輸入pri查看bootargs和bootcmd主機(jī)從機(jī)ip等信息
[tiny4412@name] #pri
baudrate=115200
bootargs=root=/dev/mmcblk0p3 console=ttySAC0,115200 init=linuxrc lcd=S70
bootcmd=ext2load mmc 0:2 40008000 zImage;bootm 40008000
bootdelay=1
ethaddr=00:40:5c:26:0a:5b
filesize=4B3068
gatewayip=192.168.0.1
ipaddr=192.168.0.199
netmask=255.255.255.0
serverip=192.168.0.6
Environment size: 306/16380 bytes
主要是設(shè)置bootargs和bootcmd
??????? set bootcmd "ext2load mmc ?0:2 ?40008000 zImage;bootm 40008000"
#sav(保存你的設(shè)置 ) ? ? ??
set bootargs"root=/dev/mmcblk0p3 console=ttySAC0,115200 init=linuxrc ?lcd=S70"
#sav
如果bootargs設(shè)置成這樣想要讓pc編譯好的二進(jìn)制文件在arm運(yùn)行,還的重新掛載pc的共享目錄,
你可以設(shè)置成set bootargs "root=/dev/nfs ?nfsroot=192.168.0.6:/rootfs? ip=192.168.0.199 console=ttySAC0,115200lcd=S70 init=linuxrc"
就可以自動(dòng)掛載pc共享目錄了。注意不能寫(xiě)錯(cuò),細(xì)心一點(diǎn)。
錯(cuò)的多了就知道在那改了,錯(cuò)著錯(cuò)著就對(duì)了,就會(huì)了。
好沒(méi)好重啟開(kāi)發(fā)板試試唄。
Please press Enter to activate this console.出現(xiàn)就說(shuō)明對(duì)了。值得幸災(zāi)樂(lè)禍一下了。
轉(zhuǎn)載于:https://www.cnblogs.com/lys0827/p/5817350.html
總結(jié)
以上是生活随笔為你收集整理的tiny4412u-boot烧写及根文件系统制作(不进入终端问题)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 点击预览,有时可以打开,有时不可以
- 下一篇: win7重装系统后设置Python2.7