Как смонтировать rootfs, используя NFS для эмуляции архитектуры ARM на qemu? - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу эмулировать архитектуру ARM в qemu. Я следовал инструкциям в этом уроке . Сначала я собрал ядро ​​linux -5.5.17. Единственной разницей между мной и этим учебником была переменная CROSS_COMPILE. У меня была армия - linux - изгои. Все пошло так же, как этот учебник до сборки файловой системы. Я использовал build root -2020.02.1 для сборки rootfs. Я выполнил команду make qemu_vexpress_defconfig. Затем я выполнил make menuconfig, чтобы установить пароль root, выбрать файловую систему ext4 root и установить метод сжатия "xz". Я успешно скомпилировал этот rootfs. И я настраиваю NFS, следуя инструкциям выше. Но когда я выполнил команду

qemu-system-arm -M vexpress-a15 \
-net tap -net nic -m 512 -kernel /home/myuser/linux-5.5.17/arch/arm/boot/zImage \
-dtb /home/myuser/linux-5.5.17/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dtb \
-append "console=tty1 root=/dev/nfs rw nfsroot=192.168.0.1:/home/myuser/armsystem/outfs ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:qemu:eth0" 

Наконец-то я получил результат . Я не знаю, есть ли какие-то ошибки при создании rootfs или настройке сети. Я искал другое руководство по монтированию root-файлов NFS, но оно не работает для меня. Интересно, как мне успешно смонтировать rootfs для эмуляции архитектуры ARM в qemu.

1 Ответ

1 голос
/ 18 апреля 2020

Попробуйте добавить ,vers=3,tcp к вашей строке nfs root, например: nfsroot=192.168.0.1:/home/myuser/armsystem/outfs,vers=3,tcp.

Также следующий шаг неверен в руководстве: cp -r -d [buildroot]/output/target/* ~/armsystem/outfs. В каталоге output/target есть файл THIS_IS_NOT_YOUR_ROOT_FILESYSTEM с объяснением, почему и что нужно делать.

...