Why Openwrt
openwrt基于linux,裁剪了Linux的文件系统,封装了适用于智能家居的功能模块。
<img />技术小贴
搭建虚拟机
下载镜像:http://archive.openwrt.org/releases/17.01.4/targets/x86/64/lede-17.01.4-x86-64-combined-ext4.img.gz
转换工具:StarWindConvert
导入VM:
使用StarWindConvert将上面下载的镜像转化为IDE硬**格式的VMDK文件,使用Vmware导入之。
IDE
桥接网卡(修改为dhcp模式,默认桥接之后可能为物理机网关) :/etc/config/network
导入Vbox:
使用VboxManage.exe将img转为iso镜像,正常安装虚拟机即可!
C:Program FilesOracleVirtualBox>VBoxManage.exe convertfromraw -format VDI "D:VmwareLede 17.01.4lede-17.01.4-x86-64-combined-ext4.img" "D:VmwareLede 17.01.4lede.vdi"
网络配置
导入虚拟机后,默认br-lan网卡接口的网络为static地址,需要修改为本地网段或设置为dhcp模式。
使用Vbox添加两块网卡,网卡1选择仅Host Only,网卡选择网络地址转换NAT,这样就可以内部虚拟机与主机互通,也能让openwrt访问外网!
vim /etc/config/network
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'dhcp'
/etc/init.d/network/restart
访问测试
Web接口
浏览器访问:openwrt's hostonly's ip
远程连接
ssh root@openwrt's hostonly's ip
搭建SDK
Linux版本:·Ubuntu 16.04.6 LTS
相关软件包
apt-get install asciidoc #默认未安装
apt-get install autoconf #默认未安装
apt-get install binutils
apt-get install bison #默认未安装
apt-get install build-essential
apt-get install bzip2
apt-get install gawk #默认未安装
apt-get install gcc g++
apt-get install gettext
apt-get install git-core
apt-get install flex #默认未安装
apt-get install patch
apt-get install make
apt-get install ncurses-term #默认未安装
apt-get install sharutils #默认未安装
apt-get install unzip
#下面的包安装时可能存在依赖问题
apt-get install libncurses5-dev
apt-get install libssl-dev
apt-get install libz-dev
apt-get install subversion
apt-get install texinfo
apt-get install zlib1g-dev
由于安装软件的过程中**发生一些奇怪的依赖问题,推荐逐条安装,需要特别注意的软件包已标注,如上!
解决依赖问题:
➜ tools git:(master) apt-get install libncurses5-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能**有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能**对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libncurses5-dev : 依赖: libtinfo5 (= 5.9+20140118-1ubuntu1) 但是 6.0+20160213-1ubuntu1 正要被安装
依赖: libncurses5 (= 5.9+20140118-1ubuntu1) 但是 6.0+20160213-1ubuntu1 正要被安装
依赖: libtinfo-dev (= 5.9+20140118-1ubuntu1) 但是它将不**被安装
依赖: ncurses-bin (= 5.9+20140118-1ubuntu1)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
#解决方法:
##系统设置-->软件与更新-->更新-->勾选重要安全更新&推荐更新&不支持的更新
##系统设置-->软件与更新-->Ubuntu软件-->可从互联网下载,全部勾选,并调整下载自为http://mirrors.aliyun.com/ubuntu
#以下软件就都可以正常安装了
apt-get install libncurses5-dev
apt-get install libssl-dev
apt-get install libz-dev
apt-get install subversion
apt-get install texinfo
apt-get install zlib1g-dev
对应源码包
git clone git://github.com/openwrt/openwrt.git
切换普通用户
后续的操作需要普通用户来完成,故新建一个用户于此。
useradd shavchen
passwd shavchen
chown shavchen ./openwrt -R
su shavchen
安装Feeds包
Feeds是Openwrt环境所需要软件包的套件,主要有:
packages:一些额外的基础路由器特性软件
LuCI:Openwrt默认的GUI
Xwrt:另一种可选的GUI
./scripts/feeds update -a #更新packages
./scripts/feeds install -a #安装feeds包
构建Openwrt基础固件
make menuconfig #配置
输入以上命令之后,**进入一个命令行图形界面,界面最上面是用法
[*]表示:这个包裹选中编译,并安装在升级版本中
[M]表示:这个软件包选中编译,但并不安装在升级版本中
回车进入子级菜单,根据提示按空格或Y选中目标项
以下是我的选择,你可以选择性的参考,我的配置非常简单,如果需要额外的功能可以通过 opkg 来安装,所以固件简单点就好,反正之后还可以安装。
目标系统:
<img />
目标镜像:
<img />
管理接口:
<img />
选择结束之后,Exit,输入以下命令开始编译:
proxychains make V=99 -j5 #漫长的过程,挂个代理先
新生成的镜像**默认存放在一个bin目录下。
原创文章,作者:小嵘源码,如若转载,请注明出处:https://www.lcpttec.com/qianrushi/