打开设置->安全和更新->开发者选项,选择为“开发人员模式”:
-
-
-
- 启用或关闭Windows功能
-
-
-
-
-
- 开启Windows子系统功能
-
-
以管理员身份打开PowerShell并运行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 开启Windows子系统功能。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
-
-
- 安装Ubuntu20.04
-
-
打开Microsoft Store搜索Ubuntu,安装Ubuntu20.04
-
-
-
- 设置用户名和密码
-
-
-
-
-
- Shell环境修改为bash
-
-
执行sudo dpkg-reconfigure dash,选择No,将Ubuntu shell由dash修改为bash
执行ls -l /bin/sh查看:
-
-
-
- python3环境
-
-
Ubuntu20已自带python3.8.5,执行sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150切换python3:
-
-
-
- 安装pip3
-
-
$ sudo apt-get -y update
$ sudo apt-get install python3-pip
其他所需库参考开源文档使用pip3安装即可。或者直接依次执行下面命令:
$ sudo pip3 install kconfiglib
$ sudo pip3 install pycryptodome
$ sudo pip3 install six --upgrade --ignore-installed six
$ sudo pip3 install ecdsa
-
-
-
- 安装gn
-
-
-
-
-
- 安装ninja
-
-
-
-
-
- 安装 llvm
-
-
备注:
上述安装程序下载路径:
解压缩指令:
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.tgz
解压:tar zxvf FileName.tgz
压缩:未知
.tar.tgz
解压:tar zxvf FileName.tar.tgz
压缩:tar zcvf FileName.tar.tgz FileName
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar a FileName.rar
压缩:r ar e FileName.rar
安装gn,安装ninja,安装 llvm根据下载的压缩包拷贝到Linux具体目录,如:
然后执行解压命令,解压,vim ~/.bashrc配置。如图:
-
-
-
- 安装 apt安装全部依赖工具
-
-
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler
-
-
-
- wsl的版本
-
-
安装完成,用户账号设置好之后,打开命令行窗口执行wsl -l -v查看下wsl的版本(注:cmd,wsl找不到的请更新windows版本),确保是wsl2,如果是版本1,可执行wsl.exe --set-version Ubuntu-20.04 2命令升级为版本2,执行后等待转换完成即可!!注意一定要是WSL2,如果是版本1,编译速度会慢几十倍。
备注:执行wsl.exe --set-version Ubuntu-20.04 2出现内核组件问题,先下载安装
wsl_update_x64.msi后,在执行切换命令,即可开始转换,等待转换完成即可。
旧版 WSL 的手动安装步骤 | Microsoft Learn
distro name获取:
-
-
-
- wsl2迁移
-
-
- 需要下载LxRunOffline,下载地址,下载文件LxRunOffline-v3.5.0-mingw.zip,然后解压到某个目录中
https://github.com/DDoSolitary/LxRunOffline/releases/download/v3.5.0/LxRunOffline-v3.5.0-mingw.zip
https://github.com/DDoSolitary/LxRunOffline/releases
2.设置环境变量,在系统变量Path中添加LxRunOffline解压的目录(.exe所在的目录)
3.重启电脑,使环境变量生效
4.Win + R运行cmd,输入LxRunOffline,如果显示下面的提示证明已经安装成功了
5.Win + R运行cmd,输入LxRunOffline list查看子系统版本
6.复制上面的版本号,然后输入LxRunOffline move -n {version} -d {dir},{version}是版本号,{dir}是迁移目的目录,比如本文是20版本,迁移到D盘Ubuntu目录下,LxRunOffline move -n Ubuntu-20.04 -d D:\Ubuntu,然后回车,等待迁移完成,10分钟左右。
这样,整个Ubuntu子系统就迁移到了指定目录下了:
WSL文件映射在\\wsl$路径下,通过\\wsl$\Ubuntu-20.04打开文件所在位置:
-
-
-
- wsl映射到本地
-
-
-
-
-
- wsl默认以root用户登录
-
-
Windows终端(管理员?)进入Apps目录。
cd %HOMEPATH%\AppData\Local\Microsoft\WindowsApps
列出目Apps目录下的文件与文件夹
dir
进入子系统目录
cd CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
列出文件
dir
执行指令修改默认用户为root:
ubuntu2004.exe config --default-user root # ubuntu2004.exe 根及实际修改
-
-
-
- 注册码云gitee账号
-
-
-
-
-
- 生成/添加SSH公钥
-
-
Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。
你可以按如下命令来生成 sshkey:
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
# Generating public/private ed25519 key pair...
注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_ed25519.pub 文件内容,获取到你的 public key
cat ~/.ssh/id_ed25519.pub
# ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。
添加后,在终端(Terminal)中输入
ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功。
添加成功后,就可以使用SSH协议对仓库进行操作了。
-
-
-
- 安装git客户端和git-lfs并配置用户信息
-
-
安装git客户端,执行:
sudo apt install git-all
安装git-lfs,依次执行以下命令:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
配置用户信息
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
-
-
-
- 安装repo工具
-
-
安装码云repo工具,由于权限可切换到root用户下安装,安装后再切换个人用户目录操作既可:
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
-
-
-
- 安装npm
-
-
sudo apt install npm
-
-
-
- 安装 hb
-
-
运行如下命令安装hb并更新至最新版本
pip3 install --user build/lite
设置环境变量
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
执行如下命令更新环境变量。
source ~/.bashrc
在源码目录执行"hb -h",界面打印以下信息即表示安装成功:
-
-
-
- 安装依赖工具
-
-
sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev genext2fs liblz4-tool libssl-dev libtinfo5 lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby
-
-
-
- 安装java环境
-
-
执行java --version看是否有java的环境,没有的话安装下。
sudo apt install openjdk-17-jre-headless
-
-
-
- 安装编译器及二进制工具
-
-
执行prebuilts,在源码根目录下执行,安装编译器及二进制工具
bash build/prebuilts_download.sh
-
-
- 源码获取
- 下载主干master分支源码
- 源码获取
-
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
ps:git lfs
-
-
- 系统裁剪
-
-
-
- 系统编译
- 版本编译
- 系统编译
-
输入 hb set
上下键操作选择红色部分,然后回车,输入hb build,回车,就进入编译阶段。