本文是在使用WSL2编译立创泰山派SDK时的一些笔记,也整合了网上很多大佬解决WSL2安装Docker,以及repo等方法。
关于如何下载WSL2可以参考我的另一个博客:立创泰山派tspi-Windows11安装与配置WSL2用于Linux开发
本文的系统为Windows11 - Microsoft Windows [版本 10.0.22621.3007]
专业版
编译流程参考泰山派官方文档:https://lceda001.feishu.cn/wiki/Da5owUV4dipiqUkZycbcxckinvc
(1)创建Docker镜像
-
新建一个目录,并进入(名字自己起)
mkdir dockerfile/ cd dockerfile/
-
创建一个文件,并编辑
vim dockerfile
-
插入以下内容:
# 设置基础镜像为Ubuntu 18.04 FROM ubuntu:18.04 # 设置作者信息 MAINTAINER lckfb "service@lckfb.com" # 设置环境变量,用于非交互式安装 ENV DEBIAN_FRONTEND=noninteractive # 备份源列表文件 RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak # 将源列表中的 http://.*ubuntu.com 替换为 http://repo.huaweicloud.com RUN sed -i 's@http://.*ubuntu.com@http://repo.huaweicloud.com@g' /etc/apt/sources.list # 更新包列表 RUN apt update # 安装基本的编译工具和依赖 RUN apt install -y build-essential crossbuild-essential-arm64 \ bash-completion vim sudo locales time rsync bc python # 安装其他依赖包,这里编译android11sdk需要的环境 RUN apt install -y repo git ssh libssl-dev liblz4-tool lib32stdc++6 \ expect patchelf chrpath gawk texinfo diffstat binfmt-support \ qemu-user-static live-build bison flex fakeroot cmake \ unzip device-tree-compiler python-pip ncurses-dev python-pyelftools \ subversion asciidoc w3m dblatex graphviz python-matplotlib cpio \ libparse-yapp-perl default-jre patchutils swig expect-dev u-boot-tools RUN apt install -y bear # 再次更新包列表并安装任何未安装的依赖 RUN apt update && apt install -y -f # 生成本地化语言支持 RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 # 创建开发板用户 RUN useradd -c 'lckfb user' -m -d /home/lckfb -s /bin/bash lckfb # sudo免密登录 RUN sed -i -e '/\%sudo/ c \%sudo ALL=(ALL) NOPASSWD: ALL' /etc/sudoers RUN usermod -a -G sudo lckfb USER lckfb #设置docker工作目录为/home/lckfb WORKDIR /home/lckfb #容器使用这个内核方法 #docker run --privileged --mount type=bind,source=/home/LCKFB_RK3566/ROCKCHIP_ANDROID11.0_SDK_RELEASE/ROCKCHIP_ANDROID11.0_SDK_RELEASE,target=/home/lckfb/android11 --name="lckfb_android11_sdk" -h lckfb -it lckfb_android11_sdk_cmp
-
同样在刚才的
dockerfile/
目录下,执行以下命令:docker build -t lckfb_xly . # lckfb_xly - 镜像名字
此过程需要一段时间,请耐心等待
-
查看建立的镜像
docker images
(2)基于镜像创建容器
先在自己的家目录创建一个存放SDK的空目录:
cd ~
mkdir tspi_linux_repo_sdk/
然后创建容器
docker run --privileged --mount type=bind,source=/home/cheng/tspi_linux_repo_sdk,target=/home/lckfb --name="lckfb_xly_container" -h lckfb -it lckfb_xly
注意:
source=
是我们要挂载的路径,就是刚才创建用来存放SDK的目录,这里需要更换成你自己的路径
target=
挂载到容器内用户目录的名称这使得容器内的应用程序可以访问并操作宿主机上的该目录。
name=
是我们指定的一个名字
-h lckfb
容器主机名字使用名为
lckfb_xly
的镜像来创建容器,之前docker build创建镜像时命名的
创建完成后,可以查看:
docker ps -a
docker start lckfb_xly_container #启动容器
docker attach lckfb_xly_container #附加到正在运行的名为lckfb_xly_container的容器的终端上,以便与容器进行交互
退出:
exit
(3)下载SDK并解压
使用百度网盘或者夸克云盘在第05章.【立创·泰山派】系统SDK - 飞书云文档 (feishu.cn)下载tspi_linux_sdk_repo_20240131.tar.gz
和buildroot_dl_4c7c9df616fb.tar.gz
前者是需要编译的SDK,后者是buildroot相关库(是防止你的网络比较差很有可能编译的时候自动下载失败报错,帮你下载好的库)。
-
将这两个文件移动到我们刚才创建的文件夹
tspi_linux_repo_sdk/
,记得换成你自己下载的路径哦,这时候我们WSL2用户的便捷性就体现出来了,可以直接进入windows盘里面移动拷贝文件。(当然如果你是虚拟机也没关系,自己安装平时传文件的方式就好)mv /mnt/c/resource/JLC-lspi-Linux/tspi_linux_sdk_repo_20240131.tar.gz ~/tspi_linux_repo_sdk/ mv /mnt/c/resource/JLC-lspi-Linux/buildroot_dl_4c7c9df616fb.tar.g