- 本文写作的参考文章:
https://soha.moe/post/make-openwrt-fits-hyperv.html
http://www.zhangziran.com/openwrt-ubuntu-bianyi-huanjing.htm - 环境准备,Ubuntu 16.04/10 一台,编译的服务器要能翻墙
- 安装必备软件包
- sudo apt-get install git
- sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev
- 获取源码
- CD到工作目录下
- git clone git://git.openwrt.org/15.05/openwrt.git
- 更新OpenWRT所有的feeds
- cd openwrt
- ./scripts/feeds update -a
- ./scripts/feeds install -a
- sudo ./scripts/feeds update packages
- sudo ./scripts/feeds install libpcre
- 编译ss进源码
- 参考 https://github.com/shadowsocks/openwrt-shadowsocks
- 在当前目录下,执行,下载SS的代码
- # 安装 feeds
- git clone https://github.com/shadowsocks/openwrt-shadowsocks.git package/shadowsocks-libev
- 编译
- make package/shadowsocks-libev/compile V=99
- 异常问题:如果编译出错,可能会提示pcre 8.39.tar.bz2 找不到 不对,https://sourceforge.net/projects/pcre/files/pcre/ 到这里下载对应文件放到openwrt/dl下面,再编译
- 集成 luci-app-shadowsocks/ 进源码
- 参考https://github.com/shadowsocks/luci-app-shadowsocks/
- git clone https://github.com/shadowsocks/luci-app-shadowsocks.git package/luci-app-shadowsocks
- pushd package/luci-app-shadowsocks/tools/po2lmo
- make && sudo make install
- popd
- make memuconfig 选中 luci下面application里的
- make package/luci-app-shadowsocks/compile V=99
- 开始编译
- 回到源码主目录,sudo make menuconfig (空格选择,选择成*,按两次ESC返回,最后一步选保存Y,注意 M键表示编译成ipk但不会编译到固件里。需要的时候我们可以直接opkg install)
- Target System为 marvell armda 38x
- Target Profile 为 WRT1900ACS
- LuCI
- Collections,选中luci *
- modules 下面的tranlations 选中 chinese
- base 里选择
- resolveip
- Kernel modules
- netfilter extention 里选中 kmod-nf-nathelper-extra,,,用于VPN服务穿透
- Wireless Device注意 mwlwifi解决
- libiraries
- 选中 libcurl(curl)
- 选中libintl (msmtp需要)
- network里
- 选择shadowsocks-libev
- 选择ipset
- routing and redirection 里,选择ip
- libiraries 里ssl 选择libopenssl
- firewall下选择 iptalbes-mod-tproxy
- mail下面
- 选中msmtp
- Openwrt编译出来的固件,wifi默认是不开启的,需要做一些修改让其上电自动开启AP模式。修改trunk/package/kernel/mac80211/files/lib/wifi/mac80211.sh 注释掉 option disabled 1改成0,默认开启wifi。
- sudo make V=s -j8( 核心数,数字越大编译越快),执行成功后,镜像文件在/bin目录下
- 编译过程问题解决:http://www.open-open.com/lib/view/open1431253983080.html
- 回到源码主目录,sudo make menuconfig (空格选择,选择成*,按两次ESC返回,最后一步选保存Y,注意 M键表示编译成ipk但不会编译到固件里。需要的时候我们可以直接opkg install)
- 在bin目录下会生成镜像文件:
- 我编译好的固件在这里:http://pan.baidu.com/s/1nvCWrUh