índice
- 1. O BIOS do computador inicia a virtualização
- 2. Visualização da placa de rede Linux e configurações de IP
- 3. Configuração de rede virtual Windows NAT
- 4. Modifique a porta mountd do Ubuntu
- 5. Configurações do MobaXterm
- 6. Configurações do FileZilla
- 6, configuração e inspeção da cadeia de compilação cruzada do Ubuntu
- 7, ubuntu compilar o kernel
- 8, o ubuntu compila o módulo do kernel
- 9. Instale o kernel e os módulos na placa de desenvolvimento
- 10. ubuntu modifica o Makefile para especificar o diretório do kernel
- 11. Compile o primeiro driver
-
- 1. Depois de definir a cadeia de ferramentas, configurar e compilar o kernel, execute o comando make no diretório 01_hello_drv para compilar o driver e o programa de teste, como segue:
- 2. Depois de copiar para a placa de desenvolvimento, instale o driver e verifique se foi bem-sucedido:
- 3. Execute "cat / proc / devices": veja o nome do dispositivo e o número do dispositivo
- 12. Atualização do programa
Resumido de "Embedded Linux Application Development Complete Manual_Wei Dongshan Complete Series of Video Documents V2.4"
1. O BIOS do computador inicia a virtualização
2. Visualização da placa de rede Linux e configurações de IP
Ver todas as placas de rede
ifconfig -a
Defina o IP da rede
$ sudo ifconfig ens160 192.168.1.16
Se o comando a seguir não for bem-sucedido, significa que o roteamento não está configurado:
$ ping 8.8.8.8
connect: Network is unreachable
Se "ping 8.8.8.8" for bem-sucedido, mas "ping www.baidu.com" não, o DNS não está configurado corretamente:
$ ping www.baidu.com
ping: unknown host www.baidu.com
As configurações de DNS são relativamente simples. 8.8.8.8 é um servidor DNS fácil de lembrar. Modifique o arquivo /etc/resolv.conf no Ubuntu para ler o seguinte:
nameserver 8.8.8.8
3. Configuração de rede virtual Windows NAT
4. Modifique a porta mountd do Ubuntu
Na rede NAT, se você deseja que a placa de desenvolvimento monte o Ubuntu via NFS, você precisa modificar a porta mountd para 9999.
Se você não sabe como usar o comando vi, você pode iniciar o terminal na área de trabalho do Ubuntu, execute o seguinte comando e modifique-o com a ferramenta GUI:
sudo gedit /etc/services
Explicação do comando: modificar / etc / services:
adicionar 2 linhas:
mountd 9999 / tcp
mountd 9999 / udp
5. Configurações do MobaXterm
Instale e execute o MobaXterm e configure a Sessão da seguinte forma:
Nota: Para Ubuntu usando NAT, o IP inserido na etapa 2 na figura acima é 127.0.0.1; se você não estiver usando NAT, será necessário inserir o IP do Ubuntu.
6. Configurações do FileZilla
Nota: Para Ubuntu usando NAT, o IP inserido na etapa 2 na figura acima é 127.0.0.1; se você não estiver usando NAT, será necessário inserir o IP do Ubuntu.
6, configuração e inspeção da cadeia de compilação cruzada do Ubuntu
Efetivo permanente
1. Execute: gedit ~/.bashrc
ou vi ~/.bashrc
2. Adicione ou modifique no final da linha e adicione as seguintes linhas (a terceira linha é muito longa e uma fonte pequena é usada aqui para que todos possam copiar):
export ARCH = arm
export CROSS_COMPILE = arm-buildroot-linux-gnueabihf-
export PATH = $ PATH: / home / book / 100ask_stm32mp157_pro-sdk / ToolChain / arm-buildroot-linux-gnueabihf_sdk-buildroot / bin
3. Para executar source ~/.bashrc
o comando para ter efeito, este comando deve carregar as variáveis de ambiente para essas configurações.
7, ubuntu compilar o kernel
O processo de compilação do kernel da placa de desenvolvimento STM32MP157 é o seguinte (você precisa configurar algumas variáveis de ambiente, como a cadeia de ferramentas antes de compilar o kernel):
book@100ask:~/100ask_stm32mp157_pro-sdk$ cd Linux-5.4
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make 100ask_stm32mp157_pro_defconfig
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make uImage LOADADDR=0xC2000040 -j4
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make dtbs
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ cp arch/arm/boot/uImage ~/nfs_rootfs
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ cp arch/arm/boot/dts/100ask-stm32m1p157c-pro.dtb ~/nfs_rootfs
8, o ubuntu compila o módulo do kernel
Depois que a placa de desenvolvimento STM32MP157 entrar no diretório de origem do kernel, você pode compilar o módulo do kernel:
book@100ask:~$ cd 100ask_stm32mp157_pro-sdk/Linux-5.4
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make modules -j4
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ sudo make INSTALL_MOD_PATH=/home/book/nfs_rootfs modules_install
O último comando é instalar o módulo no diretório / home / book / nfs_rootfs para backup e você obterá o diretório
/ home / book / nfs_rootfs / lib / modules.
9. Instale o kernel e os módulos na placa de desenvolvimento
Premissas: executar o comando, no livro Ubuntu / home no diretório / / nfs_rootfs já zImage ou uImage , arquivo DTB ,
e ali o subdiretório lib / modules (que contém vários módulos).
Em seguida, copie esses arquivos para a placa de desenvolvimento.
1. Se você estiver usando VMware NAT, supondo que o IP do Windows seja 192.168.1.100, depois que a placa de desenvolvimento for inicializada no Linux, insira
root para fazer login e execute os seguintes comandos (Nota: Você deve especificar a porta como 2049 e mountport como 9999):
mount -t nfs -o nolock,vers=3,port=2049,mountport=9999 192.168.1.100:/home/book/nfs_rootfs /mnt
cp /mnt/zImage /boot 或 cp /mnt/uImage /boot
cp /mnt/*.dtb /boot
cp /mnt/lib/modules /lib -rfd
sync
reboot
2. Se você estiver usando o método de ponte VMware, supondo que o IP do Ubuntu seja 192.168.1.100, execute o seguinte comando na placa de desenvolvimento:
mount -t nfs -o nolock,vers=3 192.168.1.100:/home/book/nfs_rootfs /mnt
cp /mnt/zImage /boot 或 cp /mnt/uImage /boot
cp /mnt/*.dtb /boot
cp /mnt/lib/modules /lib -rfd
sync
reboot
Finalmente reinicie a placa de desenvolvimento, ela usará o novo módulo zImage ou uImage, dtb.
10. ubuntu modifica o Makefile para especificar o diretório do kernel
Após fazer o upload do primeiro driver 01_hello_drv para o Ubuntu, modifique seu Makefile e defina a variável KERN_DIR nele para o diretório de origem do kernel. Tome IMX6ULL como exemplo, da seguinte maneira:
KERN_DIR = /home/book/100ask_imx6ull-sdk/Linux-4.9.88
11. Compile o primeiro driver
1. Depois de definir a cadeia de ferramentas, configurar e compilar o kernel, execute o comando make no diretório 01_hello_drv para compilar o driver e o programa de teste, como segue:
2. Depois de copiar para a placa de desenvolvimento, instale o driver e verifique se foi bem-sucedido:
[root@board:~]# insmod hello_drv.ko
Execute "lsmod" para ver o driver hello_drv, da seguinte maneira:
3. Execute "cat / proc / devices": veja o nome do dispositivo e o número do dispositivo
Execute "ls -l / dev / hello", você pode encontrar este nó de dispositivo, e seu número de dispositivo principal é o mesmo da figura acima: