🍓 Эмуляция Raspberry Pi на QEMU |

🍓 Эмуляция Raspberry Pi на QEMU

Мануал
Сегодня я расскажу, как установить дистрибутив Raspbian Linux для Raspberry Pi на QEMU.
Сначала скачайте образ Ubuntu и запустите его на виртуальной машине:
Для эмуляции QEMU вам понадобится следующее:
  • Образ Raspbian: http://downloads.raspberrypi.org/raspbian/images/raspbian-2017-04-10/ (другие версии могут работать, но рекомендуется Jessie)
  • Ядро QEMU: https://github.com/dhruvvyas90/qemu-rpi-kernel

Установка Raspbian:

Внутри вашей Ubuntu VM создайте новую папку:

$ mkdir ~/qemu_vms

Загрузите и разместите Образ Raspbian в ~ /qemu_vms/

Загрузите и поместите ядро qemu в ~/qemu_vms/

$ sudoapt-get install qemu-system
$ unzip <image-file>.zip
$ fdisk -l <image-file>
Вы должны увидеть что-то вроде этого:
Вы видите, что файловая система (.img2) начинается в секторе 92160.
Теперь возьмите это значение и умножьте его на 512, в данном случае это 512 * 92160 = 47185920 байт.
Используйте это значение в качестве offset в следующей команде:
$ sudo mkdir /mnt/raspbian
$ sudo mount -v -o offset=47185920 -t ext4 ~/qemu_vms/<your-img-file.img> /mnt/raspbian
$ sudo nano /mnt/raspbian/etc/ld.so.preload

Закомментируйте каждую запись в этом файле с помощью «#», сохраните и выйдите с помощью Ctrl-x >> Y.

$ sudo nano /mnt/raspbian/etc/fstab

Если вы видите что-то с mmcblk0 в fstab, то:

  • Замените первую запись, содержащую /dev/mmcblk0p1, на /dev/sda1
  • Замените вторую запись, содержащую /dev/mmcblk0p2, на /dev/sda2, сохраните и выйдите.
$ cd ~
$ sudo umount /mnt/raspbian

Теперь вы можете эмулировать его в Qemu, используя следующую команду:

$ qemu-system-arm -kernel ~/qemu_vms/<your-kernel-qemu> -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ~/qemu_vms/<your-jessie-image.img> -redir tcp:5022::22 -no-reboot

Из терминала вам нужно запустить службу SSH, чтобы вы могли получить к ней доступ из вашей хост-системы (той, с которой вы запустили qemu).

Включите SSH:

$ sudo service ssh start
Теперь вы можете подключиться к нему по SSH с хост-системы (пароль по умолчанию – raspberry):
$ ssh pi@127.0.0.1 -p 5022

Устранение неполадок службы SSH:

Если SSH не запускается в вашем эмуляторе при запуске по умолчанию, вы можете изменить это в своем терминале Pi с помощью:

$ sudo update-rc.d ssh enable

Если ваш эмулируемый Pi запускает графический интерфейс и вы хотите, чтобы он запускался в режиме консоли при запуске, используйте следующую команду в вашем терминале Pi:

$ sudo raspi-config
/>Select 3 - Boot Options
/>Select B1 - Desktop / CLI
/>Select B2 - Console Autologin

Изменение размера образа Raspbian:

Когда вы закончите настройку, у вас останется 3,9 ГБ на вашем образе.

Чтобы увеличить образ Raspbian, выполните следующие действия на вашем компьютере с Ubuntu:

Создайте копию вашего существующего образа:

$ cp <your-raspbian-jessie>.img rasbian.img

Запустите эту команду, чтобы изменить размер вашей копии:

$ qemu-img resize raspbian.img +6G
Теперь запустите исходный распбиан с увеличенным образом как второй жесткий диск:
$ sudo qemu-system-arm -kernel ~/qemu_vms/<kernel-qemu> -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ~/qemu_vms/<your-original-raspbian-jessie>.img -redir tcp:5022::22 -no-reboot -hdb raspbian.img
Войдите и запустите:
$ sudo cfdisk /dev/sdb
Удалите второй раздел (sdb2) и создайте новый раздел со всем доступным пространством.
Как только новый раздел будет создан, используйте Write для фиксации изменений.

Затем выйдите из cfdisk.

Измените размер и проверьте старый раздел и завершение работы.

$ sudo resize2fs /dev/sdb2
$ sudo fsck -f /dev/sdb2
$ sudo halt
Теперь вы можете запустить QEMU с увеличенным образом:
$ sudo qemu-system-arm -kernel ~/qemu_vms/<kernel-qemu> -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ~/qemu_vms/raspbian.img -redir tcp:5022::22

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий