WSL2安装vivado

WSL2安装vivado

参考资料

操作小节

  • 打开:
    • 发行版名称
    • wsl
  • 退出:exit
  • 当前目录路径在 WSL 中的装载位置:wsl pwd
  • 列出已安装的发行版:wsl --list --verbosewsl -l -v
  • 更改默认安装的 Linux 发行版:wsl --install -d <Distribution Name>。 将 <Distribution Name> 替换为要安装的发行版的名称
  • 查看可通过在线商店下载的可用 Linux 发行版列表:wsl --list --onlinewsl -l -o
  • 提供从Linux文件系统中的日期:wsl date
    • get-date 将提供 Windows 文件系统中的日期
  • 设置默认 WSL 版本:wsl --set-default-version <Version#>,将 <Version#> 替换为 1 或 2

  • 在powershell或cmd里设置默认linux发行版:wsl --set-default <Distribution Name>

    • wsl -s <DistributionName>wsl --setdefault <DistributionName>,将 <DistributionName> 替换为要使用的 Linux 发行版的名称。 例如,从 PowerShell/CMD 输入 wsl -s Debian,将默认发行版设置为 Debian。 现在从 Powershell 运行 wsl npm init 将在 Debian 中运行 npm init 命令。
  • 在powershell或cmd里运行特定wsl发行版:`wsl -d <DistributionName>,将 <DistributionName> 替换为要使用的发行版的名称
  • 在powersehll或cmd里运行特定的wsl发行版(二):wsl --distribution <Distribution Name> --user <User Name>
    • 输出当前用户名,请使用 whoami 命令
  • 将目录更改为主页:wsl ~
  • 检查 WSL 状态:wsl --status
  • 更改发行版的默认用户:<DistributionName> config --default-user <Username>
  • 立即终止所有发行版:wsl --shutdown
  • 终止特定发行版或阻止其运行:wsl --terminate <Distribution Name>
  • 将发行版导出到tar文件:wsl --export <Distribution Name> <FileName>
  • 导入新发行版:wsl --import <Distribution Name> <InstallLocation> <FileName>
    • --version 选项还可与此命令一起使用,用于指定导入的发行版将在 WSL 1 还是 WSL 2 上运行。
  • 注销或卸载 Linux 发行版:wsl --unregister <DistributionName>
  • 在所有wsl2发行版中附加装载磁盘或设备:wsl --mount <DiskPath>

在分发版内部:

  • 查看linux分发版的详细信息:lsb_release -a

主要内容

1)列出已安装的发行版

  • wsl -l -v

2)导出

  • wsl --export Ubuntu-20.04 d:/wsl-ubuntu-20.04.tar

image-20220617120917502

3)注销当前Linux发行版

  • wsl --unregister Ubuntu-20.04

4)重新导入并安装WSL2到D盘

  • wsl --import Ubuntu-20.04 d:/wsl-ubuntu-20.04 d:/wsl-ubuntu-20.04.tar --version 2

5)设置默认登录用户为安装时用户名(如果已设置,则可选)

  • Ubuntu-20.04 config --default-user USERNAME
  • sudo passwd:设置root密码

6)进入系统

  • 更新/etc/apt/sources.list为清华源
  • 更新apt数据sudo apt update && sudo apt upgrade -y

6)配置中文字体与输入法

  1. 启用zh_CN.UTF-8
1
2
3
sudo apt install language-pack-zh-hans
sudo dpkg-reconfigure locales #这一步要选择en_US.UTF-8和zh_CN.UTF-8, 并且zh_CN.UTF-8为默认语言
sudo apt install fontconfig

执行 sudo dpkg-reconfigure locales 使用空格键选中en_US.UTF-8、zh_CN.UTF-8,按tab切换到OK,接着默认选中en_US.UTF-8

补充: locale -a命令可产看是否配置好(即系统中是否有中文语言包)

  1. 安装字体
1
sudo apt-get install ttf-wqy-zenhei

或者参考:https://monkeywie.cn/2021/09/26/wsl2-gui-idea-config/,复用windows中的字体

  1. fcitx安装、配置与启用
  • fcitx与输入法的安装
1
sudo apt install fcitx dbus-x11 im-config fcitx-sunpinyin
  • 编辑~/.profile文件
1
2
3
4
5
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
fcitx-autostart &>/dev/null
  • 刷新~/.profile
1
source ~/.profile

注意!:此时输入法的框位置不随光标移动,你需要找一下

7)下载与安装vivado

*注:如果你Ubuntu20.04安装Vivado19.2出现安装过程卡在generating installed device list一步的解决方法

https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/vivado-design-tools/archive.html

其他问题

vivado启动错误

image-20220618021042312

解决方案:

Vivado 调用特定版本库 libtinfo.so.5.

so.5 表示这是v5版本的 libtinfo 库,这个版本可能没有安装在当前版本的Ubuntu系统中。

更新库并重新链接可以解决错误调用问题:

1
2
3
4
sudo apt update
sudo apt install libtinfo-dev
sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5

此问题解决方法适用Ubuntu19/20,Vivado19/20

参考原文:

wsl启动时的默认名称

1. 非导入发行版情况(正常情况)

1
<DistributionName> config --default-user <Username>

2. 导入的发行版情况

1中命令不适用于导入的发行版,因为这些发行版没有可执行启动器。 可以改为使用 /etc/wsl.conf 文件来更改导入的发行版的默认用户。 请参阅高级设置配置文档中的“自动装载”选项

具体步骤:创建/etc/wsl.conf,复制以下代码到文件中(高级设置中源码,这里直接拿过来,方便直接复制)

1
sudo vim /etc/wsl.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Automatically mount Windows drive when the distribution is launched
[automount]

# Set to true will automount fixed drives (C:/ or D:/) with DrvFs under the root directory set above. Set to false means drives won't be mounted automatically, but need to be mounted manually or with fstab.
enabled = true

# Sets the directory where fixed drives will be automatically mounted. This example changes the mount location, so your C-drive would be /c, rather than the default /mnt/c.
root = /

# DrvFs-specific options can be specified.
options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off"

# Sets the `/etc/fstab` file to be processed when a WSL distribution is launched.
mountFsTab = true

# Network host settings that enable the DNS server used by WSL 2. This example changes the hostname, sets generateHosts to false, preventing WSL from the default behavior of auto-generating /etc/hosts, and sets generateResolvConf to false, preventing WSL from auto-generating /etc/resolv.conf, so that you can create your own (ie. nameserver 1.1.1.1).
[network]
hostname = DemoHost
generateHosts = false
generateResolvConf = false

# Set whether WSL supports interop process like launching Windows apps and adding path variables. Setting these to false will block the launch of Windows processes and block adding $PATH environment variables.
[interop]
enabled = false
appendWindowsPath = false

# Set the user when launching a distribution with WSL.
[user]
default = DemoUser

# Set a command to run when a new WSL instance launches. This example starts the Docker container service.
[boot]
command = service docker start

# 我自己加的,便于直接跳转到~
cd ~

清理WSL2的磁盘占用

原文链接:https://www.likecs.com/show-205179734.html

因为 WSL2 使用了虚拟磁盘,意味着它可能只有 15GB 的数据,但是虚拟磁盘占用了 100GB 的空间。如果你往 WSL2 中放了大量的数据,然后就删掉,会发现WSL2的磁盘占用没有降下来,这就是虚拟磁盘造成的。

我找了一些方法来去压缩 WSL2 的虚拟磁盘,发现了一个对我有效的方法,希望它对你来说也同样适用。

准备工作

在压缩虚拟磁盘前,需要将 WSL2 先关闭。

可以先使用命令行来检查它的状态:

1
wsl.exe --list --verbose

如果没有关闭(状态是 Running ),再用命令行去关闭它:

1
wsl.exe --terminate 

虽然这个方法对我来说有效,但你的环境可能跟我不同,这样做可能会导致你的数据发生损坏,建议你先备份一下WSL2的数据

使用 diskpart 来压缩WSL2的虚拟磁盘

我发现可以使用 diskpart 工具来压缩WSL2的虚拟磁盘,它会根据WSL2中数据的大小来重新申请磁盘空间。

在命令行启动 diskpart 工具:

1
diskpart

它会自己打开一个新的窗口

diskpart

接下来需要确定虚拟磁盘文件的位置

WSL2的虚拟磁盘文件在C:\Users\{user}\AppData\Local\Packages\下面,不同的WSL2发行版对应的名称不同,例如 PengwinWhitewaterFoundryLtd.CoUbuntuCanonicalGroupLimitedDebian
TheDebianProject 。找到了你的 WSL2 的文件夹,就能在它下面找到 LocalState\ext4.vhdx 这个磁盘文件。

例如,我的磁盘文件是 C:\Users\ontheroad\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

diskpart 选择这个文件:

1
select vdisk file="{vhdx文件名}"

再执行压缩命令:

1
compact vdisk

压缩过程需要几分钟

压缩磁盘文件

压缩完成后可以关掉 diskpart 窗口,整个过程也完成了。可以再看看文件管理器中的磁盘使用,应该减少了很多

利用wsl export/import备份还原linux子系统

http://www.xfy-learning.com/2020/05/30/WSL%E5%A4%87%E4%BB%BD%E4%B8%8E%E8%BF%98%E5%8E%9F/


命令总结:

1
2
3
4
5
6
7
8
wsl --shutdown
diskpart
# open window Diskpart
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!