U-boot和根文件系統

U-boot和根文件系統

 

 

 U-boot採用相應的配置文件編譯好,注意選擇串口地址,是串口1還是串口2(stb7109eref.h),還要選擇對應的PIO口(board/stb7109eref.c)。
我採用stb7109平臺
make mrproper
make stb7109eref_config (include/configs/stb7109eref.h)
make

使用調試器
sh4-linux-gdb u-boot 調試進入
gdb>mb411bypass 192.168.0.6 這裏就是調試器地址
gdb>load  加載U-boot進入內存  
gdb>c  執行

連接串口,使用C-Kermit,先編寫一個啓動腳本kscript
set line /dev/ttyS0 (使用usb串口/dev/ttyUSB0)
set speed 115200 (波特率)
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
set prompt Kermit>
set output pacing 4
輸入kermit kscript,提示符出來後輸入c(connect)

拷貝U-boot到板子內存
set load_addr 0xa4000000 (SDRAM地址,a表示是uncache)
set uboot_addr /u-boot.bin路徑
如果是從串口拷貝
loadb $load_addr
回到kermit,ctl+/c
robust
send /u-boot.bin路徑
c
如果是從網絡nfs拷貝
set ipaddr 192.168.0.88 (板子ip)
set netmask 255.255.255.0 (服務器掩碼)
set serverip 192.168.0.11 (服務器ip)
set ethaddr 12:34:56:78:9a:bc (板子MAC地址)
nfs $load_addr $serverip:$uboot_addr

把U-boot從SDRAM燒寫到FLASH中
prot off 1:0-1 (Bank1 Sector 0-1,Sector大小由FLASH決定)
erase 1:0-1
cp.b a4000000 a0000000 $filesize
prot on 1:0-1

拷貝內核到內存
set vm_addr /vmlinux.ub路徑
nfs $load_addr $serverip:$vm_addr
prot off 1:4-35
erase 1:4-35
cp.b a4000000 a0040000 $filesize (內核在FLASH的位置)
iminfo a0040000 (查看FLASH上內核的信息)
set bootargs 'c,115200 nwhwc:eth0,hwaddr:00:08:E1:12:06:BD stmmaceth=msglv1:0,phyaddr:2,watchdog:500000,rxsize:32 root=/dev/mtdblock2 rootfstype=jffs2 ide0=noprobe  ip=192.168.0.88::192.168.0.1:255.255.255.0:LDDE_LINUX:eth0:off mem=36m bigphysarea=1512' (設置傳遞給內核的參數)
set bootcmd 'bootm a0040000' (設置內核自動啓動的位置)
save

製作內核image
sh4-linux-objcopy -O binary vmlinux vmlinux.bin
gzip vmlinux.bin
mkimage -A sh4 -O linux -T kernel -C gzip -a 0x84400100 -e 0x84400200 -n "Linux 2.6"
-d vmlinux.bin.gz vmlinux.ub (製作U-boot識別的內核image)

製作根文件系統
使用busybox生成需要的工具,再加上一些必需的啓動腳本就可以了
mkfs.jffs2 --eraseblock=0x10000 --root=/tmp/fs --output=/tmp/fs.img
可以使用mtd_debug info /dev/mtd2 查看eraseblock大小
flash_eraseall /dev/mtd2
dd if=/tmp/fs.img of=/dev/mtd2
mount -t jffs2 /dev/mtdblock2 /mnt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章