【软路由】使用Ubuntu编译适合自己的OpenWrt固件

为什么编译自己的OpenWrt固件?其实很简单,网上虽然有大神们编译了很多好用的固件,但是这些固件有的集成了很多插件,这些多余的插件很可能根本用不上,还有就是不够个性化,如果你是重度强迫症患者,那么就有必要编译出适用自己的固件。

至于其他系统没试过也不知道可不可以,网上都是用Ubuntu系统编译的

本教程使用的系统是Ubuntu 20.04 LTS x64,推荐 Ubuntu 20.04 LTS x64

要注意的是硬盘的大小,我这里给的是80G硬盘(总共给了80G,系统+数据盘=80G)

一,安装Ubuntu

1.选择中文,然后点击安装Ubuntu

2.选择键盘布局,汉语拼音然后点击继续

3.默认不动,继续

4.默认不动,点击现在安装

5.点击继续

6.选择所在地,然后点击继续

7.设置用户名和密码(这里设置的是用户名的密码),然后点击继续就安装了

8.安装完重启

9.重启完后就是向导部分了,一路跳过前进就好了。

二,设置网络

1.上面的完成后进到设置里面查看Ubuntu的IP地址,然后要给Ubuntu系统全局科学上网的设置

2.在openwrt里,你懂的,代理模式设为全局模式

3.然后我们打开Ubuntu系统里的终端更新源和安装ssh

第三行代码是查看ssh状态的,一般我们执行完第二行就可以ssh工具(比如Finalshell)连接Ubuntu系统了

sudo apt-get update
sudo apt-get install openssh-server
sudo systemctl status ssh

4.安装依赖

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

如果出现权限不够安装失败,可以切换到root账号。切换步骤如下

#1,先设置root密码
sudo passwd root
#2,然后就是切换到root
su root
#再重新执行上面的安装依赖代码

三,源码

1.拉取源码

#如果用的是root账号拉取的话会拉到root目录下,可以先进入到指定目录
cd /home/yinhe
#yinhe就是上面安装步骤设置的计算机名
git clone https://github.com/coolsnowwolf/lede
cd lede

cd lede是进入到刚拉取lede的目录

四,定制

插入一些我们想要加的插件,可以网上找

1.添加软件源。
修改lede/feeds.conf.default文件

src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small

2.自定义设备名称。
修改lede/package/base-files/files/bin/config_generate文件中的OpenWrt。我没改

3.修改默认lan口IP,lede/package/base-files/files/bin/config_generate文件中找到192.168.1.1,根据情况改。这里我也没动

4.修改版本号。
修改lede/package/lean/default-settings/files/zzz-default-settings文件中的R20.12.12OpenWrt ,(注意OpenWrt后面的空格)

echo "DISTRIB_DESCRIPTION='Yinhe $(date +%Y%m%d) @OpenWrt '" >> /etc/openwrt_release

5.系统信息内添加编译者连接。
修改lede/package/lean/autocore/files/arm/index.htmlede/package/lean/autocore/files/x86/index.htm

<tr><td width="33%"><%:author help%></td><td><a target="_blank" href="https://openwrt.iyinhe.cn:8443/"><%:author fly%></a></td></tr>

五,编译

#一共就这5句代码
./scripts/feeds update -a
./scripts/feeds install -a    
make menuconfig         #这句执行完会有一个菜单界面可以选择内核X86_64,R2S,R4S等等还有插件
make -j8 download V=s   #这是下载dl库,需要国外源,所以上面说了要设置全局科学上网

1.这里讲下make menuconfig的设置

 

2.添加的代码汉化上一步添加的编译者信息加了2个代码author help和author fly

修改lede/feeds/luci/modules/luci-base/po/zh-cn/base.po

在修改完汉化之后就可以编译了

make -j1 V=s                     #j1的1是1核,第一次编译建议1,后面再次编译可以改。

执行完make -j1 V=s 结束后没报错的话固件就已经编译好了,第一次编译需要好几个小时,后面再次编译就快了,一般半个小时到一个小时。

固件生产的目录lede/bin/targets/x86/64

x86/64就是系统架构,如果在menuconfig改的话在lede/bin/targets目录下能看到其他的文件夹

六,再次编译

#适用于不更改配置功能和插件,仅升级
cd lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s


#更改配置和插件
cd lede
rm -rf ./tmp && rm -rf .config
make menuconfig
make -j$(($(nproc) + 1)) V=s

 

 

给TA打赏
共{{data.count}}人
人已打赏
技术教程软路由

【ESXI】esxi删除无效虚拟机

2021-10-17 19:28:36

技术教程

Docker修改容器默认存储路径

2022-7-12 3:56:38

3 条回复 A文章作者 M管理员
  1. 博主,交换友情链接吗?

    • 可以的

  2. 博主,换友情链接吗?

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索