Ports/arm/chroot

Материал из ALT Linux Wiki
< Ports‎ | arm
Версия от 19:06, 28 июля 2008; MikhailGusarov (обсуждение | вклад) (Import from freesource.info)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Chroot into ARM root

Для того чтобы сделать chroot в arm-овый root с "большой" машины нам понадобится qemu, ядро с поддержкой binfmt и собственно root куда будем chroot'иться

Поехали.

Qemu

К сожелению стандартный qemu нам не подходит. Модифицированный можно взять тут - git://git.altinux.org/people/kas/packages/qemu.git. За основу взята версия 0.8.2-alt1 от at@. Добавлена сборка статической версии arm-user.

Забираем. Собераем. Ставим.

> git-clone git://git.altlinux.org/people/kas/packages/qemu.git
> gear-hsh-build --prefix="/home/kas/hasher" --target=x86_64 -- -- --packager='Kirill A. Shutemov <kas@altlinux.org>'
> sudo rpm -Uvh /home/kas/hasher/*/%_target_cpu/RPMS.hasher/qemu-0.8.2-alt1.1.%_target_cpu.rpm

binfmt_misc

Конфигурируем binfmt_misc на использование qemu для arm-овых elf'ов:

> sudo modprobe binfmt_misc
> sudo mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
> sudo sh -c 'echo ":arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static-%_target_cpu:" > /proc/sys/fs/binfmt_misc/register'

Готовим root

Берём arm-вый корень. К примеру http://gentoo.osuosl.org/experimental/arm/embedded/stages/stage3-arm-uclibc-softfloat-20050811.tar.bz2. Распаковываем в /usr/gnemul/qemu-arm/:

> sudo mkdir -p /usr/gnemul/qemu-arm/
> cd /usr/gnemul/qemu-arm/
> sudo tar -xjpf ~/stage3-arm-uclibc-softfloat-20050811.tar.bz2

Копируем хостовый статический qemu-arm внутрь arm'ового root'а:

> sudo cp /usr/bin/qemu-arm-static-x86_64 /usr/gnemul/qemu-arm/usr/bin


chroot

Собственно chroot'имся

> sudo chroot /usr/gnemul/qemu-arm bin/bash 
# uname -a
Linux kas.velesys.com 2.6.16-wks26-up-alt8 #1 PREEMPT Tue Jul 11 02:41:28 MSD 2006 armv5tel   GNU/Linux

Надеюсь кому-нить понадобится ;) Если будут проблемы/патчи/замечания стучитесь в jabber kas@