WSL 是 Windows Subsystem for Linux 的简称, 可让开发人员在Windows 10下按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。说白一点,就是在windows 10 下安装 linux 系统,不需要借助虚拟机!

可以去知乎杜娘等了解它,WIN10系统支持WSL1跟WSL2了。本文就WIN10下安装WSL2,并在WSL2中安装UBUNTU18.04,在UBUNTU下安装配置Xilinx开发工具Petalinux做一个简单介绍。

一般来说,如果只是需要linux编译,调试等在windows的话,WSL2足够了。WSL2的缺陷就是硬件设备的支持不够,USB,USB串口等都还不支持。

1,安装WSL.

将适用于 Linux Windows 子系统更新到新版本WSL2的主要目标是,提高文件系统性能并支持完全的系统调用兼容性

WSL 2 使用最新、最强大的虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。 但是,WSL 2 不是传统的 VM 体验。

 

功能

WSL 1

WSL 2

Windows 和 Linux 之间的集成

启动时间短

占用的资源量少

托管 VM

完整的 Linux 内核

完全的系统调用兼容性

与 VM Ware 和 VirtualBox 一起运行

跨 OS 文件系统的性能

 

只有 Windows 10 版本 2004 的内部版本 19041 或更高版本中才提供 WSL 2

如果你的Windows10不能自动更新到最新版本,请使用Microsoft的更新助手手动更新。

更新成功,检查一下版本

1.1 以管理员权限启动 PowerShell,然后输入以下命令启用虚拟机平台:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

会提示重启启动,输入y

1.2 以管理员权限启动 PowerShell,然后输入以下命令启用 Linux 子系统功能:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

如果提示要重启,请输入y.

当然,启用 Linux 子系统功能也可以通过设置->应用->应用和功能->可选功能->更多Windows功能来安装

注意:1.1启用虚拟机平台如果没有做的话,1.2启用的WSL只能是WSL版本1,后面无法切换到WSL2。

可以再powershell里面输入wsl --set-default-version 2 设置默认为WSL2.

如果提示“有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2” ,则表示正常,如果运行该命令后,你可能会看到此消息:WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel。 跟随链接(https://aka.ms/wsl2kernel),在文档中安装来自该页面的 MSI,以便在计算机上安装 Linux 内核供 WSL 2 使用。 安装内核后,请再次运行该命令,该命令应会成功完成而不显示消息

 

2,安装Ubuntu18.04

可以有两种方法安装,如果系统会经常被搞坏的话,选择方法2下载回来安装的方式比较合适。

2.1 从Microsoft Store安装

打开Microsoft Store,搜索ubuntu,选择ubuntu18.04 LTS版本,等自动下载完成安装后,点启用即可启动。

2.2 下载ubuntu18.04安装 

打开网页 https://wiki.ubuntu.com/WSL  ,找到如下图,下载ubuntu 18.04 LTS.

在powershell里面输入

Add-AppxPackage .\CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc.Appx

如果文件名被下载工具改名了,请做相应修改,比如我的被下载工具加尾缀.zip了。

 

注意:进入ubuntu,有2种方法,一是通过powershell,在powershell里面输入bash即可。另外一种是在windows开始菜单里面找ubuntu进入。但2种进入的方式,对windows本地文件的操作权限是不一样的。

安装完成后建议更换一下安装目录到别的盘,毕竟C盘一般都不是很大,而且petalinux的每一个工程都可能过20GB.

如果你进入系统是ROOT用户,可以在powershell里面输入 ubuntu config --default-user htpc   来修改(这里我的普通用户名是htpc) 。注意:通过export 再import后,ubuntu,ubuntu-18.04这2个命令有时都不存在了,要输入ubuntu1804.exe config --default-user htpc

由于默认WSL是256G的容量,我们安装Vivado就要几十GB,建议修改一下虚拟磁盘容量。

先在powershell里面输入wsl --shutdown 关闭所有实例,否则扩容会失败

windows运行diskpart,按windows键+r

单位是MB,我这里设置了512GB.

然后进入ubuntu,resize2fs一下

关于WSL的命令参考,见https://docs.microsoft.com/zh-cn/windows/wsl/reference

 

2.3 设置图形界面

WSL2是通过X-Server来显示图形界面的。

详细介绍请参考https://ncj.wiki/2019/04/03/2019-04-03_Gnome/

wsl,wsl2会有稍微不同的地方,见https://wiki.ubuntu.com/WSL Advance Topics部分的running Graphical Applications。

修改.bashrc文件

nano  ~/.bashrc

在最后加入

  export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2
  export LIBGL_ALWAYS_INDIRECT=1

保存退出

source   ~/.bashrc

注意WSL2版本一定要设置防火墙例外,不然会被防火墙给拦了,显示不了。因为WSL显示没问题,切换到WSL2不能显示我以为是设置问题,是个大坑。

安装ubuntu桌面

sudo apt-get install -y tasksel

sudo tasksel

空格键选择,确认ubuntu desktop被选择上,别选择Xu,ku等, TAB键到OK处回车。

Windows上需要安装X-Server,请下载并安装https://sourceforge.net/projects/vcxsrv/

Petalinux配置内核的时候需要打开gnome-terminal,如果没有配好图形界面,会出错。启动Xlaunch

 

 

3,安装petalinux2019.2

我的petalinux安装文件在e:\idm目录下,windows这个目录在ubuntu对应/mnt/e/idm

进入ubuntu,建立/opt/xilinx/peta192目录,并将owner设置为htpc(htpc是我的linux下的用户名)。

sudo mkdir /opt/xilinx

sudo chown -R  htpc:htpc  /opt/xilinx

mkdir /opt/xilinx/peta192

先安装petalinux的依赖库等。由于有一个库是32位的,我们要打开32位源。至于petalinux需要哪些,可以看ug1144,2019.2版本的ug1144的那个文档的第10页。

sudo dpkg --add-architecture i386

sudo apt-get update

sudo apt-get install -y tofrodos iproute2 gawk make net-tools libncurses5-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential screen pax gzip python zlib1g:i386

 

通过powershell进入ubuntu的,可以直接安装petalinux了,如果是通过windows开始菜单进入,则需要检查当前目录是否有写权限。

powershell:

ubuntu(在用户home目录)

注意:petalinux2020.1开始,指定安装目录加-d选项

建议在xilinx网站将离线包下载回来,避免每次编译都要去联网,特别是连国外网站,速度非常慢,编译可能只要10来分钟,但网络连接可能都要半小时以上。sstate根据自己所用器件来选择,我用MPSoc,所以下载了aarch64 sstate-cache,然后在下载了downloads

cd /opt/xilinx/peta192

cp /mnt/e/idm/sstate_aarch64_2019.2.tar.gz  ./

tar  xvf   sstate_aarch64_2019.2.tar.gz

cp  /mnt/e/idm/downloads_2019.2.tar.gz  ./

tar  xvf   downloads_2019.2.tar.gz 

mv   sstate_aarch64_2019.2 sstate

修改conf文件,

cd /opt/xilinx/peta192

nano  etc/template/project/common/project-spec/meta-user/conf/petalinuxbsp.conf

加入下面2行

DL_DIR =  "/opt/xilinx/peta192/downloads"

SSTATE_DIR = "/opt/xilinx/peta192/sstate/aarch64"
你可以参考“How to reduce build time using SSTATE CACHE”在下面连接

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842475/PetaLinux+Yocto+Tips 

不过官网是修改自己工程里面的petalinuxbsp.conf文件,如果你建立工程的时候用了官方或别人的BSP包,上面修改的2行不起效果,需要修改自己工程里面的那个petalinuxbsp.conf文件。

 

可以开始build你的petalinux工程了,你会发现,它会用满你的CPU跟线程。启动WSL飞快,VM是没法比的。

 

问题总结:

1,检查你的ubuntu的发行版本,在powershell里面输入

wsl -l -v

 如果发现版本是1,不用着急,可以转换的,<Distro>是上面命令列举出来你的那个ubuntu的名字

wsl --set-version <Distro> 2

 

2, source /opt/xilinx/peta192/settings.sh 后提示没有tftp server,这个你可以自己配置一下即可:

请参考https://blog.csdn.net/hilda_jlu/article/details/23561969

2种方式均可,但注意petalinux默认的tftp目录是/tftpboot

如提示WARNING: /bin/sh is not bash!  则只需要修改一下,执行

sudo dpkg-reconfigure dash 

选择No

3, Windows访问ubuntu文件,非常简单,只需要在ubuntu下面输入命令:注意下面命令最后有一个".“符号。

explorer.exe  .   

 

 

Logo

更多推荐