1. 首页
  2. 技术小贴

嵌入式开发环境部署

Why Openwrt

openwrt基于linux,裁剪了Linux的文件系统,封装了适用于智能家居的功能模块。

技术小贴
技术小贴

搭建虚拟机

下载镜像: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.exeimg转为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包

FeedsOpenwrt环境所需要软件包的套件,主要有:

  • packages:一些额外的基础路由器特性软件
  • LuCIOpenwrt默认的GUI
  • Xwrt:另一种可选的GUI
./scripts/feeds update -a    #更新packages
./scripts/feeds install -a   #安装feeds包

构建Openwrt基础固件

make menuconfig  #配置

输入以上命令之后,会进入一个命令行图形界面,界面最上面是用法

[*]表示:这个包裹选中编译,并安装在升级版本中

[M]表示:这个软件包选中编译,但并不安装在升级版本中

回车进入子级菜单,根据提示按空格或Y选中目标项

以下是我的选择,你可以选择性的参考,我的配置非常简单,如果需要额外的功能可以通过 opkg 来安装,所以固件简单点就好,反正之后还可以安装。

目标系统:

image.png

目标镜像:

嵌入式开发环境部署

管理接口:

嵌入式开发环境部署

选择结束之后,Exit,输入以下命令开始编译:

proxychains make V=99 -j5    #漫长的过程,挂个代理先

新生成的镜像会默认存放在一个bin目录下。

原创文章,作者:小嵘源码,如若转载,请注明出处:https://www.lcpttec.com/qianrushi/

联系我们

176-888-72082

在线咨询:点击这里给我发消息

邮件:2668888288@qq.com

工作时间:周一至周五,9:00-18:00,节假日休息

QR code