Можно использовать rootfs через NFS.
Это возможность особенно полезна при отладке.
Для этого нужно проделать шаги, описанные ниже.
На рабочей машине поставить NFS сервер:
sudo apt-get install nfs-kernel-server
Открыть /etc/exports, добавить туда:
/nfs/variscite *(rw,sync,no_root_squash,no_subtree_check)
Открыть /etc/hosts.allow и прописать:
ALL: ALL
Создать каталог /nfs/variscite и перезапустить NFS сервер:
sudo /etc/init.d/nfs-kernel-sever restart
В каталог /nfs/variscite нужно развернуть образ файловой системы.
Для теста можно взять файл (относительно корня Variscite CD): VAR-SOM-OM35_VAR-SOM-OM37_VAR-SOM-AM35\Software\Linux_Release_9\pre-built_images\VAR-SOM-OM37_VAR-SOM-OM35\FS\om37_rootfs.tar.bz2
выполнить:
sudo tar -xf om37_rootfs.tar.bz2 sudo mv var-som-om37_rootfs/* /nfs/variscite sudo rm -rf var-som-om37_rootfs
Следовать инструкциям отсюда, только вместо
run rf_all
выполнить:
run rf_kernel
и не выполнять:
boot
Не покидая u-boot консоли, в другом окне выполнить:
DEBUG_PORT="/dev/ttyS1" NFS_DIR="/nfs/variscite" TARGET_IP="192.168.0.105" TARGET_MAC="F8:DC:7A:00:00:00" CMD_SLEEP="0.1" KERNEL_SIZE_MAX_HEX=0x300000 HOST_IP=$(/sbin/ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}') HOST_NETMASK=$(/sbin/ifconfig | grep 'Mask:'| grep -v '127.0.0.1' | cut -d: -f4 | awk '{ print $1}') HOST_GATEWAY=$(ip route show dev eth0 | grep via | cut -d\ -f3) echo "Setting MAC address..." echo "setenv ethaddr $TARGET_MAC" > $DEBUG_PORT sleep $CMD_SLEEP echo "Setting IP address..." echo "setenv ipaddr $TARGET_IP" > $DEBUG_PORT sleep $CMD_SLEEP echo "Setting Server IP address..." echo "setenv serverip $HOST_IP" > $DEBUG_PORT sleep $CMD_SLEEP echo "Setting netmask..." echo "setenv netmask $HOST_NETMASK" > $DEBUG_PORT sleep $CMD_SLEEP echo "Setting gateway..." echo "setenv gatewayip $HOST_GATEWAY" > $DEBUG_PORT sleep $CMD_SLEEP echo "Defining commands..." echo "setenv bootargs mem=80M@0x80000000 mem=128M@0x88000000 console=ttyS2,115200n8 noinitrd root=/dev/nfs nfsroot=$HOST_IP:$NFS_DIR ethaddr=$TARGET_MAC ip=$TARGET_IP::$HOST_GATEWAY:$HOST_NETMASK consoleblank=0" > $DEBUG_PORT sleep $CMD_SLEEP echo "setenv bootcmd nand read.i 0x80000000 0x280000 $KERNEL_SIZE_MAX_HEX\; bootm 0x80000000" > $DEBUG_PORT sleep $CMD_SLEEP echo "saveenv" > $DEBUG_PORT
Строки в начале нужно поменять соответствующим образом.
Теперь надо вернуться в консоль с u-boot'ом и выполнить там:
boot