[Beijing Xunwei] i.MX6ULL Terminator Linux WIFI controlador experimento Wpa_supplicant portabilidad

1 puerto libopenssl

wpa_supplicant depende de libopenssl, por lo que primero debe portar libopenssl, primero obtenga el paquete comprimido openssl-1.1.1-stable-SNAP-20190915.tar.gz, cópielo en el sistema Ubuntu y descomprímalo para obtener openssl-1.1.1 -stable-SNAP- 20190915 y luego cree una nueva carpeta llamada "libopenssl" para almacenar los resultados de la compilación de libopenssl. Ingrese el directorio descomprimido openssl-1.1.1-stable-SNAP-20190915, y luego ejecute el siguiente comando para configurar: Después de que la
./config shared no-asm --prefix=/home/topeet/tool/libopenssl/
configuración sea exitosa, se generará un Makefile, abra el Makefile y busque todos los contenidos que contengan "-m64 ". Hay dos lugares Para las variables CNF_CFLAGS y CNF_CXXFLAGS, elimine" -m64 "en estas dos variables, como se muestra en la Figura 1.1 después de la modificación:
Inserte la descripción de la imagen aquí

Figura 1.1

Después de modificar el Makefile, use el siguiente comando para compilar e instalar libopenssl:

make CROSS_COMPILE=arm-linux-gnueabihf- -j4
make install

Una vez completada la compilación y la instalación, hay contenido en el directorio libopenssl como se muestra en la Figura 1.2:
Inserte la descripción de la imagen aquí

Figura 1.2

El directorio lib es lo que necesitamos. Copie todos los archivos en el directorio lib al directorio / usr / lib en el sistema de archivos raíz de la placa de desarrollo. Cuando utilice una unidad flash USB para copiar archivos, es posible que "no pueda crear un enlace simbólico". Estos archivos se pueden empaquetar en el directorio lib en un paquete comprimido en formato tar.gz y luego copiar al sistema de archivos raíz y descomprimido en / usr / lib Bajo contenido. Ejecute el siguiente comando:

cd /home/topeet/tool/libopenssl/lib/   		//进入lib目录下
tar -czvf lib.tar.gz *							//打包当前目录下的文件生成lib.tar.gz

Luego cópielo en el sistema de archivos raíz a través del disco U y descomprímalo en el directorio / usr / lib.

mount /dev/sda1 /mnt 				//挂载U盘到mnt目录下
tar -xvf /mnt/lib.tar.gz -C /usr/lib		//直接解压lib.tar.gz到/usr/lib目录下

"-C" especifica el directorio descomprimido.

2 portabilidad de la biblioteca libnl

wpa_supplicant también depende de libnl, por lo que debe migrar la biblioteca libnl, obtener el paquete comprimido libnl-3.2.23.tar.gz, luego copiarlo en el sistema Ubuntu y descomprimirlo para obtener la carpeta libnl-3.2.23, y luego cree un nuevo nombre La carpeta llamada "libnl" se usa para almacenar los resultados de la compilación de libnl. Ingrese a la carpeta libnl-3.2.23 y luego ejecute el siguiente comando para configurar:
./configure --host=arm-linux-gnueabihf --prefix=/home/topeet/tool/libnl/
-host se usa para especificar el prefijo del compilador cruzado, aquí se establece en "arm-linux-gnueabihf", -prefix se usa para especificar el directorio donde se almacenan los resultados de la compilación. Esto se configurará en la carpeta libnl que acabamos de crear. Una vez completada la configuración, puede ejecutar los siguientes comandos para compilar e instalar la biblioteca libnl:

make -j12
make install

El directorio libnl después de la compilación e instalación es como se muestra en la Figura 2.1:
Inserte la descripción de la imagen aquí

Figura 2.1

Necesita usar el archivo de biblioteca lib bajo el archivo libnl, copie el archivo de biblioteca bajo lib al directorio / usr / lib a través del disco U.

3 migración wpa_supplicant

A continuación, trasplante wpa_supplicant, obtenga el paquete fuente wpa_supplicant wpa_supplicant-2.7.tar.gz, cópielo al sistema Ubuntu y descomprímalo para obtener la carpeta wpa_supplicant-2.7, ingrese el directorio wpa_supplicant-2.7, como se muestra en la Figura 3.1:
Inserte la descripción de la imagen aquí

Figura 3.1

Ingrese el directorio wpa_supplicant en la figura, y luego configúrelo. La configuración de wpa_supplicant es especial. Debe copiar el archivo defconfig en wpa_supplicant y cambiarle el nombre a .config. El comando es el siguiente:

cd wpa_supplicant/ 
cp defconfig .config

Una vez completado, abra el archivo .config, especifique el compilador cruzado, openssl, la biblioteca libnl y la ruta del archivo de encabezado en él, y configúrelo de la siguiente manera:

 49 CC = arm-linux-gnueabihf-gcc
    /* openssl 库文件和头文件路径*/
 50 CFLAGS += -I/home/topeet/tool/libopenssl/include
 51 LIBS += -L/home/topeet/tool/libopenssl/lib -lssl -lcrypto
 52  /*libnl库文件和头文件路径*/
 53 CFLAGS += -I/home/topeet/tool/libnl/include/libnl3
 54 LIBS += -L/home/topeet/tool/libnl/lib

La variable CC se usa para especificar el compilador cruzado, aquí es arm-linux-gnueabihf-gcc, CFLAGS especifica la ruta del archivo de encabezado de la biblioteca que se usará y LIBS especifica la ruta de la biblioteca que se usará. Las bibliotecas openssl y libnl son necesarias para compilar wap_supplicant, por lo que la ruta de la biblioteca y la ruta del archivo de encabezado de estas dos se especifican en el código. El contenido anterior en .config se muestra en la Figura 3.2:
Inserte la descripción de la imagen aquí

Figura 3.2

Después de modificar el archivo .config, puede compilar wap_supplicant. Utilice el siguiente comando para compilar en el directorio wap_supplicant:

export PKG_CONFIG_PATH=/home/topeet/tool/libnl/lib/pkgconfig:$PKG_CONFIG_PATH
make

Primero, usamos exportar para especificar la ruta pkgconfig de la biblioteca libnl, y la variable de entorno PKG_CONFIG_PATH contiene la ruta del paquete pkgconfig. Hay un directorio llamado "pkgconfig" en tool / libnl / lib /, como se muestra en la Figura 3.3;
Inserte la descripción de la imagen aquí

Figura 3.3

Al compilar wpa_supplicant, debe especificar la ruta pkgconfig de libnl; de lo contrario, aparecerá el error "libnl-3.0" o "libnl-3.0.pc" no encontrado. Una vez completada la compilación, los dos comandos wpa_supplicant y wpa_cli se generarán en este directorio, como se muestra en la Figura 3.4:
Inserte la descripción de la imagen aquí

Figura 3.4

Copie los archivos wpa_cli y wpa_supplicant compilados en el directorio / usr / bin del sistema de archivos raíz de la placa de desarrollo. Una vez completada la copia, puede probar si se pueden usar estos dos comandos. Ingrese el siguiente comando en la terminal:
wpa_supplicant -v El
comando anterior verifica el número de versión de wpa_supplicant, si wpa_supplicant funciona normalmente, imprimirá el número de versión, como se muestra en la Figura 3.5:
Inserte la descripción de la imagen aquí

Figura 3.5

Se puede ver que el número de versión de wpa_supplicant se emite normalmente, lo que indica que la migración de wpa_supplicant se ha realizado correctamente. El siguiente paso es utilizar wpa_supplicant para vincular el WIFI de la placa de desarrollo al hotspot para realizar la función de acceso a Internet WIFI.

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/BeiJingXunWei/article/details/112917025
Recomendado
Clasificación