基于北斗和4G Cat1模组的智慧物流开发(三)遇到的坑(三)
考虑到之前只编译内核的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. 使用在独立的交叉编译环境下编译 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. 板载 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目录。否则执行下面的命令会报错。这是之前执行的报错图片:
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虚拟机是报错,如图所示:
解决办法:在帮助——关于——先查看版本,下载对应版本的扩展包:http://download.virtualbox.org/virtualbox/
下载Oracle_VM_VirtualBox_Extension_Pack-6.0.4.vbox-extpack,安装后,重新运行4Gcat可以进入系统,但是还是分配USB设备。要VBOX USB设置,配置滤波器选择需要的USB设备,或者配置一个空滤波器。如图所示:
能读取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卡放到开发版,重启后发现屏幕还是点不亮。
- 点赞
- 收藏
- 关注作者
评论(0)