Tabla de contenido
- 1. El BIOS de la computadora inicia la virtualización.
- 2. Vista de la tarjeta de red de Linux y configuración de IP
- 3. Configuración de red virtual NAT de Windows
- 4. Modifica el puerto de montaje de Ubuntu.
- 5. Configuración de MobaXterm
- 6. Configuración de FileZilla
- 6, configuración e inspección de la cadena de compilación cruzada de ubuntu
- 7, ubuntu compila el kernel
- 8, ubuntu compila el módulo del kernel
- 9. Instale el kernel y los módulos en la placa de desarrollo.
- 10. ubuntu modifica el Makefile para especificar el directorio del kernel
- 11. Compile el primer controlador
-
- 1. Después de configurar la cadena de herramientas, configurar y compilar el kernel, ejecute el comando make en el directorio 01_hello_drv para compilar el controlador y el programa de prueba, de la siguiente manera:
- 2. Después de copiar a la placa de desarrollo, instale el controlador y verifique si es exitoso:
- 3. Ejecute "cat / proc / devices": vea el nombre y el número del dispositivo
- 12. Actualización del programa
Resumido de "Manual completo de desarrollo de aplicaciones de Linux integrado_Wei Dongshan Serie completa de documentos de video V2.4"
1. El BIOS de la computadora inicia la virtualización.
2. Vista de la tarjeta de red de Linux y configuración de IP
Ver todas las tarjetas de red
ifconfig -a
Establecer IP de red
$ sudo ifconfig ens160 192.168.1.16
Si el siguiente comando no tiene éxito, significa que el enrutamiento no está configurado:
$ ping 8.8.8.8
connect: Network is unreachable
Si "ping 8.8.8.8" es exitoso, pero "ping www.baidu.com" no es exitoso, el DNS no está configurado correctamente:
$ ping www.baidu.com
ping: unknown host www.baidu.com
La configuración de DNS es relativamente simple. 8.8.8.8 es un servidor DNS fácil de recordar. Modifique el archivo /etc/resolv.conf en Ubuntu para que se lea de la siguiente manera:
servidor de nombres 8.8.8.8
3. Configuración de red virtual NAT de Windows
4. Modifica el puerto de montaje de Ubuntu.
En la red NAT, si desea que la placa de desarrollo monte Ubuntu a través de NFS, debe modificar el puerto mountd a 9999.
Si no sabe cómo usar el comando vi, puede iniciar el terminal en el escritorio de Ubuntu, ejecute el siguiente comando y modifíquelo con la herramienta GUI:
sudo gedit /etc/services
Explicación del comando: modificar / etc / services:
agregar 2 líneas:
mountd 9999 / tcp
mountd 9999 / udp
5. Configuración de MobaXterm
Instale y ejecute MobaXterm, y configure la sesión de la siguiente manera:
Nota: Para Ubuntu usando NAT, la IP ingresada en el paso 2 en la figura anterior es 127.0.0.1; si no está usando NAT, debe ingresar la IP de Ubuntu.
6. Configuración de FileZilla
Nota: Para Ubuntu que usa NAT, la IP ingresada en el paso 2 en la figura anterior es 127.0.0.1; si no está usando NAT, debe ingresar la IP de Ubuntu.
6, configuración e inspección de la cadena de compilación cruzada de ubuntu
Permanentemente efectivo
1. Ejecute: gedit ~/.bashrc
o vi ~/.bashrc
2. Agregue o modifique al final de la línea, y agregue las siguientes líneas (la tercera línea es muy larga y aquí se usa una fuente pequeña para que todos la copien):
exportar 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 ejecutar source ~/.bashrc
el comando para que surta efecto, este comando es cargar las variables de entorno para esta configuración.
7, ubuntu compila el kernel
El proceso de compilación del kernel de la placa de desarrollo STM32MP157 es el siguiente (es necesario configurar algunas variables de entorno como la cadena de herramientas antes de compilar el 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, ubuntu compila el módulo del kernel
Una vez que la placa de desarrollo STM32MP157 ingresa al directorio de origen del kernel, puede compilar el módulo del 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
El último comando es instalar el módulo en el directorio / home / book / nfs_rootfs para realizar una copia de seguridad, y obtendrá el directorio
/ home / book / nfs_rootfs / lib / modules.
9. Instale el kernel y los módulos en la placa de desarrollo.
Supuestos: ejecutando el comando, en el directorio de Ubuntu / home bajo / / nfs_rootfs ya zImage o uImage , archivo DTB ,
y hay subdirectorio lib / modules (que contiene varios módulos).
A continuación, copie estos archivos en la placa de desarrollo.
1. Si está utilizando VMware NAT, asumiendo que la IP de Windows es 192.168.1.100, después de que la placa de desarrollo se
inicie en Linux, ingrese root para iniciar sesión y luego ejecute los siguientes comandos (Nota: debe especificar el puerto como 2049 y 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. Si está utilizando el método de puente de VMware, asumiendo que la IP de Ubuntu es 192.168.1.100, ejecute el siguiente comando en la placa de desarrollo:
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 la placa de desarrollo, usará el nuevo módulo zImage o uImage, dtb ,.
10. ubuntu modifica el Makefile para especificar el directorio del kernel
Después de cargar el primer controlador 01_hello_drv en Ubuntu, modifique su Makefile y establezca la variable KERN_DIR en el directorio fuente del kernel. Tome IMX6ULL como ejemplo, de la siguiente manera:
KERN_DIR = /home/book/100ask_imx6ull-sdk/Linux-4.9.88
11. Compile el primer controlador
1. Después de configurar la cadena de herramientas, configurar y compilar el kernel, ejecute el comando make en el directorio 01_hello_drv para compilar el controlador y el programa de prueba, de la siguiente manera:
2. Después de copiar a la placa de desarrollo, instale el controlador y verifique si es exitoso:
[root@board:~]# insmod hello_drv.ko
Ejecute "lsmod" para ver el controlador hello_drv, de la siguiente manera:
3. Ejecute "cat / proc / devices": vea el nombre y el número del dispositivo
Ejecute "ls -l / dev / hello", puede encontrar este nodo de dispositivo, y su número de dispositivo principal es el mismo que el de la figura anterior: