Tabla de contenido:
- Suministros
- Paso 1: Obtener las herramientas necesarias
- Paso 2: compilación de herramientas de compilación nativas para la compilación cruzada
- Paso 3: parchear el kernel y configurar el kernel
- Paso 4: Construyendo el Kernel RT
- Paso 5: Instalar un nuevo kernel
Video: Compilación del kernel RT de 64 bits para Raspberry Pi 4B.: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Este tutorial cubrirá el proceso de construcción e instalación del núcleo en tiempo real de 64 bits en Raspberry Pi. RT Kernel es crucial para la funcionalidad completa de ROS2 y otras soluciones de IOT en tiempo real.
El kernel se instaló en Raspbian basado en x64 que se puede obtener aquí
Nota. Este tutorial, aunque sencillo, requiere conocimientos básicos del sistema operativo Linux.
También debido a las limitaciones de esta plataforma, todos los enlaces http carecen de h. Para solucionarlos, simplemente agregue "h" al frente del enlace
Suministros
PC basada en x64 con Linux
Raspberry Pi 4B con Raspbian 64 ya instalado
Conexión a Internet.
Paso 1: Obtener las herramientas necesarias
Primero debemos optar por las herramientas de desarrollo necesarias.
Se pueden obtener ejecutando los siguientes comandos en la terminal de Linux
sudo apt-get install build-essential libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bison flexsudo apt-get install libncurses-dev libssl-dev
Paso 2: compilación de herramientas de compilación nativas para la compilación cruzada
El siguiente paso es preparar y compilar herramientas para la compilación cruzada de nuestro kernel.
La primera herramienta que instalaremos es Binutils. Este tutorial fue probado con la versión 2.35 de binutils.
cd ~ / Downloadswget ttps: //ftp.gnu.org/gnu/binutils/binutils-2.35.tar.bz2tar xf binutils-2.35.tar.bz2cd binutils-2.35 /./ configure --prefix = / opt / aarch64 - destino = aarch64-linux-gnu --disable-nls
Una vez finalizada la configuración, debemos compilar el programa usando los siguientes comandos
hacer -jx
sudo hacer instalar
donde -jx significa cuántos trabajos desea ejecutar i parrarell. La regla general es que no supere la cantidad de subprocesos que tiene su sistema. (por ejemplo make -j16)
y finalmente necesitamos exportar la ruta
export PATH = $ PATH: / opt / aarch64 / bin /
Luego procedemos con la construcción e instalación de GCC
cd..wget ttps: //ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xztar xf gcc-8.4.0.tar.xzcd gcc-8.4.0 /. /contrib/download_prerequisites./configure --prefix = / opt / aarch64 --target = aarch64-linux-gnu --with-newlib --without-headers / --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float / --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic / --enable-languages = c --disable-multilib
De lo mismo que antes, hacemos e instalamos nuestro compilador.
hacer all-gcc -jx
sudo make install-gcc
Si todo salió bien siguiendo el comando
/ opt / aarch64 / bin / aarch64-linux-gnu-gcc -v
debería resultar en una respuesta similar a esta.
ux-gnu-gcc -v Usando especificaciones integradas. COLLECT_GCC = / opt / aarch64 / bin / aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER = / opt / aarch64 / libexec / gcc / aarch64-linux-gnu / 8.4.0 / lto-wrapper Destino: aarch64-linux-gnu Configurado con:./configure --prefix = / opt / aarch64 --target = aarch64-linux-gnu --with-newlib --without-headers --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages = c --disable-multilib Modelo de subproceso: versión única de gcc 8.4.0 (GCC)
Paso 3: parchear el kernel y configurar el kernel
Ahora es el momento de obtener nuestro kernel y el parche RT.
Este tutorial usará rpi kernel v 5.4 y el parche RT RT32. Esta combinación funcionó bien para mí. Sin embargo, todo debería funcionar bien con diferentes versiones.
mkdir ~ / rpi-kernel
cd ~ / rpi-kernel git clone ttps: //github.com/raspberrypi/linux.git -b rpi-5.4.y wget ttps: //mirrors.edge.kernel.org/pub/linux/kernel/projects/rt /5.4/older/patch-5.4.54-rt32.patch.gz mkdir kernel-out cd linux
luego desempaque el parche.
gzip -cd../patch-5.4.54-rt32.patch.gz | parche -p1 --verbose
E inicializar la configuración para Rpi 4B
make O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- bcm2711_defconfig
Después de esto, debemos ingresar al menuconfig
make O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- menuconfig
Cuando se lanza, necesitamos la configuración existente, luego vamos a
General -> Modelo de preeminencia y seleccione la opción Tiempo real.
que guardamos la nueva configuración y salimos del menú.
Paso 4: Construyendo el Kernel RT
Ahora es el momento de la compilación. Tenga en cuenta que puede llevar mucho tiempo dependiendo de las capacidades de su PC.
make -jx O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-
Como antes, -jx significa número de trabajos. Después de una compilación exitosa, necesitamos empaquetar nuestro Kernel y enviarlo a Raspberry Pi. Para hacer esto ejecutamos los siguientes comandos.
export INSTALL_MOD_PATH = ~ / rpi-kernel / rt-kernelexport INSTALL_DTBS_PATH = ~ / rpi-kernel / rt-kernelmake O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu- modules_install dtbs_kerinstall-cp.. out / arch / arm64 / boot / Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz * cd..
Ahora nuestro kernel debería estar dentro del archivo rt-kernel.tgz y listo para ser enviado e instalado.
Paso 5: Instalar un nuevo kernel
La forma más fácil de enviar nuestro kernel a raspbperry es usando scp.
Simplemente ejecutamos el siguiente comando.
scp rt-kernel.tgz pi @: / tmp
Ahora necesitamos iniciar sesión en nuestro pi a través de ssh y descomprimir nuestro Kernel.
ssh pi @
Cuando iniciamos sesión, copiamos nuestros archivos usando los siguientes comandos.
cd / tmptar xzf rt-kernel.tgz cd boot sudo cp -rd * / boot / cd../lib sudo cp -dr * / lib / cd../overlays sudo cp -dr * / boot / superposiciones cd../ broadcom sudo cp -dr bcm * / boot /
Después de eso, lo que queda por hacer es editar el archivo /boot/config.txt y agregar la siguiente línea.
kernel = kernel8.img
Después de reiniciar pi, todo debería funcionar bien.
Para comprobar si el nuevo kernel se instaló correctamente, puede ejecutar
uname -a
mando
Recomendado:
Fuente de alimentación para banco de laboratorio de bricolaje [compilación + pruebas]: 16 pasos (con imágenes)
Fuente de alimentación para banco de laboratorio de bricolaje [Build + Tests]: En este video / instructivo le mostraré cómo puede hacer su propia fuente de alimentación de banco de laboratorio variable que puede entregar 30V 6A 180W (10A MAX por debajo del límite de potencia). Límite de corriente mínimo 250-300mA. También verá precisión, carga, protección y otros
Tutorial Python del acelerómetro digital Raspberry Pi MMA8452Q de 3 ejes de 12 bits / 8 bits: 4 pasos
Raspberry Pi MMA8452Q 3-Axis 12-bit / 8-bit Acelerómetro digital Python Tutorial: El MMA8452Q es un acelerómetro inteligente, de baja potencia, tres ejes, capacitivo, micromecanizado con 12 bits de resolución. Se proporcionan opciones flexibles programables por el usuario con la ayuda de funciones integradas en el acelerómetro, configurables para dos interrupciones
Serie de PCB universales para compilación de amplificadores de tubo: 5 pasos
Serie de PCB universales para la construcción de amplificadores de tubo: los circuitos de tubo fueron un paso crucial en el desarrollo de la electrónica. En la mayoría de las áreas, se volvieron completamente obsoletos en comparación con las tecnologías de estado sólido más baratas, más pequeñas y más eficientes. Con la excepción del audio, tanto la reproducción como
Demostración de energía para bicicletas (compilación): 7 pasos
Demostración de energía de bicicleta (construcción): El propósito de este Instructable fue crear una demostración interactiva de energía de bicicleta para despertar el interés de los niños en la ingeniería. El proyecto funciona de la siguiente manera, a medida que un niño pedalea la bicicleta más rápido, puede activar más luces en la pantalla bo
Wifi Ducky (* compilación para usuarios de Mac): 6 pasos
Wifi Ducky (* compilación para usuarios de Mac): Toma el control de una computadora conectando este dispositivo al puerto USB.Lista de piezas: ✔ Arduino Pro Micro✔ D1 Mini NodeMCU✔ Arduino IDE✔ * Convertidor de adaptador OTG de micro USB macho a USB hembra opcional ✔ Wire Este tutorial está dirigido a usuarios de Mac. Hay plen