搜索
bottom↓
回复: 0

《领航者ZYNQ之嵌入式Linux开发指南_V2.0》第十章 Linux图形界面

[复制链接]

出0入234汤圆

发表于 2022-1-4 17:46:10 | 显示全部楼层 |阅读模式
1)实验平台:正点原子领航者V2 ZYNQ开发板
2)  章节摘自【正点原子】《领航者ZYNQ之嵌入式Linux开发指南_V2.0》
3)购买链接:https://detail.tmall.com/item.htm?id=609032204975
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-329957-1-1.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子FPGA技术交流QQ群:90562473
1.png

2.jpg


3.png


第十章 Linux图形界面的使用

       一般我们使用Linux大多都是使用终端进行操作,也就是使用字符界面。其实Linux也是有图形界面的,比如我们使用的Ubuntu主机,默认就是GNOME图形界面。与Windows系统不同的是,Windows的图形界面是不可以更换和卸载的,而且图形界面崩溃了,整个系统基本就崩溃了,而Linux的图形界面只是一个应用程序,可以更换和卸载,常用的图形界面有GNOME、KDE、Xfce、LXDE等。本章我们讲解如何在领航者开发板上使用Linux图形界面。

       1.1简介
       在Windows系统下我们习惯了使用图形界面,不仅享受到了图形界面的操作方便,而且沉浸在图形界面的富娱乐化中,这与Windows长期主要定位于个人桌面端有关。而Linux系统由于开源、稳定的优点长期服务于服务器领域,而服务器领域对图形界面的要求不高,而且缺少商业化的运作,所以Linux的图形界面发展较为缓慢,当然了,现在情况不一样了,随着Linux系统这些年的发展,linux的图形界面做的越来越优秀了,像我们现在使用的16.04版本的Ubuntu发行版的图形界面跟Windows系统的有点差异,可能有点不习惯,18.04版本的Ubuntu发行版的图形界面跟Windows系统的图形界面风格相差无几了。
        Linux的图形界面(以下简称桌面)有很多,如GNOME、KDE、XFCE、LXDE等,每个桌面都有属于自己的风格特点。与GNOME、KDE不同的是,XFCE、LXDE定位于轻量级的桌面,可用于硬件性能配置不高的电脑或嵌入式领域。因为图形界面对硬件性能还是有要求的,正因为如此,我们平常使用的电脑都带有GPU,当然了,嵌入式领域很少带GPU的,所以一般使用的是轻量级的桌面,或者用Qt搭建一个。
       桌面对于Linux系统来说,只是一个应用程序,所以是可以移植的,由于我们的主要目的不是怎么移植桌面,所以没有必要把精力花费在这上面,当然了,有兴趣的可以尝试下。那我们怎么使用桌面呢?
       一般Linux的发行版都是带有桌面的,像我们常用的Debian发行版、Ubuntu发行版都是带有桌面的。所以我们只需要使用这些Linux发行版的根文件系统就可以了。这些发行版的根文件系统从哪儿来呢,需要移植吗?
       正如现在的世界是一个开源的世界,有很多事情别人帮我们做好了,而且开放共享出来了,所以我们就没必要把精力放在这一块了,毕竟人生短暂,得把时间用在自己努力的方向上。所以我们在这介绍一家公司—Linaro,简介如下:
       Linaro,一间非营利性质的开放源代码软件工程公司,主要的目标在于开发不同半导体公司系统单芯片(SoC)平台的共通软件,以促进消费者及厂商的福祉。由ARM、飞思卡尔、IBM、Samsung、ST-Ericsson及德州仪器(TI)等半导体厂商联合,在2010年3月成立。针对于各个成员推出的ARM系统单芯片(SoC),它开发了ARM开发工具、Linux内核以及Linux发行版(包括Android及Ubuntu)的主要自动建构系统。
       一般我们使用的ARM编译工具链是由这家公司提供的。我们需要的Linux发行版的根文件系统该公司也已经做好了,提供在网站:https://releases.linaro.org/上,我们访问该网站,网站主界面如下图所示:
第十章 Linux图形界面的使用1425.png

图 10.1.1 Linaro下载网站

       可以看到有一个名为“archive”和“debian”的目录,我们先看下debian目录。进入“debian”目录下的“images”,如下图所示:
第十章 Linux图形界面的使用1565.png

图 10.1.2 debian发行版不同的根文件系统

        可以看到Linaro提供了debian不同发行版的根文件系统。其中名称带“arm64”表明是用于ARM 64位的架构,“arm-hf”用于ARM 32位的架构。我们使用的ZYNQ是ARM 32位的,所以选择名称带“arm-hf”的都是可以的。由于这里我们使用Linux图形界面,所以选择alip-armhf,如果使用不带图形界面的debian根文件系统,可以选择另外两个。进入alip-armhf目录下,如下图所示:
第十章 Linux图形界面的使用1846.png

图 10.1.3 alip-armhf目录

       在该界面可以看到很多的目录,不同的数字代表过去不同的发布时间,我们进入“latest“目录下,也就是最近的发布版本,如下图所示:
第十章 Linux图形界面的使用1978.png

图 10.1.4 “latest“目录

       里面有7个文件,其中根文件系统放在linaro-jessie-alip-20161117-32.tar.gz文件中,我们可单击该文件进行下载,本章我们使用的就是该文件。
       上面介绍完了Debian的根文件系统,下面我们看下Ubuntu根文件系统。返回到主界面,进入“archive”目录下,拉到页面底部,如下图所示:
第十章 Linux图形界面的使用2201.png

图 10.1.5 “ubuntu”的目录

       可以看到有一个名为“ubuntu”的目录,进入该目录的“images”目录下,如下图所示:
第十章 Linux图形界面的使用2313.png

图 10.1.6 Ubuntu发行版不同的根文件系统

       可以看到Linaro提供的Ubuntu不同发行版的根文件系统。同样其中名称带“arm64”表明是用于ARM 64位的架构,不带“arm64”的用于ARM 32位的架构。其中gnome表示该目录下的根文件系统,使用的是gnome图形界面。Developer是不带桌面的,可自行安装。
       该网站提供的Debian和Ubuntu的根文件系统都是可以直接使用的。下面我们以Debian根文件系统的linaro-jessie-alip-20161117-32.tar.gz文件为例,读者可以自行下载,同样也可以使用我们提供在开发板资料包中的,路径为:ZYNQ开发板资料盘(A盘)\4_SourceCode\3_Embedded_Linux\rootfs\linaro-jessie-alip-20161117-32.tar.gz。
1.2配置Petalinux工程
        进入到第六章创建的Petalinux工程目录下,输入如下命令,首先还是对Petalinux运行环境进行初始化:
  1. source /opt/pkg/petalinux/2018.3/settings.sh
复制代码
        现在重新配置petalinux,重新设置根文件系统类型,输入如下命令:
  1. petalinux-config
复制代码
       在弹出的配置界面中,进入到“Image Packaging Configuration”菜单下的“Root filesystem type (INITRAMFS)”子菜单下,如下图所示:
第十章 Linux图形界面的使用3007.png

图 10.2.1 选择“SD card”

        选择“SD card”,按键盘上的“Enter”键返回。其他选项保持为上一章的设置即可,现在保存配置并退出。
1.3编译Petalinux工程
       现在我们编译整个Petalinux工程,在终端输入如下命令:
  1. petalinux-build
复制代码
       等待命令执行完毕。
1.4制作BOOT.BIN启动文件并复制到SD卡
       使用下面命令生成BOOT.BIN文件:
  1. petalinux-package --boot --fsbl --fpga --u-boot --force
复制代码
       命令执行完毕之后,将前面制作好的SD启动卡通过读卡器连接到Ubuntu系统,将image/linux目录下的BOOT.BIN文件和image.ub文件拷贝到SD启动卡的FAT32分区。
1.5拷贝根文件系统到SD卡的ext4分区
       将前面下载的linaro-jessie-alip-20161117-32.tar.gz根文件系统压缩文件拷贝到Ubuntu系统中,如下所示:
第十章 Linux图形界面的使用3480.png

图 10.5.1 将压缩包文件拷贝到Ubuntu系统

       前面我们制作的SD启动卡有两个分区,一个FAT32分区、一个Ext4分区,但是第二个分区在此之前我们一直没使用过,原因在于前面章节实验我们使用了INITRAMFS根文件系统,该类型根文件系统是使用内存模拟出来的,已经集成在image.ub镜像文件中了,适用于根文件系统比较小巧的情况,所以不需要单独的分区来存放根文件系统。而接下来我们使用到的这个根文件系统压缩文件都有500多M,所以需要单独的分区来存放。
       笔者使用的SD启动卡已连接到Ubuntu系统,并且第二个分区挂载目录为/media/zynq/rootfs/,接下来需要将linaro-jessie-alip-20161117-32.tar.gz压缩文件解压到/media/zynq/rootfs目录下,如下所示:
  1. sudo tar -xzf linaro-jessie-alip-20161117-32.tar.gz -C /media/zynq/rootfs/
复制代码
       如下图所示:
第十章 Linux图形界面的使用3971.png

图 10.5.2 解压到SD卡根文件系统分区

       解压完成后,进入到/media/zynq/rootfs/目录,查看该目录下的文件,如下图所示:
  1. cd /media/zynq/rootfs/
  2. ls
复制代码
第十章 Linux图形界面的使用4113.png

图 10.5.3 查看/media/zynq/rootfs/下的文件

       可以看到有一个binary目录,我们需要将binary目录下的所有文件及文件夹移动到binary所在目录,也就是/media/zynq/rootfs/目录,在终端输入如下命令:
  1. sudo mv binary/* .
  2. sudo rm -rfd binary
复制代码
        如下图所示:
第十章 Linux图形界面的使用4328.png

图 10.5.4 移动根文件系统

       现在可以卸载SD卡了,特别注意的是,在卸载SD卡时,当前终端需要退出SD挂载目录,执行sync命令同步数据,将缓存中的数据写入到SD卡,之后再执行卸载命令,卸载完成之后才可以拔掉SD卡,过早拔出SD卡会导致开发板上的Linux系统启动失败。
1.6在开发板上启动Linux
       将SD卡插入领航者开发板的SD卡槽,然后通过USB Type-C连接线将开发板USB调试串口与电脑USB口相连,连接电源线、设置开发板启动模式为SD Card,使用软排线将LCD屏连接到开发板,接下来打开电源开关、启动开发板,连接串口终端,打印信息如下所示:
第十章 Linux图形界面的使用4654.png

图 10.6.1 启动打印信息

       此时LCD屏将会显示Debian系统桌面,如下所示:
第十章 Linux图形界面的使用4742.png

图 10.6.2 显示Debian系统桌面

       此时可以在领航者开发板USB HOST接口上连接一副USB键盘和USB鼠标,就可以使用鼠标键盘来操作了,图形化界面的使用方法就不给大家介绍了,此桌面系统跟Windows系统桌面相差不大。
       笔者这里是以7寸800*480屏为例的,如果大家手上有其它正点原子推出的LCD RGB屏,也可以连接测试;对于领航者7020开发板,如果想使用HDMI显示,需要对设备树文件进行修改,这里简单地给大家说一下修改方法,大家可以自己去测试。
       首先进入到petalinux工程目录下,打开之前修改过的设备树文件project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi,将xlnx_vdmafb_lcd节点下的status属性的值修改为”disabled”,如下图所示:
第十章 Linux图形界面的使用5175.png

图 10.6.3 修改status属性

       修改完成之后保存退出,然后执行petalinux-build命令重新编译工程,编译完成之后,使用images/linux目录下的image.ub文件替换当前SD启动卡中的image.ub文件即可,然后再次启动开发板。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-7-7 02:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表