全志T113开发实战:从menuconfig到固件打包,详解Root密码配置全流程

张开发
2026/4/15 4:53:03 15 分钟阅读

分享文章

全志T113开发实战:从menuconfig到固件打包,详解Root密码配置全流程
1. 全志T113开发板Root密码配置实战指南第一次拿到全志T113开发板时我最头疼的就是如何安全地配置Root密码。作为一款广泛应用于智能硬件领域的处理器T113的Linux系统定制化需求非常普遍。今天我就来分享从menuconfig配置到固件打包的完整流程手把手教你实现一次配置永久生效的Root密码设置方案。在实际项目中很多开发者会遇到这样的困扰明明在系统里用passwd命令改了密码重新烧录固件后又恢复默认了。这是因为没有在系统构建阶段就固化密码配置。通过Buildroot的menuconfig系统我们可以从根本上解决这个问题。下面我会用最直白的语言配合详细的操作步骤让你彻底掌握这个实用技能。2. 开发环境准备2.1 硬件与软件需求在开始之前我们需要准备好以下环境全志T113开发板任何型号均可安装好Linux系统的开发主机推荐Ubuntu 18.04全志官方SDK本文以T113-i_v1.2为例基础的编译工具链gcc, make等建议先执行以下命令检查基础环境sudo apt update sudo apt install build-essential git ncurses-dev2.2 SDK目录结构解析全志的SDK通常包含多个关键目录T113_SDK/ ├── buildroot/ # Buildroot构建系统 ├── linux/ # Linux内核源码 ├── out/ # 编译输出目录 └── build.sh # 全志专用编译脚本特别要注意的是buildroot目录这是我们今天操作的重点区域。它包含了系统构建的所有配置项和定制脚本。3. 通过menuconfig配置Root密码3.1 进入配置界面首先我们需要进入Buildroot的配置系统cd T113_SDK/T113-i_v1.2/buildroot/buildroot-201902/ make menuconfig这个命令会启动一个基于ncurses的图形配置界面。如果你遇到Unable to find the ncurses libraries错误请先安装ncurses开发库sudo apt install libncurses5-dev3.2 密码配置详解在menuconfig界面中按以下路径找到密码设置项System configuration → Root password这里有几点需要注意密码会以明文形式保存但最终生成的系统中会转为加密格式密码长度建议8位以上包含大小写字母和数字避免使用特殊字符某些特殊字符可能导致登录问题配置完成后选择Save保存配置通常会生成一个.config文件。我建议同时备份这个文件cp .config ../configs/t113_root_password_defconfig4. 深度定制post-build脚本4.1 脚本位置与作用Buildroot在完成系统构建后会执行target/post_build.sh脚本。这是我们进行深度定制的绝佳机会。该脚本位于T113_SDK/T113-i_v1.2/buildroot/buildroot-201902/target/4.2 典型定制内容除了设置密码外我们通常还会在这个脚本中添加以下配置创建默认用户和用户组设置SSH密钥配置网络参数安装必要的启动服务一个完整的post-build.sh示例片段#!/bin/sh # 设置root密码如果menuconfig已设置这里可以省略 echo root:$1$xyz$abcdefg123456789 ${TARGET_DIR}/etc/shadow # 创建默认用户 echo testuser:x:1000:1000:Test User:/home/testuser:/bin/sh ${TARGET_DIR}/etc/passwd mkdir -p ${TARGET_DIR}/home/testuser5. 完整编译与打包流程5.1 编译前的准备工作在开始编译前建议先清理之前的构建结果make clean然后初始化全志的编译环境cd ~/T113_SDK/T113-i_v1.2 source ./build/envsetup.sh5.2 编译与验证执行完整编译./build.sh编译完成后重点检查以下文件output/target/etc/shadow- 确认root密码已正确加密output/target/etc/passwd- 确认root用户配置正确output/target/etc/inittab- 确认终端登录配置5.3 生成可烧写镜像最后一步是打包系统镜像./build.sh pack这个命令会生成位于out/目录下的固件镜像通常命名为t113_linux_xxx.img。你可以使用全志提供的PhoenixSuit工具将其烧录到开发板。6. 常见问题排查6.1 密码不生效的几种可能配置未保存确保在menuconfig中正确保存了配置编译缓存问题尝试make clean后重新编译脚本执行顺序问题检查post-build.sh是否有覆盖密码的操作6.2 登录失败的解决方案如果新密码无法登录可以通过以下方式恢复通过SD卡启动救援系统挂载原系统分区直接编辑/etc/shadow文件或者使用单用户模式修改密码7. 安全增强建议7.1 密码存储优化虽然menuconfig方便但直接将密码明文保存在配置文件中存在安全隐患。更安全的做法是在post-build.sh中动态生成密码使用加密工具处理密码首次启动时强制修改密码7.2 SSH安全配置建议配套修改SSH配置禁用root直接登录启用密钥认证修改默认SSH端口这些配置同样可以通过Buildroot的menuconfig或post-build.sh实现。8. 工程实践中的经验分享在实际量产项目中我总结出几个关键点密码配置要尽早确定后期修改成本高建议使用CI/CD自动化整个构建流程保留多个版本的.config文件以便回溯测试阶段可以使用简单密码量产前必须改为复杂密码记得有一次我们团队因为忘记在post-build.sh中更新密码导致1000台设备出厂密码不一致造成了严重的现场维护问题。从那以后我养成了在多个环节验证密码配置的习惯。

更多文章