在Ubuntu 20.04上为MT7628开发板搭建OpenWrt编译环境(含64位系统避坑指南)

张开发
2026/4/19 0:10:51 15 分钟阅读

分享文章

在Ubuntu 20.04上为MT7628开发板搭建OpenWrt编译环境(含64位系统避坑指南)
在Ubuntu 20.04上为MT7628开发板搭建OpenWrt编译环境含64位系统避坑指南第一次在64位Ubuntu系统上为MT7628开发板搭建OpenWrt编译环境时我遇到了一个令人抓狂的问题明明按照教程一步步操作却在编译U-boot时不断收到/bin/sh: 1: ... not found这样的错误提示。经过数小时的排查才发现问题出在64位系统缺少32位库支持上。本文将分享这个完整的过程帮助你避开这些坑一次性成功搭建编译环境。1. 环境准备与依赖安装在开始之前确保你的Ubuntu 20.04系统已经更新到最新状态。打开终端执行以下命令更新软件包列表sudo apt update sudo apt upgrade -y接下来是安装基础编译工具链。对于MT7628开发板的OpenWrt编译环境需要安装以下依赖包sudo apt install -y git g make libncurses5-dev subversion \ libssl-dev gawk libxml-parser-perl unzip wget python xz-utils \ vim zlibc zlib1g zlib1g-dev openjdk-8-jdk build-essential \ ccache gettext xsltproc64位系统特别注意事项这是最容易出错的地方。由于MT7628是32位架构在64位Ubuntu上编译时需要额外安装32位兼容库。执行以下命令sudo dpkg --add-architecture i386 sudo apt update sudo apt install -y libc6:i386 libncurses5:i386 libstdc6:i386提示很多教程会忽略i386架构的添加步骤直接安装32位库这会导致安装失败。务必先执行dpkg --add-architecture i386。2. 获取并配置U-boot源码U-boot是嵌入式系统的引导加载程序我们需要先编译它。有两种方式获取源码方法一通过Git克隆git clone https://github.com/hi-wooya/u-boot-hiwooya.git cd u-boot-hiwooya方法二下载压缩包如果网络条件不佳可以直接下载打包好的源码解压后进入目录。源码获取后需要解压交叉编译工具链到/opt目录sudo tar xvfj buildroot-gcc342.tar.bz2 -C /opt/配置环境变量让系统能找到交叉编译工具export PATH/opt/buildroot-gcc342/bin:$PATH3. 编译U-boot的详细步骤与排错进入U-boot源码目录后我们先清理之前的编译结果make clean然后启动图形化配置界面make menuconfig对于MT7628开发板典型配置如下配置项推荐值说明Chip IDMT7628选择主控芯片DRAM TypeDDR2内存类型DDR Component512Mb对应128MB内存(考虑位宽)DDR Width16bits内存位宽设置配置完成后保存退出开始编译make常见错误与解决方案/bin/sh: 1: /opt/buildroot-gcc342/bin/mipsel-linux-as: not found这通常是因为缺少32位库支持。请确认已按照第一节的说明安装了所有i386架构的依赖包。make: /opt/buildroot-gcc342/bin/mipsel-linux-gcc命令未找到检查环境变量设置是否正确确保PATH包含交叉编译工具链路径。Error 127类错误这类错误往往与权限或路径有关尝试使用sudo或检查路径拼写。4. OpenWrt源码编译全流程成功编译U-boot后接下来是OpenWrt系统的编译。首先获取源码方法一Git克隆git clone https://github.com/hi-wooya/openwrt-hiwooya.git cd openwrt-hiwooya方法二下载压缩包同样也可以选择下载打包好的源码。进入源码目录后必须执行以下关键命令更新和安装软件包./scripts/feeds update -a ./scripts/feeds install -a注意跳过这一步是许多编译失败的根源务必执行使用预置配置文件根据你的开发板型号选择cp config-HIWOOYA16128 .config # 16MB Flash 128MB RAM配置启动图形化配置界面make menuconfig推荐配置如下Target System: Ralink RT288x/RT3xxxSubtarget: MT7688 based boardsTarget Profile: 根据你的硬件选择如HIWOOYA16128加速编译的技巧使用预下载的dl包国内用户特别有用启用ccache加速后续编译export CCACHE_DIR/path/to/ccache export CCACHE_SIZE5G使用多核编译n为CPU核心数make -j$(nproc) V995. 常见问题深度解析在编译过程中你可能会遇到以下典型问题问题一网络下载失败由于OpenWrt编译需要下载大量第三方软件包国内用户常遇到下载失败。解决方案使用预下载的dl包设置HTTP代理export http_proxyhttp://your.proxy:port export https_proxyhttp://your.proxy:port问题二依赖缺失错误信息中如果出现missing library或not found等提示通常需要安装额外的开发包。可以通过以下命令查找所需包apt search 缺失的库名 sudo apt install 对应的-dev包问题三权限问题编译过程中如果遇到权限拒绝错误可以尝试确保你有足够的磁盘空间至少20GB空闲对源码目录有读写权限某些操作可能需要sudo权限6. 优化与进阶技巧成功完成基础编译后这里有一些进阶技巧可以提升你的开发效率交叉编译工具链的使用你可以直接使用工具链来编译单个文件/opt/buildroot-gcc342/bin/mipsel-linux-gcc -o test test.c自定义软件包在OpenWrt中添加自定义软件包的步骤在package目录下创建你的包目录编写Makefile定义如何构建你的软件更新配置使其出现在menuconfig中固件定制技巧修改默认IP地址编辑package/base-files/files/etc/config/network添加默认SSH密钥放置在package/base-files/files/etc/dropbear/预装软件在menuconfig中选择需要的包经过这些步骤你应该能够在Ubuntu 20.04上成功为MT7628开发板搭建完整的OpenWrt编译环境。记住嵌入式开发中遇到问题很正常关键是要学会阅读错误信息逐步排查。

更多文章