6. 虚拟机及Linux安装

news2024/11/16 23:49:14

虚拟机及Linux安装

进行嵌入式项目开发,第一步就是要建立嵌入式开发环境,主要包括安装 Bootloader 工具、不同平台的交叉编译器(如ARM 平台的arm-linux-gcc)、内核源码树(在需要编译和配置内核时)、在调试时使用的一些终端软件TFTP 或FTP软件以及内核和文件系统的烧写工具(一般硬件厂家会提供)。下面逐一讲解。

1. 虚拟机的安装

  • 很多工具都是 Windows 版本的,而要求的开发环境是 Linux 环境。在 Windows 系统中安装虚拟机,然后再虚拟一个 Linux 环境,使 Linux 和 Windows 能够互相通信。这种方案解决了很多软件不兼容两种平台的问题。
  • 虚拟机软件 Vmware 的安装和普通软件的安装过程一样,此处就不详细介绍了。 下面介绍安装 Linux 的主要步骤 :
    1. 准备Linux系统安装镜像(如Ubuntu、fedora等),如 Fedora-Live-Desktop-i686-19-1.iso,可以在网上下载;
    2. 运行 VMware,选择“文件” |“新建虚拟机”命令,或者直接单击“新建虚拟机”图标;
    3. 在“新建虚拟机向导”窗口中选择“自定义”选项;
    4. 虚拟机硬件兼容性窗口按默认选择安装;
    5. 在“安装客户机操作系统”窗口中,选择“我以后再安装操作系统”选项;
    6. 在选择客户机操作系统的时候选择 Linux 选项。在“版本”下拉菜单中选择准备安装的 Linux 版本;
    7. 单击“下一步”按钮,进入主题为虚拟机取名称的对话框,同时确定安装路径。注意选择安装的分区应该有足够的空间安装 Linux系统。因为在后面还要安装 Linux 源码树,所以建议安装在一个至少有 8GB~10GB 空闲空间的分区上;
    8. 单击“下一步”按钮,进入处理器配置对话框,在其中根据你电脑实际情况选择处理器个数;
    9. 在对虚拟机内存进行划分时,可以根据实际主机硬件的配置进行划分,一般可以按默认的配置安装。如果实际主机配置比较高,可以给虚拟机多分配点内存;
    10. 在网络连接类型中可以选择任意一种类型,该设置在后面需要修改的时候可以进行修改,此处可以按默认选项进行安装;
    11. I/O 适配器窗口可以按照默认配置安装;
    12. 在“选择磁盘”对话框中,选择“创建一个新的虚拟磁盘”单选按钮 ;
    13. 在“选择磁盘类型”对话框中,根据电脑实际情况选择 IDE或SCSI按钮;
    14. 在“指定磁盘容量”对话框中,确定磁盘大小,为 Linux 系统预留 20GB 空间,并且选择“立即分配所有磁盘空间”复选框;
    15. 指定磁盘文件对话框按默认名字和路径进行安装,单击“下一步”按钮,确认虚拟机设置。然后单击“完成”按钮,创建虚拟磁盘。
    16. 单击“CD/DVD(IDE) 自动检测”选项,选择“使用 ISO 镜像文件”选项,然后单击“浏览”按钮,选择下载好的Linix系统镜像文件。然后单击“确定”按钮,关闭对话框。
    17. 在VMware工具栏中单击绿色的按钮,或者单击“打开此虚拟机电源”选项进入虚拟机安装界面,此时用户不需要操作,系统会自动加载进入 系统安装 界面;
    18. 在选择语言选项的时候,建议选择“简体中文”选项。然后单击“继续”按钮,依次确认或设置后,单击“开始安装”按钮,进入“配置”界面;
    19. 进入该界面后,系统就默认开始安装。同时,该界面提供 ROOT 密码设置和创建用户功能。依次设置后,等待系统自动安装。安装完成后,系统提示重新启动计算机;
    20. 在 VMware 软件中,选择“虚拟机” |“发送 Ctrl+Alt+Del”命令,重新启动操作系统,进入Linux 启动界面,由于是第一次登录,需要对语言、输入源、在线账号做一个简单设置。设置完成后,进入操作系统桌面。

2. 虚拟机和主机通信设置

  • 很多资料和软件往往都放在主机上,当需要在虚拟机环境下对这些资料进行访问时, 或者将虚拟机编译好的文件传送到主机上时,就需要建立两者之间的通信。

  • 建立虚拟机和主机通信的过程如下:

    1. 选择“虚拟机” |“设置”命令,打开“虚拟机设置”对话框。选择“硬件”选项卡中的 “网络适配器”选项。在“网络连接”选项区域中选择“自定义:指定虚拟网络”单选按钮,在下拉列表框中设置网络连接为 VMnet8 (NAT)。然后单击“确定”按钮。

      image-20240303151702057

    2. 选择“编辑” |“虚拟网络编辑器”命令,进入“虚拟网络编辑器”对话框。选择NAT 标签,将 VMnet host 设置为 VMnet8。然后单击“确定”按钮,在该对话框中,显示 NAT 子网的 IP 和子网掩码分别为 192.168.81.0 和255.255.255.0。

      image-20240303151744864

    3. 接着设置网卡连接状态。双击虚拟机窗口右下角的网络适配器标志,在“设备状态”选项框中,选择“已连接”和“打开电源时连接”复选框;

      image-20240303151929829

    4. 打开一个终端,通过 ifconfig 查看虚拟机的 IP 地址,下图中显示网卡地址为 192.168.81.136。

      image-20240303152019573

    5. 确定主机的 VMware net8 网卡为已连接状态,在主机端 ping 虚拟机查看主机 VMware net8 网卡的 IP 地址。一般和虚拟机网关为一个网段,并且其IP 地址为 192.168.81.1。在虚拟机中 ping 该 IP,结果如图 所示。互相都可以 ping 通说明主机和虚拟机通信成功。

      image-20240303152205335

3. 虚拟机与主机共享文件

  • 设置文件共享后,能够在主机和虚拟机之间进行文件传输:

    1. 打开虚拟机设置对话框,选择“选项”标签,在其中选择“共享文件夹”选项,之后选择“总是启用”单选按钮;

      image-20240303110129445

    2. 单击“添加”按钮,弹出“添加共享文件夹向导”对话框。单击“下一步”按钮,弹出“共享文件夹名称”对话框:

      image-20240303110223746

    3. 设置完成后,单击“下一步”按钮,进入“指定共享文件夹属性”对话框,选择“启用该共享”选项,然后单击“完成”按钮,保存设置。进入/mnt 目录下,会发现多了一个目录 share。进入 share,可以看到在 Windows 系统下的文件。

4. 虚拟机与主机文件传输

4.1 FTP方式

  • 某些版本的虚拟机或者 Linux 系统对文件共享支持不够完美,此时可以选择 FTP 方式进行文件传输,该方法操作方便,在实际开发中被普遍使用。该方法包括服务器端(虚拟机)和客户端(主机)两部分安装,并且包括服务器端和客户端的配置。下面详细讲述其使用方法:

    1. 虚拟机安装 vsftp 软件

    2. 启动 FTP 服务service vsftpd start

    3. 在虚拟机防火墙中设置 FTP 策略,使得实体机可以访问虚拟机中的 FTP 服务。

      image-20240303125347116

    4. 在实体机中使用 IE浏览器等客户端工具访问 FTP 服务器,就可以看到 FTP 所共享的文件,下图中虚拟机IP地址为192.168.81.136。

      image-20240303125528357

4.2 SFTP( SSH)方式

  • 除了使用FTP服务器进行文件传输外,目前使用最广的是采用FileZilla软件进行文件传输,下面介绍其使用方法:

    1. 查看ssh服务的状态

      • 输入命令:sudo service sshd status
        • 如果出现Loaded: error (Reason: No such file or directory)提示的话,说名没有安装ssh服务,按照第二步:安装ssh服务。
        • 如果出现Active: inactive (dead)说明已经安装了ssh服务,但是没有开启。按照第三步:开启ssh服务。
    2. 安装ssh服务

      • 如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入命令sudo yum install sshd或者sudo yum install openssh-server
      • 如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入sudo apt-get install sshd或者sudo apt-get install openssh-server然后按照提示,安装就好了。
    3. 开启ssh服务

      • 在终端敲入命令sudo service sshd start
      • 执行完命令后,用第一步:查看ssh服务状态的命令,如果出现以下提示说明你的ssh服务已经启动了。如果失败来的话,那试着卸载一下再安装。
        • ctive: active (running) since Sun 2013-04-07 13:43:11 CST; 15s ago
    4. FileZilla连接虚拟机

      • 文件–>站点管理器 中新建 站点,然后选择SFTP协议即可;

      • 点击连接之后,提示:

      • 成功连接

4.3 TFTP方式

  • tftp 是一个传输文件的简单协议,它基于 UDP 协议实现。此协议设计时是进行小文件 传输的,因此它不具备通常的 FTP 的许多功能,只能从文件服务器上获得或写入文件,不 能列出目录,不进行认证,只能传输 8 位数据。
  • tftp 服务分为客户端服务和服务器端服务两种。
    • 首先在宿主机上开启 tftp 服务器端服务,设置好 tftp 的根目录内容(也就是供客户端下载的文件)
    • 然后,在目标板上开启 tftp 的客户端程序(tftp 客户端主要在 Bootloader 交互环境下运行,几乎所有 Bootloader 都 提供该服务,用于下载操作系统内核和文件系统)。
    • 最后,把目标板和宿主机用直连线相连。之后就可以通过 tftp 协议传输可执行文件。下面分别讲述在 Linux 下和 Windows 下的配 置方法。
4.3.1 Linux 下的 tftp 服务配置

Linux 下 tftp 的服务是由 xinetd(还有 openbsd-inetd 等其他服务)所设定的,默认情况 下是处于关闭状态。

  1. 首先,要修改 tftp 的配置文件(将“disable=yes”改为“disable=no”),开启 tftp 服务:

    $ vim /etc/xinetd.d/tftp
    service tftp
    {
        socket_type = dgram
        protocol = udp
        wait = yes
        user = root
        server = /usr/sbin/in.tftpd
        server_args = -s /tftpboot
        disable = no
        per_source = 11
        cps = 100 2
        flags = IPv4
    }
    
    • 通过“server_args”可 以看出,tftp 服务器端的默认根目录为“/tftpboot”,用户可以根据需要更改为其他目录。
  2. 重启 xinetd 服务,使刚才的更改生效

    $ /etc/init.d/xinetd restar
    
  3. 确认 tftp 服务是否已经开启

    $ netstat –au | grep tftp
    Proto 	Recv-Q 	Send-Q 	Local 	Address 	Foreign Address 	State
    udp 	0 		0 				*:tftp 			*:*
    
  • 这时,用户就可以把所需的传输文件放到“/tftpboot”目录下,这样,主机上的 tftp 服务就建立起来。用网络交叉线把目标板和宿主机连起来,并且将其配置成一个网段的地址, 再在目标板上启动 tftp 客户端程序(注意:不同的 Bootloader 所使用的命令会有所不同,读者可以查看帮助来获得确切的命令名及格式,本书以 U-Boot 为例讲解),如下所示:

    # tftp 0x30008000 zImage
    TFTP from server 192.168.1.112; our IP address is 192.168.1.120
    Filename 'zImage'.
    Load address: 0x33000000
    Loading:###########################################################
    ###########################################################
    ###########################################################
    done
    Bytes transferred = 881988 (d7544 hex)
    
    • 可以看到,此处目标板使用的 IP 为“192.168.1.120”,宿主机使用的 IP 为“192.168.1.112”, 下载到目标板的地址为 0x33000000,文件名为“zImage”。
4.3.2 Windows 下的 tftp 服务配置
  • 在 Windows 下配置 tftp 服务需要使用 tftp 服务器软件,常见的有 Tftpd32,读者可以自 行从网上下载。要注意的是,该软件是 tftp 的服务器端,而目标板上则是 tftp客户端。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 在Settings 选项卡中配置服务器端的各个选项,如IP 地址等。
  • 在 Browse 中选择 tftp 的服务器端根目录。
  • 此时可以用直连线连接目标机和 宿主机,且在目标机上开启 tftp。

4.4 NFS方式

  • NFS 可以让不同的主机通过网络将远端的 NFS 服务器共享出来的文件安装到自己的系 统中,从客户端看来,使用 NFS 的远端文件就像是使用本地文件一样。在嵌入式系统中使 用 NFS 会使应用程序的开发变得十分方便,并且不用反复地烧写镜像文件。

  • NFS 的使用分为服务器端和客户端,其中服务器端提供要共享的文件,而客户端则通 过挂载“mount”这一动作来实现对共享文件的访问操作。在嵌入式开发中,通常 NFS 服务 端在宿主机上运行,而客户端在目标板上运行。

  • NFS 服务器端是通过读入它的配置文件“/etc/ exports”来决定所共享的文件目录的,在 这个配置文件中,每一行都代表一项要共享的文件目录,以及所指定的客户端对其的操作权 限。客户端可以根据相应的权限,对该目录下的所有目录文件进行访问。

  • 配置文件中每一行的格式为: [共享的目录] [客户端主机名称或 IP] (参数 1,参数 2…)。主机名或 IP 是可供共享的客户端主机名或 IP,若对所有的 IP 都可以访问,则 可用“*”表示。这里的参数有很多种组合方式,下表列出了常见的参数:

    选 项参 数 含 义
    rw可读写的权限
    ro只读的权限
    no_root_squash客户端分享目录使用者的权限,即如果客户端使用的是 root 用户,那么对于这个共享的目 录而言,该客户端就具有 root 的权限
    sync资料同步写入内存与硬盘中
    async资料会先暂存于内存中,而非直接写入硬盘
    • 配置文件“/etc/exports”的一个示例

      $ cat /etc/exports
      /home/david/project *(rw,sync,no_root_squash)
      
  • 设定完配置文件之后,需要启动 nfs 服务和 portmap 服务,这里的 portmap 服务允许NFS 客户端查看 NFS 服务所用的端口,在它被激活之后,就会出现一个端口号为 111 的 sun RPC(远端过程调用)的服务,这是 NFS 服务中必须实现的一项,因此,也必须把它开启, 如下所示:

    $ /etc/init.d/portmap restart
    启动 portmap: 				 [确定]
    $ /etc/init.d/nfs restart  //在 Ubuntu 中应为/etc/init.d/nfs-kernel-server
    启动 NFS 服务: 					[确定]
    关掉 NFS 配额: 					[确定]
    启动 NFS 守护进程: 			   [确定]
    启动 NFS mountd: 				 [确定]
    
    • 系统在启动 NFS 服务时就已经启动了 mountd 进程,它是 NFS 挂载服务, 用于处理 NFSD 递交过来的客户端请求。
    • 另外还会激活至少两个以上的系统守护进程,然后开始监听客户端的请求,用 dmesg 命令(或者 cat /var/log/messages)可以看到操作是否成 功。
  • 与 NFS 相关的还有两个命令,可以方便 NFS 的使用:

    • exportfs:它可以重新扫描“/etc/exports”,使用户在修改“/etc/exports”配置文 件时不需要每次重启 NFS 服务,其格式为:exportfs [选项]。其常见选项有:
      • -a:全部挂载(或卸载)/etc/exports 中的设定文件目录
      • -r:重新挂载/etc/exports 中的设定文件目录
      • -u:卸载某一目录
      • -v :在 export 时,将共享的目录显示到屏幕上
    • showmount:显示 nfs 服务器的挂载信息,其常见选项有:
      • -a:列出客户端主机名或 IP 地址,和挂载在主机的目录
      • -e:显示 nfs 服务器的导出列表
  • 若希望 NFS 服务在每次系统引导时自动开启,可使用以下命令:

    $ /sbin/chkconfig nfs on 
    
    在 Ubuntu 中应该输入:
    $ /sbin/chkconfig nfs-kernel-server on
    

`:显示 nfs 服务器的挂载信息,其常见选项有:
- -a:列出客户端主机名或 IP 地址,和挂载在主机的目录
- -e:显示 nfs 服务器的导出列表

  • 若希望 NFS 服务在每次系统引导时自动开启,可使用以下命令:

    $ /sbin/chkconfig nfs on 
    
    在 Ubuntu 中应该输入:
    $ /sbin/chkconfig nfs-kernel-server on
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1502085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python-sklearn.datasets-make_blobs

​​​​​​sklearn.datasets.make_blobs()函数形参详解 """ Title: datasets for regression Time: 2024/3/5 Author: Michael Jie """from sklearn import datasets import matplotlib.pyplot as plt# 产生服从正态分布的聚类数据 x, y, cen…

Ps:渐变工具 - 经典渐变

渐变工具 Gradient Tool常用于背景填充和界面元素设计,可创建平滑的颜色过渡效果。也可用于图层蒙版上,控制图像或效果的平滑混合。 快捷键:G 渐变工具选项栏中有两种模式:渐变 Gradient和经典渐变 Classic gradient,经…

CSS中em/px/rem/vh/vw区别详解

文章目录 一、介绍二、单位pxemremvh、vw 三、总结 一、介绍 传统的项目开发中,我们只会用到px、%、em这几个单位,它可以适用于大部分的项目开发,且拥有比较良好的兼容性 从CSS3开始,浏览器对计量单位的支持又提升到了另外一个境…

信息系统项目管理师--进度管理

项⽬进度管理是为了保证项⽬按时完成,对项⽬所需的各个过程进⾏管理,包括规划进度、 定义活动、排列活动顺序、估算活动持续时间、制订项⽬进度计划和控制进度。⼩型项⽬中, 定义活动、排列活动顺序、估算活动持续时间及制定进度模型形成进度…

【办公类-21-09】三级育婴师 视频转音频Python

背景需求: 用AI对话工具试试能否Python将MP4视频转成音频,再转成文字docx(不用格式工厂转) 结果: 视频MP4转音频wav 视频MP4转音频wav 作者:AI对话大师, 时间:2024年3月8日 impo…

利用GPT开发应用004:从GPT-1到GPT-3

文章目录 一、GPT-1二、GPT-2三、GPT-3四、从GPT-3到InstructGPT 一、GPT-1 2018年年中,就在变换器架构问世一年后,OpenAI发表了一篇题为“通过生成式预训练改进语言理解”的论文,作者是Radford, Alec等人。在这篇论文中,该公司介…

ODI报错

三月 08, 2024 1:20:09 下午 oracle.odi.mapping 信息: Start generation of map physical design: MapPhysicalDesign New_Mapping.物理 三月 08, 2024 1:20:09 下午 oracle.odi.mapping 信息: Finished generation of map physical design: MapPhysicalDesign New_Mapping.物…

BUUCTF-Misc4

镜子里面的世界1 1.打开附件 解压,是一张图片 2. zsteg工具 用zsteg分析图片 3.得到flag ningen1 1.打开附件 是一张图片 2.binwalk 用binwalk -e 分离文件 3.ARCHPR工具 打开分离后的文件夹,有一个加密的压缩包,用ARCHPR解密 4.解密 将…

sheng的学习笔记-AI-多分类学习:ECOC,softmax

目录:sheng的学习笔记-AI目录-CSDN博客 基本术语: 若我们欲预测的是离散值,例如“好瓜”“坏瓜”,此类学习任务称为“分类”(classification); 若欲预测的是连续值,例如西瓜成熟度0.95、0.37,…

HNU-计算机网络-甘晴void学习感悟

前言 计算机网络其实我没太学懂, 仅从应试来说,考试成绩也不太好。 这也是为什么一直没有更新这一学科的学习感悟。 大三下还是有点闲,一周三天小长假,闲来无事还是给写了。 教材使用这本: 总领 期中考试 30% 期…

排序——希尔排序、插入排序

本节复习排序中的希尔排序,希尔排序属于插入排序。 希尔排序的代码和插入排序非常类似。 思想却相对于插入排序来说复杂。 在复习希尔排序之前, 我们需要先复习一下插入排序。 目录 插入排序 插入过程 代码实现 希尔排序 希尔排序的思想 代码实…

#onenet网络请求http(GET,POST)

参考博文: POST: https://blog.csdn.net/qq_43350239/article/details/104361153 POST请求(用串口助手测试): POST /devices/1105985351/datapoints HTTP/1.1 api-key:AdbrV5kCRsKsRCfjboYOCVcF9FY Host:api.heclouds.com Con…

C++自创题目——几点了 very hard ver.

题目难度 普及 题目描述 一个老外用一口不流利的中文问你:“Xian zai ji dian le?”你看了一眼表,知道了现在是,你准备用这样的形式写在纸上: Now is m past/to h. 如果你看不懂,举个例子: 当h10&#…

python基础10_转义类型转换

这篇博客我们来学一下转义字符 首先什么是转义字符呢? 转义字符就是在编程中用于表示一些特殊的字符,比如说换行,在字符串中,需要换行吧,然后是不是有些时候还要在字符串中按tab键, 或者是enter键, 或者是引号,这些都是特殊字符,然后就是通过转义.把这些从普通字符转成具有特…

力扣面试经典150 —— 11-15题

力扣面试经典150题在 VScode 中安装 LeetCode 插件即可使用 VScode 刷题,安装 Debug LeetCode 插件可以免费 debug本文使用 python 语言解题,文中 “数组” 通常指 python 列表;文中 “指针” 通常指 python 列表索引 文章目录 11. [中等] H指…

哪里可以下载动态短视频素材?短视频素材资源下载网站有哪些?

嘿,朋友们!做短视频的时候,找到那些既有范儿又不会被告侵权的素材简直就是一项技术活。不过别担心,我这就给你们揭秘几个下载动态短视频素材的神秘网站,让你的短视频创作事半功倍! 1,蛙学府资源…

ROS——VirtualBox下载

下载&安装Virtualbox Oracle VM VirtualBox 根据电脑系统版本下载。 注意:前提是电脑cpu要开启虚拟化 根据自己的需求下载 双击开始安装 浏览可以更改下载位置,默认在C盘 然后一直点,是或下一步就好了 下载拓展包 后续需要连接使…

直击现场 | 人大金仓携手中国大地保险上线核心超A系统

2023年底 中国大地保险 卡园三路59号办公室里 一群技术精英们正忙碌着 他们的眼中 闪烁着对即将到来的胜利的期待 这是大地保险超A系统 项目上线的关键时刻 也是通过科技创新 引领行业服务新趋势的一场征程 项目现场 #1 一次颠覆 改变传统保险服务模式 超A平台,是由…

房屋租赁系统|基于 Mysql+Java+JSP技术的房屋租赁系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

目录 文末获取源码 前台首页功能 管理员功能 租户功能 房屋租赁系统结构图 数据库设计 lunwen参考 概述 源码获取 文末获取源码 前台首页功能 管理员功能 租户功能 房屋租赁系统结构图 数据库设计 lunwen参考 概述 随着科学技术的飞速发展,社会的方方面面…

Spring Boot搭建入门

Spring Boot简介 Spring Boot是对Spring进行的高度封装,是对Spring应用开发的高度简化版,是Spring技术栈的综合整合,是J2EE的一站式解决方案。想要精通Spring Boot的前提是需要熟悉Spring整套技术栈原理与内容。 Spring Boot的优点&#xf…