Índice:
- Suprimentos
- Etapa 1: Obtendo as ferramentas necessárias
- Etapa 2: compilar ferramentas nativas de compilação para compilação cruzada
- Etapa 3: corrigindo e configurando o kernel
- Etapa 4: Construindo Kernel RT
- Etapa 5: Instalando o Novo Kernel
Vídeo: Compilação de kernel RT de 64 bits para Raspberry Pi 4B.: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Este tutorial cobrirá o processo de construção e instalação do kernel em tempo real de 64 bits no Raspberry Pi. O kernel RT é crucial para a funcionalidade completa do ROS2 e outras soluções IOT em tempo real.
O kernel foi instalado em Raspbian baseado em x64 que pode ser obtido aqui
Observação. Este tutorial, embora seja simples, requer conhecimento básico do sistema operacional Linux.
Também devido às limitações desta plataforma, todos os links http não possuem h. Para corrigi-los, basta adicionar "h" no início do link
Suprimentos
PC baseado em x64 com Linux
Raspberry Pi 4B com Raspbian 64 já instalado
Conexão com a Internet.
Etapa 1: Obtendo as ferramentas necessárias
Primeiro, precisamos optar por ferramentas de desenvolvimento neccecery.
Eles podem ser obtidos executando os seguintes comandos no terminal 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
Etapa 2: compilar ferramentas nativas de compilação para compilação cruzada
O próximo passo é pré-preparar e compilar ferramentas para compilação cruzada de nosso kernel.
A primeira ferramenta que iremos instalar é o Binutils. Este tutorial foi testado com o binutils versão 2.35.
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 - target = aarch64-linux-gnu --disable-nls
Após a conclusão da configuração, precisamos compilar o programa usando os seguintes comandos
make -jx
sudo make install
onde -jx significa quantos jobs você deseja executar i parrarell. A regra é não ultrapassar a quantidade de threads que seu sistema possui. (por exemplo make -j16)
e, finalmente, precisamos exportar o caminho
export PATH = $ PATH: / opt / aarch64 / bin /
Em seguida, prosseguimos com a construção e instalação do 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
Do que o mesmo de antes de fazer e instalar nosso compilador
make all-gcc -jx
sudo make install-gcc
Se tudo correu bem seguindo o comando
/ opt / aarch64 / bin / aarch64-linux-gnu-gcc -v
deve resoult em responder semelhante a este.
ux-gnu-gcc -v Usando especificações 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 com:./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 thread: gcc único versão 8.4.0 (GCC)
Etapa 3: corrigindo e configurando o kernel
Agora é hora de obter nosso kernel e patch RT.
Este tutorial usará o kernel rpi v 5.4 e o patch RT32 do RT. Essa combinação funcionou bem para mim. No entanto, tudo deve funcionar bem com versões diferentes.
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
em seguida, descompacte o patch.
gzip -cd../patch-5.4.54-rt32.patch.gz | patch -p1 --verbose
E inicializar a configuração para Rpi 4B
make O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- bcm2711_defconfig
Depois disso, precisamos entrar no menuconfig
make O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- menuconfig
Quando for lançado, precisamos da configuração existente, então vá para
General -> Preemtion Model e selecione a opção Real Time.
então salvamos a nova configuração e saímos do menu.
Etapa 4: Construindo Kernel RT
Agora é hora de compilação. Observe que pode demorar muito, dependendo dos recursos do seu PC.
make -jx O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-
Como antes, -jx significa número de empregos. Após a compilação bem-sucedida, precisamos empacotar nosso kernel e enviá-lo para Raspberry Pi. Para fazer isso, executamos os seguintes 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_installcp../kernel- out / arch / arm64 / boot / Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz * cd..
Agora nosso kernel deve estar dentro do arquivo rt-kernel.tgz e pronto para ser enviado e instalado.
Etapa 5: Instalando o Novo Kernel
A maneira mais fácil de enviar nosso kernel para o raspbperry é usando scp.
Simplesmente executamos o seguinte comando.
scp rt-kernel.tgz pi @: / tmp
Agora precisamos fazer o login em nosso pi via ssh e descompactar nosso Kernel.
ssh pi @
Quando conectado, copiamos nossos arquivos usando os seguintes 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 / overlays cd../ broadcom sudo cp -dr bcm * / boot /
Depois disso, o que resta fazer é editar o arquivo /boot/config.txt e adicionar a linha a seguir.
kernel = kernel8.img
Depois de reiniciar o pi, tudo deve estar funcionando bem.
Para verificar se o novo kernel foi instalado com sucesso você pode executar
uname -a
comando
Recomendado:
Compilação para PC: 5 etapas
PC Build: Hoje você vai construir seu próprio computador. Os componentes de que você precisa são: Placa-mãe RAM CPU Heat Sync Hard Drive ou SSD Power Supply Case Ventiladores GPUTHá muitos benefícios em construir seu próprio computador, como ser mais barato
Raspberry Pi MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Python Tutorial: 4 etapas
Raspberry Pi MMA8452Q 3 eixos 12 bits / 8 bits Acelerômetro digital Python Tutorial: O MMA8452Q é um acelerômetro inteligente, de baixo consumo de energia, capacitivo, microusinado e de três eixos com 12 bits de resolução. Opções flexíveis programáveis pelo usuário são fornecidas com o auxílio de funções incorporadas no acelerômetro, configuráveis para duas interrupções
Compilação do efeito de guitarra do disjuntor de bits do estúdio Parasit: 5 etapas (com imagens)
Parasit Studio Bit Breaker Guitar Effect Build: Parasite Studio é um site de efeitos de guitarra DIY que fornece vários materiais para fazer seus próprios efeitos de guitarra, especialmente aqueles que lidam com efeitos digitais, como bitbreaker ou fuzz. O endereço Parasite Studio está localizado emhttps: //www.parasi
Raspberry Pi MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Java Tutorial: 4 etapas
Raspberry Pi MMA8452Q Acelerômetro digital de 3 eixos, 12 bits / 8 bits, Java Tutorial: O MMA8452Q é um acelerômetro inteligente, de baixo consumo de energia, capacitivo, microusinado e de três eixos com 12 bits de resolução. Opções flexíveis programáveis pelo usuário são fornecidas com o auxílio de funções incorporadas no acelerômetro, configuráveis para duas interrupções
CÂMERA UNICORN - Compilação de câmera Raspberry Pi Zero W NoIR 8MP: 7 etapas (com fotos)
CÂMERA UNICORN - Compilação de câmera Raspberry Pi Zero W NoIR 8MP: Compilação de câmera Pi Zero W NoIR 8MP Este Instructable foi criado para ajudar qualquer pessoa que queira uma câmera infravermelha ou uma câmera portátil muito legal ou uma câmera portátil Raspberry Pi ou apenas queira se divertir, heheh . Este é o mais acessível e configurável