找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 7993|回复: 20

[IPv6双栈science完美版]基于OpenWRT官方版,自己动手编译日记

[复制链接]
发表于 2023-2-18 00:01 | 显示全部楼层 |阅读模式

背景:尝试了各家主流版本,最终发现官方OpenWRT默认、完美支持IPv6,但不包含必要的插件。
而主流的版本,对IPv6支持度都不太理想,要么屏蔽掉了一些IPv6配置参数,要么剔除掉IPv6系统组件,版本干脆不支持IPv6
于是只能自己动手编译了。
记录下来,以备参考。

1)编译环境OS选择
个人建议Ubuntu,界面交互更多,使用更容易。且对各种环境的编译支持度极佳。
Ubuntu系统官方下载链接:


2)创建一个新帐号
编译版本不能使用ROOT帐号,因此需要创建一个新的系统帐号、设置密码。
打开“终端”工具,执行:
sudo adduser myname登陆新用户:xlinux@xlinux-X1:~$ su myname密码: 切换只根目录下:myname@xlinux-X1:/home/xlinux$ cd ~myname@xlinux-X1:~$


3)准备OS系统环境
[ 注意 ] 从本步骤开始,务必开启全局科学,否则下载源码、编译中拉取依赖等会特别慢、超时导致失败等问题。


Ubuntu升级到最新的22.04 +
之后执行下述命令:
sudo apt update
sudo apt install build-essential clang flex bison g++ gawk gcc-multilib gettext \
git libncurses5-dev libssl-dev python3-distutils rsync unzip zlib1g-dev \
file wget


其他os参考官方说明:


4)下载源码并切换稳定分支
下载源代码:
# Download and update the sources


进入代码目录,并拉取源码:
cd openwrt
git pull


切换最新稳定分支:
# Select a specific code revision
git branch -a
git tag
git checkout v22.03


[说明] 这一步很重要,切换稳定分支,编译的版本是经过充分验证的稳定版本,不容易出现莫名其妙的bug, 减少很多白折腾。切身教训,供参考。


5)Feed中加入需要的组件
命令行执行如下命令,编辑feeds.conf.default
vim feeds.conf.default


文件内容替换为下述内容,里面添加了必要的组件,如hellworldpasswall等组件,你也可以继续添加其他需要的组件路径:
src-git-full helloworld https://github.com/fw876/helloworld




6)更新并安装feeds
# Update the feeds
./scripts/feeds update -a
./scripts/feeds install -a


7)图形化配置OpenWRT组件:
[注意] 执行下述命令启动图形化配置界面之前,把“终端”命令行窗口最大化。如果窗口太小会导致启动失败!


执行下述命令启动图形化配置界面
# Configure the firmware image and the kernel
make menuconfig


[注意] 这一步至关重要,决定了自己编译版本的功能完整度,如IPv6支持度等。
A)在打开的图形界面中,在第一项回车,进入目标系统选择列表,如果是intel芯片选X86,如果R2SR5S系列选Rockchip,其他芯片类似操作。
此时,第二个选项SubTarget通常会自动变更为对应的型号,如果正确不用修改,如果不正确可进入更改。
接着,进入第三个选项Target Profile,选择对应的产品型号及规格,比如R4S 4G版本。

B)进入第四个选iTarget Images,选择需要的版本包类型,通常ext4squashfs文件系统类型都给选上。ext4适合老手,可玩性更强。小白用squashfs,搞坏了可以恢复初始化,而不需要重新安装系统了。
[此处超级超级特别特别万分万分注意]


Kernel partition size, 根据你硬盘大小,尽量填大些,如5121000
Root filesystem partition size, 也尽量填大,10002000
如果这里不修改,系统会默认预留极少的剩余空间给你后续安装新组件,稍微安装几个,就会告警磁盘空间不足,无法安装新组件。
当然,你如果打算选择编译进版本更多的组件,这两个数值应该设置的更大写。
这样,也避免一些攻略说的,刷完软路由后,不重启就立即用Diskginus去修改这两个分区的大小。我个人实测,10次有9次会提示磁盘某处被bitlock加密锁定了,调整分区失败,只能哭。


[此处超级超级特别特别万分万分注意]





C)进入Global build settings,找到Enable IPv6 support in packages选项,确认处于选中状态,至关重要。
[说明:IPv6配置项一



D)进入Base system, 选中dnsmasq-full, 取消dnsmasq, dnsmasq-dhcpv6两个选项。
[注意] 务必取消dnsmasq, dnsmasq-dhcpv6两个选项,否则编译会出差!!!



继续下翻,找到firewall4,确认其选中,并取消选择firewall



E)进入kernel modules – network support, 选中kmod-ppp, kmod-pppoe, kmod-pppox, 用于软路由拨号。





继续下翻,找到kmod-wireguard, 并选中





F)进入libraries – SSL, 选中libopenssl





继续下翻,选中libustream-openssl, 取消libustream-wolfssl,或这设置为M(只编译打包,不安装)
[注意] 务必取消libustream-wolfssl,或将其设置为M,否则编译最后阶段会报依赖冲突错误,且编译失败,不能正常出包!!!



G)进入Luci – 1. collections, 选中Luci, 和Luci-ssl-openssl


[说明] 如果不选择Luci-ssl-openssl,则无法进入软路由web管理后台,只能命令行管理!





H)进入Luci – 3. Applications, 开始选择各种服务、特性组件:
adblock拦截广告:



ddns动态dns(方便出门在外访问家里设备):



passwall海淘购物:



并进入configuration选中所有协议(记住,务必选中所有协议,很多时候协议之间能够互相备份,或实现特别功能,如hysteria进行超级网络加速):








smartdns实施dns优选:







选中SSR plus, 默认选Xray-core(是v2ray的超级),并选中所有协议:






[特别重要] 务必选择uhttpd, 否则Luci界面也出不来!!



选中wireguard, 以备后用:





I)进入Luci – 4.Themes, 选择自己喜欢的OpenWRT后台web管理界面风格。





J)进入Luci – 5.Protocols, 选中openconnect, 并确认ipv6ppp已经默认被选中:





K)进入Network – Routing and redirection, 确认ip-full已经默认选中:



继续往下翻,选中 odhcp6c, odhcpd-ipv6only.
[重点注意] 不要再选中odhcpd, 否则会导致依赖冲突,编译失败!



至此,编译的各项配置已经完成。


8)启动首次编译
执行下述命令,预下载待编译组件源码。
make -j8 download V=s
执行下述命令,启动首次编译:
make -j1 V=s
[超级超级注意] 首次编译,千万使用-j1, 指的是单线程编译,不容易出现莫名其妙的编译错误。
首次编译可能需要23小时,耐性等待即可。


9)实施二次编译
当修改了target system目标系统时,如从x86修改为rockchip, 需要进行二次编译。
执行顺序如下:
cd lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s


10)将编译环境恢复初始化
如果一直出现一些莫名其妙的编译错误,无法解决,可重新初始化一次编译环境。可有效解决一直出现莫名其妙的编译错误:
make clean && ./scripts/feeds clean
rm -rf ./tmp && rm -rf .config
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

何必呢?少说几句吧,网络这么大,聚到一起也不容易!: 5.0
何必呢?少说几句吧,网络这么大,聚到一起也不容易!: 5
厉害  发表于 2023-2-18 11:17

评分

参与人数 2恩山币 +2 收起 理由
mythzmj + 1 做人要低调,拿去买糖吃吧!
南宁小张 + 1 风清云淡、飘逸悠然……极爽!最喜欢这样的.

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
 楼主| 发表于 2023-2-18 00:02 | 显示全部楼层

11) 找到编译好的包
编译好的包放在如下路径:
myname@xlinux-X1:~/openwrt/bin/targets$ ls
rockchip  x86

至此,编译一个自己的OpenWRT版本就打完收工了。蛮好玩的,快去试试吧。

评分

参与人数 1恩山币 +1 收起 理由
tian7060 + 1 能分享下编译好的固件吗

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-2-18 00:05 来自手机 | 显示全部楼层
历害哥666666
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-2-18 00:16 | 显示全部楼层
厉害,记笔记,谢谢楼主
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-2-18 01:17 | 显示全部楼层
火钳刘明
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-2-18 08:31 来自手机 | 显示全部楼层
老哥说一下如何更改内核后面的签名让系统可以使用官方软件源

点评

看描述不知道你指的是哪个地方,上图最方便,一看就知道。 另外,关于安装好后的OpenWRT、IPv6配置方法,可参考: https://www.right.com.cn/forum/thread-8276007-1-1.html  详情 回复 发表于 2023-2-18 11:01
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-2-18 09:35 | 显示全部楼层
大佬牛X呀
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-2-18 10:21 | 显示全部楼层
谢楼主分享,内容详细,图文并茂!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-18 10:58 | 显示全部楼层
感谢大家的关注、肯定
折腾好些日子,这些份笔记主要记录了当时面临的几个诉求/问题:
1、完整支持IPv6到底需要哪些组件--这个查了好些资料。
2、遇到了n次坑,比如版本没有luci web管理界面、哪些组件分别是干什么的依赖什么包
3、组件选得多了容易出现依赖包安装冲突导致编译失败,这个非常费时间排查。
有问题可及时交流。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-18 11:01 | 显示全部楼层
mxwz01 发表于 2023-2-18 08:31
老哥说一下如何更改内核后面的签名让系统可以使用官方软件源

看描述不知道你指的是哪个地方,上图最方便,一看就知道。
另外,关于安装好后的OpenWRT、IPv6配置方法,可参考:
https://www.right.com.cn/forum/thread-8276007-1-1.html
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-2-18 19:59 | 显示全部楼层
虽然看不懂,也为你点赞。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-1 04:26 | 显示全部楼层
非常感谢楼主的分享,之前编译了lede的版本导致ipv6总是无法开启,这次编译下官方的试试看。
你分享另一篇配置文章也看了,有个小疑问,如果是运营商光猫自动拨号,路由器接在光猫的话应该选择哪个配置方案呢?谢谢了。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-29 11:35 | 显示全部楼层
现在编译,怎么没有enable ipv6 surport package这个选项了阿
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-1-13 09:25 来自手机 | 显示全部楼层
这样编译出来是直接支持ipv6吗?还需要设置不?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-2-15 21:25 | 显示全部楼层
感谢大神的文章。很有帮助
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-9-28 20:11

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表