Прошу прощения за сумбурный стиль изложения. Торопился.Установка Gentoo Linux c помощью QEMU -
http://fabrice.bellard.free.fr/qemu/Многие нужные файлы взяты с ресурса
http://phoenix.inf.upol.cz/~polakr/1. Настройка и проверка QEMU.Нам понадобиться:
архив qemu-0.9.0-arm.zip содержащий ядро Linux и образ диска
http://www.h6.dion.ne.jp/~kazuw/qemu-win/qemu-0.9.0-arm.zipядро Linux с поддержкой видео и многих других опций -
http://phoenix.inf.upol.cz/~polakr/qemu/zImageКонфиг можно посмотреть здесь -
http://phoenix.inf.upol.cz/~polakr/qemu/de...2.6.19.1.configРаспаковываем все это в одну папку.
Пишем bat файл для запуска qemu-arm. У меня он называется qemu-arm-gentoo.bat.
Лучше всего взять файл qemu-arm.bat за основу и поменять последнюю строчку:
qemu-system-arm.exe -L . -M versatilepb -kernel zImage -initrd arm_root.imgОписание параметров:
-L . - путь (папка) где находится файлы BIOS, VGA BIOS и keymaps. Точка - текущий каталог.
-M versatilepb - тип эмулируемой машины (процессора). В нашем случае ARM Versatile/PB (ARM926EJ-S), т.к. ядро собранно под эту архитектуру.
-kernel zImage - файл ядра Linux.
-initrd arm_root.img - файл initrd.
Запускаем qemu-arm-gentoo.bat. Если все сделано правильно, то увидим консоль и приглашение
sh-3.00# (см рис. 1)
2. Запуск Gentoo Linux c готового образа.Скачиваем образ виртуального диска для QEMU-
http://phoenix.inf.upol.cz/~polakr/qemu/sda.img.bz2Размер архива 54.5 Mb. После распаковки занимает 1 Гб.
Он уже содержит Gentoo собранный под ARM архитектуру и swap диск. В принципе этого уже достаточно, для работы
Правим файл qemu-arm-gentoo.bat последнюю строчку:
qemu-system-arm.exe -L . -M versatilepb -kernel zImage -hda sda.img -append "root=/dev/sda1 clock=pit"Новые параметры:
-hda sda.img - файл образа 0-го HDD диска. QEMU его определяет как SCSI диск. (см рис. 2)
-append "root=/dev/sda1 clock=pit" - команды передаваемые ядру Linux. В данном случае это - root=/dev/sda1 и clock=pit. "clock=pit" - решение проблемы с неправильным ходом часов, чтобы не убегали.
Запускаем qemu-arm-gentoo.bat. Если все сделано правильно, то через какое то время мы увидим приглашение войти в систему (см рис. 3). Пользователь root, пароль - клавиша "Enter"
3. Установка Gentoo Linux под архитектуру AT91RM9200.В качестве носителей файловой системы QEMU может использовать физические устройства - HDD, USB флешки и т.п.
Будем использовать жесткий диск в качестве носителя файловой системы.
В моем компьютере установленно 2 диска. Первый используется системой, а второй свободен.
Для начала установим программу позволяющую системе Windows читать/писать на Linux разделы ext2.
http://www.fs-driver.org/index.htmlНужный нам раздел можно создавать из эмулятора QEMU, используя для этого готовый образ sda.img, или стороними утилитами из под системы Windows. Кому как удобнее.
Я разбивал диск под системой windows.
Создаем раздел 10Г, форматируем под ext2. Остальное нам не понадобиться. Пустое место можно использовать для других целей.
На это раздел (10Г) будем ставить Gentoo. Для установки нам понадобятся следующие файлы:
Скачивать можно с ресурса http://gentoo.osuosl.org/
Или с других ресурсов. Список зеркал - http://www.gentoo.org/main/en/mirrors.xml1. Архив образа стадии (stage).Нам понадобиться следующий архив - stage1-arm-uclibc-softfloat-20050811.tar.bz2
из названия видно, что этот архив используется для системы с архитектурой ARM, используется библиотека uClibc, и эмуляция поддержки float.
Скачиваем отсюда -
http://gentoo.osuosl.org/experimental/arm/...0050811.tar.bz22. Снимок портежей (snapshot).Я использовал snapshots от 21-го мая - portage-20070521.tar.bz2, но можно использовать последний доступный.
Скачиваем отсюда
http://gentoo.osuosl.org/snapshots/portage-20070521.tar.bz2 я выложил на местный фтп.
3. Файлы исходников (distfiles).Качаем отсюда
http://gentoo.osuosl.org/distfiles/ или отсюда -
http://distfiles.gentoo.org/distfiles/Список необходимых файлов прикреплен к сообщению.
Список содержит файлы, которые нужны при установке системы со снимком портежей от 21-го мая. Если у вас portage от другого числа, то придется дополнительно скачать необходимые файлы.
Кладем все эти файлы на наш диск, предназначенный для установки gentoo. Допустим, в папку files. Файлы исходников лучше положить в отдельную папку - files/distfiles.
Также понадобятся файлы - make.conf make.globals portage.mask. (см. вложение)
Запуск QEMU с поддержкой HDD.Для запуска QEMU с поддержкой HDD правим bat файл. Последнюю строчку, добавляем -hdb \.PhysicalDrive1.
Нумерация жестких дисков начинается с 0. Нужный нам доступен под номером 1.
Получаем следующее -
qemu-system-arm.exe -L . -M versatilepb -kernel zImage -hda sda.img -hdb \.PhysicalDrive1 -append "root=/dev/sda1 clock=pit"В QEMU появляется новое устройство диск sdb, который соответствует нашему физическому диску под номером 1.
Система грузиться с диска sda1, с образа диска.
Запускаем QEMU.
При запуске видим, что появилость новое устройство (см. рис 1).
В моем случае это HDD 80Гб, с двумя разделами.
После загрузки входим с систему, регистрируемся.
Устанавливаем правильную дату. К примеру, время 13-10 29 мая 2007г. - 052913102007
создаем папку /mnt/gentoo.
Установка стадии.монтируем раздел диска в папку /mnt/gentoo
mount /dev/sdb1 /mnt/gentooпереходим в папку -
cd /mnt/gentooРаспакуем архив stage1 -
tar xvjpf /mnt/gentoo/files/stage1-arm-uclibc-softfloat-20050811.tar.bz2Распакуем архив снимка дерева портежей командой - tar
tar xvjf /mnt/gentoo/files/portage-20070521.tar.bz2 -C /mnt/gentoo/usrСкопируйте файлы исходников из /mnt/gentoo/files/distfiles в /mnt/gentoo/usr/portage/distfiles/
Установка базовой системы Gentoo.Переходим в новую среду:
mount -t proc none /mnt/gentoo/procmount -o bind /dev /mnt/gentoo/devchroot /mnt/gentoo /bin/bashenv-updatesource /etc/profileВыбор нужного профиля системы:
ln -snf /usr/portage/profiles/uclibc/arm /etc/make.profileкопируем файлы make.conf make.globals portage.mask (см. архив etc.rar)
make.conf и make.globals в папку /etc/,
файл portage.mask в папку /etc/portage.
make.conf - содержит настройку флагов, используемых при компиляции системы под конкретную архитектуру.
make.globals - то же, что и make.conf, но только глобальные установки.
Вот часть содержимого файла make.conf:
Самое важное:
CFLAGS="-mcpu=arm920t -msoft-float -Os -pipe" - указывает тип архитектуры и ключи при компиляции
CHOST="arm-softfloat-linux-uclibc" - тип системы
Более подробно можно почитать на сайте www.gentoo.org в разделе документация.
файл portage.mask содержит в себе ограничение на версиюю пакетов которые можно ставить. Связанно с тем, что не все версии программ собираются на ARM системе.
Содержимое файла:
>sys-devel/gcc-3.4.6-r2
>sys-devel/binutils-2.16.1-r3
>sys-kernel/linux-headers-2.6.11-r3
>dev-libs/popt-1.7-r1
>sys-apps/busybox-1.2.2.1
По первой строчке можно понять, что GCC выше версии gcc-3.4.6-r2 считаются заблокированными и не устанавливаются. И т.д.
Самогенерация системы.Обнавляем пакет portage (текущий очень старый)
emerge -avO portageПо окончании может появиться сообщение:
".....
emerge --help config"
если появилось, то надо обновить конфигурационные файлы командой
etc-updateСамогенерация системы запускается сценарием scripts/bootstrap.sh в каталоге /usr/portage. Этот скрипт можно запускать с разными ключами:
/usr/portage/scripts/bootstrap.sh -p - смотрим список пакетов необходимых для самогенерация системы.
/
usr/portage/scripts/bootstrap.sh -f -p - смотрим ссылки по которым можно скачать необходимые пакеты.
/usr/portage/scripts/bootstrap.sh -f - проверка исходников на "валидность", т.е. проверка на контрольные суммы и т.п.
Если последняя команда с ключом -f не даст предупреждений, можно запускать процесс самогенерации системы.
После проверки запускаем скрипт на выполнение -
/usr/portage/scripts/bootstrap.shСамогенерация системы может занять длительное время, поэтому оставить это дело на ночь
Если все будет удачно, можно приступить к установка системы.
Установка системы.Установка системы запускается командой emerge -e system.
emerge -pve system - смотрим какие пакеты будут ставиться. Обращаем внимание на размер для скачивания (size of downloads). Тут должно быть 0 Kb.
emerge -fve system - проверяем на "валидность".
Если появяться сообщения что надо скачать файл, то придется скачать файл, выйти из эмулятора (командой poweroff) и записать файлы на диск. И занов приступить к этапу "Установка системы".
Запускаем установку системы -
emerge -ave systemТакже может занять длительное время, поэтому оставить это дело на 2-ю ночь
По окончании может появиться сообщение:
".....
emerge --help config"
если появилось, то надо обновить конфигурационные файлы командой
etc-updateправим fstab.
У меня так:
/dev/sda1 / ext2 noatime 0 0
# NOTE: The next line is critical for boot!
proc /proc proc defaults 0 0
# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
# use almost no memory if not populated with files)
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
Меняем пароль.
Выключаем QEMU командой poweroff.
Правим bat файл. Последнюю строчку:
Получаем следующее -
qemu-system-arm.exe -L . -M versatilepb -kernel zImage -hda \.PhysicalDrive1 -append "root=/dev/sda1 clock=pit"Запускаем QEMU, регистрирумся.
Мы в системе gentoo, собранной под наш процессор AT91RM9200
Далее можно ставит пакеты которые нам нужны.
Cистему можно переписать на USB flash или MMC карточку и стартовать плату с этих носителей.
P.S. Далее можно собрать kernel, u-boot, romboot.
4. Настройка поддержки сети в QEMU.Большое спасибо
Andy Great за помощь.
1. Установка сетевого адаптера TAP-Win32ПУСК -> Панель управления -> Установка оборудования -> Далее
Выбираем "Да, устройство уже подсоединено" -> Далее
Выбираем "Добавление нового устройства" -> Далее
Выбираем "Установка оборудования выбранного из списка вручную" -> Далее
Выбираем "Сетевые платы" -> Далее
Выбираем "Установить с диска" Указываем путь к папке с драйвером WinTAP32 (см. вложение).
Выбираем сетевой адаптер TAP-Win32 Adapter V8 -> Далее -> Все равно продолжить -> Готово
Появится новое сетевое подключение с именем устройства "TAP-Win32 Adapter V8".
Настроим TAP-Win32 Adapter V8
Переименуем в TAP-Win32.
Настроим TCP/IP - IP: 10.0.2.6 Маска: 255.255.255.0
2. настройка QEMU.Поправим bat файл для запуска QEMU с поддержкой сети. Добавим следющую строчку -
-net nic -net tap,ifname=TAP-Win32
Запускаем QEMU. Если все правильно, то в системном трее появится значок нового сетевого подключения.
Настроим сеть в эмуляторе QEMU
правим файл /etc/conf.d/net
config_eth0=("10.0.2.5/24")
routes_eth0=("default via 10.0.2.2")