全志V3s开发板启动配置避坑指南:手把手教你搞定boot.scr和script.bin

张开发
2026/4/17 17:05:14 15 分钟阅读

分享文章

全志V3s开发板启动配置避坑指南:手把手教你搞定boot.scr和script.bin
全志V3s开发板启动配置实战从boot.scr到script.bin的深度解析第一次拿到Lichee Pi Zero这类全志V3s开发板时最让人头疼的莫过于启动配置环节。boot.scr和script.bin这两个文件就像黑匣子明明按照教程操作却总是启动失败。本文将带你深入理解这两个关键文件的生成逻辑和配置要点避开新手常见的坑。1. 启动流程全景解析V3s如何完成系统引导全志V3s的启动过程可以分为几个关键阶段首先是BootROM固化在芯片内部的代码运行接着加载SPLSecondary Program Loader然后启动U-Boot。U-Boot阶段会读取boot.scr中的指令加载内核和设备树最后挂载根文件系统完成启动。关键点在于boot.scr负责传递启动参数script.bin则定义硬件工作状态。两者必须协同工作系统才能正常启动。常见问题往往出在这两个文件的生成或配置环节boot.scr语法错误导致U-Boot无法解析script.bin与硬件不匹配引发外设异常文件存放位置错误使系统找不到配置提示开发板第一次启动失败时建议先通过串口查看U-Boot输出信息通常会有明确的错误提示指向问题根源。2. boot.scr深度配置不只是参数传递boot.scr本质上是一个包含U-Boot命令的脚本文件由boot.cmd通过mkimage工具生成。新手最容易犯的错误是直接复制网络上的配置而不理解参数含义。2.1 典型boot.cmd文件解析setenv bootargs consolettyS0,115200 panic5 rootwait root/dev/mmcblk0p2 earlyprintk rw setenv bootm_boot_mode sec setenv machid 1029 load mmc 0:1 0x41000000 uImage load mmc 0:1 0x41d00000 script.bin bootm 0x41000000每行命令的作用bootargs参数定义内核启动参数consolettyS0,115200指定调试串口panic5内核崩溃5秒后重启root/dev/mmcblk0p2根文件系统位置加载地址配置必须与内存映射匹配uImage通常加载到0x41000000script.bin建议放在0x41d000002.2 常见问题排查表问题现象可能原因解决方案卡在Starting kernel...bootargs参数错误检查console设备名是否正确无法加载uImage加载地址冲突确认地址不在U-Boot占用区域反复重启panic参数设置过小增大panic值便于调试生成boot.scr的正确命令mkimage -C none -A arm -T script -d boot.cmd boot.scr3. script.bin配置实战硬件适配关键script.bin由sys_config.fex文本文件转换而来是全志平台特有的硬件配置文件。新手常遇到的LCD不显示、触摸屏失灵等问题多半源于此文件配置不当。3.1 fex文件核心配置项以480x272 LCD屏幕为例[lcd0_para] lcd_used 1 lcd_x 480 lcd_y 272 lcd_dclk_freq 1 lcd_pwm_used 1 lcd_hbp 46 lcd_ht 1055 lcd_vbp 23 lcd_vt 525关键参数说明lcd_x/lcd_y屏幕物理分辨率lcd_dclk_freq像素时钟频率(MHz)lcd_hbp水平后沿(像素数)3.2 配置工具链安装需要安装sunxi-tools工具包git clone https://github.com/linux-sunxi/sunxi-tools cd sunxi-tools make sudo make install生成script.bin的命令fex2bin sys_config.fex script.bin注意修改fex文件后必须重新生成bin文件且两者应保持同步。建议使用版本控制管理配置变更。4. 调试技巧与进阶配置当系统无法正常启动时可以尝试以下调试方法U-Boot命令行调试printenv # 查看当前环境变量 fatload mmc 0:1 0x41000000 uImage # 手动加载内核测试script.bin逆向分析bin2fex script.bin current.fex # 反编译现有配置内存映射检查md 0x41000000 # 查看内存内容确认加载是否正确对于需要多套配置的场景可以在U-Boot中设置变量动态切换setenv bootcmd run bootcmd_480p # 设置默认启动配置 setenv bootcmd_480p fatload mmc 0:1 0x41000000 zImage; ...开发过程中最实用的经验是每次只修改一个变量并记录变更内容。当遇到启动问题时可以快速回退到上一个可用配置。

更多文章