Использование rootfs через NFS

Можно использовать rootfs через NFS.

Это возможность особенно полезна при отладке.

Для этого нужно проделать шаги, описанные ниже.

Настройка 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

Не покидая 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
howto/rootfs-nfs.txt · Последние изменения: 2015/05/29 14:45 (внешнее изменение)
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki