OpenWrt Image Builder 制作带插件的HG255D固件记录

OpenWrt Image Builder 制作带插件的HG255D固件记录from:https://blog.csdn.net/lvshaorong/article/details/52988190前几天写了一个编译Openwrtipk包的博客《Ubuntu使用OpenwrtSDK交叉编译ipk包过程全纪录(超多图)》,那篇文章是以WNDR4300为例,使用恩山上大神编译的纯净版固件,然后自己下载ss和luci的github源码使用openwrtSDK编译出i…

from: https://blog.csdn.net/lvshaorong/article/details/52988190

======================================================

使用说明 make image命令会创建一个只包含必不可少包文件的最小化镜像,这个命令可以通过三个传递过去的参数控制:
make image PROFILE="xxx" - 指定要编译的目标镜像的配置,xxx由第二步第三步可知 make image PACKAGES="ipk" - 要嵌入镜像的包文件的列表,可以添加额外包由第四步可知 make image FILES="" - 要包含进去的自定义文件的目录,由第五步可知 在make命令结束后,生成的镜像会被放到bin目录中。
第一步 系统编译生成 image builder make menuconfig 第二步 (配置)Profiles 运行make info来获得一个预定义配置的列表
第三步 增加/修改配置 针对预编译包文件brcm47xx-for-Linux-i686的配置被放在target/linux/brcm47xx/profiles中。 记住,要添加一个新的配置,你只需要将一个新的配置文件放入profiles目录中。 这里描述了profiles/100-Broadcom-b43.mk配置文件看起来什么样 define Profile/Broadcom-b43
NAME:=Broadcom BCM43xx WiFi (default)
PACKAGES:=kmod-b43 kmod-b43legacyendefdefine
Profile/Broadcom-b43/DescriptionPackage
set compatible with hardware using Broadcom BCM43xx cardsendef
$(eval $(call Profile,Broadcom-b43))
第四步 (包文件)Packages 当编译一个镜像的时候PACKAGES变量指定了一个要被包含进去的包文件的列表。如果一个包文件的名字前面有一个前缀-,那么这个文件会被从镜像中排除出去。 
make image 命令后的参数
PACKAGES="nano openvpn -ppp -ppp-mod-pppoe"

  可以在profile定义的基础上,增加或
裁剪软件包

 
小提示:
现在在你路由器上面已经安装的包文件可以在路由器上通过下面的命令来获得:
echo `opkg list_installed | awk ‘{ print $1 }’`
小提示:
官方镜像中包含的包文件列表可以通过下面的命令获得(在一台Linux主机上面)
echo `wget -qO – http://backfire.openwrt.org/10.03/brcm-2.4/OpenWrt.config | sed -ne ‘s/^CONFIG_PACKAGE_\([a-z0-9-]*\)=y/\1/ip’`
小提示:
如果你想要移除一些默认包文件(例如你不需要pppoe相关的包),修改inclide/target.mk文件中的DEFAULT_PACKAGES and DEFAULT_PACKAGES.router区块。
第五步 文件
一个包含自定义文件的想要加入的目录可以通过使用
FILES
变量来指定,如果有必要的话自定义文件会替换掉默认已经存在的文件。
mkdir -p files/etc/config
scp root@192.168.1.1:/etc/config/network files/etc/config/
scp root@192.168.1.1:/etc/config/wireless files/etc/config/
scp root@192.168.1.1:/etc/config/firewall files/etc/config/
make image PROFILE=WL500GP PACKAGES=”nano openvpn -ppp -ppp-mod-pppoe” FILES=files/
第六步 清理
想要清理临时编译文件和生成的镜像,使用
make clean
命令。

==================================================

前几天写了一个编译Openwrt ipk包的博客《Ubuntu 使用Openwrt SDK交叉编译ipk包过程全纪录(超多图)》,那篇文章是以WNDR4300为例,使用恩山上大神编译的纯净版固件,然后自己下载ss和luci的github源码使用openwrt SDK编译出ipk安装包,然后又在openwrt官网上找到ss和luci相关的依赖安装,实现了最新版的ss和luci界面,并支持UDP转发的ss代理。

但是WNDR4300昂贵的价格注定了它应用范围不会太广,只在家里用用都觉得奢侈。而将同样的功能移植到华为 hg255d这个又老又便宜的路由器上才是生产力。

首先华为hg255d具备16m ROM和32m RAM,已经具备了只能路由器的最低配置,完全可以跑Openwrt和ss插件。同样300m的路由器比如极路由1s要一百多快,而且刷好ss版的要更贵

其次我试过使用网山大神给的纯净版固件,不过内核版本都不一致,luci的依赖包kmod-iptable-tproxy安装不上,没有图形界面可用性就大大降低了。

最后其实最重要的是,刷好op的hg255d在某宝二手的售价仅为25人民币,想想这么点钱就能买一个能装插件的智能路由器,而且还能开发USB、多拨等功能,实在是太超值了。

所以一方面为了获得最新的ss和luci插件,另一方面避免固件内核不一致带来的烦恼,非常需要自己动手编译一套固件。

在我的操作过程中发现ImageBuilder编译固件的过程要比SDK编译ipk包容易的多,也不容易出错,但是想要把ss这样的功能直接编译进固件里面,还是需要学会SDK编译ipk包的方式,编译固件的主要目的不是为了添加新的软件,而是为了解决ipk包的依赖,因为openwrt官网上给出的依赖包内核版本经常变化,不能通用。

下文会以Openwrt CC 15.05 为例,具体介绍如何在Ubuntu环境下交叉编译纯净版固件,向固件中添加依赖库,制作整合ss等功能固件的方法

首先我们先通过SDK编译最新版的ss及其luci ipk安装包,具体方法可以看我之前的一篇文章:《Ubuntu 使用Openwrt SDK交叉编译ipk包过程全纪录(超多图)

然后我们就有了shadowsocks-libev_2.5.5-2_ramips_24kec.ipk,luci-app-shadowsocks_1.3.6-1_all.ipk两个文件,先留着备用,当然没有这两个文件也不耽误我们编译固件,可以略过此步。

下面说一下各版本固件的作用:

纯净版固件:用于观察ss或者其他第三方程序的依赖包,为编译完整版做基础。也可以做普通上网用

依赖包版固件:因为ss等插件频繁更新,而固件我们只想编译一次,所以这个版本的固件只编译进ss的所有依赖包,方便以后opkg升级ss使用

完整版ss固件:方便别人安装使用,一劳永逸的固件。

下面我们编译一个纯净版固件,尽可能少的安装依赖和服务,力图将ROM大小降到最低,满足日常上网要求即可的高稳定性低资源消耗的纯净版本。

第一步:登录openwrt官网,根据CPU型号找到hg255d编译工具的下载界面,也就是:https://downloads.openwrt.org/chaos_calmer/15.05/ramips/rt305x/

OpenWrt Image Builder 制作带插件的HG255D固件记录

其中,packages是我们安装ipk时寻找依赖包的地方

ImageBuilder是今天的主角,用来生成bin固件的

SDK是编译Github上c源码成ipk包的 

下面我们就下载ImageBuilder准备生成固件吧,首先下载这个tar包,在windows上随意下载,linux上可以直接使用wget下载,不过国内的网速实在很慢,很容易失败,这个tar包大小在1.5G左右,尽量使用断点续传工具加国外代理进行下载。

下载之后放到Ubuntu系统上,使用tar xjf Openwrt-ImageBuilder-15.05-ramips-rt305x.Linux-x86_64.tar.bz2解压这个tar包,由于这个包1.5G那么大,需要等个两三分钟,不要以为是死机了,耐心的等等就好。差一点的电脑可能要登上5分钟或更久。

解压完成之后,直接cd进解压完毕的文件夹中,现在我们有两件很重要的事情需要做

1、将ImageBuilder的Makefile放开对HG255d的支持

2、选择合适依赖包编译进固件

其中第一点尤为重要,要是没有处理ImageBuilder的Makefile,不管你编译多少次都编译不出能用的固件来的。方法也不麻烦,编辑如下文件:

nano target/linux/ramips/image/Makefile

搜索HG255D,去掉前面的注释符#,至于官方为什么要注释掉这一行,有一种说法是官方的版本只在lintel u-boot上测试过,如果刷在带原厂u-boot的HG255D上会出问题,这也许是官方没有提供HG255D固件下载的原因吧。

OpenWrt Image Builder 制作带插件的HG255D固件记录

下面开始选择合适的依赖包。

为什么要选择依赖包呢,因为此时如果直接使用make是可以编译出openwrt固件来的,不过这样的固件几乎除了一个内核之外别的什么都没有,没有web界面的路由器后台。所以要把路由器后台的luci界面和一些其他和网络NAT有关的依赖包编译进去,语法格式是

make image PROFILE=HG255D 

# HG255D为路由器名字, 默认只有基础包
make image PROFILE=HG255D PACKAGES=”pk1 pk2 pk3 -pk4” 

# -pk4表示去掉pk4包

所以按照以往的经验,我这里给出一个基础依赖包的列表

make image PROFILE=HG255D PACKAGES="base-files busybox dropbear firewall fstools jsonfilter libc libgcc mtd netifd opkg procd swconfig ubox ubus ubusd uci usign kmod-lib-crc-ccitt kmod-ipv6 kmod-ip6tables kmod-ipt-conntrack kmod-ipt-core kmod-ipt-nat kmod-nf-conntrack kmod-nf-conntrack6 kmod-nf-ipt kmod-nf-ipt6 kmod-nf-nat kmod-ppp kmod-pppoe kmod-pppox kmod-slhc kmod-gpio-button-hotplug kmod-spi-bitbang kmod-spi-gpio kmod-ath kmod-ath9k-common kmod-cfg80211 kmod-mac80211 libip4tc libip6tc libxtables libblobmsg-json libexpat libiwinfo libjson-c libnl-tiny libubox libubus libuci ip6tables iptables hostapd-common iw odhcp6c odhcpd ppp ppp-mod-pppoe iwinfo jshn libjson-script uboot-envtools base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools kmod-gpio-button-hotplug swconfig uboot-envtools kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev wget luci iptables-mod-nat-extra bind-dig dnsmasq-full kmod-leds-gpio wpad-mini kmod-usb-dwc2"

其中,最后三个包是openwrt指明单独要给hg255d路由器添加的,可以使用make info来查看

OpenWrt Image Builder 制作带插件的HG255D固件记录

其实就是LED指示灯和USB接口的驱动

在列表中luci就是路由器后台的web管理界面,luci-ssl指https连接,会因为没有证书报站点不安全的异常,所以我们不用luci-ssl,用luci。

wget是用于http下载,下载一些ipk包的时候会用的上。

iptables用来做端口转发,十分必要

dnsmasq换成dnsmasq-full,方便以后用ipset做域名过滤,功能比dnsmasq强大的多。网上有人说要先去掉dnsmasq再安装如”-dnsmasq dnsmasq-full”但是我也没详细测试,因为在我打出的版本中,dnsmasq已经支持ipset了,或许并非是真正的dnsmasq-full,但是对于ipset来说已经够用了

OpenWrt Image Builder 制作带插件的HG255D固件记录

其余的包都是系统必备的一些包,多数我也不清楚是做什么用的。kmod开头的经常会因为openwrt.org提供的内核版本发生变化,所以为了以后扩展方便,尽量把常用的kmod包都打进去

好了执行上面那一坨命令,开始编译,编译过程大概分一下几部:

1、从openwrt.org更新本地依赖包的列表

2、根据更新后的依赖包列表和上面要求编译的包名,去openwrt.org下载相应的ipk包

3、把指定的ipk包编译进固件中

速度视网速而定,一般三四分钟就可以搞定,多数时间都在下载,编译其实很快的。

编译中如果出现哪个包无法编译,直接把这个包从列表中拿走就行

比如我们在列表中加一个不存在的包“kmod-auth9k”就会报如下错误

OpenWrt Image Builder 制作带插件的HG255D固件记录

这时候只要在列表中删掉它即可

正常编译的命令如下,注意列表上不要有换行

OpenWrt Image Builder 制作带插件的HG255D固件记录

编译成功后的终端显示如下

OpenWrt Image Builder 制作带插件的HG255D固件记录

然后就可以在/bin/ramips中找到编译好的固件,如下

OpenWrt Image Builder 制作带插件的HG255D固件记录

然后我们的纯净版固件就这样做好了,整个过程比编译ipk简单。我编译出来的纯净版大小为5377KB,已经是比较大了,网上有很多纯净包甚至编译进ss的包菜3点几兆。所以说明我们的纯净包并不纯净,比如编译进了很多kmod和dnsmasq-full这样的程序。

现在把这个固件通过web后台或者tftp的方式刷进路由器看看长啥样

OpenWrt Image Builder 制作带插件的HG255D固件记录

注意:在点击更新固件之后不要将路由器断电,大约要等10分钟左右,tftp会快一点,可以不停的ping 192.168.1.1,知道能稳定的ping通就算刷完了,可以浏览器打开192.168.1.1,这个固件因为没有配置LED指示灯,所以不插lan线所有灯都不亮属正常现象(包括电源指示灯都不亮)。

刷成功之后只有LAN灯亮,wifi默认关闭

下一步我们就要配置路由器后台的登录密码,不然没法用SSH登录路由器获取root权限,推荐用户名root,密码root

然后我们就可以通过SSH软件登陆路由器安装apk了,我使用的是Xshell5

OpenWrt Image Builder 制作带插件的HG255D固件记录

可以看到纯净版没有安装ss。

下面我们将ss的ipk安装包通过winscp上传到路由器上尝试安装,并解决依赖。

OpenWrt Image Builder 制作带插件的HG255D固件记录

先安装ss,再安装luci界面

OpenWrt Image Builder 制作带插件的HG255D固件记录

从图中可以看出,安装ss非常顺利,不需要解决什么依赖(我在wndr4300上装需要解决两个依赖)在安装luci界面的时候提示安装ipset依赖,于是我们去openwrt官网下载ipset ipk安装包

OpenWrt Image Builder 制作带插件的HG255D固件记录

放到路由器上去继续安装

OpenWrt Image Builder 制作带插件的HG255D固件记录

然后发现ipset还需要依赖包libmnl,那我们就先安装libmnl,再安装ipset,再安装luci-Shadowsocks,如上图

luci安装好之后我们就可以试试能不能用啦

OpenWrt Image Builder 制作带插件的HG255D固件记录

可以看到Shadowsocks-libev已经可以正常运行了

OpenWrt Image Builder 制作带插件的HG255D固件记录

路由器后台也出现了Shadowsocks的服务按钮

OpenWrt Image Builder 制作带插件的HG255D固件记录

点进去之后发现已经可以配置了,只是UDP转发还不能用,提示缺少iptables-mod-tproxy和ip两个包,那么我们继续下载安装

OpenWrt Image Builder 制作带插件的HG255D固件记录

这其中发现还需要额外安装一个依赖包kmod-ipt-tproxy

现在应该都能用了

OpenWrt Image Builder 制作带插件的HG255D固件记录

好了,现在路由器已经从纯净版武装了各种依赖和插件刷好,可以使用ss服务了,下面整理一下这个过程安装的各种依赖

OpenWrt Image Builder 制作带插件的HG255D固件记录

我上面编译的纯净版固件下载地址:

HG255d路由器Openwrt CC 15.05纯净版固件

上面所列的所有ipk包的下载地址:

有了上面两个包,下载下来就可以复制我上面的操作

如果想实现以后光升级ss和luci界面的ipk就好的目的,我们可以把这次安装的各种依赖直接打包到固件中去,下次就不需要去openwrt.org下载这么多依赖包了,而且,有些依赖包随着内核更新会无法安装,为日后升级带来困难,所以我们要在纯净版固件的基础上添加依赖支持

make image PROFILE=HG255D PACKAGES="base-files busybox dropbear firewall fstools jsonfilter libc libgcc mtd netifd opkg procd swconfig ubox ubus ubusd uci usign kmod-lib-crc-ccitt kmod-ipv6 kmod-ip6tables kmod-ipt-conntrack kmod-ipt-core kmod-ipt-nat kmod-nf-conntrack kmod-nf-conntrack6 kmod-nf-ipt kmod-nf-ipt6 kmod-nf-nat kmod-ppp kmod-pppoe kmod-pppox kmod-slhc kmod-gpio-button-hotplug kmod-spi-bitbang kmod-spi-gpio kmod-ath kmod-ath9k-common kmod-cfg80211 kmod-mac80211 libip4tc libip6tc libxtables libblobmsg-json libexpat libiwinfo libjson-c libnl-tiny libubox libubus libuci ip6tables iptables hostapd-common iw odhcp6c odhcpd ppp ppp-mod-pppoe iwinfo jshn libjson-script uboot-envtools base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools kmod-gpio-button-hotplug swconfig uboot-envtools kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev wget luci iptables-mod-nat-extra bind-dig dnsmasq-full kmod-leds-gpio wpad-mini kmod-usb-dwc2 libmnl kmod-ipt-tproxy ipset ip-full iptables-mod-tproxy"

后面几个以来的名字就是上面我们用到的以来的名字,ImageBuilder会自动的去openwrt.org下载需要的ipk包然后编译到固件中去。

我编译好的固件下载地址:华为HG255D包含ss所需依赖的 OP CC 15.05固件

下载之后可以直接把用SDK编译好的ss固件刷入进去,不需要解决依赖,防止内核版本变化。

有时候我们编译了固件并不只给自己用,可以分享给网上的小伙伴,所以我们可以把Shadowsocks-libev和它的luci界面打成一个完成的固件,交给其他人直接刷到HG255D中,但是openwrt.org上又没有ss和luci的ipk包,我们怎样编译呢。

我们把要编译的自定义包放到packages/base下,再修改make后面的包名列表,就可以把我们自己编好的ipk包打进去了

OpenWrt Image Builder 制作带插件的HG255D固件记录

然后在make后面的包列表中把上面两个自编译包添加进去

make image PROFILE=HG255D PACKAGES="base-files busybox dropbear firewall fstools jsonfilter libc libgcc mtd netifd opkg procd swconfig ubox ubus ubusd uci usign kmod-lib-crc-ccitt kmod-ipv6 kmod-ip6tables kmod-ipt-conntrack kmod-ipt-core kmod-ipt-nat kmod-nf-conntrack kmod-nf-conntrack6 kmod-nf-ipt kmod-nf-ipt6 kmod-nf-nat kmod-ppp kmod-pppoe kmod-pppox kmod-slhc kmod-gpio-button-hotplug kmod-spi-bitbang kmod-spi-gpio kmod-ath kmod-ath9k-common kmod-cfg80211 kmod-mac80211 libip4tc libip6tc libxtables libblobmsg-json libexpat libiwinfo libjson-c libnl-tiny libubox libubus libuci ip6tables iptables hostapd-common iw odhcp6c odhcpd ppp ppp-mod-pppoe iwinfo jshn libjson-script uboot-envtools base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools kmod-gpio-button-hotplug swconfig uboot-envtools kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev wget luci iptables-mod-nat-extra bind-dig dnsmasq-full kmod-leds-gpio wpad-mini kmod-usb-dwc2 libmnl kmod-ipt-tproxy ipset ip-full iptables-mod-tproxy shadowsocks-libev luci-app-shadowsocks"

这个固件也许对很多人都有用,我就把它放出来供大家下载,下载这个固件之后只需刷到HG255D中就能使用,不需要登录SSH再设置

==================================================

后记:

在多次编译测试出一个能用的ss版本之后,使用ss上网没什么问题了,但是发现电源指示灯和WAN指示灯不亮,而且第一次启动路由器的时候wifi不会自动启动,于是准备着手解决指示灯的问题。

我发现直接在路由器后台配置LED的配置就可以不改动任何代码而修改LED的点亮情况,于是我直接从当前路由器的/etc/config目录下把system文件拷贝出来,准备当作配置直接打进固件里面,同样打进去的还有network文件,这里面可以修改路由器网卡的mac地址,路由器的默认ip地址,子网掩码等等信息,都可以直接从配置好的路由器直接拷贝一份打进去,另外还有wireless文件,打进这个就可以实现路由器首次开机wifi自动开启,这三个文件如下。

控制LED灯的system文件

  1. config system

  2. option hostname
    ‘OpenWrt’

  3. option timezone
    ‘UTC’

  4. config timeserver
    ‘ntp’

  5. list server
    ‘0.openwrt.pool.ntp.org’

  6. list server
    ‘1.openwrt.pool.ntp.org’

  7. list server
    ‘2.openwrt.pool.ntp.org’

  8. list server
    ‘3.openwrt.pool.ntp.org’

  9. option enabled
    ‘1’

  10. option enable_server
    ‘0’

  11. config led
    ‘led_wifi_led’

  12. option name
    ‘wifi’

  13. option sysfs
    ‘hg255d:wlan’

  14. option dev
    ‘wlan0’

  15. option trigger
    ‘netdev’

  16. option mode
    ‘link tx rx’

  17. option
    default
    ‘0’

  18. config led
    ‘led_usb’

  19. option name
    ‘USB’

  20. option sysfs
    ‘hg255d:usb’

  21. option dev
    ‘1-1’

  22. option trigger
    ‘usbdev’

  23. option interval
    ’50’

  24. option
    default
    ‘0’

  25. config led
    ‘led_lan’

  26. option name
    ‘lan’

  27. option sysfs
    ‘hg255d:internet’

  28. option
    default
    ‘0’

  29. option trigger
    ‘netdev’

  30. option dev
    ‘eth0.2’

  31. option mode
    ‘rx’

  32. config led

  33. option
    default
    ‘0’

  34. option name
    ‘Power’

  35. option sysfs
    ‘hg255d:power’

  36. option trigger
    ‘default-on’

控制无线自动开启的wireless文件

  1. config wifi-device
    ‘radio0’

  2. option type
    ‘mac80211’

  3. option channel
    ’11’

  4. option hwmode
    ’11g’

  5. option path
    ‘10180000.wmac’

  6. option htmode
    ‘HT20’

  7. config wifi-iface

  8. option device
    ‘radio0’

  9. option network
    ‘lan’

  10. option mode
    ‘ap’

  11. option ssid
    ‘OpenWrt’

  12. option encryption
    ‘none’

控制网卡mac地址和ip地址的network文件

  1. config
    interface
    ‘loopback’

  2. option ifname
    ‘lo’

  3. option proto
    ‘static’

  4. option ipaddr
    ‘127.0.0.1’

  5. option netmask
    ‘255.0.0.0’

  6. config globals
    ‘globals’

  7. option ula_prefix
    ‘fd97:273f:919a::/48’

  8. config
    interface
    ‘lan’

  9. option ifname
    ‘eth0.1’

  10. option force_link
    ‘1’

  11. option macaddr
    ’00:0c:43:32:52:77′

  12. option type
    ‘bridge’

  13. option proto
    ‘static’

  14. option ipaddr
    ‘192.168.1.1’

  15. option netmask
    ‘255.255.255.0’

  16. option ip6assign
    ’60’

  17. config
    interface
    ‘wan’

  18. option ifname
    ‘eth0.2’

  19. option force_link
    ‘1’

  20. option macaddr
    ’00:0c:43:32:52:78′

  21. option proto
    ‘dhcp’

  22. config
    interface
    ‘wan6’

  23. option ifname
    ‘eth0.2’

  24. option proto
    ‘dhcpv6’

  25. config switch

  26. option name
    ‘switch0’

  27. option reset
    ‘1’

  28. option enable_vlan
    ‘1’

  29. config switch_vlan

  30. option device
    ‘switch0’

  31. option vlan
    ‘1’

  32. option ports
    ‘1 2 3 4 6t’

  33. config switch_vlan

  34. option device
    ‘switch0’

  35. option vlan
    ‘2’

  36. option ports
    ‘0 6t’

在ImageBuilder的目录下新建一个files文件夹,把这三个文件放到 files/etc/config下就可以,打包的时候添加参数FILES = files/即可,如图

OpenWrt Image Builder 制作带插件的HG255D固件记录

编译命令改为

make image PROFILE=HG255D PACKAGES="base-files busybox dropbear firewall fstools jsonfilter libc libgcc mtd netifd opkg procd swconfig ubox ubus ubusd uci usign kmod-lib-crc-ccitt kmod-ipv6 kmod-ip6tables kmod-ipt-conntrack kmod-ipt-core kmod-ipt-nat kmod-nf-conntrack kmod-nf-conntrack6 kmod-nf-ipt kmod-nf-ipt6 kmod-nf-nat kmod-ppp kmod-pppoe kmod-pppox kmod-slhc kmod-gpio-button-hotplug kmod-spi-bitbang kmod-spi-gpio kmod-ath kmod-ath9k-common kmod-cfg80211 kmod-mac80211 libip4tc libip6tc libxtables libblobmsg-json libexpat libiwinfo libjson-c libnl-tiny libubox libubus libuci ip6tables iptables hostapd-common iw odhcp6c odhcpd ppp ppp-mod-pppoe iwinfo jshn libjson-script uboot-envtools base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools kmod-gpio-button-hotplug swconfig uboot-envtools kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev wget luci iptables-mod-nat-extra bind-dig dnsmasq-full kmod-leds-gpio wpad-mini kmod-usb-dwc2 shadowsocks-libev libmnl kmod-ipt-tproxy ipset ip-full iptables-mod-tproxy luci-app-shadowsocks" FILES=files/


下载我编译好的内置ss的固件:

内核版本:kernel_3.18.20-1-c8b57a131072a3198e594822481af3e0_ramips_24kec

ss版本:2.5.5-2

ss-luci版本:1.3.6-1

注:

1、原版uboot不能刷,会变砖

2、web页面升级和tftp刷均可,不要使用wifi升级,会变砖

3、ss支持开机自启(不开启UDP转发)

4、支持UDP转发(不推荐开启)

4、需要自己配置一个防DNS污染的地址,否则facebook这样的网站可能上不了

5、各个LED灯都正常点亮

下载地址: HG255D OP chaos_calmer 15.05带ss固件(11.2更新)

使用截图如下
OpenWrt Image Builder 制作带插件的HG255D固件记录

OpenWrt Image Builder 制作带插件的HG255D固件记录

OpenWrt Image Builder 制作带插件的HG255D固件记录

注:即使如上图使用了OpenDNS,但是在某些地方还是不能阻止DNS污染,比如我在测试的时候facebook就上不去,但是google,twitter等正常,我只用pdnsd修复的这一问题

开启DNS转发示意图:

OpenWrt Image Builder 制作带插件的HG255D固件记录

附:编译进固件的各个组件的作用

base-files:

OpenWrt wiki:This package contains a base filesystem and system scripts for OpenWrt.
翻译:这个包含了Openwrt的一个基础的文件系统和系统脚本

busybox : 

OpenWrt wiki:OpenWRT uses BusyBox to implement the shell environment and most of the usual Unix commands. Instead of having a collection of separate binaries, BusyBox condenses them into one. Executables like vi, ls and grep are merely symbolic links to the BusyBox binary. BusyBox Command Help

翻译:OpenWrt使用busybox来实现shell环境和常规的Unix命令。BusyBox把一系列单独的二进制可执行文件合并成了一个,比如vi,ls和grep这些仅仅是一个BusyBox二进制文件的象征性连接

dropbear:

配置文件: /etc/config/dropbear

翻译:SSH服务器配置

firewall : 

配置文件:/etc/config/firewall 

OpenWrt wiki:OpenWrt relies on netfilter for packet filtering, NAT and mangling. The UCI Firewall provides a configuration interface that abstracts from the iptables system to provide a simplified configuration model that is fit for most regular purposes while enabling the user to supply needed iptables rules on his own when needed.

翻译:OpenWrt依靠netfilter来实现包过滤,NAT和包标记。UCI防火墙提供了一个从iptbales系统中抽象出的配置接口并实现了一个简单的配置模型。当用户需要的时候,该配置模板提供了很多iptables规则来满足多数的常规应用。

libc:安装bash需要的依赖库


libgcc:GCC依赖库


mtd:

OpenWrt wiki:mtd is a utility we use to write to an MTD (Memory Technology Device). Please read theNotes to learn more. cd /tmp wget http://www.example.org/original_firmware.bin mtd -r write /tmp/original_firmware.bin firmware

翻译:mtd是一个我们用来写内存设备的工具


netifd:

OpenWrt wiki:netifd can (probably) bring up a wired, static ip configuration without shell scripts. For everything else (PPPoE or 3G) it needs protocol handlers implemented as sets of shell functions.

翻译:netifd能够在适用用shell脚本的情况下搞一个有线的固定ip配置。对于其他的(PPPoE或3G)他需要通过一系列的shell功能该实现的协议处理机制。


procd:

OpenWrt wiki:procd is the new OpenWrt process management daemon written in C. It keeps track of processes started from init scripts (via ubus calls), and can suppress redundant service start/restart requests when the config/environment has not changed.

翻译:procd是一个用C写的新的OpenWrt 进程管理守护进程,它跟踪从init脚本中启动的进程(经过 ubus调用),并且能够在配置和环境没有改变的时候阻止重复的服务启动和重启请求。


swconfig:

OpenWrt wiki:The program swconfig allows you to configure configurable Ethernet network switches.

翻译:wsconfig允许你配置可配置的网络开关

ubus:为了在OpenWrt中提供守护进程和应用程序间的通讯,开发了ubus项目工程。它包含了守护进程、库以及一些额外的帮助程序。

uci:“uci”是”Unified Configuration Interface”(统一配置界面)的缩写,意在OpenWrt整个系统的配置集中化。


kmod-ipt-conntrack:

Openwrt wiki: kmod-ipt-conntrack Version: 3.3.8-1 Netfilter (IPv4) kernel modules for connection tracking Includes: – conntrack – defrag – iptables_raw – NOTRACK – state

翻译:Netfilter的连接跟踪核心组件


kmod-ppp:

OpenWrt wiki:Kernel modules for PPP support

翻译:为ppp提供支持的核心模块


iwinfo:

OpenWrt wiki:iwinfo is a CLI frontend to the custom library, which assembles information from various places. It is also used by LuCI

翻译:iwinfo是一个自定义CLI前端库,它可以组合来自多个位置的信息,并且它也被LuCI所使用

jshn:

OpenWrt wiki: Library for parsing and generating JSON from shell scripts

翻译:从shell脚本中解析和产生JSON格式的库


iw:

OpenWrt wiki: iw is the configuration utility for the nl80211 API.
翻译:iw是nl802.11API的一个配置功能


odhcpd:

用来通过relay方式使用ipv6网络的工具


kmod-usb-core:USB支持的内核


kmod-usb-ohci:OHCI USB控制器的核心支持


kmod-usb-uhci:UHCI USB控制器的核心支持


kmod-usb2: EHCI USB控制器的核心支持


kmod-ledtrig-usbdev: USB设备的LED指示灯驱动


usbutils: USB设备的列表功能

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37178.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注