Debian wheezy, сборка своего Live-дистрибутива

Автор sklimkin, 23 ноября 2013, 19:45:32

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

sklimkin

#30
ЦитироватьDebian-wheezy-ARM для PDA HP iPAQ hx4700

Есть качественная готовая к установке на указанный "наладонник" сборка:
http://fds-team.de/cms/articles/2012-12/linux-on-the-hx4700-debian-image.html
но ее невозможно загрузить на десктопе в qemu-эмуляторе для доработки:
нет модулей vmlinuz-3.7-rc7-versatile и initrd.img-3.7-rc7-versatile
(пользователи root:ipaq user:hx4700)

Поэтому для самостоятельной доработки я выбрал wheezy-3.2.0-4-versatile:
- vmlinuz-3.2.0-4-versatile
- initrd.img-3.2.0-4-versatile
- debian_wheezy_armel_standard.qcow2 (образ готовой файловой системы)
- initrd.gz (модуль для сетевой установки базовой системы)

Образ *.qcow2 - консольная версия, в нем нет Xorg и прочего для десктопа.
Можно с помощью initrd.gz дополнить его десктопной начинкой и программами,
это будет работать в qemu-эмуляторе и не будет работать на реальном устройстве.
Нет модуля zImage для загрузки системы на PDA (iPAQ hx4700).

Что необходимо для повторения на десктопе/ноутбуке:
1. установленная система linux (debian, ubuntu, ...)
2. установленная в системе вирт.машина (эмулятор) qemu
3. скачанные по ссылкам (ниже) модули versatile и некоторые другие
4. умение читать не по-диагонали и терпение
5. наличие HP iPAQ hx4700 желательно, но не обязательно

Здесь будет показано:
1. возможность загрузить базовую ARM-систему по сети и "нарастить" ее для себя
2. создание, форматирование и изменение виртуального диска (qemu-образа) qcow2
3. конвертирование между файловой системой (rootfs) и ее qemu-образом qcow2
4. создание zImage для загрузки системы на реальном устройстве hx4700
5. перенос файловой системы и загрузчика на SD-card (CF-card) - для hx4700

(пользователи root:root user:user)
Для возможности компилировать свои программы установил linux-headers
Далее читать файл: qemu-debootstrap-chroot.txt
Любителям картинок расшаренные DIR's: screenshots-*

Debian-wheezy-ARM - shared DIR
http://yadi.sk/d/Xod-pYvRLZypG

zImage Размер: 1,7 МБ
http://yadi.sk/d/orvGwT42LZxnF

vmlinuz-3.2.0-4-versatile Размер: 1,3 МБ
http://yadi.sk/d/XHRU2ezrLZxsC

initrd.img-3.2.0-4-versatile Размер: 7,5 МБ
http://yadi.sk/d/1Ut1cLVhLZxuW

initrd.gz Размер: 4,3 МБ
http://yadi.sk/d/GmmyevM_LZxyY

5_rootfs-3.2.0-4.tar.gz Размер: 197,3 МБ
http://yadi.sk/d/jfsCRnq9LZy6C

qemu-debootstrap-chroot.txt Размер: 49 КБ
http://yadi.sk/d/1jRypX8yLZyAJ

Кросскомпиляция в ARM под Ubuntu.txt Размер: 11 КБ
http://yadi.sk/d/jUOuRZsNLZxks

SD-card_fat16 - shared DIR
http://yadi.sk/d/f0FF-DHXLZyRR

screenshots-netinstall - shared DIR
http://yadi.sk/d/mHDfDEEALZyT7

screenshots-work-in-qemu-1 - shared DIR
http://yadi.sk/d/snHOI9LiLZyXb

screenshots-work-in-qemu-2 - shared DIR
http://yadi.sk/d/teWKb-qTLZyeg

photo-work-on-iPAQ-hx4700 - shared DIR
http://yadi.sk/d/tuiudE44LZykn

Дополнения (попытка более понятно изложить технику):
0. Предисловие
Debian-embedded имеет большие репозитории и адаптированные привычные программы.
qemu пожалуй единственный доступный эмулятор для ARM-архитектуры.
В сети по этому вопросу сведения разбросанные и в основном на английском языке.
Вспомнил, что авторское описание процесса после "продолжительных тренировок"
часто бывает маловразумительным при взгляде со стороны (при взгляде новичка).
Постараюсь изложить процесс доходчиво (насколько сумею).
Здесь описана работа для HP iPAQ hx4700 потому, что делал для него.
Но я думаю, что многое будет справедливо и для других устройств (архитектур).

Виртуальная машина (эмулятор) qemu должен быть установлен в Вашей системе:
sudo apt-get install qemu
- в Ubuntu это была несколько устаревшая версия,
   поэтому скачал исходники qemu-1.7.0 и установил qemu заново.

Особенно следует отметить - из дальнейшего описания будет видно что:
Система Debian-wheezy-armel создается с нуля, без единого готового модуля.
Используются только qemu-debootstrap, chroot и компиляция ядра из исходников.
А после компиляции из исходников ядра создаются zImage и /lib/modules
Это рабочая система, которую можно также конвертировать в qcow2-образ для qemu.
Но есть два условия: файл .config для компиляции ядра должен быть ПРАВИЛЬНЫМ,
ядро должно содержать все небходимые патчи. Иначе будут нерабочие /lib/modules
Таким образом файл .config приобретает ключевое значение для успеха всей работы.

Подробное руководство для ARM-наладонника HP iPAQ hx4700 на английском:
http://fds-team.de/cms/articles/2012-12/linux-on-the-hx4700-debian-image.html
с иллюстрациями и необходимыми ссылками (5 страниц сайта, плюс архив модулей).
И в отличии от официального Debian-armel использует более "легкие" модули.
Далее читать:
make-your-own-not-Intel32-debian-system.txt Размер: 21 КБ
http://yadi.sk/d/RVoRK4IqLknZ9

Еще несколько скриншотов (работа в qemu с готовой для устройства SD-карты):
screenshots-SD-card-qemu - shared DIR
http://yadi.sk/d/-zvykeoqLknAS

letnab

Всем привет. Пишу в эту тему, так как ничего более не нашел.
Такая ситуация, от коллег по цеху достался iso обзаз готового сервера. Появилась необходимость пересобрать один пакет.
Пересобрал, положил его в то же место с таким же названием.
ориентировался на эти статьи Клац и Клац.После сборки дистрибутива, попробовал его установить. Система встала и всё работает, но вот тот пакет не установился. Вот что в логах инсталлера

Jul 22 06:22:10 apt-install: Queueing package opv-prod for later installation

Jul 22 06:31:07 debconf: —> SUBST base-installer/section/install_extra_package SUBST0 opv-prod
Jul 22 06:31:07 debconf: Adding [SUBST0] -> [opv-prod]
Jul 22 06:31:07 debconf: <— 0
Jul 22 06:31:07 debconf: —> PROGRESS INFO base-installer/section/install_extra_package
Jul 22 06:31:07 debconf: <— 0 OK
Jul 22 06:31:07 debconf: —> GET base-installer/install-recommends
Jul 22 06:31:07 debconf: <— 0 false
Jul 22 06:31:07 debconf: —> GET mirror/protocol
Jul 22 06:31:07 debconf: <— 0 http
Jul 22 06:31:07 debconf: —> GET mirror/http/proxy
Jul 22 06:31:07 debconf: <— 0
Jul 22 06:31:07 debconf: —> GET debconf/priority
Jul 22 06:31:07 debconf: <— 0 high
Jul 22 06:31:07 debconf: —> GET debian-installer/locale
Jul 22 06:31:07 debconf: <— 0 en_US.UTF-8
Jul 22 06:31:07 in-target: Reading package lists...
Jul 22 06:31:07 in-target:
Jul 22 06:31:07 in-target: Building dependency tree...
Jul 22 06:31:07 in-target:
Jul 22 06:31:07 in-target: Reading state information...
Jul 22 06:31:07 in-target:
Jul 22 06:31:07 in-target: E: Unable to locate package opv-prod
Jul 22 06:31:07 base-installer: warning: Failed to install opv-prod into /target/: 100

Вопрос, что не так, и в какую сторону нужно копать?