The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Запуск Linux для процессоров ARM в окружении QEMU (linux arm qemu emulator virtual)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: linux, arm, qemu, emulator, virtual,  (найти похожие документы)
From: Михаил Сгибнев <mixa(@).dreamcatcher.ru> Date: 2006-09-12 16:50:46 Subject: Запуск Linux для процессоров ARM в окружении QEMU
Original

Перевод: Сгибнев Михаил

Введение

QEMU известен как свободная альтернатива VMware, позволяющая пользователям запускать виртуальные PC на PC. Для большинства остается неизвестным тот факт, что помимо эмуляции архитектуры x86, возможна эмуляция архитектур AMD64, Sparc, MIPS, PPC и ARM.

В случае архитектуры ARM, QEMU обеспечивает удобную среду разработки приложений для встраиваемых систем. В этой статье рассматривается, как настроить Debian/ARM под управлением QEMU, с учетом того, что корневой системой также является Debian.

Так как QEMU arm не имеет необходимости эмулировать IDE или SCSI, нужно установить сервер на экспортируемом разделе NFS.

Подготовка корневого сервера

Первым делом установим необходимые пакеты: debootstrap позволяет создавать базовые системы Debian или Ubuntu, а также является простым способом создания chroot и виртуальных машин.

VDE является эмулятором сети, также известный как user mode linux uml_net, позволяющий гостевой QEMU-машине соединиться с корневой системой через интерфейс tap.

Убедитесь, что ядро корневой системы собрано с поддержкой "Universal TUN/TAP device driver", эта опция конфигурации называется "TUN". Если вы предпочитаете использовать подключаемые модули, то есть хороший шанс обнаружить необходимый модуль под именем 'tun.o'.

Как только вы убедились в том, что ваше ядро поддерживает tun, внесите следущие изменения в /etc/network/interfaces, чтобы обеспечить поддержку сети : Убедитесь в том, что и вы и /dev/net/tun являетесь членом группы vde-net, а затем, поднимите интерфейс: Вам необходимо место для установки дострибутива Debian, так же учтите то, что вам потребуется место для ваших разработок. В принципе, я считаю достаточным 300 Мб. Я разместил все это хозяйство в каталоге /nfs/share/arm/.

Теперь запустите debootstrap для того, чтобы скачать и установить дестрибутив Debian/arm, а затем скопируйте несколько недостающих файлов: Опция --foreign команды debootstrap указывает на то, что необходимо выполнить только первую часть процесса установки. Так как мы загружаем Debian архитектуры отличной от той, какая установлена на корневой машине, мы не можем запускать в данном chroot сценарии продолжения установки.

На корневой машине мы также должны настроить и запустить сервер NFS. Хочу сразу предупредить, что эмулируемая система будет работать очень медленно.

Расшариваем новый каталог через NFS и добавляем соответствующую запись /etc/exports: Экспортируем файловую систему: Скачайте ядро arm-linux, оно поставляется в комплекте arm-test и взять его можно здесь.

Положите arm-linux zimage в /usr/local/etc/images/zImage.arm и затем создайте сценарий /usr/local/bin/start-qemu-arm следующего содержания: Откорректируйте значения согласно вашим данным.

Конфигурирование гостевой системы

Теперь запускаем наш новый сервер arm в однопользовательском режиме, при этом, не обязательно обладать привилегиями пользователя root: Гостевой сервер должен загрузиться и запусить оболочку bash. Файловая система будет примонтирована в режиме только для чтения и необходимо повторно примонтировать ее в режиме чтения/записи: Теперь запускаем второй этап debootstrap и завершаем установку: Снова повторюсь, этот процесс потребует времени, так как эмулятор не особенно быстр. После завершения установки отредактируйте такие файлы, как /etc/hostname и /etc/resolv.conf, также установите ssh: После этого гостевую машину можно отключать. Для этого достаточно воспользоваться командой kill и убить процесс qemu, так как ее файловая система установлена с сервера NFS, нет никакой необходимости в корректном завершении работы.

Делаем образцово-показательный запуск гостевой машины: После завершения загрузки гостевая машина будет доступна по протоколу ssh и адресу 10.1.6.50.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, pirks (?), 00:48, 20/06/2009 [ответить]  
  • +/
    Очень интересный пример.
    только вопрос, что значит "Положите arm-linux zimage в /usr/local/etc/images/zImage.arm" ?
    Как запаковать 2 файла arm-linux zimage в zImage.arm  ?
     
  • 2, dimafon (?), 01:54, 27/06/2009 [ответить]  
  • +/
    Спасибо за статью. Все работает.
    Но есть одна проблема я не знаю root password ARM машины.
     
  • 3, dimafon (?), 02:42, 27/06/2009 [ответить]  
  • +/
    apt-get install ssh
    Coludn't find package ssh
     
  • 4, mittorn (?), 19:27, 12/03/2011 [ответить]  
  • +/
    А ускорить эмуляцию можно? моя gentoo на андроиде быстрее работает,  чем в qemu
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру