LINUX.ORG.RU

Подскажите про кросс-компиляцию в ARM

 ,


1

2

Здравствуйте.

В используемом мною дистрибутиве Archlinux есть 4 пакета, относщихся к ARM:

Подскажите, пожалуйста, что из этого мне нужно, чтобы успешно скомпилировать свой код (зависящий от пары so-файлов из дистрибутива) под ARM6/7?

Подскажите в общих чертах, какие шаги нужно выполнить для этого?

Будет ли проще/сложнее использовать clang вместо gcc?

★★★★★

Последнее исправление: makoven (всего исправлений: 4)
Ответ на: комментарий от Extraterrestrial

Мне еще lua-файлы компилить luac-компилером. Так что проще из виртуалки. Как бонус будет возможность собирать пакеты под x64 и ARM одним PKGBUILD-файлом

makoven ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Сделал!

qemu-system-arm \
  -machine vexpress-a9 \
  -dtb vexpress-v2p-ca9.dtb \
  -cpu cortex-a9 \
  -kernel zImage \
  -append "root=/dev/mmcblk0 ro" \
  -drive file=armv7.btr,if=sd,index=0,media=disk,format=raw

zImage и vexpress-v2p-ca9.dtb берутся прямо из архива (этот же архив, содержащий корневую ФС распакован в файл-образ armv7.btr). Так что ничего левого качать и конпелять не пришлось)

Что характерно, вышеприведенный архивчик расчитан сразу на сотню плат. Device tree рулит

makoven ★★★★★
() автор топика
Последнее исправление: makoven (всего исправлений: 3)
Ответ на: комментарий от makoven

Кстати, если тебе нужна гента под кубиборду, я на днях в ЖЖшку выложу описание своих потуг.

На самом деле, там ничего сложного нет. Основная проблема у меня, как оказалось, была в недостаточном питании. Т.е. ведро заводится, а потом начинается цирк.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

А гента как-нибудь движется в направлении армов? Или всё самому приходится искать по интернету и собирать, от u-boot и dts до драйверов?

makoven ★★★★★
() автор топика
Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от makoven

dts непосредственно при сборке ведра генерятся. Гента для армов нормальная есть. Вообще, фактически, только очень малая толика ПО зависит от архитектуры. В большинстве своем код, писанный под ынтель, будет и на армах работать — тот же little-endian же (но обычно, если приложение имеет серверную структуру, я забочусь о преобразовании конечности данных, либо вообще сериализую их)!

В общем, пошел я БП паять. Авось, взлетит. Тогда понаставлю всего нужного и буду спокойно работать.

Кстати, на «малинке» в силу ограниченности ресурсов я вместо жирного апача использую nginx (а зачастую и вообще обхожусь без веб-сервера: демон, обслуживающий вебсокеты, может и веб-страницами плеваться). Недостатки nginx в такой узкой нише не мешают.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ан, нет: все равно зависает на инициализации сетевухи. Будем смотреть.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.