#近几天入手了一块嘉楠K510开发板,准备学习一下,将学习过程记录在此,便于以后查看,会随时更新。
电脑配置要求
系统:Windows 10\11(如果是windows10,需确保 Windows 10 版本号为 22H2 或更高,操作系统内部版本为 19045.2311 或更高。)
在设置中可以查看电脑配置信息
条件:Windows 10 版本号为 22H2 或更高,操作系统内部版本为 19045.2311 或更高
环境搭建
K510 软件开发基于 Linux 环境。需要准备一台装有 Linux 操作系统的主机用于软件编译及部署,但是由于放假在家,我的Linux主机并没有一同带回,我选择了使用Windows WSL进行软件开发。
Windows Subsystem for Linux(简称WSL)是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。
适用于 Linux 的 Windows 子系统 (WSL) 可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。
详细内容可以查看微软官方介绍,链接:https://learn.microsoft.com/zh-cn/windows/wsl/
WSL有两个版本:WSL1和WSL2。这里我选择安装的是WSL2。
第一步:从Windows功能启用WSL
打开电脑的设置界面,搜索“启用或关闭Windows功能”,如下图操作所示:
勾选“适用于Linux的Windows子系统”和“虚拟机平台”选项,然后点击确定。
这里可能需要重启电脑,直接重启即可。
第二步:更新WSL
以管理员权限打开系统终端,即在电脑的开始菜单上面点击鼠标右键,点击“Windows PowerShell(管理员)”。
1.执行更新命令,将 wsl 更新到最新的内核版本
wsl --update
2.执行查看版本信息命令,看到 WSL 版本号大于等于 1.0.0.0 就代表版本更新成功
wsl --version
3.将默认的 WSL 默认的 Linux 分发版本设为 2
wsl --set-default-version 2
4.列出可用的 Linux 发行版
wsl --list --online
使用相关命令安装Ubuntu-20.04,并设置账号密码。
5.进入Linux系统
wsl
一些WSL相关命令我放在文章末尾了,也可以前往官网查看
官方链接:https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands?source=recommendations
第三步:装载docker镜像
1.安装docker
执行删除旧版本命令,防止有发生冲突的包
sudo apt-get remove docker docker-engine docker.io containerd runc
更新 apt 包索引。
sudo apt-get update
安装 apt 依赖包,⽤于通过HTTPS来获取仓库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加Docker官方的GPG密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
执行结果如下
使⽤以下指令设置稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
2.安装 Docker Engine-Community
更新 apt 包索引
sudo apt-get update
安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
测试是否成功
sudo docker run hello-world
输出以下结果表示已经成功
(一些关于Docker的命令我也放在了文章末尾)
3.安装镜像
源代码下载
git clone https://github.com/kendryte/k510_buildroot.git
这里下载可能会有些慢,等待即可,失败的话就重新执行下载
在sdk上级目录执行以下命令启动docker,安装镜像
sh k510_buildroot/tools/docker/run_k510_docker.sh
这里下载会有些慢,等待即可。(我当时下载是下了一个晚上的时间)
进入docker环境后,输入如下命令进行系统编译。
make dl
make
第四步:不使用Docker,在本地配置环境
安装相关包,如果没有权限使用sudo
apt-get update
apt-get upgrade
apt-get install libc6-i386 libc6-dev-i386
apt-get install mtools
apt-get install dosfstools
apt-get install python3.8
apt-get install python3-pip
python3 -m pip install pycrypto
python3.8 -m pip install --upgrade pip
ln -sf /usr/bin/python3.8 /usr/bin/python3
python3 -m pip install onnx==1.9.0 onnx-simplifier==0.3.6 onnxoptimizer==0.2.6 onnxruntime==1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
#进行下一步,需进入k510_buildroot/nncase目录,将nncase_v1.4.0.tgz解压后进入
k510_buildroot/nncase/nncase_v1.4.0目录,输入如下命令安装*.whl
python3 -m pip install x86_64/*.whl
#运行python3 -m pip show nncase,若看到nncase版本信息则表示AI应用程序环境部署成功。
python3 -m pip show nncase
python3 -m pip install xlrd==1.2.0
python3 -m pip install pystache
dpkg --add-architecture i386
apt update
apt install libncurses5:i386
apt-get install wget
apt-get install cpio
apt-get install unzip
apt-get install rsync
apt-get install bc
apt-get install libssl-dev
pip3 install pycryptodome
WSL命令
安装
PowerShell复制
wsl --install
安装 WSL 和 Linux 的默认 Ubuntu 发行版。 了解详细信息。 还可以使用此命令通过运行 wsl --install <Distribution Name>
来安装其他 Linux 发行版。 若要获取发行版名称的有效列表,请运行 wsl --list --online
。
选项包括:
--distribution
:指定要安装的 Linux 发行版。 可以通过运行wsl --list --online
来查找可用的发行版。--no-launch
:安装 Linux 发行版,但不自动启动它。--web-download
:通过联机渠道安装,而不是使用 Microsoft Store 安装。
未安装 WSL 时,选项包括:
--inbox
:使用 Windows 组件(而不是 Microsoft Store)安装 WSL。 (WSL 更新将通过 Windows 更新接收,而不是通过 Microsoft Store 中推送的可用更新来接收)。--enable-wsl1
:在安装 Microsoft Store 版本的 WSL 的过程中也启用“适用于 Linux 的 Windows 子系统”可选组件,从而启用 WSL 1。--no-distribution
:安装 WSL 时不安装发行版。
备注
如果在 Windows 10 或更低版本上运行 WSL,可能需要在 --install
命令中包含 -d
标志以指定发行版:wsl --install -d <distribution name>
。
列出可用的 Linux 发行版
PowerShell复制
wsl --list --online
查看可通过在线商店获得的 Linux 发行版列表。 此命令也可输入为:wsl -l -o
。
列出已安装的 Linux 发行版
PowerShell复制
wsl --list --verbose
查看安装在 Windows 计算机上的 Linux 发行版列表,其中包括状态(发行版是正在运行还是已停止)和运行发行版的 WSL 版本(WSL 1 或 WSL 2)。 比较 WSL 1 和 WSL 2。 此命令也可输入为:wsl -l -v
。 可与 list 命令一起使用的其他选项包括:--all
(列出所有发行版)、--running
(仅列出当前正在运行的发行版)或 --quiet
(仅显示发行版名称)。
将 WSL 版本设置为 1 或 2
PowerShell复制
wsl --set-version <distribution name> <versionNumber>
若要指定运行 Linux 发行版的 WSL 版本(1 或 2),请将 <distribution name>
替换为发行版的名称,并将 <versionNumber>
替换为 1 或 2。 比较 WSL 1 和 WSL 2。 WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。
警告
在 WSL 1 和 WSL 2 之间切换可能非常耗时,并且可能会由于两种体系结构之间的差异而导致失败。 对于包含大型项目的分发,建议在尝试转换之前备份文件。
设置默认 WSL 版本
PowerShell复制
wsl --set-default-version <Version>
若要设置 WSL 1 或 WSL 2 的默认版本,请将 <Version>
替换为数字 1 或 2。 例如 wsl --set-default-version 2
。 该数字表示新 Linux 发行版安装默认使用的 WSL 版本。 比较 WSL 1 和 WSL 2。 WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。
设置默认 Linux 发行版
PowerShell复制
wsl --set-default <Distribution Name>
若要设置 WSL 命令将用于运行的默认 Linux 发行版,请将 <Distribution Name>
替换为你首选的 Linux 发行版的名称。
将目录更改为主页
PowerShell复制
wsl ~
~
可与 wsl 一起使用,以在用户的主目录中启动。 若要在 WSL 命令提示符中从任何目录跳回到主目录,可使用命令 cd ~
。
通过 PowerShell 或 CMD 运行特定的 Linux 发行版
PowerShell复制
wsl --distribution <Distribution Name> --user <User Name>
若要通过特定用户运行特定 Linux 发行版,请将 <Distribution Name>
替换为你首选的 Linux 发行版的名称(例如 Debian),将 <User Name>
替换为现有用户的名称(例如 root)。 如果 WSL 发行版中不存在该用户,你将会收到一个错误。 若要输出当前用户名,请使用 whoami
命令。
更新 WSL
PowerShell复制
wsl --update
将 WSL 版本更新到最新版本。 选项包括:
--web-download
:从 GitHub 而不是 Microsoft Store 下载最新更新。
检查 WSL 状态
PowerShell复制
wsl --status
查看有关 WSL 配置的常规信息,例如默认发行版类型、默认发行版和内核版本。
检查 WSL 版本
PowerShell复制
wsl --version
检查有关 WSL 及其组件的版本信息。
Help 命令
PowerShell复制
wsl --help
查看 WSL 中可用的选项和命令列表。
以特定用户的身份运行
PowerShell复制
wsl --user <Username>
若要以指定用户身份运行 WSL,请将 <Username>
替换为 WSL 发行版中存在的用户名。
更改发行版的默认用户
PowerShell复制
<DistributionName> config --default-user <Username>
更改用于发行版登录的默认用户。 用户必须已经存在于发行版中才能成为默认用户。
例如:ubuntu config --default-user johndoe
会将 Ubuntu 发行版的默认用户更改为“johndoe”用户。
备注
如果在确定发行版名称时遇到问题,请使用命令 wsl -l
。
警告
此命令不适用于导入的发行版,因为这些发行版没有可执行启动器。 可以改为使用 /etc/wsl.conf
文件来更改导入的发行版的默认用户。 请参阅高级设置配置文档中的“自动装载”选项。
关闭
PowerShell复制
wsl --shutdown
立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机。 在需要重启 WSL 2 虚拟机环境的情形下,例如更改内存使用限制或更改 .wslconfig 文件,可能必须使用此命令。
Terminate
PowerShell复制
wsl --terminate <Distribution Name>
若要终止指定的发行版或阻止其运行,请将 <Distribution Name>
替换为目标发行版的名称。
标识 IP 地址
wsl hostname -i
标识通过 WSL 2 安装的 Linux 分发版 IP 地址(WSL 2 VM 地址)cat /etc/resolv.conf
表示从 WSL 2 看到的 WINDOWS 计算机的 IP 地址 (WSL 2 VM)
导入和导出发行版
PowerShell复制
wsl --export <Distribution Name> <FileName>
PowerShell复制
wsl --import <Distribution Name> <InstallLocation> <FileName>
将指定 tar 文件导入和导出为新的发行版。 在标准输入中,文件名可以是 -。 选项包括:
--vhd
:指定导入/导出分发应为 .vhdx 文件而不是 tar 文件(这仅在使用 WSL 2 的情况下受支持)--version
:(仅导入)指定将发行版导入为 WSL 1 还是 WSL 2 发行版
就地导入发行版
PowerShell复制
wsl --import-in-place <Distribution Name> <FileName>
将指定的 .vhdx 文件导入为新的发行版。 虚拟硬盘必须采用 ext4 文件系统类型格式。
注销或卸载 Linux 发行版
尽管可以通过 Microsoft Store 安装 Linux 发行版,但无法通过 Store 将其卸载。
注销并卸载 WSL 发行版:
PowerShell复制
wsl --unregister <DistributionName>
如果将 <DistributionName>
替换为目标 Linux 发行版的名称,则将从 WSL 取消注册该发行版,以便可以重新安装或清理它。 警告:取消注册后,与该分发版关联的所有数据、设置和软件将永久丢失。 从 Store 重新安装会安装分发版的干净副本。 例如:wsl --unregister Ubuntu
将从可用于 WSL 的发行版中删除 Ubuntu。 运行 wsl --list
将会显示它不再列出。
还可以像卸载任何其他应用商店应用程序一样卸载 Windows 计算机上的 Linux 发行版应用。 若要重新安装,请在 Microsoft Store 中找到该发行版,然后选择“启动”。
装载磁盘或设备
PowerShell复制
wsl --mount <DiskPath>
通过将 <DiskPath>
替换为物理磁盘所在的目录\文件路径,在所有 WSL2 发行版中附加和装载该磁盘。 请参阅在 WSL 2 中装载 Linux 磁盘。 选项包括:
--vhd
:指定<Disk>
引用虚拟硬盘。--name
:使用装入点的自定义名称装载磁盘--bare
:将磁盘附加到 WSL2,但不进行装载。--type <Filesystem>
:装载磁盘时使用的文件系统类型默认为 ext4(如果未指定)。 此命令也可输入为:wsl --mount -t <Filesystem>
。可以使用blkid <BlockDevice>
命令检测文件系统类型,例如:blkid <dev/sdb1>
。--partition <Partition Number>
:要装载的分区的索引号默认为整个磁盘(如果未指定)。--options <MountOptions>
:装载磁盘时,可以包括一些特定于文件系统的选项。 例如,wsl --mount -o "data-ordered"
或wsl --mount -o "data=writeback
之类的 ext4 装载选项。 但是,目前仅支持特定于文件系统的选项。 不支持通用选项,例如ro
、rw
或noatime
。
备注
如果你正在运行 32 位进程来访问 wsl.exe(一种 64 位工具),那么你可能需要按如下方式运行此命令:C:\Windows\Sysnative\wsl.exe --command
。
卸载磁盘
PowerShell复制
wsl --unmount <DiskPath>
卸载磁盘路径中给定的磁盘,如果未提供磁盘路径,则此命令将卸载并分离所有已装载的磁盘。
已弃用的 WSL 命令
PowerShell复制
wslconfig.exe [Argument] [Options]
PowerShell复制
bash [Options]
PowerShell复制
lxrun /[Argument]
这些命令是用于配置随 WSL 安装的 Linux 发行版的原始 wsl 语法,但已替换为 wsl
或 wsl.exe
命令语法。
Docker命令
1.查看当前安装版本
docker -v
2.启动与停⽌
# 启动docker
sudo service docker start
# 重启docker
sudo service docker restart
# 停⽌docker
sudo service docker stop
3.查看镜像列表
sudo docker image ls
或
sudo docker images
# REPOSITORY:镜像所在的仓库名称
# TAG:镜像标签
# IMAGEID:镜像ID
# CREATED:镜像的创建⽇期(不是获取该镜像的⽇期)
# SIZE:镜像⼤⼩
4.从仓库拉取镜像
sudo docker image pull 镜像名称 或者 sudo docker image pull library/镜像名称
sudo docker image pull ubuntu 或者 sudo docker image pull library/ubuntu
sudo docker image pull ubuntu:18.04 或者 sudo docker image pull library/ubuntu:18.04
5.删除镜像
sudo docker image rm 镜像名或镜像ID
sudo docker image rm hello-world
sudo docker image rm fce289e99eb9