Configuración del entorno de desarrollo del lado de la placa de software y hardware PUPANVR (4)

        Al ejecutar el programa compilado directamente en el hardware, aparece un mensaje de advertencia de que las versiones de las bibliotecas C y C++ son incorrectas. Parece deberse a la inconsistencia entre la versión del compilador y el sistema de la placa actual. Es necesario actualizar rootfs y use el paquete BSP correspondiente al compilador: Hi3536C V100R001C02SPC040, compile rootfs y use el sistema de archivos jffs2 para facilitar el desarrollo.

  • Configuración de partición:
mem=300M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs);
  • Compilación BSP

 Después de descomprimir el paquete BSP, busque Hi3536CV100_SDK_V2.0.4.0.tgz en Hi3536C V100R001C02SPC040\01.software\board, descomprímalo y ejecute: sdk.unpack en el directorio.

Consulte las instrucciones de osdrv\opensource\kernel, descargue y descomprima el kernel, aplique el parche de modificación, regrese al directorio osdrv y compile de acuerdo con las instrucciones de readme_cn.txt.

En mi ubuntu20, me indica que no se puede encontrar mkimage, solo use apt-get para instalar las herramientas correspondientes.

Al compilar en mtd-utils1.5.0 del sistema de archivos, se compilará pero se compilará. Al registrar el método de procesamiento hace unos años, lo actualicé a la versión 1.5.2.

El malentendido significa principalmente que no se pueden encontrar las funciones mayor y menor. Esta vez corregí el error y agregué la instrucción #include <sys/sysmacros.h> al archivo correspondiente. También apareció un mensaje de que el archivo de encabezado zlib no podía ser encontrado. Sí, modifiqué el Makefile correspondiente. Debido a que solo necesito usar mkfs.jffs2, me aseguro de que no se modificará después de compilar esta herramienta. Después de compilar mkfs.jffs2, cópielo a osdrv/pub/bin/pc /mkfs.jffs2.

  • Siga el método del SDK para empaquetar rootfs:

osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_glibc -l -e 0x10000 -o osdrv/pub/rootfs_glibc_64k.jffs2

  • Instale el servicio tftpd-hpa en ubuntu;
  • Ingrese el comando uboot en la placa y configure la dirección IP relevante;
  • Utilice las herramientas tftp y sf para escribir rootfs, como en mi entorno:
tftp 0x8200000 rootfs_glibc_64k.jffs2;

sf probe 0;sf erase 0x500000 0xb00000; sf write 0x82000000 0x500000 0xb00000;

        Después de ingresar al sistema y configurar la IP, monte en el directorio NFS de uboot y no se informará ningún error al ejecutar el programa.

       

  • configuración del entorno MPP;

Coloque el directorio Hi3536CV100_SDK_V2.0.4.0\mpp\ko en el directorio de montaje y ejecútelo en la placa. Sin embargo, se informan errores de módulo como el símbolo desconocido devm_pinctrl_put. Parece que el kernel debería actualizarse.

Primero haga una copia de seguridad del kernel del lado de la placa y luego actualice el kernel.

El kernel compilado directamente en BSP puede ejecutarse normalmente y la red también es normal. Parece suerte. No hay muchos cambios entre el fabricante y la DEMO oficial. Luego ejecute el siguiente script.

 ./load3536c -i -total 512 -octavo 300

Se cargan los KO correspondientes de MPP.

Con estos entornos implementados, básicamente puede desarrollar todas las funciones comerciales en esta placa: copie el controlador mpp y la biblioteca en el SDK al directorio de montaje de ubuntu y cárguelos mediante comandos.

/nfsroot/hi3536c/mpp/ko # lsmod
Module                  Size  Used by    Tainted: P  
hi3536c_adec            6099  0 
hi3536c_aenc           85360  0 
hi3536c_ao            355555  0 
hi3536c_ai            206470  1 hi3536c_aenc
hi3536c_aio            25556  0 
hi3536c_ive           183354  0 
hi3536c_vda           566389  0 
hi3536c_jpege          46427  0 
hi3536c_h265e         157524  0 
hi3536c_h264e         139170  0 
hi3536c_vedu           11723  0 
hi3536c_chnl           36078  0 
hi3536c_venc          227024  3 hi3536c_jpege,hi3536c_h265e,hi3536c_h264e
hi3536c_rc            180446  0 
hi3536c_hdmi          295031  0 
hifb                   79096  0 
hi3536c_vou           436942  0 
hi3536c_vpss          365830  0 
hi3536c_vgs           170236  0 
hi3536c_region         76502  0 
hi3536c_tde            99004  0 
hi3536c_jpegd           4373  0 
hi3536c_vfmw         1283461  0 
hi3536c_vdec          233615  0 
hi3536c_sys            65523  3 hi3536c_aenc,hi3536c_aio,hi3536c_venc
hi3536c_base           47502 24 hi3536c_adec,hi3536c_aenc,hi3536c_ao,hi3536c_ai,hi3536c_aio,hi3536c_ive,hi3536c_vda,hi3536c_jpege,hi3536c_h265e,hi3536c_h264e,hi3536c_vedu,hi3536c_chnl,hi3536c_venc,hi3536c_rc,hi3536c_hdmi,hifb,hi3536c_vou,hi3536c_vpss,hi3536c_vgs,hi3536c_region,hi3536c_tde,hi3536c_vfmw,hi3536c_vdec,hi3536c_sys
hi_osal                58462 26 hi3536c_adec,hi3536c_aenc,hi3536c_ao,hi3536c_ai,hi3536c_aio,hi3536c_ive,hi3536c_vda,hi3536c_jpege,hi3536c_h265e,hi3536c_h264e,hi3536c_vedu,hi3536c_chnl,hi3536c_venc,hi3536c_rc,hi3536c_hdmi,hifb,hi3536c_vou,hi3536c_vpss,hi3536c_vgs,hi3536c_region,hi3536c_tde,hi3536c_jpegd,hi3536c_vfmw,hi3536c_vdec,hi3536c_sys,hi3536c_base
sys_config              2845  0 

¡Comprueba que estos kos estén cargados!

PUPANVR

PUPANVR: PUPANVR es un sistema NVR integrado de código abierto diseñado para crear un sistema NVR estable, multiplataforma y fácil de usar.

Supongo que te gusta

Origin blog.csdn.net/jhting/article/details/121737975
Recomendado
Clasificación