基于北斗和4G Cat1模组的智慧物流开发(三)遇到的坑(三)

举报
wuyicom 发表于 2021/06/19 04:56:55 2021/06/19
【摘要】     考虑到之前只编译内核的dtbs文件,但是屏幕还是点不亮,现在编译TF-A,U-BOOT和Kernel查看是否能成功点亮屏幕。    1. 独立的交叉编译环境下编译 TF-Acd /home/wuyicom/softwarestar -xvf /home/wuyicom/softwares/MYiR-STM32-tf-a.tar.bz2 -C /home/wuyicom/workspa...

1.png

    考虑到之前只编译内核的dtbs文件,但是屏幕还是点不亮,现在编译TF-A,U-BOOT和Kernel查看是否能成功点亮屏幕。

    1. 独立的交叉编译环境下编译 TF-A

cd /home/wuyicom/softwares

tar -xvf /home/wuyicom/softwares/MYiR-STM32-tf-a.tar.bz2 -C /home/wuyicom/workspace

cd /home/wuyicom/workspace/MYiR-stm32-tf-a/myir-ya157c-tf-a

source /opt/st/myir/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

make -f $PWD/../Makefile.sdk all

文件解释

tf-a-stm32mp157c-ya157c-512d-v2-trusted.stm32  #包含 STM32 信息头的 U-Boot 二进制文件,在 Trusted boot chain 下用于 FSBL

tf-a-stm32mp157c-ya157c-512d-v2-serialboot.stm32  #包含 STM32 信息头的 U-Boot 二进制文件,在使用 serial 启动模式中引导 SSBL

tf-a-stm32mp157c-ya157c-512d-v2.bin  #可直接运行的 bin 文件

tf-a-stm32mp157c-ya157c-512d-v2.elf  #可用于 debug 调试的 elf 文件

root@myir:~# mkdir -p /test/tf-a

cd ..

sudo scp -r build/trusted/tf-a*.* 192.168.1.8:/test/tf-a/

注意:以下命令操作在开发板上运行,执行错误或文件写入错误,会导致开发板无法启动。如出现无法启动的情况,请重新烧写开发板即可。

root@myir:~# cd /test/tf-a

root@myir:/test/tf-a# echo 0 > /sys/class/block/mmcblk2boot0/force_ro

root@myir:/test/tf-a# echo 0 > /sys/class/block/mmcblk2boot1/force_ro

root@myir:/test/tf-a# dd if=tf-a-stm32mp157c-ya157c-512d-v2-trusted.stm32 of=/dev/mmcblk2boot0 conv=fdatasync

root@myir:/test/tf-a# dd if=tf-a-stm32mp157c-ya157c-512d-v2-trusted.stm32 of=/dev/mmcblk2boot1 conv=fdatasync

root@myir:/test/tf-a# echo 1 > /sys/class/block/mmcblk2boot0/force_ro

root@myir:/test/tf-a# echo 1 > /sys/class/block/mmcblk2boot1/force_ro

2.png

    2. 使用在独立的交叉编译环境下编译 u-boot

tar -xvf /home/wuyicom/softwares/MYiR-STM32-u-boot.tar.bz2 -C /home/wuyicom/workspace

cd /home/wuyicom/workspace/MYiR-stm32-uboot/myir-ya157c-uboot/

source /opt/st/myir/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

make -f $PWD/../Makefile.sdk all

文件解释:

u-boot-stm32mp157c-ya157c-512d-v2-trusted.stm32  #包含 STM32 信息头的 U-Boot 二进制文件,在 Trusted boot chain 下用于 SSBL

u-boot-stm32mp157c-ya157c-t-512d-trusted.elf  #elf 文件的 uboot,可用于 gdb 调试

u-boot.bin  #二进制执行代码文件,可直接执行

root@myir:/test/tf-a# mkdir /test/u-boot

cd ../build-trusted

sudo scp -r u-boot*.* 192.168.1.8:/test/u-boot/

注意:以下命令操作在开发板上运行,执行错误或文件写入错误,会导致开发板无法启动。如出现无法启动的情况,请重新烧写开发板即可。

root@myir:/test/tf-a# cd /test/u-boot

注意查看/dev/disk 分区信息,可使用命令查看

root@myir:/test/u-boot#  ls -l /dev/disk/by-partlabel/

root@myir:/test/u-boot# dd if=u-boot-stm32mp157c-ya157c-512d-v2-trusted.stm32 of=/dev/mmcblk2p1 conv=fdatasync

3.png

    3. 板载 Kernel 编译与更新,在独立的交叉编译环境下编译 Kernel

tar -xvf /home/wuyicom/software/MYiR-STM32-kernel.tar.bz2 -C /home/wuyicom/workspace

cd /home/wuyicom/workspace/MYiR-stm32-kernel/myir-ya157c-kerne

mkdir -p ../build

    3.1 配置内核

make ARCH=arm O="$PWD/../build" myc-ya157c_defconfig

cd ../build

source /opt/st/myir/2.6-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

    3.2 编译内核

make ARCH=arm uImage vmlinux dtbs -j11 LOADADDR=0xC2000040 O="$PWD/../build"

    3.3 编译内核模块

make ARCH=arm modules -j11 O="$PWD/../build"

耐心等待编译完成,生成输出文件。

build/install_artifact 看到编译输出文件,其中 build/install_artifact/lib 目录存放的是内核模块文件,build/install_artifact/boot 目录存放的是设备树与内核镜像文件。

但是要特别注意:要先建立build/install_artifact目录。否则执行下面的命令会报错。这是之前执行的报错图片:

5.png

mkdir -p $PWD/../build/install_artifact/boot/

make ARCH=arm INSTALL_MOD_PATH="$PWD/../build/install_artifact" modules_install O="$PWD/../build"

cp $PWD/../build/arch/arm/boot/uImage $PWD/../build/install_artifact/boot/

cp $PWD/../build/arch/arm/boot/dts/st*.dtb $PWD/../build/install_artifact/boot/

烧录文件列表:

类型 烧录文件 烧录文件目录

内核文件 内核文件 build/install_artifact/boot

设备树 stm32mp157c-ya157c-*.dtb build/install_artifact/boot

内核模块 modules build/install_artifact/lib/modules

设备树列表:

设备树 支持核心板 备注

stm32mp157c-ya157c-v2.dtb MYC-YA157C-V2 不带显示

stm32mp157c-ya157c-hdmi-v2.dtb MYC-YA157C-V2 支持带 HDMI 显示

stm32mp157c-ya157c-lcd-v2.dtb MYC-YA157C-V2 支持带 LCD 显示

    3.4 如何单独更新 Kernel

更新 uImage 与设备树:

通过SD卡直接更新(注意:要关掉myir系统,把TF卡放到读卡器上)

修改VirtualBox的USB设置后,启动4Gcat虚拟机是报错,如图所示:

6.png

解决办法:在帮助——关于——先查看版本,下载对应版本的扩展包:http://download.virtualbox.org/virtualbox/

下载Oracle_VM_VirtualBox_Extension_Pack-6.0.4.vbox-extpack,安装后,重新运行4Gcat可以进入系统,但是还是分配USB设备。要VBOX USB设置,配置滤波器选择需要的USB设备,或者配置一个空滤波器。如图所示:

7.png

能读取TF卡后,把相关文件拷贝到TF卡里。

cd /home/wuyicom/workspace/MYiR-stm32-kernel/build/install_artifact/

sudo cp -rf boot/* /media/wuyicom/bootfs/                                             

rm lib/modules/4.19.94-g577e771cd-dirty/source lib/modules/4.19.94-g577e771cd-dirty/build

删除编译生成文件 build/install_artifact/lib 下的软连接文件:

sudo cp -rf lib/modules/4.19.94-g577e771cd-dirty/*  /media/wuyicom/rootfs/lib/modules/4.19.94

sudo cp -rf lib/modules/* /media/wuyicom/rootfs/lib/modules/     

拷贝完文件后,把TF卡放到开发版,重启后发现屏幕还是点不亮。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。