第一次 openwrt源码下载编译

本文详细记录了从零开始编译OpenWRT源码的全过程,包括虚拟机Ubuntu环境搭建、编译环境配置、源码下载、扩展包添加及源码编译等关键步骤,特别适用于MT7620开发板。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

openwrt 学习记录
第一次 openwrt源码下载编译

MT7620开发板
安装虚拟机VMware
安装Ubnutu
先进入root账户

   topeet@ubuntu:~$ su

输入密码

1、搭建编译环境 参考:https://blog.youkuaiyun.com/fyh2003/article/details/44564219
打开安装好的ubnutu界面
调出终端输入

sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install libssl-dev

环境搭建完成
2、openwrt源码下载(参考:https://blog.youkuaiyun.com/mojie_babyno1/article/details/81135039
新建目录
git 目录用来存放openwrt

 mkdir git
   cd git

新建openwrt目录

mkdir openwrt

下载源代码

cd  openwrt
 git clone git://github.com/openwrt/chaos_calmer.git

下载源码的路径和以前的不一样了,我找好多都不能下载

添加软件扩展包
(1)、将feeds.conf.default 复制到feeds.conf

cd  chaos_calmer
cp feeds.conf.default feeds.conf

(2)、更新扩展包

  ./scripts/feeds update -a 

(3)、 安装扩展包

 ./scripts/feeds install -a 

3、编译openwrt源代码
测试编译环境

make defconfig 

进入配置界面

make menuconfig

当执行完上面的命令会出现下图所示的界面,我们可以通过方向键来选择配置选项,通过空格键来选择配置状态
这里选用的是MT7620A
1)CUP选型
target system (Ralink RT288x/RT3xxx)
CPU子型号
subtarget(MT7620 based boards)
保存退出简单的配型就完成了
在这里插入图片描述

编译

make V=99

第一次编译时间较长,
注意V一定要大写
编译成功后进入如下目录

root@ubuntu:/home/topeet/git/openwrt/chaos_calmer/bin/ramips# ls

找到
openwrt-ramips-mt7620-mt7620a-squashfs-sysupgrade.bin
这个文件就是我们 mt7620a 的固件了

<think>好的,用户想了解如何自定义修改并编译OpenWRT固件。首先,我需要回忆相关的步骤和引用中的信息。根据引用[3]和[4],编译过程需要准备环境、获取源码、配置、编译和生成固件。用户可能需要详细的步骤说明。 首先,编译前的准备工作。引用[3]提到需要安装依赖包,比如Ubuntu下的build-essential等工具。这部分要详细列出命令,确保用户能正确安装。然后,获取源代码。用户可能需要知道如何克隆官方仓库或者第三方修改版,比如引用[2]中的项目地址,可能需要提到不同的代码来源。 接下来是配置环节,这是关键步骤。用户需要运行make menuconfig来选择目标设备和需要的软件包。比如引用[3]中的例子,用户可能需要添加LuCI界面、驱动等。这里要说明如何导航菜单,选择选项,保存配置。 然后,修改自定义文件。这部分用户可能需要添加自己的文件,比如网络配置或脚本。引用[3]提到将文件放在package/base-files/files目录下,需要详细说明路径和操作步骤。 编译过程可能遇到依赖问题或错误,引用[4]中的编译命令需要解释,特别是如何处理编译失败的情况,比如使用-j1或V=s来调试。同时,提醒用户可能需要多次尝试,尤其是首次编译。 生成固件的位置需要明确指出,方便用户找到输出文件。最后,测试部分要简单说明如何刷写固件和验证功能。 在相关问题部分,可以结合用户可能的后续疑问,比如如何添加驱动、解决编译错误、优化大小等。这些问题需要覆盖常见的使用场景,帮助用户深入理解。 需要注意引用来源的正确标注,比如引用[3]和[4]中的步骤,以及项目地址引用[2]。确保每个步骤都有对应的引用支持,增加可信度。同时,语言要简洁明了,步骤清晰,避免使用过于专业的术语,让新手也能跟随操作。 最后检查是否所有引用都正确对应,步骤是否逻辑连贯,是否存在遗漏的关键点。比如是否提到选择目标设备,如何处理编译错误等。确保用户按照步骤操作后能够顺利完成编译。</think>以下是自定义修改并编译OpenWRT固件的分步指南: ### 一、准备工作 1. 安装Ubuntu 20.04/22.04 LTS系统(推荐物理机或虚拟机) 2. 安装编译依赖: ```bash sudo apt update sudo apt install -y build-essential ccache ecj fastjar file g++ gawk \ gettext git java-propose-classpath libelf-dev libncurses5-dev \ libssl-dev python3 python3-distutils python3-setuptools \ python3-dev rsync subversion unzip zlib1g-dev wget[^3] ``` ### 二、获取源码 ```bash git clone https://gitcode.com/openwrt/openwrt.git # 官方仓库 # 或第三方修改版(如NanoPi R2s): git clone https://gitcode.com/gh_mirrors/open/openwrt-ci[^2] ``` ### 三、配置编译选项 1. 更新feeds: ```bash cd openwrt ./scripts/feeds update -a ./scripts/feeds install -a ``` 2. 启动配置界面: ```bash make menuconfig ``` - Target System选择硬件架构(如x86) - Subtarget选择具体型号 - 勾选需要的软件包: ```text LuCI -> Applications -> luci-app-firewall Kernel modules -> USB Support -> kmod-usb-serial-ch341 ``` ### 四、自定义修改 1. 添加驱动/功能: ```bash # 示例添加RT3070驱动 echo "CONFIG_PACKAGE_kmod-rt2800-usb=y" >> .config ``` 2. 修改默认配置: ```bash vim package/base-files/files/etc/config/network # 修改默认网络设置 ``` ### 五、编译过程 ```bash make -j$(nproc) # 多核编译 # 若失败可尝试 make -j1 V=s # 单线程显示详细错误[^4] ``` ### 六、获取固件 编译完成后在以下路径获取: ```text bin/targets/<架构>/<子型号>/openwrt-<版本>-<设备型号>-squashfs-sysupgrade.bin ``` ### 七、刷机测试 通过Web界面或sysupgrade命令刷入固件,验证驱动和功能是否正常加载。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值