嵌入式开发环境搭建

一、背景

(1)嵌入式开发需要的环境:VMWare + Ubuntu 、 tftp 服务器、nfs服务器、vim、samba。

理解:
(1)在windows 上面安装虚拟机软件 VMWare
(2)在虚拟机软件VMWare 当中创建虚拟机 Ubuntu
(3)在Ubuntu 当中安装 tftp 服务器、nfs 服务器、vim、samba 服务器等服务。

1、VMware 安装

官网:https://www.vmware.com/cn.html
应用与云->查看所有产品

在这里插入图片描述
找到桌面级的 Hypervisor

  • Pro:高级版本,功能比较多。(收费)(可以去其他网站搜索密钥)
  • Player:低版本,功能比较少。(免费)
    在这里插入图片描述

2、Ubuntu 安装

下载地址:ubuntu 官网
中文网址

(1)LTS 和 非 LTS

在这里插入图片描述

LTS:LTS意为“长期支持”,一般为5年
非LTS:不是长期维护。

(2)配置要求

在下载之前,我们要查看我们电脑是否支持当前虚拟机的配置要求。
在这里插入图片描述

(3)64位 和 32位

在这里插入图片描述

64位:和我们电脑主机一样,现在基本都是 64位(一般选这个
32位:现在很少有主机是32位了,(32位,最大只能识别 4G 的空间

(4)下载安装

1、首先下载好的是一个光盘映像文件
在这里插入图片描述
2、VMware基于这个Ubuntu 的映像文件,来安装虚拟机。
在这里插入图片描述
3、设置名字
在这里插入图片描述
4、选择安装路径:(将这个映像文件进行安装成为虚拟机系统)
在这里插入图片描述
5、硬件配置
在这里插入图片描述

6、这样就安装好了。

总结:
1、首先下载的镜像文件,相当于一个安装包。
2、之后的建立虚拟机,相当于对这个安装包进行安装。


3、新安装的 Ubuntu 的使用优化

在这里插入图片描述

1、更换背景设置

在 setting 当中去设置

2、关闭更新

在这里插入图片描述

3、打开终端

1、快捷键: Alt + Ctrl + T
2、右键 : open terminal

3、设置 tab 模式

(1)首先打开一个终端、然后点击上面的 preferences
在这里插入图片描述
(2)选择 tab 模式
在这里插入图片描述
(3)形式
在这里插入图片描述

4、 root 用户

(1)初始 root 用户没有密码

在终端切换root 用户的时候,会提示切换失败。
在这里插入图片描述
解决方案:
为 root 用户建立一个密码:sudo passwd root
在这里插入图片描述

(2)用户工作的目录

1、每个用户都有自己的工作目录,用户一般在自己的工作目录下面干活。

  • 比如 cyber 用户:/home/cyber
    在这里插入图片描述

2、临时工作目录: /opt

在这里插入图片描述

3、一般的挂载目录 /mnt

4、还有一些的特殊的挂载 /media


5、常用的软件遇到的问题

1、先使 ubuntu 上网
参考文章

2、在 /opt 下面安装 vim
在这里插入图片描述
安装失败,解决方案:

  • 第一种:更新我们的安装源
sodo apt-get updata 

有时候更新之后就,可以下载了

  • 第二种:安装 aptitude 软件(相当于 软件管家,类似于 apt-get 这个软件 )
sodo apt-get  install aptitude

然后使用 aptitude 软件,来进行安装

aptitude install vim

在这里插入图片描述
当我们选择 not 的时候,就会给我们推荐另外一种方案。

在这里插入图片描述
在这里插入图片描述
这下就安装好了
在这里插入图片描述


6、共享文件夹和 VMtools 的安装

具体设置可以参考这个视频:参考视频

本教程不是很全面,因为直接设置就可以成功,所以并没有实际安装这些东西。

(1)安装 VMtools 软件:第一种

功能:使windows 和 Ubuntu 可以直接通讯。

(1)可以直接复制文字
(2)可以直接复制软件
(3)共享文件夹也是 VMtools 的其中一个功能

安装 VMtools 软件(1)—— 有的可能是黑的
在这里插入图片描述
如果可以点的话,那么会提示这么操作。
在这里插入图片描述

(1)我们点击更新这个按键相当于,直接模拟安装了一个驱动。所以在 Ubuntu当中显示。

(1)安装 VMtools 软件:第二种

参考博客:https://blog.csdn.net/Enochzhu/article/details/103566748


7、搭建 samba 服务器

目的:有时候共享文件夹不能使用,所以我们通过搭建 samba 服务器来实现共享。
主要参考博客:https://blog.csdn.net/weixin_38056448/article/details/83218458

(1)在 ubuntu 安装 samba 软件

1、利用软件 aptitude 来安装(aptitude 的安装可以参考第 5 部分)

aptitude install samba

(1)先选择 no ,要求软件选择另外的方案
(2)一直选 yes

2、查看当前版本

samba -V

在这里插入图片描述

(2)配置不需要登陆的共享文件夹

1、ubuntu 当中的配置

1、在home 目录下创建一个共享目录
		mkdir /home/Anyone_Share

2、添加目录权限
		chmod o+w /home/Anyone_Share/       // o : other user代表第三个使用权限
      
3、备份配置文件
		cd /etc/samba/smb.conf
		cp smb.conf ./smb.conf.bak

4、修改Samba的配置文件 /etc/samba/smb.conf
		vi /etc/samba/smb.conf

5、在文件末尾添加如下内容:
#设置客户端显示的共享目录的名字
[share]
		
comment=this is Linux share directory
path=/home/Anyone_Share
browsable=yes
public=yes
writable=yes
create mask=0777
directory mask=0777

上述配置的解释如下:
comment 是关于该目录的简要描述
path 参数的共享目录的位置
browsable 表示是否在 Window Explorer中显示该目录
guest ok (或者使用 public)表示是否允许匿名访问该共享目录
read only (或者使用 writable = yes)表示是否是只读
create mode 指明新建立的文件的属性,一般是0755
directory mode 指明新建立的目录的属性,一般是0755

6、重启Samba服务使配置生效
		service smbd restart

2、在windows 当中打开

(1)查看ubuntu 的 ip 地址。(在 NAT 模式下面上网)
在这里插入图片描述

(2)在windows 当中打开(在我的电脑当中输入即可)

第一次登陆,需要确认你是 Ubuntu 的哪一个用户。(输入 Ubuntu 的用户名称与密码即可)
并不是指 Samba 的用户
在这里插入图片描述

(3)也可以建立一个快捷方式来进行打开
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(3)配置需要登陆的文件夹

我自己并没有实践

Secured share 与 Anonymous share 不同,一个 Secured share 共享目录,当客户端访问时需要输入用户名和密码,因此,相比 Anonymous share, Secured share 共享目录的安全性更高。当你在一个公共场合搭建Samba服务器时,应该创建 Secured share 共享目录。

Secured share 共享目录的创建方法如下:

1、创建一个 secured share 共享目录并设置权限

$ sudo mkdir -p /home/secret
$ sudo chmod o+w /home/secret

2、创建一个用于访问这个 secured share 的用户

$ sudo useradd sambauser -s /usr/sbin/nologin 
//创建一个名为sambauser的用户,指定路径为/usr/sbin/nologin即不需登陆

3、修改共享目录的User 为 sambauser

$ sudo chown sambauser:sambauser /home/secret //此操作可以忽略

4、修改 Samba 配置文件
在文件末尾添加如下内容:

[secret]
comment=Secret File
path=/home/secret
valid user=sambauser
guest ok=no
writable=yes
browsable =yes
create mask=0755
directory mask=0755

5、将用户 sambauser加入到本 smbpasswd file

$ sudo smbpasswd -a sambauser

6、执行完该命令后会在/etc/samba/smbpasswd添加一条关于密码的信息

7、重启 Samba 服务使配置生效

$ sudo service smbd restart

至此,Samba服务器配置完成。在Windows可以连接和查看如下:
在这里插入图片描述


8、NAT 和 桥接

虚拟机本来就是一台虚拟出来的设备,(他自己没有自己的物理网卡)(所以本身不可能通过自己来上网)

我们笔记本电脑有两个网卡:有线网卡、无线网卡。(所以可以通过:网线和wifi来进行上网)

虚拟机上网的方式:NAT和桥接

(1)NAT方式

1、原理:依赖于主机上网,只要主机windows 可以上网,虚拟机就可以上网。

1、不管 windows 到底是什么方式来上网,只要windows 可以上网,虚拟机就可以上网。
2、笔记本的网卡只服务windows一台机器,虚拟机然后再依赖 windows 来上网。
3、windows 和 虚拟机公用一个IP地址。(校园网给我们固定的IP地址,我们虚拟机只能通过 NAT 方式来上网)

2、配置:

1、VMware 软件菜单中选择 NAT 方式
2、虚拟机设置为dhcp 模式,然后重启网卡(得到一个合法ip地址)。(怎么设置:查看第9节)

3、缺点:开发板不能与虚拟机通讯
在这里插入图片描述

(2)桥接方式

1、原理:桥接方式认为虚拟机是一个独立的设备

1、与 windows 主机共同使用有线网卡,和无线网卡。相当于这两个网卡,共同服务 windows 和 虚拟机。
2、 windows 和 虚拟机使用 IP 地址不同。

2、配置:

1、在虚拟机设置选项当中,选择桥接方式。
2、编辑——> 虚拟网络编辑器:选择桥接到哪里去。(有真实网卡,和虚拟网卡)
Ethernet :有线Wireless:无线

在这里插入图片描述


9、Ubuntu 中网络设置

铺垫:我们来查看Ubuntu当中的网络信息
在这里插入图片描述
ens33 网卡:

1、是虚拟机自动创建的网卡,我们可以用它来做桥接或者是NAT。
2、

lo网卡

1、是自动创建的虚拟网卡。
2、IP地址为:127.0.0.1 :用来做回环测试


ubuntu从17.10开始,已放弃在/etc/network/interface里固定IP的配置,即使配置也不会生效,而是改成netplan方式

参考文章:https://blog.csdn.net/wfcao1314/article/details/107183188

(1)/etc/network/interfaces 文件

在这个文件当中,我们可以对 Ubuntu 来进行各种网络配置。
在这里插入图片描述
在这里插入图片描述

静态(static)模式:

1、需要我们额外配置 ip 地址信息。
2、自己配置需要注意的问题
address:必须和我们的主机ip 地址在一个网段,但是他们两个是不一样的。(因为桥接方式是独立的IP地址,而路由器分配的地址都是在一个网段里面的)
3、gateway:网关地址,也就是网段的第一个地址

注意:什么情况下会使用 DHCP 服务成功:
(1)NAT 方式上网。(虚拟机依附于windows,直接使用windows 的IP地址)

(2)桥接到电脑的一个网卡上面,而这个网卡连接的外部网络中有DHCP 服务器。
成功的方式:

1、桥接到无线网卡,然后我们的电脑通过WiFi来连接路由器。
2、桥接到有线网卡,然后我们通过网线来连接路由器。

桥接DHCP,不能上网的情况:

1、桥接到有线网卡,而我们有线网卡并没有使用,我们使用无线网卡上网。
2、桥接到有线网卡,我们有线网卡的网线,并没有插到有DHCP 服务器的设备上面。
比如:路由器是由 DHCP 服务器的;而我们的光猫,采用拨号上网是没有 DHCP 服务器的。
3、校园网的路由器当中虽然有 DHCP 服务器,但是有的学校会禁用,直接给我们分配固定的 IP地址。

(2)重启网卡的命令

第一种:(有的版本不能用)

sudo /etc/init.d/networking restart

第二种:

sudo service networking restart

第三种:

ifdown ens33
ifup ens33

10、UBuntu 连接开发板时候的网络设置

(1)根据前面分析的原理,我们 Ubuntu 上网的方式必须设置为桥接方式。
如果是 NAT 方式的话,我们的虚拟机根本没有暴露在外面
因为桥接方式:虚拟机和我们的 windows 具有相同的地位。并且还得桥接到有线网卡,因为开发板是通过网线和我们主机连接的

在这里插入图片描述

(2)开发板必须运行 linux (或者 uboot),IP地址设置好,网卡驱动没问题

移植网卡驱动必须设置好
在这里插入图片描述

(3)虚拟机Ubuntu当中,设置静态ip 与开发板的到同一个网段,重启虚拟机网卡。

1、重启网卡:让新的ip地址生效。
2、为什么要设置静态模式?
因为我们笔记本电脑上面通过网线连接到开发板开发板上面的网卡可能没有 dhcp 服务器
所以根本分配不到 IP地址。

在这里插入图片描述

(4)windows 中有线网卡对应的 本地连接,设置为与开发板ip地址的同一网段
在这里插入图片描述
在这里插入图片描述
总结:

1、开发板: 192.168.1.10
2、虚拟机Ubuntu :192.168.1.141
3、本地连接:192.168.1.20
他们都在同一个网段,所以可以通讯。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(1)注意细节

1、如果开发板里面运行Linux,开发板和windows,还有Ubuntu 之间都可以ping 通。

2、如果开发板当中运行的是 uboot , 只能从 uboot 去 ping Ubuntu,不能反过来,从Ubuntu ping 开发板。

因为 uboot 是一个裸机程序,并不是一个操作系统,所以它并不会一直循环检测从Ubuntu 发来的命令

3、上面的配置设置好以后,我们的开发板能 ping 通Ubuntu, 但是 ping 不通 windows 。(不合理)

往往是因为 windows 的防火墙或者 360 等安全软件拦截导致的。


二、搭建tftp、nfs 服务器

1、搭建 tftp 服务

1、Ubuntu 安装 tftp 的服务:tftp-hpa (客户端)、tftd-hpa(服务程序)、xinetd

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd  
 xinetd 是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务。

2、配置 /etc/xinetd.conf
在这里插入图片描述
3、配置服务端
修改 /etc/default/tftpd-hpa 文件内容如下

  • TFTP_DIRECTORY : tftp 启动根目录, 修改成自己想要的目录

  • TFTP_OPTIONS : tftp 启动选项,各选项解析如下:-l –Listen、-c –create、-s –secure

# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"

如果你在客户端获取文件时出现 Error code 1: File not found 这个错误,请检查一下TFTP_OPTIONS=“-l -c -s”。

4、然后建立TFTP配置文件,
使用命令:“vi /etc/xinetd.d/tftp” 建立文件,向文件中写入如下代码(必须按照格式严格对齐)
在这里插入图片描述

  1 service tftp
  2 {
  3         socket_type = dgram
  4         wait = yes
  5         disable = no
  6         user = root
  7         protocol = udp
  8         server = /usr/sbin/in.tftpd
  9         server_args = -s /tftpboot
 10         per_source = 11
 11         cps = 100 2(有一个空格格)
 12         flags = IPv4
 13 
 14 }

5、修改权限
参数 -R :指子目录也这样进行配置
在这里插入图片描述
6、重启 tftp 服务
在这里插入图片描述
在这里插入图片描述

配置好后,重启 tftp 服务:

service tftpd-hpa restart
/etc/init.d/xinetd reload
/etc/init.d/xinetd restart

7、测试

本地测试:
在这里插入图片描述
远程测试:
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想文艺一点的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值