记录下我的极1s编译OpenWRT固件过程:

1、VMware安装Ubuntu

    VMware下载:http://www.xp510.com/xiazai/ossoft/desktools/22610.html

    Ubuntu下载:http://www.ubuntu.org.cn/download/desktop

2、启动Ubuntu,修改apt软件源为国内的

sudo vi /etc/apt/sources.list

  编辑sources.list在文件最上面加入国内源,我这里加入了北京交通大学的源:

deb http://mirror.bjtu.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe

  升级系统并安装必要的软件包

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install gcc g++ binutils patch bzip2 bison make autoconf texinfo zip unrar p7zip p7zip-rar p7zip-full sharutils ncurses-term zlib-dev vim git git-core flex quilt xsltproc libxml-parser-perl mercurial bzr ecj cvs libzlib subversionbuild-essential libncurses5-dev zlib1g-dev gawk unzip gettext libssl-dev intltool openjdk-6-jre-headless optipng doxygen -y

3、增加shadowsocks的luci界面需要修改feeds.conf.default在luci下面增加:

src-git ramod git://github.com/ravageralpha/my_openwrt_mod.git

 或者将luci替换为(去掉#号):

#src-git luci https://github.com/981213/luci-1.git

4、获取OpenWRT源码

git clone git://git.openwrt.org/openwrt.git
cd openwrt/
./scripts/feeds update -a
./scripts/feeds install -a

5、修改源码添加支持极1s(HC5661)

  参考:http://wenku.baidu.com/view/4a46b7e371fe910ef12df895.html

6、添加shadowsocks,参考:https://github.com/clowwindy/shadowsocks-libev

# At OpenWRT build root
pushd package
git clone https://github.com/madeye/shadowsocks-libev.git
popd

7、编译的目标平台和需要的软件包配置

make menuconfig

  Target System -> Ralink RT288x/RT3xxx

  Subtarget -> MT7620a based boards

  Target Profile -> HiWiFi HC5661

  #shadowsocks的luci界面

  RA-MOD -> LuCI Applications -> luci-app-shadowsocks

8、支持MT7620A无线驱动

# At OpenWRT build root
make kernel_menuconfig

在 Machine -> Device tree 中选中 MT7620A eval kit

hiwifi.gif

9、开始编译

# At OpenWRT build root
make V=99


在编译过程中出现的问题解决方法:

a)  编译过程中需要下载很多软件源码包,看编译错误信息如果有些无法下载的可以从我收集的dl软件包里找:https://github.com/jslink/openwrt-trunk-dl

b)  第一次编译pkg-config-0.28时报错:

gconvert.c:66:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv
 #error GNU libiconv not in use but included iconv.h is from libiconv

解决办法:进入glib添加参数--with-libiconv=gnu手动编译

cd build_dir/host/pkg-config-0.28/glib
./configure --with-libiconv=gnu
make
cd ../../../../


(待续)

详细编译方法参考:

  http://wiki.openwrt.org/doc/howto/build

  http://wiki.openwrt.org/doc/howto/buildroot.exigence

  http://wenku.baidu.com/view/85d69c56ee06eff9aef80777.html

  http://ichuan.net/post/61/openwrt-hc5661/