Software de construcción para Linux generado usando multistrap

Software de construcción para Linux generado usando multistrap

Estoy trabajando en un dispositivo integrado con CPU ARM y Debian Jessie construido con multistrap. Parece que necesito instalar una versión ligeramente parcheada de ModemManager en ese sistema y lo que pido es orientación sobre cómo hacerlo.

Lo que he intentado hasta ahora es hacer chroot en los rootfs creados por multistrap, descargar el código fuente de ModemManager usando apt-get y compilarlo con chroot. Hasta ahora, ni siquiera he conseguido pasar el script de configuración debido a dependencias que no puedo satisfacer.

Se necesitan parches para resolver el problema conocido de ModemManager que puede confundir el hardware al escanear los puertos serie en busca de módems. Hay una manera de solucionar este problema al incluir los dispositivos en la lista negra mediante reglas udev, pero en este caso el puerto serie es parte del subsistema tty, para el cual no se admite la inclusión en listas negras. Lo he comprobado en el código fuente de ModemManager.

También estoy muy abierto a formas más fáciles de resolver esto, si las hay, pero no las he notado hasta ahora.

Respuesta1

Aunque esta pregunta concreta es antigua, agregar una versión modificada de algún software a un rootfs de Debian generado por multistrap es un problema común cuando se usa multistrap.

No mezclaría la compilación cruzada con multistrap, porque compilar software en los chrootfs generados por multistrap es demasiado laborioso.

En lugar de eso, compilaría el software modificado en algún lugar donde sea fácil hacerlo. Es posible que ya tenga un entorno de compilación cruzada para su arquitectura ARM de destino, pero si no, el método más fácil hoy en día, en mi opinión (y también en 2016) es usar una computadora Linux/ARM de placa única como Raspberry Pi con el sistema operativo de destino deseado. , instale allí las herramientas de compilación necesarias y compile allí el software modificado. No es necesario configurar la compilación cruzada, porque se utiliza compilación nativa. Cuando esté compilado, copie el binario creado a su entorno multistrap en su PC.

Ejecute multistrap normalmente y después de que se haya ejecutado y haya configurado todos los paquetes en el chroot, simplemente copie el binario modificado en rootfs antes de usarlo en el hardware de destino.

"Binario" aquí puede significar solo el ejecutable compilado, pero también puede significar un paquete .deb personalizado (que se instala con dpkg en el chroot al final en lugar de simplemente copiarlo). Esto último puede brindar más protección a su modificación porque luego también puede modificar el número de versión .deb para que su modificación no se revierta más adelante apt update; apt upgradesi su sistema integrado puede recuperar actualizaciones de software mientras se ejecuta.

información relacionada