1.简介
OpenWrt是一个基于Linux的开源嵌入式操作系统,专门用于路由器和其他嵌入式设备。它提供了一个灵活的平台,允许用户自定义和控制他们的网络设备。具有以下的特性:
- 开放源代码: OpenWrt是一个完全开源的项目,由全球各地的开发者社区维护和支持。这意味着用户可以自由查看、修改和分发OpenWrt的源代码,以满足自己的需求。
- 灵活的配置: OpenWrt提供了一个强大的配置界面,允许用户对路由器进行高度个性化的定制。用户可以选择安装和配置各种软件包和功能,如网络代理、VPN服务、防火墙规则等。
- 轻量级和高效性能: OpenWrt被设计为轻量级和高效的操作系统,适用于资源有限的嵌入式设备。它采用了精简的内核和最小化的系统组件,以提供更快的启动时间和更高的性能。
- 软件包管理: OpenWrt使用自己的软件包管理系统,称为Opkg。用户可以使用Opkg来浏览、安装和升级各种软件包,从而扩展和增强他们的路由器功能。
2.代码下载编译
1,环境配置
安装相应依赖工具
sudo apt-get update
sudo apt-get install build-essential libncurses5-dev gawk git subversion gettext unzip file python
2,代码下载
#下载代码 git clone https://git.openwrt.org/openwrt/openwrt.git cd openwrt #添加第三方feeds源 #找到文件 lede/feeds.conf.default vim lede/feeds.conf.default src-git kenzok https://github.com/kenzok8/openwrt-packages src-git small https://github.com/kenzok8/small #把上面的两段复制进去保存,然后执行下面 ./scripts/feeds update -a ./scripts/feeds install -a
下载完成之后,源码在openwrt目录。
3,代码编译
1,配置menuconfig
配置需要编译的架构,选择对应开发板的架构ARM/MIPS。
cd openwrt make menuconfig
以下x86为例:
第一步,如下图第1步,进入选项,选择x86架构;
第二步,在qemu运行中会用到,这可以一起设置一下,如上图,进入箭头2选项,去掉GZip images,如下图,该步骤会将生成内核的img文件单独显示出来。
如果出现如下报错,按照下面执行,否则忽略,跳转到第二步(该部分用于升级gcc/g++,Python的版本)
Build dependency: Please install the GNU C Compiler (gcc) 8 or later Build dependency: Please reinstall the GNU C Compiler (8 or later) - it appears to be broken Build dependency: Please install the GNU C++ Compiler (g++) 8 or later Build dependency: Please reinstall the GNU C++ Compiler (8 or later) - it appears to be broken Build dependency: Please install Python >= 3.7 Build dependency: Please install Python >= 3.7 Build dependency: Please install the Python3 distutils module Build dependency: Please install the Python3 stdlib module
创建一个脚本
vim install_dependencies.sh
复制以下代码到install_dependencies.sh中。
#!/bin/bash # 安装依赖包 sudo apt update sudo apt install build-essential -y sudo apt install python3 python3-distutils python3-stdlib -y # 检查gcc版本 gcc_version=$(gcc -dumpversion) if [[ $(bc <<< "$gcc_version >= 8") -eq 0 ]]; then sudo apt install gcc-8 g++-8 -y sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100 fi # 检查Python版本 python_version=$(python3 -c 'import sys; print(sys.version_info[0]*10+sys.version_info[1])') if [[ $python_version -lt 37 ]]; then sudo apt install python3.7 -y sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1 fi echo "依赖安装完成。"
chmod +x install_dependencies.sh
./install_dependencies.sh
2,整体编译make
make -jn V=s # n需要修改为数字,实际值为编译时使用内核数,以ubuntu实际内核数为准,V=s显示编译日志
3,重新编译
重新配置新架构或其他设置
rm -rf ./tmp && rm -rf .config make menuconfig make -jn # n需要修改为数字,实际值为编译时使用内核数,以ubuntu实际内核数为准
3.总结
记录代码下载和编译方法。
原文链接:https://blog.csdn.net/qq_45056668/article/details/134738297?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836740116800186526948%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836740116800186526948&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-4-134738297-null-null.nonecase&utm_term=%E8%B7%AF%E7%94%B1%E5%99%A8%E3%80%81openwrt