[t:/]$ 지식_

u-boot hush script.

2011/11/15

옛날 글 보완하여 리프레시함.

보통 유닉스 스크립트처럼 짜면 되지만;;
조금 다르다;

게다가 내가 bash도 거의 못 다루기 때문에;;
헤멨음.

예제.

fatls mmc 0 명령어를 실행하여,
SD카드가 제대로 활성화 됐는지 검사하는 스크립트

setenv aaa “fatls mmc 0”
run aaa  // fatls mmc 0가 실행된다.

run aaa; if itest.s $? == 0; then echo ok!; else echo fuck!; fi

카드가 꽂혔나 안 꽂혔나 표시해준다.

setexpr 명령어를 쓰면 될 것 같은데..
일단 setenv 명령어만 있을 때는 $처리를 무조건 변수로 보내는 것 같다.
그래서 쓰리쿠션으로 돌려쳐 꼼수를 써봤음.

상세한 내역은 uboot 소스를 까본 후 다시 알려드림.

setenv fb first_boot
setenv auto1 “if itest.s $$fb == 1; then run scr1; else run scr2; fi”
setenv scr1 “setenv first_boot 0; echo ok;”
setenv scr2 “echo Second Boot!”
setenv renew “setenv first_boot 1; echo Factory Default OK!;”

zImage 첫 부팅 4119, 5583
Image 부팅 4742, 6208
.init . data 부팅 2246, 3712

.init 930000 2bc20 5000000 
.data 960000 2d660 5040000

20544000
205824c8

롱형 주의

3a0000 587760 Image
80000 zImage 31f9f4

A00000
cramfs 5c1000

baudrate=115200
ethaddr=00:40:5c:26:0a:5b
bootdelay=0
fb=first_boot
auto1=if itest.s $first_boot == 1; then run zboot; else run iboot; fi
auto2=run oboot
auto3=run bootc
bootc=root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200n81 init=/linuxrc
bootargs=root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200n81 init=/linuxrc
zboot=nand read 20008000 80000 31f9f4; bootm 20008000
oboot=nand read 20008000 3a0000 587760; go 20008000
bootcmd=run auto1
filesize=2D660
fileaddr=20008000
gatewayip=192.168.1.1
netmask=255.255.255.0
ipaddr=192.168.10.3
serverip=192.168.10.2
iboot=nand read 200083e0 5000000 2bc20; nand read 20562000 5040000 2d660; go 20008000
stdin=serial
stdout=serial
stderr=serial
first_boot=1








[t:/] is not "technology - root". dawnsea, rss