Vmware虚拟机教程之嵌入式Linux开发环境搭建
白羽 2018-08-01 来源 :网络 阅读 1523 评论 0

摘要:本文将带你了解Vmware虚拟机教程之嵌入式Linux开发环境搭建,希望本文对大家学Vmware有所帮助。

        本文将带你了解Vmware虚拟机教程之嵌入式Linux开发环境搭建,希望本文对大家学Vmware有所帮助。


1.主要用于海思HI3518E方案视频编解码传输环境搭建
2.安装VMware
2.1、VMware介绍
(1)虚拟机软件原理介绍
(2)常用虚拟机软件:VMware和VirtualBox
(3)VMware的版本介绍
(4)高版本的VMware创建的虚拟机文件用低版本的VMware是打不开的,反之则可以。所以创建虚拟机时VMware的版本不要求最新,而你想使用别人创建的虚拟机就必须自己的VMware版本比他的高(至少一样)。我的ubuntu16.04.3_x64是用VMware12.5.7创建的,所以你要使用我做好的ubuntu虚拟机,就必须至少使用VMware12.5.7或者更高版本。
2.2、安装VMware12.5.7
(1)下载VMware12.5.7
下载地址:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-12.5.7-5813279.exe
(2)安装
不管原来有无安装过VMware,都可以直接双击安装程序exe进行安装,如果原来有装过则会自动检测到并且升级。
(3)激活
激活码可以到网上搜索对应版本,譬如搜索“VMware12.5.7激活码”就能找到可用的。譬如下面几个是我安装时找到的,挨个试试哪个能用用哪个。
5A02H-AU243-TZJ49-GTC7K-3C61N
VF5XA-FNDDJ-085GZ-4NXZ9-N20E6
UC5MR-8NE16-H81WY-R7QGV-QG2D8
ZG1WH-ATY96-H80QP-X7PEX-Y30V4
AA3E0-0VDE1-0893Z-KGZ59-QGAVF
3.安装ubuntu16.04.3 LTS
3.1、Ubuntu介绍
(1)Ubuntu是linux众多发行版中的一个,目前在国内比较流行
(2)Ubuntu的版本(17.04 17.10  LTS)
(3)如何选择适合自己的版本
3.2、下载安装包iso
官网页面地址:https://www.ubuntu.com/download/alternative-downloads  选择16.04.3LTS的Desktop 64位的iso版本即可。
下载连接为:   //releases.ubuntu.com/16.04/ubuntu-16.04.3-desktop-amd64.iso.torrent?_ga=2.169212961.1874678587.1501904191-1914687185.1498200088
3.3、安装
(1)硬盘可以稍微给大点,我给了60GB,内存给了4GB(windows物理内存有8GB),其他没特别的。
(2)默认创建的用户wy,密码root 将来开机后su passwd root给root用户设置密码,也是root
4.新安装Ubuntu的基本设置
4.1、开机和关机等
(1)初始状态下开机
(2)关闭虚拟机
(3)挂起和恢复虚拟机
(4)快照
4.2、虚拟机基本设置
(1)更换桌面背景
(2)设置屏幕分辨率
(3)全屏虚拟机的好坏
(4)关闭锁屏,
(5)关闭更新
4.3、控制台Terminal
(1)打开和关闭控制台 Ctrl+Alt+T
(2)以Tab形式打开控制台 (将鼠标移至控制台最上方,选择Terminal,改成以tab方式)
(3)设置控制台字体和大小
5.ubuntu的root用户
5.1、ubuntu的多用户体系
(1)分组:特权组和普通组
(2)特权代表:root;普通代表:默认创建的用户aston
(3)添加用户用:useradd和adduser,也都有对应的删除用户指令
5.2、平时使用ubuntu时用户的影响
(1)不安全但方便的使用习惯:直接以root用户登录使用ubuntu
(2)正规使用方式:默认以普通用户登录,需要特权操作时用sudo指令临时获取特权级别来完成操作
(3)为root用户设置密码,sudoer的概念(sudo passwd root命令设置root权限的密码),su+名字(wy)切换到普通用户
默认情况下安装好的ubuntu中root用户是没有密码的,所以我们没法去su root切换到root用户。
5.3、常规使用时的工作目录问题
(1)每个用户有自己的工作目录,一般应该在自己的目录下干活
(2)/opt 目录常被用来临时做工作目录
(3)一般挂载应该挂载在/mnt目录下,还有些挂载有特定目录譬如/media等
(4)/bin /sbin /lib等关键目录操作要慎重,一旦损坏系统可能会瘫痪(一般装完系统并搭建好常用环境好,可以将虚拟机关闭,并打包成压缩包保存,坏了直接解压一份来用)
6.安装vim
6.1、刚安装的ubuntu默认没有vim,我习惯用vim所以上网后先会安装vim。
6.2、上网(选择net方式,或桥接到有线网卡(wiffi可以上网))
6.3、安装vim 
先下载aptitude,sudo apt-get install aptitude,
通过aptitude功能(降低版本)解决版本太新导致无法安装的问题(sudo aptitude install vim)
7.1共享文件夹和VMtools安装
共享文件夹可以使用必须保证WMtools更新到最新版本
方法一:点击虚拟机->重新安装VMtools,左边功能栏会弹出光驱图标,进入复制压缩文件包到Documents(任意)文件夹,
进行解压(tar -xvf ....)->cd vmware-tools-distrib->sudo ./vmware-install.pl
方法二:点击虚拟机->设置->CD/DVD->使用ISO镜像文件->选择安装VMware的目录文件夹下->vmwareworkstation->linux.iso,然后确定保存之后,再次点击虚拟机->可移动设备->CD/DVD->连接,左边功能栏会弹出光驱图标,接下来的步骤同方法一。
安装之后,重启(sudo init 0),使先安装的VMwaretools生效。
7.2VMtools可以实现Windows和Ubuntu之间的复制和黏贴。
8.搭建samba服务器
2个关键点:1、安装samba时;
更关键的:Ubuntu设置的是NAT方式,且ubuntu可以通过Windows来上网(ubuntu中设置的网络是dhcp模式的,并且dhcp到一个正确的ip地址。)。
参考://www.cnblogs.com/bencakes/p/5541771.html
sudo apt-get install samba   /sudo aptitude install samba 
cd /etc/samba     
sudo cp smb.conf smb.conf.bk     
sudo vi smb.conf
2、/etc/samba/smb.conf配置项目问题
[share] comment=samba    ##这个是说明,随意填 
path=/home/wy/smbashare
public=yes 
create mask=0777
directory mask=0777  ##要能修改文件夹,要么就将/home/wy/smbashare权限设置为777,或者加上如下设置 
forceuser=root 
forcegroup=root
writable = yes
available = yes
重启smba: sudo /etc/init.d/sambd restart
9.samba服务器搭建后续
9.1、解决只读不能写问题
(1)将sambashare目录改为777(chmod 777 -R sambashare),直接测试,还是不行
(2)重启smb服务器后再测试,还是不行
(3)修改配置文件中0775到0777,并重启samba服务器,测试,还是不行
(4)配置文件中添加2行:writable = yesavailable = yes再重启服务器,测试,解决了。
9.2、配置中的一个坑
(1)security=share
参考://www.bubuko.com/infodetail-2219037.html
9.3、配置为带用户访问限制的samba
重启smbd时,报错:
[....] Restarting smbd (via systemctl): smbd.serviceJob for smbd.service failed because the control process exited with error code. See "systemctl status smbd.service" and "journalctl -xe" for details.
 failed!
这种报错就表示配置文件中有不对的地方
9.4、在Windows中创建一个smb共享文件夹的快捷访问
10.NAT和桥接
10.1、原理介绍
(1)NAT
(2)桥接
10.2、VMware菜单设置
(1)NAT:第一步,VMware软件菜单中选择NAT;第二步,虚拟机ubuntu设置为dhcp方式并重启网卡得到合法的IP地址。
(2)桥接
11.Ubuntu中网络配置
11.1、/etc/network/interfaces文件
(1)静态IP
auto ens33 
iface ens33 inet static? 
address 192.168.1.141?
gateway 192.168.1.1? 
netmask 255.255.255.0?
(2)DHCP
auto eth0? 
iface eth0 inet dhcp
11.2、重启网卡
(1)旧版本ubuntu中,最常用的是:sudo /etc/init.d/networking restart
(2)在很多版本中,也可以:sudo service networking restart
(3)在新版本ubuntu中,用:ifdown ens33 然后再ifup ens33
注意:什么情况下用DHCP会成功
(1)NAT方式上网
(2)桥接到电脑的一个网卡上,而这个网卡连接的外部网络中有DHCP服务器。典型的方式就是电脑通过WIFI连接到家里的路由器(dhcp server),ubuntu桥接到无线网卡上,这时dhcp一定能成功
12.Ubuntu连接开发板的网络设置
12.1、必须桥接
(1)桥接网络,桥接到有线网卡
(2)开发板运行linux(或uboot),IP地址设置好,网卡驱动没问题 192.168.1.10
(3)ubuntu中设置静态IP到同一网段,重启网卡 192.168.1.141
(4)windows中有线网卡对应的本地连接设置为同一网段静态地址 192.168.1.20
12.2、几个细节
(1)如果开发板是linux,那么开发板和ubuntu可以互相ping通;如果开发板是uboot,那只能从uboot去ping通ubuntu,不能反过来ping通。
(2)如果开发板能ping通ubuntu但是ping不通windows(不合理),往往是windows的防火墙或者360等安全软件拦截导致的。其实不影响使用,不用理会。
13.桥接下samba服务器的使用
13.1、桥接到有线网卡下使用samba
13.2、桥接到WIFI网卡下使用samba
13.3、有线网卡的一个bug
(1)有线网卡本身只有在激活状态下才会工作,samba才能用;而有线网卡如果没有通过一根网线连接到一个可联网的设备(路由器、别的电脑、运行了linux的开发板)时有线网卡默认是不会被激活的。这就是一个bug。
当桥接到有线网卡,并且开发板没有运行linux时,这时samba服务器是没法用的。在我们正常开发时一般大部分功能开发时开发板上都已经跑起来linux了,这时候不影响。影响的主要是系统移植的开发过程。这个过程中就会遇到samba服务器没法使用的情况。
14.主机Windows和虚拟机ubuntu之间文件共享经验
14.1、使用共享文件夹技术
(1)本地开发、共享文件夹可用,首选之。
(2)本地开发、共享文件夹不可用,试试重装VMtools
14.2、使用samba服务器
(1)本地开发、共享文件夹死活用不了,建议用samba,不连开发板时首选NAT方式
(2)必须连开发板(必须桥接)时,如果开发板始终运行linux,那就桥接到有线网卡配好IP用samba
(3)开发板系统移植阶段没有linux时,可以考虑:开发板和主机不直连而是通过路由器网连。
(4)差一点的方法是:连开发板时桥接有线网络,用samba时桥接到无线网络(或NAT)
15.添加Loopback网卡实现Windows和ubuntu始终可以桥接ping通
主要是为了解决有线网卡在未连接外部设备时不能被激活的问题
设备管理器->用户名右击->添加过时硬件->手动从列表中选择硬件->网络适配器->Microsoft->MicrosoftloopbackAdapter
->配置相同网段的IP地址,Ubuntu桥接到该网卡,主机便可以和windows实现相互ping通
参考://blog.sina.com.cn/s/blog_62091a4a0100xnvj.html
16.搭建tftp服务器
1.下载命令:sudo apt-get  install tftpd-hpa 安装xinetd:sudo apt-get install xinetd
2.配置/etc/xinetd.conf
配置相关服务文件。进入根目录下的 etc 文件夹( cd /etc/ ) ,首先看目录中有没有一个
xinetd.conf 文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则
修改,内容如下:
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d
第 3  步:配置/etc/default/tftpd-hpa
配置 tftp 服务器
命令:
sudo vim /etc/default/tftpd-hpa
将内容修改成
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
#这是你 tftp 服务器的工作目录,自行修改,注意,在新建工作目录时,最好修改其权限为 777,
命令 sudo chmod 777 /tftpboot
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
第 4  步:配置/etc/xinetd.d/tftp
然后进入 xinetd.d 文件夹( cd xinetd.d ),查看是否有一个 tftp 文件,如果没有就新建
一个,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:
service tftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
#log_on_success += PID HOST DURATION
#log_on_failure += HOST
per_source = 11
cps =100 2
flags =IPv4
}
其中 server_args 一行是配置服务器的文件存放的位置,就是进行 tftp 传输的时候,都是从该文件夹中搜索文件的
第 5  步:修改权限
修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文件夹,以我的配置文件为例,创建一个文件夹( sudo mkdir /tftpboot ),然后把它可以设置成访问权限最宽松的( sudo chmod 777 /tftpboot -R),也可以设置成合适的权限。
第 6  步:重启服务
重新启动服务。sudo service tftpd-hpa restart,这也是我经常疏忽的一步,当配置好 tftp 的配置文件后,需要重新启动一下 xinetd,在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程,再输入 sudo /etc/init.d/xinetd restart,重启服务。记住,每次修改完配置文件后,都需要重新启动一下服务。
执行次序:
sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
总结:
通过以上四步就可以建立好 tftp 服务器了,可以在本地先进行一下测试。还是以我的配置文件为例,首先在/tftpboot 中新建一个文件 file,然后在其中随便输入内容;然后进入一个不是/tftpboot 的目录下(原因是避免混淆,因为在获取文件是,默认是将想要获取的文件存放在当前目录下的);再在终端中输入 sudo tftp localhost,进入 tftp 命令符下(可以在其中输入 help查看命令和命令的作用),输入 get file,如果没有任何提示,就说明传输成功了,然后输入 q退出 tftp
 命令符,在当前目录下就可以看到一个 file 文件,内容是与开始新建的那个 file 的内容是一致的。同样也可以在 tftp 命令符中输入 put xx,把 xx 文件上传到服务器文件夹中。如果一切 ok,那就么一个可用的 tftp 服务器就顺利搭建成功了。对于上面的测试是针对本地测试的,如果想要对其他电脑或者开发板进行 tftp 传输,则在终端输入 sudo tftp xxx(即目标电脑或目标开发板的 ip 地址),而且还要关闭 ubuntu 自带的防火墙(书上说的),我是直接把防火墙给卸载了(sudo
 apt-get remove iptables,或 sudo ufw disable可以关掉防火墙),因为我觉得对于 Linux 来说,防火墙可能没什么需要把,至少目前为止我还没有受到过攻击。当然,想要与其他局域网内的电脑或开发板互联进行传输,还要将这些机器的 ip 改到同一个段内。好了,通过以上的步骤,就可以通过 tftp 协议,在电脑和开发板之间进行文件传输了,目前的目的就是下载 Linux 内核和文件系统到开发板。如果有朋友发现了我的不足,都可以给我提出来,我们也可以进行讨论。不过还要强调一点,我的这些配置都是针对于
 ubuntu 的,对于其他的系统可能会有所出入的。
17.搭建nfs服务器
$ sudo apt-get install nfs-kernel-server
$ sudo apt-get install nfs-common
配置/etc/exports
$ sudo vi /etc/exports
文本末添加
/home/wy/rootfs *(rw,sync,no_root_squash,no_subtree_check)
然后在终端执行 $chmod 777 -R /home/wy/rootfs
$ sudo showmount -e
显示 clnt-create : RPC : Program not registered
$ sudo exportfs -r 更新
$ sudo showmount localhost -e
显示
Export list for 192.168.1.116
/root/rootfs *
启用
$ sudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务
显示如下
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]
挂载测试
$ mount -t nfs -o nolock localhost:/home/wy/rootfs /opt
执行后,进入/opt 目录中,如果可以看到/home/wy/rootfs 中的内容,则说明 nfs 搭建成功!
开发板Linux下测试
挂载命令: mount -t nfs -o nolock 192.168.1.141:/home/wy/rootfs /mnt
18.使用 SecureCRT 远程登录 Ubuntu
1. 首先要明白什么是 ssh?
可以把 ssh 看做是 telnet 的加强版,telnet 的密码和信息都是不加密的,而 ssh 则加密。
2. 开启 ubuntu 上的 ssh 功能
先安装 ssh,安装后就自动开启了.
$ sudo apt-get install openssh-server openssh-client
3. 安装 SecureCRT
安装过程省略
4. 查看 ubuntu 的 ip
$ ifconfig (注意是 ifconfig,不是 windows 上的 ipconfig)。
5. 连接
SecureCRT => Quick Connect, 在打开的对话框中:协议一栏选择 SSH2。主机名输入
ubuntu 的 IP 地址。端口号默认为 22 不用更改。用户名输入自己要登录的 ubuntu 用户,这里
我们选择使用 root 账户登录,因此直接输入 root。最后选择“在一个标签中打开”,勾选这
个选项可以让我们在同一个 SecureCRT 窗口内打开多个链接,这样用起来很方便。
最后点击连接。在弹出的对话框中输入正确的密码就可以看到登录信息了。推荐选上保
存密码,这样就不用每次都输入密码这么麻烦了。
如果还连接不上,可能是 Ubuntu 上的 ssh 服务没有开启。可以使用 $ /etc/init.d/ssh
restart 以启动 ssh-server。使用 $ netstat –tlp 来确认 ssh-server 已经正常工作。
tcp6 0 0 *:ssh *:* LISTEN -
看到上面这一行输出说明 ssh-server 已经在运行了    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Vmware频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程