옛날 글 보완하여 리프레시함.
보통 유닉스 스크립트처럼 짜면 되지만;;
조금 다르다;
게다가 내가 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