Zynq研发(1)——Win10安装Linux子系统(Ubuntu)

1.  在“所有设置”中搜索并打开“启用或关闭Windows功能”, 勾选“适用于Linux的Windows子系统”项,重启系统

2.  通过Microsoft Store获取并安装Ubuntu。首次启动Ubuntu,会有一个安装过程,需要设置UNIX用户名和密码,按提示输入用户名z和密码z

说明:Ubuntu子系统文件实际放置的路径在

C:\Users\{username}\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

查询当前安装的Ubuntu系统的版本,可以输入如下命令:

lsb_release -a

本文当前版本为18.04

3.  运行Ubuntu子系统方法:在win10主菜单里运行

4.  设置中文语言环境,主要目的是可以显示中文的文件夹和文件名

安装中文语言包:

sudo apt install -y language-pack-zh-hans language-pack-zh-hans-base

设置本地化环境变量:

echo "LANG=zh_CN.UTF-8" >> ~/.profile

重新打开 Ubuntu,完成设置

5.  设置图形界面

一种方法是在Ubuntu里面直接加载GUI实现,一种是采样远程桌面方式。由于Linux系统对于Zynq研发作用不多,因此采取后者以减少安装工具体积(大约需要2G)。前一种方法可以参考这里

首先更新下子系统:

sudo apt-get update
sudo apt-get upgrade

安装 xorg

sudo apt-get install xorg

安装xfce4

sudo apt-get install xfce4

安装xrdp

sudo apt-get install xrdp

配置xrdp端口,端口号是3390

sudo sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini

向xsession中写入xfce4-session

sudo echo xfce4-session >~/.xsession

重启xrdp服务

sudo service xrdp restart

如果有防火墙,允许就好了。

注意:每次电脑开机后在远程连接之前都要在终端中先启动xrdp,启动后终端窗口可以关闭。或者设置开机自动启动

6.  设置模拟器以支持32bit的程序

由于后面用到的Arm Xilinx Linux编译器是32bit的,Zynq跑的应用程序也是32bit的,而Ubuntu子系统是64bit版本,需要安装qemu-user-i386模拟器让64位的Ubuntu支持32bit的程序

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386 zlib1g-dev:i386
# for wsl
sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'
sudo service binfmt-support start

7.  运行远程桌面

在远程桌面连接窗口,输入本机IP和端口号(之前设置的3390),以及子系统用户名(z),然后连接,进入Ubuntu图形界面

在文件系统(Filesystem)窗口里的mnt就是宿主机的“我的电脑”,c、d、e等子目录就是各个磁盘盘符

在某个磁盘下设置linux的工作目录zynq_work

要修改桌面大小,可以在远程连接窗口“显示”项中选择。

到此完成Ubuntu的系统建设。

注:也可以用虚拟机实现Zynq研发的Linux编译环境(已经验证,见下图),本笔记尝试用Linux子系统实现功能需求。

 

补充说明:

在后续linux编译中发现,原本虚拟机方式只需要几分钟就可以完成的编译工作,在linux子系统中却超过1小时还未能编译结束。可能的原因是, WSL(Windows Linux子系统)必须在64bit的Win10使用,加载的Linux系统(比如Ubuntu)也是64bit版本。而研发的Linux是32bit系统,虽然可以用i386模拟器工作,但效率太差了。结论,放弃Linux子系统方式,还是用虚拟机安装32bit的Ubuntu14.04工作。

当然,对于可以使用Linux 64bit版本工作的场合,还是WSL比较方便。

猜你喜欢

转载自blog.csdn.net/mcubbs/article/details/82430938