당연한것 일수도 있지만, u-boot에서 kernel로 argument를 날려주고
그 인자들 중, NIC 관련 변수들을 파싱하여 자동으로 네트워크를 설정하게 되는데
인자를 ' '(홀따옴표)로 감싸주어 커널에서 파싱하도록 할 수 있다.
물론, bootargs에 한번에 넣어서는 불가능하며,
run 명령어를 통해서 인자를 생성후 넘겨주는 방식을 취한다.
We can use U-Boot environment variables to store all necessary configuration parameters:
=> setenv ipaddr 192.168.100.6
=> setenv serverip 192.168.1.1
=> setenv netmask 255.255.0.0
=> setenv hostname canyonlands
=> setenv rootpath /opt/eldk-4.2/ppc_4xx
=> saveenv
Then you can use these variables to build the boot arguments to be passed to the Linux kernel:
=> setenv nfsargs 'root=/dev/nfs rw nfsroot=${serverip}:${rootpath}'
Note: You cannot use this method directly to define for example the
"bootargs" environment variable, as the implicit usage of this variable by
the "bootm" command will not trigger variable expansion - this happens
only when using the "setenv" command.
[링크 : http://www.denx.de/wiki/DULG/LinuxBootArgs]
|
사용예
setenv
nfsargs 'setenv
bootargs console=ttyAS0,115200 root=/dev/mtdblock2 rootfstype=cramfs'
setenv
addip 'setenv
bootargs ${
bootargs} nwhwconf=device:eth0,hwaddr:${ethaddr}
ip=${ipaddr}::${gateway}:${netmask}:${histname}::off'
setenv bootcmd 'run
nfsargs addip\; tftp 0x84400000 uImage\; bootm'
아무튼, bootcmd 에 'run' 을 통해서 bootargs를 생성후 임시 변수를 커널로 넘겨주는 방식이다.
(실제로 bootargs 변수는 uboot에 존재하지 않는다.)