Сборка программного обеспечения для Linux, созданного с помощью multistrap

Сборка программного обеспечения для Linux, созданного с помощью multistrap

Я работаю над встроенным устройством с процессором ARM и Debian Jessie, созданным с использованием multistrap. Кажется, мне нужно установить слегка пропатченную версию ModemManager в эту систему, и я прошу любого руководства о том, как это сделать.

То, что я пробовал до сих пор, это chrooting в rootfs, созданный multistrap, загрузка исходного кода ModemManager с помощью apt-get и сборка его chrooted. До сих пор я даже не получил скрипт конфигурации для передачи из-за зависимостей, которые я не могу удовлетворить.

Патч необходим для решения известной проблемы ModemManager, которая может сбивать с толку оборудование, сканируя последовательные порты на предмет модемов. Есть способ обойти это, внеся устройства в черный список с помощью правил udev, но в этом случае последовательный порт является частью подсистемы tty, для которой черный список не поддерживается. Я проверил это в исходном коде ModemManager.

Я также открыт для более простых способов решения этой проблемы, если таковые имеются, но пока я их не заметил.

решение1

Несмотря на то, что этот конкретный вопрос устарел, добавление модифицированной версии некоторого программного обеспечения в корневую файловую систему Debian, созданную с помощью multistrap, является распространенной проблемой при использовании multistrap.

Я бы не стал смешивать кросс-компиляцию с multistrap, поскольку компиляция программного обеспечения в chrootfs, сгенерированном multistrap, слишком трудоемка.

Вместо этого я бы скомпилировал измененное программное обеспечение где-нибудь, где это легко сделать. У вас уже может быть среда кросс-компиляции для вашей целевой архитектуры ARM, но если нет, то самый простой способ на сегодняшний день (и в 2016 году тоже) — использовать одноплатный компьютер Linux/ARM, например Raspberry Pi, с желаемой целевой ОС, установить там необходимые инструменты сборки и скомпилировать там ваше измененное программное обеспечение. Не нужно настраивать кросс-компиляцию, потому что это использование собственной компиляции. После компиляции скопируйте созданный двоичный файл в вашу многополосную среду на вашем ПК.

Запустите multistrap в обычном режиме, а после его выполнения и настройки всех пакетов в chroot просто скопируйте измененный двоичный файл в rootfs перед использованием rootfs на целевом оборудовании.

«Двоичный» здесь может означать просто скомпилированный исполняемый файл, но это может также означать пользовательский пакет .deb (который вы устанавливаете с помощью dpkg в chroot в конце, а не просто копируете). Последний может обеспечить большую защиту вашей модификации, поскольку вы затем можете также изменить номер версии .deb, так что ваша модификация не будет отменена позже, apt update; apt upgradeесли ваша встроенная система может получать обновления программного обеспечения во время работы.

Связанный контент