STM32MP157系列教程连载-Linux应用开发篇1:STM32MP1微处理器之Ubuntu安装与体验
截至目前上传的博文已经有6篇了(硬件4篇,安装环境2篇),最近手头在搞STM32MP157C核心板相关设计。FS-MP1A开发板的硬件设计晚些更新,前6篇看到有朋友的留言,问相关开发环境搭建后如何在电脑上连接linux的问题,本篇讲解Ubuntu操作系统安装方式以及体验,学习目录如下所示:
第 1章 嵌入式Linux开发介绍
- 1.1 安装前准备
第2 章 VMware Player安装
- 2.1 VMware Player介绍
2.2 VMware安装
第 3章 Ubuntu操作系统
- 3.1 发行版Linux介绍
- 3.2 Ubuntu下载
- 3.3 Ubuntu安装
- 3.4 配置虚拟机
3.4.1 网络连接修改
3.4.2 安装VMware Tools
3.4.3 启用共享文件夹
3.4.4 常用工具安装
3.4.5 安装TFTP服务器
3.4.6 安装NFS服务器
3.5 Linux开发工具安装
第4 章 Ubuntu初体验
- 4.1 磁盘分区表相关操作
4.1.1 MBR分区和GPT分区
4.1.2 linux下磁盘文件节点名
4.1.3 MBR创建分区及格式化
4.1.4 将GPT分区转换为MBR分区
第 1 章 嵌入式Linux开发介绍
1.1 安装前准备
华清远见开发环境是基于Ubuntu 18.04 LTS 64-bit操作系统搭建的,使用VMware Player免费版作为虚拟机工具软件。用作Linux的编译与开发。所以建议开发主机硬件配置越高越好,配置越高则开发效率则越高。
配置 | 参数 |
---|---|
CPU | Intel/AMD CPU;I5-2540M或更高;主频2GHz或者更高;双核(四线程)或者更多;3MB 缓存; |
内存 | 内存4G以上(推荐8G以上); |
硬盘 | 虚拟机存放硬盘分区剩余空间80G以上; |
USB | 支持USB2.0或者更高(2路或者更多); |
网卡 | 至少一路以太网卡; |
操作系统 | Windows XP或者更新(32位/64位操作系统); |
第 2 章 VMware Player安装
2.1 VMware Player介绍
VMware Workstation Player中文版是一款官方免费版的精简虚拟机软件,用户无需重启电脑即可在同一台机上运行一个或多个操作系统。凭借其免费策略、简单易用的界面、流畅的性能、小巧的体积以及对多种不同操作系统的兼容性,VMware Workstation Player 已成为很多人首选的虚拟机软件!
VMware Workstation Player虚拟机可完美支持Windows 10/8.1/Win7/Vista/XP/2000等全系列微软操作系统以及Ubuntu、Red Hat Enterprise Linux、CentOS、Fedora、Deepin、Debian、Mint等Linux系统。而且现在也已支持DirectX 10.1和OpenGL 3.3的3D加速特性,可在虚拟机中轻松运行AutoCAD或SOLIDWORKS等要求严苛的3D应用,甚至在一些主流配置的电脑上还可流畅运行部分大型3D 游戏,性能相当不错。
2.2 VMware安装
1) 运行资料光盘【华清远见-FS_MP1A开发资料\01-工具软件】目录下的VMware-player-15.1.0-13591040.exe安装程序。
2) 【VMware Player安装程序初始化】
3) 【VMware Player安装向导】
4) 【VMware Player许可协议】
5) 【更改安装路径】
6) 【选择是否检查更新,加入用户体验改进计划】
7) 【创建快捷方式】
8) 【确认安装】
9) 【正在安装】
10) 【安装完成】
11) 【启动界面】
第 3 章 Ubuntu操作系统
3.1 发行版Linux介绍
Linux发行版(英语:Linux distribution,也被叫做GNU/Linux发行版),为一般用户预先集成好的Linux操作系统及各种应用软件。一般用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理。Linux发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常由Linux内核、以及来自GNU计划的大量的函数库,和基于X Window的图形界面。有些发行版考虑到容量大小而没有预装X Window,而使用更加轻量级的软件,如:busybox,UClibc或dietlibc。现在有超过300个Linux发行版(Linux发行版列表)。大部分都正处于活跃的开发中,不断地改进。
由于大多数软件包是自由软件和开源软件,所以Linux发行版的形式多种多样——从功能齐全的桌面系统以及服务器系统到小型系统(通常在嵌入式设备,或者启动软盘)。除了一些定制软件(如安装和配置工具),发行版通常只是将特定的应用软件安装在一堆函数库和内核上,以满足特定用户的需求。
这些发行版可以分为商业发行版,比如Ubuntu(Canonical公司)、Fedora(Red Hat)、openSUSE(Novell)和Mandriva Linux;和社区发行版,它们由自由软件社区提供支持,如Debian和Gentoo。
3.2 Ubuntu下载
Ubuntu18.04官方标准安装文件可以通过ubuntu官方链接,也可以使用【华清远见-FS_MP1A开发资料\01-工具软件】目录下的ubuntu-18.04.4-desktop-amd64.iso安装文件进行安装。
打开链接后点击“64-bit PC (AMD64) desktop image”,切换至新网页并自动开始下载,下载完成后镜像文件为:ubuntu-18.04.4-desktop-amd64.iso
3.3 Ubuntu安装
- 打开Vmware Player:
- 点击 “创建新虚拟机”,弹出安装向导:
- 点击“浏览”按钮在弹出的浏览ISO镜像窗口中找到下载好的Ubuntu镜像文件,并点击“打开”按钮:
选择好镜像后,如果镜像无误的话会显示识别到的系统版本
- 点击“下一步”继续安装:
- 点击填写用户信息并点击“下一步”继续安装,用户信息会作为安装后Ubuntu的管理员用户信息,华清远见开发环境Ubuntu管理员用户名为“linux”,密码为“1”:
- 选择Ubuntu安装路径,点击“浏览”,在弹出窗口中找到虚拟机安装的硬盘盘符,点击“新建文件夹”创建虚拟机安装文件夹,创建好文件夹后选择文件夹并点击确认,确认安装路径,最后点击“下一步”继续安装:
- 执行硬盘容量,根据开发使用情况,推荐磁盘大小不小于“80GB”,选择“将虚拟磁盘拆分成多个文件”方便后期虚拟机移动,最后点击“下一步”继续安装:
- 虚拟机创建完成:自定义硬件按钮可以自定义可以定制虚拟机配置,本章节使用默认配置即可,后期如需调整根据需求适当调整,勾选 “创建后开启此虚拟机”点击“完成”按钮完成虚拟机的创建并开始安装Ubuntu。
- 虚拟机启动后直接进入Ubuntu 简易安装界面,这个过程需要一些时间。
- 安装完成后系统自动启动。
3.4 配置虚拟机
现在Ubuntu 18.04操作系统已经安装完成了,但是为了后续开发方便还需要对系统进行进一步的配置与修改。
3.4.1 网络连接修改
Ubuntu系统安装成功之后,默认网络配置为NAT模式,为了后续方便Ubuntu与主机进行网络通信需要修改为桥接模式。
在系统关闭的状态下,点击“编辑虚拟机设置”将网络适配器改为桥接模式。
3.4.2 安装VMware Tools
1) 选择VMware菜单栏下的“虚拟机”选项卡下的“安装 VMware Tools”选项。
2) 在安装好的ubuntu18.04系统中可看到“VMware Tools”DVD光盘。
3) 打开光盘可以看到如下文件。
4) 将VMwareTools-10.3.10-12406962.tar.gz压缩包复制到左侧的Downloads文件夹中。
5) 选中该文件右键选择“Extract Here”选项,进行解压。
6) 解压完成后会生成一个文件夹。
7) 进入VMwareTools-10.3.10-12406962/vmware-tools-distrlib文件夹。
8) 在该文件夹空白处右键,选择“Open in Terminal”选项,打开一个终端。
9) 执行vmware-install.pl脚本。
linux@ubuntu:$ sudo ./vmware-install.pl
输入密码1后看到如下界面
输入yes之后的选项全部默认“回车键”。
10) 安装完成默认如下图所示。
11) 重启系统。
linux@ubuntu:$ sudo reboot
3.4.3 启用共享文件夹
在启用共享文件夹前请确保VMwareTools已经正确安装。
为了便于后续Ubuntu与主机直接的文件传输可以启用虚拟机的共享文件夹将主机上的一个文件夹挂载到Ubuntu系统中。
在主机上任意位置建立一个用于共享文件的文件夹。(这里以G:\liunx_share为例)
点击“编辑虚拟机设置”找到“选项”下的共享文件夹。
选择界面右侧的“总是启用”选项后添加一个共享文件夹。
添加完成后如下界面中选中“启用此共享”后点击”完成“
点击完成后就可以看到刚刚添加的文件夹路径了。
开启虚拟机之后在/mnt/hgfs就可以看到共享的文件夹了。
3.4.4 常用工具安装
1) net-tools安装
从ubuntu18.04版本开始,在系统中默认不支持ifconfig命令进行网络状态查看。需要安装net-tools方可使用。
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt install net-tools
2) vim安装
系统安装完成后自带的文本编辑器是vi编辑器,这里推荐使用vim编辑器进行文本编辑。
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt-get install vim
为了后续开发方便可以为vim安装一些辅助插件。将【华清远见-FS_MP1A开发资料\01-工具软件】目录下的jeffy-vim-read.tar.gz压缩包导入到虚拟机中。
解压缩
linux@ubuntu:$ tar -xvf jeffy-vim-read.tar.gz
解压成功后会得到jeffy-vim-read文件夹,进入该文件夹下进行插件安装。
linux@ubuntu:$ ./install.sh
选择y
选择y,之后出现如下界面。
安装完成出现如下提示。
安装ctags
linux@ubuntu:$ sudo apt-get install ctags
3) openssh安装
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt-get install openssh-server
3.4.5 安装TFTP服务器
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt-get install tftp-hpa tftpd-hpa
在根目录下建立tftp工作目录
linux@ubuntu:$ sudo mkdir /tftpboot
修改tftpboot文件夹权限
linux@ubuntu:$ sudo chown linux:linux /tftpboot/
linux@ubuntu:$ sudo vi /etc/default/tftpd-hpa
将TFTP_DIRECTORY="/var/lib/tftpboot"修改为TFTP_DIRECTORY="/tftpboot"
重启tftp服务
linux@ubuntu:$ sudo service tftpd-hpa restart
3.4.6 安装NFS服务器
linux@ubuntu:$ sudo apt-get update
安装 NFS服务器端
linux@ubuntu:$ sudo apt-get install nfs-kernel-server
安装 NFS客户端
linux@ubuntu:$ sudo apt-get install nfs-common
建立NFS共享目录
linux@ubuntu:$ sudo mkdir /source
linux@ubuntu:$ sudo chown linux:linux /source
linux@ubuntu:$ mkdir /source/rootfs
添加共享目录
linux@ubuntu:$ sudo vi /etc/exports
若需要把 “/source/rootfs” 目录设置为NFS共享目录,在该文件末尾添加下面的一行:
/source/rootfs *(rw,sync,no_root_squash,no_subtree_check)
使能NFS V2版本
linux@ubuntu:$ sudo vi /etc/default/nfs-kernel-server
在文件的最后添加下面的配置
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
重启NFS
linux@ubuntu:$ sudo /etc/init.d/nfs-kernel-server restart
3.5 Linux开发工具安装
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping
linux@ubuntu:$ sudo apt-get install libsdl1.2-dev xterm
linux@ubuntu:$ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
linux@ubuntu:$ sudo apt-get install python-git-doc
linux@ubuntu:$ sudo apt-get install ncurses-dev libncurses5-dev libncursesw5-dev lib32ncurses5 libssl-dev linux-headers-generic u-boot-tools device-tree-compiler bison flex g++ libyaml-dev
linux@ubuntu:$ sudo apt-get install python-crypto
linux@ubuntu:$ sudo apt-get install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html diffstat libxml2-utils
linux@ubuntu:$ sudo apt-get install default-jre
第 4 章 Ubuntu初体验
4.1 磁盘分区表相关操作
4.1.1 MBR分区和GPT分区
全新硬盘未初始化之前,必须对齐进行分区,硬盘分区初始化的格式包括MBR和GPT两种。
- MBR分区
MBR的全称是Master Boot Record(主引导记录),MBR早在1983年IBM PC DOS 2.0中就已经提出。之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。
MBR最大支持2.2TB磁盘,它无法处理大于2.2TB容量的磁盘。MBR只支持最多4个主分区,如果想要更多分区,则需要创建 “扩展分区”,并在其中创建逻辑分区。 - GPT分区
GPT的全称是Globally Unique Identifier Partition Table,意即GUID分区表,它的推出是和UEFI BIOS相辅相成的,鉴于MBR的磁盘容量和分区数量已经不能满足硬件发展的需求,GPT首要的任务就是突破了2.2T分区的限制,最大支持18EB的分区。
在分区数量上,GPT会为每一个分区分配一个全局唯一的标识符,理论上GPT支持无限个磁盘分区,不过在Windows系统上由于系统的限制,最多只能支持128个磁盘分区,基本可以满足所有用户的存储需求。在每一个分区上,这个标识符是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。
4.1.2 linux下磁盘文件节点名
基本上,linux下所有实体外部存储设备的文件名都被命名成 /dev/sd[a-p]的格式,第一个存储设备的文件名为/dev/sda。而分区的文件名若以第一个存储设备为例,则为/dev/sda[1-128]。除了实体磁盘之外,虚拟机的磁盘通常为/dev/vd[a-p]的格式。 若有使用到软件磁盘阵列的话,那还有/dev/md[0-128]的磁盘文件名。
4.1.3 MBR创建分区及格式化
如果我们拿到的是一个没有任何分区的外部存储器,则需要我们对其建立分区。这里以在虚拟机中的ubuntu操作系统为例来创建一个新的分区。
首先需要用到TF读卡器,虚拟机识别到SD读卡器。
右键点击图标选择“连接(断开与主机的连接)”
查看生成的设备节点,笔者SD卡在Ubuntu系统中的设备节点是/dev/sdc,这里提供一种方式查看设备节点,首先输入ls /dev/sd*【代表匹配所有符合sd的选项】,sd最后的设备为sdc。
这里可以看到一共有3个外部存储设备被接入该系统,这里的/dev/sdc为刚刚插入的TF卡设备。/dev/sdc1则表示sdc上的第一个分区。如果tf卡中没有任何分区则不会显示此节点。
接下来我们新建一共分区并将其格式化为FAT32格式, 这里以/dev/sdc为例。
linux@ubuntu:$ sudo fdisk /dev/sdX (X表示实际的标号)
输入“p”查看当前分区。
如果这里看到的是如下现象,说明已经存在一个分区则可以跳过此步骤。
如果没有看到有相关分区,则输入“n”创建一个分区。
选择“p”默认选项创建主分区。
分区号选择默认“1”
起始扇区选择默认“2048”
结束扇区直接回车默认即可。
再次输入“p”查看分区
之后输入“w”保存分区
对刚刚创建的分区进行格式化。
linux@ubuntu:$ sudo mkfs.vfat /dev/sdcX(X 表示实际的标号)
此时可以点击虚拟机的USB图标断开与ubuntu的连接,使TF卡接入PC。
在资源管理器中可以看到,TF已经被正确识别。
4.1.4 将GPT分区转换为MBR分区
当我们制作开发板sdcard系统卡之后,整个sdcard会被设置为GPT分区,并且此时TF卡不能被PC机正常识别,如果想要在PC上正常使用TF卡。则需要将TF卡重新格式化成FAT32格式。(此操作会丢失TF卡中所有的数据)。
在ubuntu系统下使用
linux@ubuntu:$ sudo parted -s /dev/sdX mklabel msdos (X 表示实际的标号)
之后就可以参照【MBR创建分区及格式化】小节进行建立分区和格式化。
累到手软,本期博文就写到这里了,有问题的朋友可以留言提问~~~
左月先生
2020.10.13