保姆级教程:SSD202开发板从零到一,用TFTP网络刷写OpenWrt系统(含Ubuntu环境搭建)

张开发
2026/4/19 11:46:58 15 分钟阅读

分享文章

保姆级教程:SSD202开发板从零到一,用TFTP网络刷写OpenWrt系统(含Ubuntu环境搭建)
SSD202开发板OpenWrt系统网络刷写全流程实战指南刚拿到一块全新的SSD202开发板时很多开发者会面临一个共同问题如何从零开始搭建完整的嵌入式开发环境并刷写定制系统本文将带你完整走通Ubuntu环境搭建、OpenWrt固件编译到TFTP网络刷写的全流程特别适合希望深入理解嵌入式系统构建原理的开发者。1. 开发环境准备与Ubuntu系统配置在开始操作之前我们需要准备一台运行Ubuntu 16.04.3 64位系统的电脑。这个版本经过验证与SSD202开发工具链兼容性最佳。如果你使用的是更新的Ubuntu版本可能需要处理额外的依赖关系问题。首先更新系统软件源并安装基础编译工具sudo apt-get update sudo apt-get upgrade -y接下来安装OpenWrt编译所需的依赖包这些包包括交叉编译工具链、库文件和各种开发工具sudo apt-get install -y subversion build-essential libncurses5-dev zlib1g-dev \ gawk git ccache gettext libssl-dev xsltproc libxml-parser-perl \ gengetopt default-jre-headless ocaml-nox sharutils texinfo由于部分工具链需要32位库支持还需要添加i386架构支持sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install -y zlib1g:i386 libstdc6:i386 libc6:i386 libc6-dev-i386提示安装过程中如果遇到依赖冲突可以尝试使用aptitude工具而非apt-get来解决复杂的依赖关系。2. 获取源码与交叉工具链配置OpenWrt系统的可定制性来自于其模块化设计我们需要先获取SSD202专用的源码树。推荐使用国内镜像源加速下载git clone https://github.com.cnpmjs.org/wireless-tag-com/openwrt-ssd20x.git cd openwrt-ssd20x接下来配置交叉编译工具链。工具链是连接开发主机和目标板的关键桥梁它包含了针对目标处理器架构优化的编译器、链接器和库文件。下载并解压工具链到系统目录sudo tar -xvf wt-gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.gz -C /opt/将工具链路径添加到系统环境变量中编辑~/.profile文件在末尾添加PATH/opt/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin:$PATH使配置立即生效source ~/.profile验证工具链是否安装成功arm-linux-gnueabihf-gcc --version如果看到类似以下输出说明工具链配置正确arm-linux-gnueabihf-gcc (GNU Toolchain for the Arm Architecture 8.2-2018.08 (Arm-Reli8)) 8.2.03. OpenWrt系统编译与定制进入OpenWrt源码目录更新并安装所有可用的软件包源./scripts/feeds update -a ./scripts/feeds install -a -fSSD202开发板有几种不同的硬件配置编译前需要选择正确的目标机型机型名称硬件配置WT2022SSD202 SPI NANDWT2011SSD201 SPI NAND对于SSD202开发板我们选择WT2022配置make WT2022_wt开始编译过程建议使用多线程加速make Vs -j$(nproc)编译完成后生成的固件文件位于bin/target/sstar/ssd20x/WT2022/目录下主要文件包括WT2022-sysupgrade.bin系统升级文件WT2022-uImage.xz压缩内核映像WT2022-root-ubi.imgSPI NAND根文件系统注意首次编译可能需要较长时间1-3小时不等具体取决于主机性能。如果编译中断可以重新执行make命令继续而非从头开始。4. TFTP网络刷写系统实战TFTPTrivial File Transfer Protocol是嵌入式开发中常用的轻量级文件传输协议特别适合通过网络刷写系统。下面详细介绍如何通过TFTP将编译好的OpenWrt系统刷写到SSD202开发板。4.1 准备工作在Ubuntu主机上安装并配置TFTP服务器sudo apt-get install -y tftpd-hpa sudo systemctl enable tftpd-hpa sudo systemctl start tftpd-hpa配置TFTP服务器目录编辑/etc/default/tftpd-hpaTFTP_USERNAMEtftp TFTP_DIRECTORY/srv/tftp TFTP_ADDRESS:69 TFTP_OPTIONS--secure --create创建TFTP目录并设置权限sudo mkdir -p /srv/tftp sudo chmod -R 777 /srv/tftp sudo chown -R nobody:nogroup /srv/tftp将编译生成的系统镜像文件复制到TFTP目录cp bin/target/sstar/ssd20x/WT2022/WT2022-root-ubi.img /srv/tftp/SSD202_openwrt.bin4.2 开发板网络配置使用串口线连接开发板上电时按住Enter键进入uboot命令行。设置开发板和主机的IP地址确保它们在同一个子网setenv ipaddr 192.168.1.112 setenv serverip 192.168.1.166 saveenv验证网络连接ping 192.168.1.166如果看到类似host 192.168.1.166 is alive的响应说明网络连接正常。4.3 系统刷写过程通过TFTP下载系统镜像到开发板内存tftp 0x21000000 SSD202_openwrt.bin擦除NAND Flashnand erase.chip将镜像写入Flashnand write.e 0x21000000 0x00 ${filesize}最后重启开发板reset5. 系统验证与常见问题排查系统启动后可以通过串口查看启动日志确认OpenWrt是否正常启动。典型的成功启动日志会显示[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.9.77 (userhost) (gcc version 8.2.0) #1 SMP PREEMPT Mon Mar 15 15:22:35 CST 2021 ... [ 5.345678] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 5.456789] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready常见问题及解决方案TFTP传输失败检查防火墙设置sudo ufw status确认TFTP服务正在运行sudo systemctl status tftpd-hpa验证文件权限ls -l /srv/tftp/uboot无法识别网络检查网线连接尝试重置网络环境setenv ethinitauto 1; saveenv; reset系统启动卡住确认使用了正确的镜像文件检查NAND Flash是否完全擦除验证写入过程没有错误开发板成功启动OpenWrt后默认IP地址通常是192.168.1.1可以通过网页访问LuCI管理界面或使用SSH登录进行进一步配置。

更多文章