Ports/arm/BuildHowto: различия между версиями

Материал из ALT Linux Wiki
< Ports‎ | arm
(Import from freesource.info)
 
(обновление путей к репо и имени пакета со static)
Строка 5: Строка 5:


Для сборки под ARM с использованием QEmu требуется:
Для сборки под ARM с использованием QEmu требуется:
  - qemu-user-static - чем новее, тем лучше
  - 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.org/pub/people/kas/arm тут]
  - репозиторий под 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.org/pub/people/kas/arm/sisyphus arm hasher
<pre>
rpm ftp://ftp.altlinux.org/pub/people/kas/arm/patched arm hasher
rpm ftp://ftp.altlinux.ru/pub/people/boyarsh/arm/sisyphus/ arm classic
rpm ftp://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch classic</pre>
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://путь-к-зеркалу, чтобы сократить время и траффик.
Можно заметить, что репозитория два. В sisyphus попадают пакеты, которые
пересобраны из Сизифа "как есть". В patched, пакеты в которые вносились
изменения.


3. Hasher
3. Hasher

Версия от 11:11, 22 марта 2010

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


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