2_ZedBoard开发板跑Linux

虚拟机安装Ubuntu

由于需要制作可启动的linaro Linux镜像,所以需要用到Linux,用来提取linaro镜像。使用Linux可以在电脑硬盘上安装,也可以安装虚拟机。由于我需要在Windows下使用笔记软件,无法将工作环境完全迁移到Linux上去,所以我选择虚拟机安装。

  1. 选择虚拟机。
    目前Windows下主流的虚拟机有Vmware workstation, virtualbox和微软自己的hyper-v.毫无疑问,VMware workstation是性能最好的,但是它是收费的商业软件,即使安装后不使用,后台也是一大堆服务和进程开着,太占资源;Hyper-V是微软自带的,已经集成到操作系统里面了,对Windows系统很友好,但是对Linux,特别是桌面版,呵呵,谁用谁知道,最大的问题是虚拟机无法获取访问USB设备,虽然网上也有解决方案,但是太折腾,本着简单易用的原则,我选择开源的virtualbox。
    目前virtualbox已经更新到6.0版了,去官网下载安装就好,千万别忘了下载安装扩展包。下载地址如下:
    virtualbox
    选择虚拟机
    点击红框内的链接,即可下载Windows端的virtualbox虚拟机和扩展包。
  2. 安装虚拟机。
    这个就不说了,同意协议一路next下去就行了,安装完虚拟机后就可以安装扩展包了,打开虚拟机,点击左上角管理-->全局设定-->扩展,点击右边栏“+”号添加扩展,文件选到下载的扩展包,会出现一个使用协议,将使用协议的滚动条拉到底,点击“我同意”就行了。
    全局设定
    安装扩展
    许可
    至此,虚拟机安装工作结束。
  3. 安装Ubuntu。
    点击新建,按照安装向导一步一步走下去就行了,主页涉及设定磁盘容量,固定磁盘还是动态磁盘,内存大小,很简单。
    新建Ubuntu虚拟机完成后,就可以启动虚拟机了,第一次启动会提示没有引导,因为还没有往虚拟磁盘中安系统,在设备中选择分配光驱,然后选择下载的Ubuntu镜像ISO文件,就如同光盘安装系统一样,Ubuntu虚拟机就开始安装Ubuntu系统。
    选择镜像
    安装系统的过程就不描述了。
    安装完系统,会发现Ubuntu虚拟机无法全屏,只有很小一个屏幕,这时需要在Ubuntu中安装增强工具。点击设备-->安装增强功能。
    安装增强功能
    然后在Ubuntu中打开终端,会发现在/media/username目录下,会出现VBOX_GA这个目录,这就是增强功能的安装文件。
    Linux中设置
    进入该目录,即可看到安装文件。
    Linux中设置
    使用 sudo -i 切换到root用户,以root用户运行autorun.sh即可安装增强功能,安装完后,记得卸载增强功能。
    Linux中安装增强功能
    重启虚拟机,Ubuntu就可以全屏显示了。
  4. 对Ubuntu做一些调整
    首先可以发现,在Ubuntu中是可以直接上网的,原因是我们的虚拟机在网络设置上默认使用了网络地址转换(NAT),关于虚拟机的几种网络模式,我不做说明,需要了解的可以自己去网上搜,可以参照该博客:
    virtualbox虚拟机网络设定
    virtualbox网络设定
    有时候想使用ssh远程连接虚拟机里面的Linux,但是在当前情况下可以发现,Windows是ping不通虚拟机里的Ubuntu的,这是NAT网络模式的特性,虚拟机可以连接宿主机,但是宿主机无法连接虚拟机。只需要稍作修改即可。
    首先,打开虚拟机,在网络设置中,还是使用网络地址转换(NAT)模式,然后设置端口转发,在端口转发中新建规则。由于想使用ssh服务,ssh服务使用的是22端口,将虚拟机内Ubuntu的22端口转发到宿主机某一个端口,即做一个端口映射。注意,在设置中,协议选择TCP,主机IP即宿主机IP,为空时即表示使用127.0.0.1或localhost,也可以填写当前已联网的网卡的IP,主机端口可以任意指定,但是尽量避开有特定协议的端口,如8080,445等,我为了方便,还是设置的22端口,子系统IP即虚拟机内Ubuntu的IP地址,可在Ubuntu中用ifconfig命令查看,默认的都是10.0.2.15,可以为空,留空即表示使用默认IP,这是virtualbox软件默认的,子系统端口必须设置想转发的端口,由于我们想使用ssh,所以必须转发22端口,这个不能随便填。
    virtualbox设置端口转发
    虚拟机软件网络设置好后,还需要开启虚拟机内Ubuntu的ssh服务。由于我安装时使用的最小安装,许多软件都没有安装,如果没有安装ssh服务端,自己安装openssh-server。
    Linux安装ssh服务
    安装完后,还需要启动ssh服务。
    Linux启动ssh服务
    启动服务后,可以查看服务是否运行。
    查看ssh服务是否启动
    可以看到sshd服务已经运行。
    接下来,就可以使用ssh连接虚拟机里的Ubuntu了,将虚拟机扔到Windows10任务视图第二桌面中,在当前桌面中就开一个ssh远程连接,也不用一直看着虚拟机软件,简直不要太爽。
    win10中设置
    接下来,喜欢用什么软件连接Ubuntu都可以,比如MobaXterm,putty,powershell都可以。
    MobaXterm
    Putty
    PowerShell
    全家福
    到此,虚拟机安装Ubuntu就完成了。

制作可启动的SD卡

先准备启动系统所需的文件,找到下述三个文件,该文件在后面会放进SD卡boot分区。
文件准备
找到下面的一个压缩包,该压缩包是Linux镜像文件,需要在Linux系统中解压并提取文件。
镜像文件准备
将上述准备的文件上传到我们安装的Ubuntu系统中,推荐使用MobaXterm这个软件,这个软件在ssh连接Ubuntu后,可以直接使用sftp协议将文件上传到Ubuntu系统中指定位置。只需将所需传输的文件拖拽到指定目录即可完成上传,非常方便。
MobaXterm之sftp
将SD卡插入读卡器,将读卡器插入USB接口,在Ubuntu虚拟机中,从设备中挂载SD卡。
虚拟机Ubuntu挂载SD卡
挂载后,即可在文件管理器中查看到SD卡及其挂载路径。
查看SD卡路径
在程序启动器中找到磁盘软件,利用该软件来格式化SD卡。
磁盘软件
在磁盘软件中,先删除SD卡的所有分区。
删除SD卡分区
使SD卡成为未分区状态。
SD卡未分区分区
先创建一个boot分区,分区命名为BOOT,文件系统为FAT32.
创建boot分区
然后将剩下的空间全部用来创建一个root分区,分区命名为rootfs,文件系统使用ext4。
创建root分区
创建完分区后,可以看到,两个分区都没有挂载,剩下的事情我们可以在Windows下使用ssh远程来连接Ubuntu,利用命令行来操作。
列出设备
可以看到,/dev/sdb下有两个设备,sdb1就是BOOT分区,而sdb2就是rootfs分区。下面挂载之。
挂载设备
两个设备已经被挂载好了,接下来就是拷贝文件。首先拷贝boot分区的三个文件。
拷贝文件
接下来解压提取linaro系统的文件并拷贝到rootfs分区,这个过程比较长。
提取linaro系统
解压完成后,两个分区内的文件目录如图所示。
文件列表
现在即可卸载SD卡,插入zedboard启动。
卸载设备

一些修改

在前面的介绍中,我是用Ubuntu的GUI软件去格式化的磁盘,在分配root分区的时,用的那个GUI软件文件系统可选项只有EXT4,但实际使用时发现,EXT4或许无法启动,猜测可能时uboot的支持上有问题,所以,为了提高兼容性和稳定性,还是建议使用EXT3的文件系统。
利用命令行工具 mkfs 可以将磁盘分区格式化为ext3文件系统。
mkfs工具
格式化之后可以设置一个卷标。
设置卷标
接下来的工作就是挂载分区,提取镜像文件,拷贝文件,和之前的过程一样。
拷贝提取文件
最后放一张启动后的串口打印图。
linaro启动

猜你喜欢

转载自www.cnblogs.com/hw4fun/p/12094424.html