上一篇文章 https://blog.csdn.net/ballack_linux/article/details/81331527 讲了使用已有openwrt系统image来搭建的方式。
这几天有空, 折腾了一下源码编译的方式, 还这不是一般的麻烦, 不过也当练练手了。
首先下载源码:
git clone git://git.archive.openwrt.org/15.05/openwrt.git
下载完长这样 :
安装必要的依赖:
sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc
获取最新的包并安装:
./scripts/feeds update -a
./scripts/feeds install -a
配置需要的功能:
make menuconfig
一, 配置Target System 为 X86 :
二, 由于我编译出来的系统image要用于vmware的x86虚拟机,所以需要vmdk后缀的image, 这里需要配置Target Images :
三, 添加一些基本工具, 比如opkg, uci等,后面经常要用到:
四, 因为openwrt可以通过网页配置很多选项,这个功能就是LuCI , 因为不熟悉这个,所以把 LuCI 所有选项都勾上, 并且添加中文支持:
五, Save ,保存退出。
六, 执行make V=s , 等待一两个小时, 中间如果有提示缺少依赖, 根据提示安装即可。
编译完后,生成我们想要的系统image :
上图中 openwrt-x86-generic-combined-ext4.vmdk 就是我们需要的。
参照上一篇 https://blog.csdn.net/ballack_linux/article/details/81331527 环境搭建, 就可以在正常带起来了 :
这里配置的ip是192.168.1.5, 通过网页登录上去, 会报关于Failsafe模块的错:
进到 openwrt 里面, vim /usr/lib/lua/luci/controller/failsafe/failsafe.lua , 跳转到第 73 行:
修改为 :
保存, 退出, reboot系统 。
再登录192.168.1.5, 已经正常访问了 !!
设置帐号和密码即可登录。
还有一点要注意的是!!!!
现在是使用桥接的方式配置的网络, 默认没有设置网关和dns, 所以没有办法访问外网 。
可以修改 /etc/config/network 文件:
然后执行 :
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
其中我发现配置完后 , 可以ping通百度, 如果只执行 /etc/init.d/network restart, 就不能ping通百度, 必须再执行一次/etc/init.d/dnsmasq restart才可以。
网上说是因为实际使用的dns配置文件是 /etc/resolv.conf.auto, 具体我还没去研究, 先MARK一下!!
好了, 至此, 就可以正常访问外网了!!