(1)嵌入式开发需要的环境:VMWare + Ubuntu 、 tftp 服务器、nfs服务器、vim、samba。
理解:
(1)在windows 上面安装虚拟机软件 VMWare
(2)在虚拟机软件VMWare 当中创建虚拟机 Ubuntu
(3)在Ubuntu 当中安装 tftp 服务器、nfs 服务器、vim、samba 服务器等服务。
官网:https://www.vmware.com/cn.html
应用与云->查看所有产品
下载地址:ubuntu 官网
中文网址
LTS:LTS意为“长期支持”,一般为5年
非LTS:不是长期维护。
在下载之前,我们要查看我们电脑是否支持当前虚拟机的配置要求。
64位:和我们电脑主机一样,现在基本都是 64位(一般选这个)
32位:现在很少有主机是32位了,(32位,最大只能识别 4G 的空间)
1、首先下载好的是一个光盘映像文件
2、VMware基于这个Ubuntu 的映像文件,来安装虚拟机。
3、设置名字
4、选择安装路径:(将这个映像文件进行安装成为虚拟机系统)
5、硬件配置
6、这样就安装好了。
总结:
1、首先下载的镜像文件,相当于一个安装包。
2、之后的建立虚拟机,相当于对这个安装包进行安装。
在 setting 当中去设置
1、快捷键:
Alt + Ctrl + T
2、右键 :open terminal
3、设置 tab
模式
(1)首先打开一个终端、然后点击上面的 preferences
。
(2)选择 tab
模式
(3)形式
在终端切换root 用户的时候,会提示切换失败。
解决方案:
为 root 用户建立一个密码:sudo passwd root
1、每个用户都有自己的工作目录,用户一般在自己的工作目录下面干活。
2、临时工作目录: /opt
3、一般的挂载目录 /mnt
4、还有一些的特殊的挂载 /media
1、先使 ubuntu 上网
参考文章
sodo apt-get updata
有时候更新之后就,可以下载了
aptitude
软件(相当于 软件管家,类似于 apt-get
这个软件 )sodo apt-get install aptitude
然后使用 aptitude
软件,来进行安装
aptitude install vim
具体设置可以参考这个视频:参考视频
本教程不是很全面,因为直接设置就可以成功,所以并没有实际安装这些东西。
功能:使windows 和 Ubuntu 可以直接通讯。
(1)可以直接复制文字
(2)可以直接复制软件
(3)共享文件夹也是 VMtools 的其中一个功能
安装 VMtools 软件(1)—— 有的可能是黑的
如果可以点的话,那么会提示这么操作。
(1)我们点击更新这个按键相当于,直接模拟安装了一个驱动。所以在 Ubuntu当中显示。
参考博客:https://blog.csdn.net/Enochzhu/article/details/103566748
目的:有时候共享文件夹不能使用,所以我们通过搭建 samba 服务器来实现共享。
主要参考博客:https://blog.csdn.net/weixin_38056448/article/details/83218458
1、利用软件 aptitude
来安装(aptitude
的安装可以参考第 5 部分)
aptitude install samba
(1)先选择 no ,要求软件选择另外的方案
(2)一直选 yes
2、查看当前版本
samba -V
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 的用户
(我自己并没有实践)
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可以连接和查看如下:
虚拟机本来就是一台虚拟出来的设备,(他自己没有自己的物理网卡)(所以本身不可能通过自己来上网)
我们笔记本电脑有两个网卡:有线网卡、无线网卡。(所以可以通过:网线和wifi来进行上网)
虚拟机上网的方式:NAT和桥接
1、原理:依赖于主机上网,只要主机windows 可以上网,虚拟机就可以上网。
1、不管 windows 到底是什么方式来上网,只要windows 可以上网,虚拟机就可以上网。
2、笔记本的网卡只服务windows一台机器,虚拟机然后再依赖 windows 来上网。
3、windows 和 虚拟机公用一个IP地址。(校园网给我们固定的IP地址,我们虚拟机只能通过 NAT 方式来上网)
2、配置:
1、VMware 软件菜单中选择 NAT 方式
2、虚拟机设置为dhcp 模式,然后重启网卡(得到一个合法ip地址)。(怎么设置:查看第9节)
1、原理:桥接方式认为虚拟机是一个独立的设备。
1、与 windows 主机共同使用有线网卡,和无线网卡。相当于这两个网卡,共同服务 windows 和 虚拟机。
2、 windows 和 虚拟机使用 IP 地址不同。
2、配置:
1、在虚拟机设置选项当中,选择桥接方式。
2、编辑——> 虚拟网络编辑器:选择桥接到哪里去。(有真实网卡,和虚拟网卡)
Ethernet :有线,Wireless:无线
铺垫:我们来查看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
在这个文件当中,我们可以对 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地址。
第一种:(有的版本不能用)
sudo /etc/init.d/networking restart
第二种:
sudo service networking restart
第三种:
ifdown ens33
ifup ens33
(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、如果开发板里面运行Linux,开发板和windows,还有Ubuntu 之间都可以ping 通。
2、如果开发板当中运行的是 uboot , 只能从 uboot 去 ping Ubuntu,不能反过来,从Ubuntu ping 开发板。
因为 uboot 是一个裸机程序,并不是一个操作系统,所以它并不会一直循环检测从Ubuntu 发来的命令。
3、上面的配置设置好以后,我们的开发板能 ping 通Ubuntu, 但是 ping 不通 windows 。(不合理)
往往是因为 windows 的防火墙或者 360 等安全软件拦截导致的。
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、测试