Ports/arm/BuildHowto: различия между версиями
PhpCoder (обсуждение | вклад) (Import from freesource.info) |
MikeLykov (обсуждение | вклад) (обновление путей к репо и имени пакета со static) |
||
Строка 5: | Строка 5: | ||
Для сборки под ARM с использованием QEmu требуется: | Для сборки под ARM с использованием QEmu требуется: | ||
- qemu-user- | - qemu-arm.static из пакета qemu-user-binfmt_misc (на данный момент версия 0.12.1 работает) | ||
- настроенный hasher >= 1.2.6-alt1 | - настроенный hasher >= 1.2.6-alt1 | ||
- rpm >= 4.0.4-alt80 | - rpm >= 4.0.4-alt80 | ||
- репозиторий под ARM. Можно взять [ftp://ftp.altlinux. | - репозиторий под ARM. Можно взять [ftp://ftp.altlinux.ru/pub/people/boyarsh/arm/sisyphus/ тут] | ||
- ядро с поддержкой binfmt_misc(во всех ядрах в Сизифе есть модуль) | - ядро с поддержкой binfmt_misc(во всех ядрах в Сизифе есть модуль) | ||
Строка 19: | Строка 19: | ||
<pre># mount -t binfmt_misc none /proc/sys/fs/binfmt_misc</pre> | <pre># mount -t binfmt_misc none /proc/sys/fs/binfmt_misc</pre> | ||
- регистрируем qemu-arm, как интерпретатор ARM'овских ELF'ов: | - регистрируем qemu-arm, как интерпретатор ARM'овских ELF'ов (команда от root или через sudo): | ||
<pre># 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:/.host/qemu-arm:" > /proc/sys/fs/binfmt_misc/register</pre> | <pre># 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:/.host/qemu-arm:" > /proc/sys/fs/binfmt_misc/register</pre> | ||
Выглядит /proc/sys/fs/binfmt_misc/arm после этого так: | |||
<pre> | |||
enabled | |||
interpreter /.host/qemu-arm | |||
flags: | |||
offset 0 | |||
magic 7f454c4601010100000000000000000002002800 | |||
mask ffffffffffffff00fffffffffffffffffeffffff | |||
</pre> | |||
Теперь при попытке выполнить ELF для ARM, ядро будет запускать /.host/qemu-arm. | Теперь при попытке выполнить ELF для ARM, ядро будет запускать /.host/qemu-arm. | ||
Строка 31: | Строка 41: | ||
Пишем sources.list. Что-то типа: | Пишем sources.list. Что-то типа: | ||
<pre>rpm ftp://ftp.altlinux. | <pre> | ||
rpm ftp://ftp.altlinux. | rpm ftp://ftp.altlinux.ru/pub/people/boyarsh/arm/sisyphus/ arm classic | ||
rpm ftp://ftp.altlinux.ru/pub/people/boyarsh/arm/sisyphus/ noarch classic | |||
</pre> | |||
Можно записать прямо в /etc/apt/sources.list, но лучше положить в сторонке, и | Можно записать прямо в /etc/apt/sources.list, но лучше положить в сторонке, и | ||
написать отдельный apt.conf, который подсовывать hasher'у. | написать отдельный apt.conf, который подсовывать hasher'у. | ||
Если у вас есть локальное зеркало, то стоит использовать file://путь-к-зеркалу, чтобы сократить время и траффик. | |||
3. Hasher | 3. Hasher |
Версия от 11:11, 22 марта 2010
0. Prerequires
Для сборки под ARM с использованием QEmu требуется:
- qemu-arm.static из пакета qemu-user-binfmt_misc (на данный момент версия 0.12.1 работает) - настроенный hasher >= 1.2.6-alt1 - rpm >= 4.0.4-alt80 - репозиторий под ARM. Можно взять тут - ядро с поддержкой binfmt_misc(во всех ядрах в Сизифе есть модуль)
1. Configuring binfmt_misc
Настраиваем binfmt_misc:
- монтируем файловую систему binfmt_misc(если ещё не примонтирована)
# mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
- регистрируем qemu-arm, как интерпретатор ARM'овских ELF'ов (команда от root или через sudo):
# 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:/.host/qemu-arm:" > /proc/sys/fs/binfmt_misc/register
Выглядит /proc/sys/fs/binfmt_misc/arm после этого так:
enabled interpreter /.host/qemu-arm flags: offset 0 magic 7f454c4601010100000000000000000002002800 mask ffffffffffffff00fffffffffffffffffeffffff
Теперь при попытке выполнить ELF для ARM, ядро будет запускать /.host/qemu-arm. Именно по этому пути будет лежать статически собранный qemu-arm внутри чрута, который создаст hasher.
2. APT sources.list
Пишем sources.list. Что-то типа:
rpm ftp://ftp.altlinux.ru/pub/people/boyarsh/arm/sisyphus/ arm classic rpm ftp://ftp.altlinux.ru/pub/people/boyarsh/arm/sisyphus/ noarch classic
Можно записать прямо в /etc/apt/sources.list, но лучше положить в сторонке, и написать отдельный apt.conf, который подсовывать hasher'у. Если у вас есть локальное зеркало, то стоит использовать file://путь-к-зеркалу, чтобы сократить время и траффик.
3. Hasher
Теперь всё готово. Можно использовать hasher:
hsh --with-qemu=arm --target=arm --apt-config=/path/to/apt-arm.conf foo.src.rpm