Padavan编译技巧

修改config
cd /opt/rt-n56u/trunk

下面是修改内核配置需要做的操作:

cp -f configs/boards/<机型名称>/kernel-3.4.x.config linux-3.4.x/.config

make -C linux-3.4.x menuconfig

menuconfig的配置方法见后文,修改完成后移动回原目录:

mv -f linux-3.4.x/.config configs/boards/<机型名称>/kernel-3.4.x.config

修改机型的.config配置文件

nano configs/templates/<机型名称>.config

menuconfig的配置
以修改netfilter扩展支持和修改RAM大小为例,在linux-3.4.x目录下执行make menuconfig之后,弹出图形配置页面,这里可以配置内核选项

menuconfig-1
menuconfig-2
在Machine selection —>DRAM Size里可以配置RAM大小
在menuconfig中,[*]表示编译进内核中,[M]表示编译成模块(.ko文件),< >表示该项目既可编译为模块也可集成于内核中,[ ]表示不包含。两次按下ESC回退到上一级菜单,按下/键可以搜索,例如 输入tproxy搜索得到以下结果
menuconfig-3

menuconfig-4
搜索结果包含了搜索对象的所在位置和依赖关系,例如tproxy的第一个结果,Depends on中包含EXPERIMENTAL [=y],表明需要先开启EXPERIMENTAL选项才能开启此项支持。

Symbol: NETFILTER_XT_TARGET_TPROXY [=m]
Type : tristate
Prompt: “TPROXY” target support (EXPERIMENTAL)
Defined at net/netfilter/Kconfig:655
Depends on: NET [=y] && INET [=y] && NETFILTER [=y] && EXPERIMENTAL [=y] && NETFILTER_TPROXY [=m] && NETFILTER_XTABLES [=y] && NETFILTER_ADVANCED [=y]
Location:
-> Networking support (NET [=y])
-> Networking options
-> Network packet filtering framework (Netfilter) (NETFILTER [=y])
-> Core Netfilter Configuration
-> Netfilter Xtables support (required for ip_tables) (NETFILTER_XTABLES [=y])
Selects: NF_DEFRAG_IPV4 [=y] && NF_DEFRAG_IPV6 [=y]

Symbol: NETFILTER_TPROXY [=m]
Type : tristate
Prompt: Transparent proxying support (EXPERIMENTAL)
Defined at net/netfilter/Kconfig:364
Depends on: NET [=y] && INET [=y] && NETFILTER [=y] && **EXPERIMENTAL [=y] **&& IP_NF_MANGLE [=m] && NETFILTER_ADVANCED [=y]
Location:
-> Networking support (NET [=y])
-> Networking options
-> Network packet filtering framework (Netfilter) (NETFILTER [=y])
-> Core Netfilter Configuration
照此方法,可以调整wifi驱动版本以及其他内核驱动,如USB串口驱动等。
改完以后,反复按ESC回退到主菜单,选择exit并确认保存。

iptables的tproxy支持与napt66(ipv6 nat)
ss的udp转发需要iptables的tproxy支持,在openwrt中可以直接安装kmod-ipt-tproxy,在padavan中则需要从源码入手。
首先在内核中开启tproxy的支持,这个在menuconfig中配置,详见上文;
接着是开启iptables自己的支持,只需要将/opt/rt-n56u/trunk/user/iptables/iptables-1.4.16.3/extensions/disabled/中的文件全部复制到 extensions/中即可。
刷好固件后,手动在开机脚本中加一行(自定义设置-脚本-启动后)

modprobe xt_TPROXY
Padavan的内核原生不支持ipv6 NAT,所以需要第三方的NAPT66(北邮学生开发的在ipv6下的NAT方案)
参考NAPT66文档,在编译内核时,只需修改trunk/linux-3.4.x/net/ipv6/ip6_output.c即可。

链接:https://www.jianshu.com/p/3a9ec169336e

发布了224 篇原创文章 · 获赞 14 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43248127/article/details/105137432