Ports/arm/BuildHowto

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(обновление путей к репо и имени пакета со static)
Строка 1: Строка 1:
[[Category:Sisyphus]]
[[Category:Sisyphus]]
-
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/Ports/arm/BuildHowto}}
 
-
0. Prerequires
+
 
 +
== Prerequires ==
Для сборки под ARM с использованием QEmu требуется:
Для сборки под ARM с использованием QEmu требуется:
-
- qemu-arm.static из пакета qemu-user-binfmt_misc (на данный момент версия 0.12.1 работает)
+
* 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.ru/pub/people/boyarsh/arm/sisyphus/ тут]
+
* репозиторий под ARM. Уже часть сизифа
-
- ядро с поддержкой binfmt_misc(во всех ядрах в Сизифе есть модуль)
+
* ядро с поддержкой binfmt_misc(во всех ядрах в Сизифе есть модуль)
-
1. Configuring binfmt_misc
+
== Configuring binfmt_misc ==
Настраиваем binfmt_misc:
Настраиваем binfmt_misc:
-
- монтируем файловую систему binfmt_misc(если ещё не примонтирована)
+
* монтируем файловую систему binfmt_misc(если ещё не примонтирована)
 +
 
 +
  # mount -t binfmt_misc none /proc/sys/fs/binfmt_misc</pre>
 +
 
 +
* регистрируем qemu-arm, как интерпретатор ARM'овских ELF'ов (команда от root или через sudo):
-
<pre># mount -t binfmt_misc none /proc/sys/fs/binfmt_misc</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
-
- регистрируем qemu-arm, как интерпретатор ARM'овских ELF'ов (команда от root или через sudo):
+
* Выглядит /proc/sys/fs/binfmt_misc/arm после этого так:
-
<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>
+
enabled
 +
interpreter /.host/qemu-arm
 +
flags:
 +
offset 0
 +
magic 7f454c4601010100000000000000000002002800
 +
mask ffffffffffffff00fffffffffffffffffeffffff
-
Выглядит /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.
Строка 37: Строка 37:
который создаст hasher.
который создаст hasher.
-
2. APT sources.list
+
== APT sources.list ==
Пишем sources.list. Что-то типа:
Пишем sources.list. Что-то типа:
-
<pre>
+
rpm file://ALT/Sisyphus/ arm classic
-
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, но лучше положить в сторонке, и
Строка 50: Строка 47:
Если у вас есть локальное зеркало, то стоит использовать file://путь-к-зеркалу, чтобы сократить время и траффик.
Если у вас есть локальное зеркало, то стоит использовать file://путь-к-зеркалу, чтобы сократить время и траффик.
-
3. Hasher
+
== Hasher ==
Теперь всё готово. Можно использовать hasher:
Теперь всё готово. Можно использовать hasher:
-
<pre>hsh --with-qemu=arm --target=arm --apt-config=/path/to/apt-arm.conf foo.src.rpm</pre>
+
hsh --with-qemu=arm --target=arm --apt-config=/path/to/apt-arm.conf foo.src.rpm

Версия 13:53, 19 июля 2010


Содержание

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(во всех ядрах в Сизифе есть модуль)

Configuring binfmt_misc

Настраиваем binfmt_misc:

  • монтируем файловую систему binfmt_misc(если ещё не примонтирована)
 # mount -t binfmt_misc none /proc/sys/fs/binfmt_misc</pre>
  • регистрируем 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.

APT sources.list

Пишем sources.list. Что-то типа:

rpm file://ALT/Sisyphus/ arm classic

Можно записать прямо в /etc/apt/sources.list, но лучше положить в сторонке, и написать отдельный apt.conf, который подсовывать hasher'у. Если у вас есть локальное зеркало, то стоит использовать file://путь-к-зеркалу, чтобы сократить время и траффик.

Hasher

Теперь всё готово. Можно использовать hasher:

hsh --with-qemu=arm --target=arm --apt-config=/path/to/apt-arm.conf foo.src.rpm
 
Личные инструменты