0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Openwrt开发指南 第2章 OpenWrt开发环境搭建

嵌入式大杂烩 来源:嵌入式大杂烩 作者:嵌入式大杂烩 2023-06-27 09:09 次阅读

1 硬件环境构建

1.1 主机与目标板结合的交叉开发模式

开发PC机上的软件时,可以直接在PC机上编辑、编译、调试软件,最终发布的软件也是在PC机上运行。对于物联网OpenWrt开发,最初的嵌入式设备是一个空白的系统,需要通过主机为它构建基本的软件系统,并烧写到设备中;另外,嵌入式设备的资源并不足以用来开发软件。所以需要用到交叉开发模式:在主机上编辑、编译软件,然后在目标板上运行、验证程序。对于MT7621等开发板,进行物联网OpenWrt开发时一般可以分为以下3个步骤。

(1)在主机上编译U-boot,然后通过SPIFlash烧写器烧入单板。

通过SPIFlash烧写器烧写程序的效率非常低,而且还需要取下Flash芯片,它适用于烧写空白单板。为方便开发,通常选用具有串口传输、网络传输、烧写Flash功能的U-boot,它可以快速地从主机获取可执行代码,然后烧入单板。

该U-boot在开发板生产时,已经由工厂烧入到了SPIFlash中。特别强调,在做物联网openwrt开发时,一般不建议大家自己开发、重新烧写U-boot!否则,一不小心,开发板就会变成砖头的哦。

(2)在主机上编译OpenWrt,通过U-boot烧入单板或直接启动。一个可以在单板上运行的OpenWrt是进行后续开发的基础。

(3)在主机上编译各类应用程序,经过验证后烧入单板。

烧写、启动U-boot后,就可以通过U-boot的各类选项来下载、烧写、运行程序了。启动Linux后,也是通过执行各种命令来启动应用程序的。怎么输入这些命令、查看命令运行的结果呢?一般通过串口来进行输入输出。所以交叉开发模式中,主机与目标板通常需要2种连接:串口、网络。

1.2 硬件要求

1.主机要求

一般的PC机就可以用来进行物联网OpenWrt开发,它应该满足以下要求。

①有一个USB口;

②支持网络;

③至少20GB的硬盘。

2.目标板要求

由于后面会设计到大量的教程、大量的应用的移植,所以建议大家用512MB的内存、32MBFlash。所谓的硬件开发环境搭建很简单,将主机与目标板通过串口线(直接用miniUSB线连接主机和目标板即可)、网线(接单板上的任意网口)连接起来,将各类设备连接到目标板上去即可。

2 软件环境构建

2.1在Windows上安装虚拟机

本书基于Ubuntu16.04进行开发,它是一个很容易安装和使用的Linux发行版。光盘映象文件的下载地址为http://releases.ubuntu.com/。

安装方法有好几种:将映像文件刻录成光盘后安装,通过网络安装等。对于不熟悉Linux的读者,可以通过VMware虚拟机软件使用映象文件安装,这样可以在Windows中使用Linux──反过来也是可以的,安装Linux后,再使用VMware安装windows,这样就可以在Linux中同时使用Windows了。

这几种安装方法基本相同,下面介绍在Windows中通过VMware来安装Linux的方法。不管是哪种方法,都建议单独使用一个分区来存放本书所涉及的源码、编译结果,这可以避免当系统出错、系统重装时破坏学习成果。

从VMware的官方网站http://www.vmware.com下载到VMware工具,安装后,参照以下方法安装、设置Linux。

在VMware中建立一个虚拟机器,可以想象需要指定硬盘、内存、网络。在VMware中可以使用实际的硬盘,也可以使用文件来模拟硬盘。依照下面的一系列图形就可以建立了。

【注】笔者使用虚拟机软件是VMware Workstation 15.5,其他版本同理。关于VMware Workstation的安装笔者就不详述了,网上资料很多,自行查找吧。

2.2 VMware上安装Ubuntu16.04教程

Ubuntu安装镜像版本号:ubuntu-16.04.6-desktop-amd64

ubuntu下载地址:http://releases.ubuntu.com/16.04/

【注】下载源有很多,自行查找吧。

首先我们要安装虚拟机,这里不多做介绍,假设大家电脑上都已经安装了虚拟机,这里以VMware 15.5中文版为安装介绍对象。首先打开虚拟机。

第一步:打开虚拟机

C:\\Users\\BruceOu\\Desktop\\2020-05-12_092155.png

第二步:这里便来到了home页,点击打开“创建新的虚拟机”。

C:\\Users\\BruceOu\\Desktop\\2020-05-12_092722.png

第三步:这里我选择“自定义”安装,当然你也可以选择“典型”,然后点击“下一步”。

1687790349863wzy6d1yo5g

第四步:来到兼容性页面,这里不用设置,直接按默认来就行,点击下一步。

16877903501886yufxjzre8

第五步:这里来到了客户机操作系统选择页面,我在这里选择“安装光盘镜像文件”选项,在下框里选择镜像文件所在的位置,点击“下一步”。

1687790350455cneki0z8ch

第六步:简易安装信息界面,这里补充完整信息点击“下一步”。

1687790350721pwvmkv0c9i

【注意】这个地方已经设置了登录用的用户名密码,所以好多人在安装完成之后不知道登录的用户名密码是什么,就是这个地方填的。

第七步:命名虚拟机页面,我们选择虚拟机的名字,并选择虚拟机要安装的位置,尽量选择比较空闲的盘符,点击下一步。

1687790350984m4igz95ysg

第八步:这里根据你的电脑配置定吧,点击“下一步”。

1687790351233nqe1tpxl7n

第九步:这里选择虚拟机内存的大小,我按这里的推荐设置来,你也可以按照上面所说的规则来自己调整,点击“下一步”。

1687790351474yehxzdbhri

第十步:这里我直接选择桥接网络(这样网速会快些),当然待会在虚拟机里也可以改动的。

1687790351780mthu9hziec

第十一步:接下来我们直接按推荐设置来就可以了, 一路点击“下一步” ,直到“完成”。

16877903520748k33acuz9a

第十二步:磁盘空间大小建议是20g以上,笔者这里选择了50g,设置好后点击下一步;

1687790352338t9l4jj2qc1

单击【下一步】后,再单击【完成】。

第十三步:等待安装完成即可。

2.3主机Linux操作系统上网络服务的配置与启动

配置Linux,启动ftp、ssh这2个服务。如果不是通过远程登录Linux,而是直接在Linux中进行开发,则ftp、ssh这两个服务不用开启。

(1)准备使用软件维护工具apt-get。

Ubuntu16.04中没有安装ftp、ssh、nfs服务器软件,它提供了一个很方便的安装、升级、维护软件的工具:apt-get。apt-get从光盘、网络上下载程序,并安装。所以要使用apt-get,通常要保证Linux能上网。

第一次使用apt-get来安装程序之前,要先完成以下两件事:

①修改/etc/apt/sources.list,将其中注释掉的网址打开在安装Ubuntu12.04的时候,如果网络无法使用,它会自动将/etc/apt/sources.list中各项注释掉。比如需要将以下两行开头的“#”号去掉:

#deb http://cn.archive.ubuntu.com/ubuntu/gutsymainrestricted

#deb-src http://cn.archive.ubuntu.com/ubuntu/gutsymainrestricted

……

注意:由于/etc/apt/sources.list属于root用户,而Ubuntu12.04中屏蔽了root用户的使用,要修改它,需要使用sudo命令。比如可以使用“sudo vi/etc/apt/sources.list”来修改它,或者使用“sudo gedit&”命令启动图形化的文本编辑器,再打开、编辑它。

②更新可用的程序列表

执行如下命令即可,它只是更新内部的数据库以确定:有哪些程序已经安装、哪些没有安装、哪些有新版本。apt-get程序将使用这个数据库来确定怎样安装用户指定的程序,并找到和安装它所依赖的其他程序。下面的指令。

$sudo apt-get update

(2)安装、配置、启动服务。

首先说明,Ubuntu中隐藏了root用户,就是说不能使用root用户登录,这可以避免不小心使用root权限而导致系统崩溃。当需要使用root权限时,使用“sudo”命令,比如要修改/etc/exports文件时,修改如下所示:

$sudo vi /etc/exports

现在可以使用apt-get来安装软件了,以下的安装、配置、启动方法在Ubuntu7.10自带的帮助文档中都有说明。

安装、配置、启动ftp服务。

执行以下命令安装,安装后即会自动运行:

$sudo apt-get install vsftpd

修改vsftpd的配置文件/etc/vsftpd.conf,将下面几行前面的“#”号去掉。

#local_enable=YES

#write_enable=YES

上面第一行表示是否允许本地用户登录,第二行表示是否允许上传文件。

修改完华之后,执行以下命令重启ftp服务:

$sudo /etc/init.d/vsftpd restart

安装、配置、启动ssh服务。

执行以下命令安装,安装后即会自动运行:

$sudo apt-get install open ssh-server

它的配置文件为/etc/ssh/sshd_config,使用默认配置即可。

2.4 Ubuntu和Windows互传文件

1)虚拟机->设置->共享文件夹

1687790352574pf7xhya7rp

2)选择【下一步】,然后选择共享文件夹路径

1687790352997bqlhx4ffoy

再点击【下一步】->【完成】就可。

3)进行软链接

进入虚拟机,进入home目录,输入命令:

$ln -s /mnt/hgfs/share

好了,现在Ubuntu和Windows就能互传文件了。

2.5 修改Linux的计算机名

1)修改/etc/hostname

$sudo vim /etc/hostname

将文件中的内容改为自己想设置的名字。

  1. sudo vim /etc/hosts

将文件中127.0.1.1后面内容改为自己刚才设置的名字。

重启生效!

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1621

    浏览量

    147734
  • u-boot
    +关注

    关注

    0

    文章

    120

    浏览量

    38194
  • 开发环境
    +关注

    关注

    1

    文章

    220

    浏览量

    16580
  • 编译
    +关注

    关注

    0

    文章

    652

    浏览量

    32799
  • OpenWrt
    +关注

    关注

    10

    文章

    127

    浏览量

    39261
收藏 人收藏

    评论

    相关推荐

    Openwrt开发指南 25 配置OpenWrt支持网络摄像头

    Openwrt开发指南 25 配置OpenWrt支持网络摄像头
    的头像 发表于 07-13 08:56 2301次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>25<b class='flag-5'>章</b> 配置<b class='flag-5'>OpenWrt</b>支持网络摄像头

    Openwrt开发指南 1 OpenWrt入门

    如果要学习openwrt的话,买些列表中二手的路由器来实践下更容易学习,大部分要升级一下rom芯片和内存芯片,典型配置都是4M、64M。
    的头像 发表于 06-27 09:09 4216次阅读

    Openwrt开发指南 3 OpenWrt下载及配置

    编译OpenWrt首先需要下载源码,OpenWrt的源码是通过git下载,OpenWrt目前已经很好的支持了MT7620、MT7821等芯片,因此OpenWrt系统完全可以用于MT76
    的头像 发表于 06-27 09:10 5545次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>3<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>下载及配置

    Openwrt开发指南 4 烧写OpenWrt固件

    对于一个完整的嵌入式系统,它由U-boot、内核(Linux)、文件系统、应用程序四部分组成。那么这四部分之间的关系是怎么样的呢?OpenWrt是属于哪部分呢?
    的头像 发表于 06-27 09:11 4619次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>4<b class='flag-5'>章</b> 烧写<b class='flag-5'>OpenWrt</b>固件

    Openwrt开发指南 7 添加Web界面

    LuCI作为“FFLuCI”诞生于2008年3月份,目的是为OpenWrt固件从Whiterussian到Kamikaze实现快速配置接口。Lua是一个小巧的脚本语言,很容易嵌入其它语言。轻量级
    的头像 发表于 06-29 09:04 3660次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>7<b class='flag-5'>章</b> 添加Web界面

    Openwrt开发指南 12 添加OpenWrt软件包

    OpenWrt是一个比较完善的嵌入式Linux开发平台,在无线路由器应用上已有4000多个软件包。我们可以在其基础上增加软件包,以扩大其应用范围。在OpenWrt中增加软件包极其方便,按照
    的头像 发表于 06-29 09:09 8646次阅读

    Openwrt开发指南 13 OpenWrt启动流程

    任何系统的启动都是开发人员首要关注的问题,因为只有了解了系统的启动流程和启动机制,才能真正掌握一个系统,如果对启动的启动不熟悉的话,是不可能真正用好一个系统,openwrt系统也不例外,他的启动和一般的嵌入式系统启动还有所区别,现在咱们就分析一下
    的头像 发表于 06-29 09:09 3412次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>13<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>启动流程

    Openwrt开发指南 17 驱动开发之字符设备驱动程序

    首先将 RT5350_drv 文件夹传到 OpenWrt 源码的chaos_calmer/package/kernel 目录下。然后进入 OpenWrt 源码的顶层目录,执行 make menuconfig。
    的头像 发表于 07-02 09:20 3121次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>17<b class='flag-5'>章</b> 驱动<b class='flag-5'>开发</b>之字符设备驱动程序

    Openwrt开发指南 22 Openwrt串口的使用2

    在上一中,我们成功的让驱动程序支持了串口 2,并且做了简单的测试。接下来,我们就为串口 2 添加一个应用程序,从而实现 Wi-Fi 串口。实现过程非常简单,首先进入 OpenWrt
    的头像 发表于 07-05 09:09 3961次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>22<b class='flag-5'>章</b> <b class='flag-5'>Openwrt</b>串口的使用<b class='flag-5'>2</b>

    Openwrt开发指南 24 配置开发板支持U盘

    Openwrt开发指南 24 配置开发板支持U盘
    的头像 发表于 07-13 08:55 2949次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>24<b class='flag-5'>章</b> 配置<b class='flag-5'>开发</b>板支持U盘

    Openwrt开发指南 29 OpenWrt 防火墙介绍

    Openwrt 是一个 GNU/Linux 的发行版, 和其他大多数的发行版一样,Openwrt 的防火墙同样也是基于 iptables。 在 OpenWRT 下防火墙的默认行为已经可以满足路由器的需要,一般情况下也无需修改。
    的头像 发表于 07-15 16:24 3454次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>29<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b> 防火墙介绍

    【WRTnode2R试用体验】Openwrt简介和开发环境搭建

    580M,具有32M NOR Flash和 256M DDR2 RAM,硬件上已经相当的高了可以很好的满足我们开发需要,相比一般的那路由器去硬改可谓是省了不少事,下面就先说下openwrt开发
    发表于 10-25 22:37

    【柠檬分享】Openwrt环境搭建

    我们自身是有极大的好处的,因为专业嘛。友情提醒,本帖较为基础,是方便大家进行openwrt开发环境搭建而写,望大神轻拍,有什么问题,欢迎跟帖,我会尽快回复大家,感谢。
    发表于 05-26 11:56

    RT5350 Wi-Fi 模块开发指导_物联网 openwrt 开发概述

    物联网的资料 物联网openwrt开发概述 物联网openwrt开发概述 物联网openwrt开发
    发表于 11-16 14:52 0次下载

    openwrt开发教程1~6

    openwrt开发教程1~6
    发表于 03-17 14:23 53次下载