嵌入式Linux开发环境安装与配置(Vmware+Ubuntu+Vscode)
(6)接下来问你虚拟机的名称及文件存储位置,这里名称定为“Ubuntu64”,路径自行设置,最好选取容量大一些的硬盘分区路径,如下图所示,设置好后点击“下一步”按钮。
(7)在弹出的对话框中设置硬盘容量,这里可视 PC 机硬盘容量而定,一般选取 60G 足够了,然后在下面选择“将虚拟机磁盘拆分多个文件”一项,把镜像文件分成多个文件,以提高文件系统的兼容性,如下图 所示,点击“下一步”按钮。
(8)在弹出的对话框中点击“自定义硬件…”按钮,进行机器硬件的自定义配置,对不需要的硬件可把它移除掉,只留下有用的,具体可参考下图进行。
(9)特别要注意的是网络配置,必须选择“桥接模式”选项,否则后面可能会出现网络不通的问题,设置完成后点击“关闭”按钮关闭对话框,最后点击“完成”按钮关闭配置对话框。
(10)接下来点击菜单“编辑->虚拟网络编辑器”打开虚拟网络编辑的对话框,其内容只保留下图所示的项目,其余的全部移除掉。
(11)点击“确定”按钮结束整个虚拟机的配置,设置完成后如下图所示。
2、在VM 中安装Ubuntu,推荐使用 18.04.5-desktop 版本。
(1)安装可通过光盘或映像文件进行,这里使用下载好的 ubuntu-18.04.5-desktop- amd64.iso 映像文件进行安装, 打开设置对话框, 在硬件一栏中选择“ CD/DVD(SATA)”,然后在右边的设备状态中选中“启动时连接”,在下面的连接中选中“使用 ISO 映像文件”,并把路径指向 ubuntu-18.04.5-desktop-amd64.iso 文件, 如下图所示,点击“确定”按钮。
(2)启动前面配置好的 Ubuntu 虚拟机(点击“开启此虚拟机”绿色三角按钮),过一会儿进入安装 Ubuntu 的欢迎界面,如下图所示(注:按 Ctrl+G 进入虚拟机界面, 按 Ctrl+Alt 返回 PC 机)。
(3)随后进入到安装界面,可以选择“试用”或“安装”,如下图所示,这里选择安装,点击“Install Ubuntu”按钮继续。
(4)接下来选择键盘,这里就用默认的美式键盘,如下图所示,点击“Continue”继续。
(5)接下来问你安装的方式,可以正常安装或最小化安装或其他方式安装,这里使用默认的“Normal installation”方式,如下图所示,点击“Continue”继续。
(6)接下来选择安装的类型,默认选择“Erase disk and install Ubuntu”一项,如下图所示,点击“Continue”继续。
(7)接下来会出现对磁盘进行写操作的对话框,如下图所示,点击“Continue”继续。
(8)接下来选择时区,这里选择“Asia/Shanghai”,在地图中直接用鼠标点选上海所在的位置即可,如下图所示,点击“Continue”继续。
(9)接下来要你输入用户的相关信息,其中密码不能为空,为了方便这里只输入“1”即可,选中下方的“Log in automatically”一项,让其自动登录,如下图所示,点击“Continue”继续。
(10)接下来就进入到漫长的安装过程,如下图所示,到这步只能耐心等待,不要进行任何操作。
(11)在安装完成后,会出现如下图所示的界面,点击“Restart Now”按钮立刻重启系统,此时会提示你移除安装光盘再重启,这时可先关闭系统(可按 Ctrl+E),然后把设备状态中的“启动时连接”取消勾选,完成后再次启动系统。
(12)重启后首次进入到 Ubuntu 时可能需要输入密码,点击用户并输入密码 1 登录到桌面,此时会弹出配置界面,如下图所示,点击右上角的“Next”按钮继续。
(13)第二面不需要配置,点击 “Next”按钮继续,到第三页时,在其中选择最下面的“No, don`t send system info”一项,如下图所示,点击“Next”按钮继续。
(14)在第四页时,直接点击右上角的“Done”按钮结束配置,进入到桌面,如下图所示。
(15)如果出现新版本更新的提示,记住不要更新,点击最左边的“Don`t Upgrade”按钮, 如下图所示,然后再次点击“OK”按钮退出新版本更新提示。
(16)如果出现软件更新的提示(Software Updater),也暂时不更新,点击“Remind Me Later”按钮退出更新提示。
(17)这里对更新作一下说明,按理系统应该是越新越好,所示操作系统一般都会进行自动更新,但我们作为嵌入式系统开发的宿主机而言,更新反到不好,因为我们知道, Linux 系统的软件之间存在有较强的依赖关系(dependent),我们在后面还要安装交叉编译工具链等常用工具,如果系统一直在自动更新,则可能原来的程序编译就会出各种莫名其妙的问题,特别是后面涉及到内核开发以及 Qt 开发的时候,可能遇到的问题会更多,所以如果没有特殊原因,在学习阶段不仅不需要自动更新,就连 Ubuntu 的安装版本都应该使用与本教程一致的(18.04.5),免得后面出现各种奇怪的问题。
(18)单击“软件和更新”并切换到“更新”选项卡,安下图所示进行选择,完成后点击“Close”按钮,然后在弹出的对话框中再单击“Reload” 按钮进行重载即可。
3、对 Ubuntu 进行相关配置以保证能顺利使用。
(1)首先设置root密码,在桌面上右键选择“Open Terminal”打开终端窗口,在命令行上输入“sudo passwd root”并回车,会问你当前用户的密码,输入1并回车(注:1不会显示),接着让你输入root密码,这里同样输入1并回车,需要再次确认,输入1回车,最后显示密码修改成功,如下图所示,关闭终端窗口。
(2)接下来配置一下相关选项,在最右上角小三角处单击,就可以打开一个下拉框,在其中最上面是音量调节,再下来是网络连接,这里如果图标是实心的表示连接已成功,若是空心的表示未连接,再下面是登录的用户名称,最下面从左到右分别是配置、锁定、关机等三个按钮,如下图所示。
(3)点击上图中的配置图标,打开配置对话框选择左边的“Privacy”,再点击右边的“Screen Lock”,在弹出的对话框中把第一项“Automatic Screen Lock”自动锁屏关闭了,如下所图示。
另外,为了防止自动锁屏,还需要把熄屏时间改成永远不熄屏,在配置对话框选择左边的“Power”,再点选下拉列表框“Blank Screen”,选择Never,如下图所示。
(4)如果希望自动隐藏边栏,可在配置对话框中选择左边的“Dock”项,在右边把“Auto-hide the Dock”一项打开即可,如下图所示。
(5)如果有前面的安装中,没有勾选上自动登录,则可在配置对话框中,在左边点击最下边的“Details”,然后选择“Users”,在右边把“Automatic Login”一项开启即可(若为灰色,先要点击上面的“Unlock”按钮,然后输入密码1,确定后即可), 如下图所示。
(6)在Linux安装完成后,Ubuntu默认使用DHCP方式来获取IP地址,因此一般来说,如果PC机可以上网的话,Ubuntu也应该是可以上的,可打开其中的Firefox浏览器试一下。
(7)如果上不了,那先得检查虚拟机的网络是否是使用了桥接模式,然后要检查Vmware是否抓错了网卡,在你的Windows系统中,如果存在多块网卡,则要查看能上网的网卡的属性,看是否勾选了“Vmware Bridge Protocol”协议, 如下图所示,Vmware是通过拥有该协议的网卡进行网络通信的。
(8)一般来说,用于嵌入式Linux开发的电脑都会使用两块网卡,一块用于上外网, 另一块用于与开发板连接(使用对调网线),建议只让其中一块启用“Vmware Bridge Protocol”协议,看实际需要进行切换,因为两块一起启用时,有时会发生Ubuntu与开发板网络连接不通的情况。
(9)由于Ubuntu下所有的更新都来自于网络,所以除了要保证外网畅通之外,还可以切换一个比较快的源,点击最左下端的有九个点的图标,进入到其他应用程序选项,找到并单击“Software&Updates”图标,在打开的对话框中,点击“Download form:”后面的下拉,选择“Other…”,然后在弹出的下载服务器对话框中,找到China下的“mirrors.aliyun.com”并选择它(也可以选择其他较快的源),点击“Choose Server”按钮,如下图所示,然后需要输入密码1并确定,最后点击“Close”按钮,在弹出的对话框中选择“Reload”,等待直到完成切换。
(10)在Ubuntu系统配置完成后,每次启动之后会弹出如下图所示的提示框,通知你系统遇到了错误。
为此需要关闭通知功能,执行“vim /etc/default/apport”打开该文件,把其中的“enable=1”改为“enable=0”,完成后保存退出,重启Ubuntu系统即可。
4、安装VMware 工具,让VMware 支持文件共享及复制粘贴等功能。
(1)在前面安装好的Ubuntu中,会发现窗口不能放大,这是因为VMware工具没有安装的原因,下面就来安装该工具。
(2)先设置一下VMware的共享文件夹,在PC上新建一个用于共享的文件夹,这里在D盘根目录下创建一个名为share的文件夹,然后在VMware中点击“虚拟机->设置”打开该对话框,切换到“选项”选项卡,在其中找到共享文件夹一项, 默认为禁用,在右边点击“总是启用”,并在下面点击“添加…”按钮,点击“下一步”,然后把刚才创建的share文件夹添加进去,点击“下一步”, 默认勾选“启用此共享”,点击“完成”,最终如下图所示,单击“确定”退出。
(3)设置完成后,启动Ubuntu系统,待启动完成后,右键桌面选择“Open Terminal”打开终端窗口,在终端中先执行su命令升级为root用户(密码为1),然后执行“apt update”进行更新,接着执行“apt install open-vm-tools”进行安装,完成后再执行“apt install open-vm-tools-desktop”进行安装。
(4)安装完成后,执行“reboot”命令重新启动一次系统,这次进入桌面后,Ubuntu的窗体大小就会随着VMware的窗口大小而变化了,如下图所示, 同时在目录“/mnt/hgfs”下会出现一个名为share的目录,该目录就是PC机D盘下的share 文件夹,实现了文件共享功能,同时,Ubuntu与Windows之间还实现了字符的复制和粘贴,可自行试一下,这对后面的编程提供了极大的便利。
(5)除了在线安装Vmware工具外,也可以进行本地安装。在VMware的安装目录下(默认在“C:\Program Files (x86)\VMware\VMware Workstation”下),会有一个名为linux.iso的光盘映像文件,在其中有一个VMwareTools-10.3.22-15902021.tar.gz的文件,把它解压(执行命令“tar -zxvf VMwareTools-10.3.22-15902021.tar.gz -C /”可解压到根目录下)之后就可进行安装(执行安装脚本vmware-install.pl,在提示是否安装时输入yes并回车,其后的提示全部以回车进行默认回答,直到安装全部结束即可)。但最好还是进行网络安装,因为可以保证版本的更新。
(6)有时在Vmware工具安装完成后,可能文件共享功能还是不能用,这时可先到/mnt目录下看一下是否有hgfs目录,若没有则新建它,然后通过vim打开/etc目录的fstab文件,并在最末尾加入一句“.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=0,gid=0,umask=022 0 0”(注意不包含双引号),然后存盘退出,重启一下Ubuntu即可。
5、网络配置及NFS 的实现。
(1)先安装一下网络工具,打开命令终端窗口,先su成root 用户,然后执行“apt update” 更新一下,等待更新完成后,执行“apt install net-tools”进 行网络工具的安装,直到完成。
(2)接下来安装NFS功能,执行“apt install nfs-kernel-server”进行安装,遇到提问时输入y并回车即可,直到安装结束。
(3)在网络工具安装完成后,就可以使用网络命令了,可执行ifconfig查看一下当前的网络情况。
(4)在NFS安装完成后,还需要配置一下才能正常使用,先执行“mkdir /nfs-share” 在根目录下创建一个名为nfs-share的目录,然后执行“chmod 777 nfs-share” 把权限更改一下。
(5)这里先安装一下vim工具,执行“ apt install vim ”即可,遇到提问时输入y并回车,完成后执行“vim /etc/exports”打开NFS的配置文件,按I键进入插入模式,在文本最下面加入一句“/nfs-share *(rw,sync,no_root_squash)”(不包含引号,*号前面有空格,括号内不能有空格),如下图所示,保存退出。
(6)配置完成后,重启一下Ubuntu系统,确认开发板已经连接好,这里再次强调一下,与开发板相连的网卡要启用“Vmware Bridge Protocol”协议,而且最好使用固定IP地址的形式,这里暂且规定一下,PC机设置为192.168.1.200,Ubuntu设置为192.168.1.100,开发板设置为192.168.1.90,设置完成后最好全部都重启一遍,然后相互都ping一下看是否通畅(Windows可能需要暂时关闭防火墙,PC上连接外网的网卡最好禁用“Vmware Bridge Protocol”协议);
(7)确认Ubuntu能ping通开发板后,可在NFS的共享目录/nfs-share下创建一个临时文件(执行“touch test”即可),若下面第8步开发板挂载成功后,就可以看到该文件。
(8)以上都没问题后,在开发板上执行 “ mount –t nfs –o nolock 192.168.1.100:/nfs-share /mnt”命令,看是否能够通过NFS成功挂载到Ubuntu上,如下图所示。
6、编译工具链的安装与配置。
(1)安装本地编译工具,先确保能上外网,打开命令终端窗口,先su成root用户,然后执行“apt install gcc -y”进行安装,安装完成后执行“gcc -v”查看一下安装的版本及相关信息,如下图所示。
(2)安装交叉编译工具链,执行“apt install gcc-arm-linux-gnueabihf -y”进行安装,安装完成后执行“arm-linux-gnueabihf -gcc -v”查看一下安装的版本及相关信息,如下图所示。
(3)执 行 “ apt install make libncurses5-dev bison flex lzop libssl- dev dpkg-dev”安装相关命令及Ncurses工具,Ncurses是一个能提供屏幕绘制以及基于文本终端的图形互动功能的动态库,在以后执行make menuconfig时会用到。
(4)执行“apt install git”安装git命令,它是一个能提供代码仓库管理的工具, 在以后克隆程序代码时会用到。
7、安装配置Vscode
(1)到官网(https://code.visualstudio.com/Download)下载Vscode的deb安装包文件,这里下载code_1.85.2-1705561292_amd64.deb版本。
(2)执行“dpkg -i code_1.85.2-1705561292_amd64.deb”进行安装。
(3)安装完成后有两种打开方式,第一种是通过双击Vscode的图标来打开,但这种方式是以普通用户的方式打开的,对于有些文件没有修改保存的权限;第二种可通过执行脚本打开,执行“sudo code --user-data-dir ="~/.vscode-root" --no-sandbox”,这样就以root用户来打开Vscode,拥有所有权限。