升级kernel 和dtb 、tee.bin

windows 下:platform-tools 工具

powershell: fastboot reboot  //等待uboot 进去fastboot模式

执行烧录动作:

# 烧写Image
fastboot flash 1:1 Image
# 烧写dtb
fastboot flash 1:1 imx8mp-evk.dtb
# 重启
fastboot reboot

------------------------------------------

或tftp方式,比较稳定:

# 1. 配置网络(已配过可跳过)
=> setenv ipaddr 192.168.2.167
=> setenv serverip 192.168.2.211
=> ping ${serverip}

# 2. 下载Image到内存
=> tftp 0x40000000 Image
# 3. 写入Image到boot分区
=> fatwrite mmc 1:1 0x40000000 Image ${filesize}

# 4. 下载dtb到内存
=> tftp 0x40000000 imx8mp-evk.dtb
# 5. 写入dtb到boot分区
=> fatwrite mmc 1:1 0x40000000 imx8mp-evk.dtb ${filesize}

# 6. 写入tee.bin到boot分区
=> tftp 0x40000000 tee.bin
=> mmc dev 1
=> fatwrite mmc 1:1 0x40000000 tee.bin ${filesize}

# 7. 验证写入结果
=> fatls mmc 1:1

 

为啥这两个地址都是0x40000000 ,${filesize}又是多少

https://www.doubao.com/thread/wbee779b61107f96b

 

更改dmesg log 等级:

root@imx8mpevk:~# cat /etc/rc.local

#!/bin/sh
# /etc/rc.7
echo 7 > /proc/sys/kernel/printk
exit 0

chmod +x /etc/rc.local  

 

# 改用 imx8mp 官方推荐的加载地址
setenv bootcmd 'tftp 0x40400000 Image; tftp 0x43000000 imx8mp-evk.dtb; booti 0x40400000 - 0x43000000'
saveenv
run bootcmd

setenv bootargs 'console=ttymxc1,115200 root=/dev/nfs rw init=/sbin/init  nfsroot=192.168.2.211:/mnt/img,nfsvers=3,tcp ip=192.168.2.167 netmask=255.255.255.0 gateway=192.168.2.1'


# 1. 配置bootargs
mmc dev 2  
setenv bootargs 'console=ttymxc1,115200 root=/dev/mmcblk2p2 rw rootwait init=/sbin/init loglevel=7'

# 2. 配置bootcmd
setenv bootcmd 'mmc dev 2; fatload mmc 2:1 0x40400000  Image; fatload mmc 2:1 0x43000000 imx8mp-evk.dtb; booti 0x40400000  - 0x43000000'

# 3. 保存环境变量
saveenv

# 4. 测试启动
run bootcmd

------------------------------------------------------------------------------------------

# 假设:
# - 内核源码目录:/home/jeams/linux-imx(你的源码路径)
# - 自定义输出目录:/home/jeams/kernel_out(要存放目标文件的文件夹)

source /opt/fsl-imx-wayland/6.12-walnascar/environment-setup-armv8a-poky-linux 

# 1. 创建本地输出目录(避免再用HGFS目录)
mkdir -p /home/jeams/kernel_out

# 2. 执行配置(指定本地输出目录,绝对路径!)
make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux-  O=/home/jeams/kernel_out imx_v8_defconfig

cd kernel_out
make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux-   menuconfig 

# 3. 编译内核(Image + 设备树 + 模块)
make  ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux-  Image dtbs modules 

mkdir -p ../kernel_modules

cd   ../kernel_modules
make modules_install INSTALL_MOD_PATH=../kernel_modules

 

拷贝ko文件:

scp -r lib/modules  root@192.168.2.167:/lib/modules

刷新
depmod -a 

重启后加载驱动

root@imx8mpevk:~# cat /etc/rc.local

#!/bin/sh
# /etc/rc.7
echo 7 > /proc/sys/kernel/printk
modprobe hello_drv  #load hello_drv
exit 0

 

posted @ 2026-01-17 09:10  微笑的''80  阅读(4)  评论(0)    收藏  举报