COMA 1 4 июня, 2007 Опубликовано 4 июня, 2007 · Жалоба Прошу прощения за сумбурный стиль изложения. Торопился. Установка 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.xml 1. Архив образа стадии (stage). Нам понадобиться следующий архив - stage1-arm-uclibc-softfloat-20050811.tar.bz2 из названия видно, что этот архив используется для системы с архитектурой ARM, используется библиотека uClibc, и эмуляция поддержки float. Скачиваем отсюда - http://gentoo.osuosl.org/experimental/arm/...0050811.tar.bz2 2. Снимок портежей (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/proc mount -o bind /dev /mnt/gentoo/dev chroot /mnt/gentoo /bin/bash env-update source /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") WinTAP32.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
burokrat 0 26 августа, 2007 Опубликовано 26 августа, 2007 · Жалоба mount -t proc none /mnt/gentoo/proc mount -o bind /dev /mnt/gentoo/dev chroot /mnt/gentoo /bin/bash env-update source /etc/profile у меня проблема вызвала команда chroot /mnt/gentoo /bin/bash тк раздел был изначально пустой далее заметка - после копирования в линуховый раздел из виндов приходиться перезапускать qemu. ЗЫ:в дальнейшем могу выложить заметки по инструкции.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
COMA 1 26 августа, 2007 Опубликовано 26 августа, 2007 · Жалоба "Распакуем архив stage1 - tar xvjpf /mnt/gentoo/files/stage1-arm-uclibc-softfloat-20050811.tar.bz2", потом только chroot. Выкладывайте, это будет полезно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
burokrat 0 27 августа, 2007 Опубликовано 27 августа, 2007 · Жалоба "Распакуем архив stage1 - tar xvjpf /mnt/gentoo/files/stage1-arm-uclibc-softfloat-20050811.tar.bz2", потом только chroot. Выкладывайте, это будет полезно. нуу тут не сказанно что это нужно в корень положить( точнее что это все должно быть как в нормальном линухе лежать в одной плоскости... в моем случае в корне. далее замечание, для таких как я: каждый маломальски понятный шаг для опытного желательно расписывать более подробно, скажем для меня стала небольшим гемором поменять дату (что кстати ставлю под сомнение целесообразность этой процедуры), и команды переноса и копирования, и все по тому что с линухом только начинаю знакомиться. Выкладывайте, это будет полезно. Продолжаю: 1) для емерджа имеет смысл организовать доступ в инет прямо из qemu 2) замечено что в 1ом стайдже множество лишних компонентов, которые можно урезать (скажем дрова для видях и возможно для кого-то питон итд) - честно, я пока не начал компиляцию и задним умом догадываюсь что сборка будет проходить без них. но в любом случае стоит упомянуть что компилиться и как урезать ядро по минимому. 3) имеет смысл выложить свежеотгенеренный раздел на фтп для экономии 2х ночей у других участников =) 4) имеет смысл автоматизировать скажем скриптом и более четким описанием что и куда полоить, дабы новичкам в линухе не впадть в ступор с командой date (намекаю на себя втч) =) 5) описать как грузиться с флешки на RAINBOW, в тч процесс сборки загрузчика. 6) личная заметка - флешки можно монтировать также как и винчестер(кстати у меня он один, на котом винда, и смотировал я только пустой раздел со свежесозданным разделом ext2), номер флехи можно узнать в "Управление компьютером" во вкладке "Управление дисками". 7) имеет смысл попробовать патчи для qemu вот от сюда http://www.h7.dion.ne.jp/~qemu-win/ (сам я пока не пробовал) 8) при емердже сразу или прописать в конфиг набор флагов, заточенных под RAINBOW 9) при наличии 2х и более машин стоит задуматься о кросскомпилинге, штука архиудобная 10) ln -snf /usr/portage/profiles/uclibc/arm /etc/make.profile может быть make.conf ? линчо у меня щас непонятки тк /portage/profiles/uclibc/arm отсутствует ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexMad 0 27 августа, 2007 Опубликовано 27 августа, 2007 · Жалоба 1) для емерджа имеет смысл организовать доступ в инет прямо из qemu не совсем согласен, вернее, считаю, что это надо делать по желанию - я собирал это все на даче, так что пришлось заранее в городе все скачать. 10) ln -snf /usr/portage/profiles/uclibc/arm /etc/make.profile может быть make.conf ? линчо у меня щас непонятки тк /portage/profiles/uclibc/arm отсутствует ... это именно make.profile, смотрите документацию и в какомто из конфигурационных файлов это указывается. В остальном - согласен, тем более, что у меня это все так и не собралось, почему-то все вылетало на сборке сандбокса :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
COMA 1 29 августа, 2007 Опубликовано 29 августа, 2007 · Жалоба 1. Доступ в инет можно организовать - http://www.h7.dion.ne.jp/~qemu-win/TapWin32-en.html. 2. Лишних компонентов там нет. Питон нужен, т.к. система portage написана на питоне. 3. Собираюсь выложить два варината - с uclibc и glibc. Но не хватает времени, не могу даже обновить свой блог :( 4. Не вижу необходимости. Каждый раз писать новй скрипт после обновления пакетов. 5. Есть желание написать как собирать U-Boot и kernel для платы RainBow в эмуляторе QEMU. Но не хватает времени. 6. Да это так, я использовал USB HDD 80Gb. 7. Для чего эти патчи? 8. Набор флагов для всех может быть разный. 9. Попробуйте :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
burokrat 0 29 августа, 2007 Опубликовано 29 августа, 2007 · Жалоба 1. Доступ в инет можно организовать - http://www.h7.dion.ne.jp/~qemu-win/TapWin32-en.html. 2. Лишних компонентов там нет. Питон нужен, т.к. система portage написана на питоне. 3. Собираюсь выложить два варината - с uclibc и glibc. Но не хватает времени, не могу даже обновить свой блог :( 4. Не вижу необходимости. Каждый раз писать новй скрипт после обновления пакетов. 5. Есть желание написать как собирать U-Boot и kernel для платы RainBow в эмуляторе QEMU. Но не хватает времени. 6. Да это так, я использовал USB HDD 80Gb. 7. Для чего эти патчи? 8. Набор флагов для всех может быть разный. 9. Попробуйте :) 3. выкладывай - очень полезная инфа (а что за блог, если не секрет? =) ) 4. почему, я про базовые операции вроде монтирования, распаковки пакетов, рассовывания по директориям =) 5. вот это будет оочень полезно, даже полезнее п-та 3, тк для меня это вообще пока темный лес, где шаманят дикие юниксоиды =) 6. у меняже системный винт со свежесозданным разделом =) 7. мне больше всего приглянулся вот этот: http://www.h7.dion.ne.jp/~qemu-win/Accelerator-en.html Accelerators Kqemu-1.3.0pre11 installer. http://www.h6.dion.ne.jp/~kazuw/qemu-win/K...e11-install.exe Please uninstall your old version before installing it. It is "KQEMU virtualization module for QEMU" in the control panel->add/remove software. The new Kqemu is installed as "QEMU Accereration Module". QEMU 0.9.0 binary. http://www.h6.dion.ne.jp/~kazuw/qemu-win/Q...9.0-install.exe BIOS is in a pc-bios directory. Use -L like this. -L "C:\Program Files\Qemu\pc-bios" If you install Kqemu-1.3.0pre11-install.exe, non installable package qemu-0.9.0-windows.zip is also accelerated. 8. Тогда стоит дать ссылку на идеологию дженту, а то не все понимают в чем их сила. и какие желательны для встроенного линуха 9. Дык - уже пробовали, все работало) только не у меня, а у юзера Playnet) если он соберется будет инструкция =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
COMA 1 30 августа, 2007 Опубликовано 30 августа, 2007 · Жалоба Про меня можно почитать в моей карточке :) Блог завел недавно. Про дженту можно прочитать на их сайте - http://www.gentoo.org/. Раздел Docs. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Burlik 0 11 апреля, 2008 Опубликовано 11 апреля, 2008 · Жалоба COMA, пробую проделать все как указанно в инструкции, нарвался на то, что ниженаписанные ссылки уже не работают. Не могли бы Вы их обновить. ядро Linux с поддержкой видео и многих других опций - http://phoenix.inf.upol.cz/~polakr/qemu/zImage Конфиг можно посмотреть здесь - http://phoenix.inf.upol.cz/~polakr/qemu/de...2.6.19.1.config Скачиваем образ виртуального диска для QEMU- http://phoenix.inf.upol.cz/~polakr/qemu/sda.img.bz2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
COMA 1 26 апреля, 2008 Опубликовано 26 апреля, 2008 · Жалоба все это есть на местном фтп. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 18 июля, 2008 Опубликовано 18 июля, 2008 · Жалоба Как к qemu прицепить не винчестер, а USB flash диск или карту памяти? Перебор \.PhysicalDriveX не дал результата. (кстати вроде как должно быть \\.\PhysicalDriveX ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 16 декабря, 2008 Опубликовано 16 декабря, 2008 · Жалоба Как-то тут все очень страшно сложно... Установил я Debian под QEMU для ARM как для обычного ПК, процесс установки на 99% идентичен установке под x86 с CD или иным способом. http://www.aurel32.net/info/debian_arm_qemu.php Получился образ диска img. Я его сконвертировал в raw формат, fdisk показывает какие на этом файле разделы живут. Как его подмонтировать? sudo fdisk -l hda.raw Диск hda.raw: 0 МБ, 0 байт 255 heads, 63 sectors/track, 0 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Disk identifier: 0x000b57f1 Устр-во Загр Начало Конец Блоки Id Система hda.raw1 * 1 116 931738+ 83 Linux hda.raw2 117 130 112455 5 Расширенный hda.raw5 117 130 112423+ 82 Linux своп / Solaris Какое смещение указать чтобы оно нашло все что надо? mount -t ext3 -o loop hda.raw /mnt mount: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error Это нужно чтобы вывалить содержимое этого образа в папку для NFS, чтобы установленная в QEMU система закрутилась на железе (уж не знаю как получится, пробую :) ). ЗЫ 2COMA: Как странно подготавливать Linux под виндой... :) Зачем себя так мучать? ЗЗЫ Сам нашел :) http://kpnc.opennet.ru/tips/info/1413.shtml lomount -diskimage quemu_image.img -partition 1 /mnt/quemu_image Из состава xen-tools. В итоге заработало на реальном железе. Не ожидал что так просто можно будет запустить самоустановленную с чистого CD систему... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться