add docker support

add docker support
master
Zhiyuan Shao 4 months ago
parent 272cd8f2b7
commit 35346f83a3

@ -29,7 +29,11 @@
读者可以采用VMware、VirtualBox等软件在客户机中安装客户机再在客户机中安装执行支撑软件来构建实验环境。客户机的选择我们推荐采用Ubuntu 16.04LTSx86_64或更高版本的Ubuntu发行版如18.04LTS、20.04LTS或更高)操作系统,或者**华为openEuler操作系统**。我们未在其他系统如archRHEL等上做过测试但理论上只要将实验中所涉及到的安装包替换成其他系统中的等效软件包就可完成同样效果。
**方案三:头歌实验平台**
**方案三Docker环境**
读者可以采用Docker作为开发环境。我们提供的 Docker 镜像中已经预装了完整的实验环境,实验源代码以及必要的辅助软件,读者无需手动安装任何支撑软件,便可轻松运行实验。我们建议读者使用 **x86_64**例如采用Intel或者ARM处理器的笔记本、台式机电脑**arm64** 处理器架构(例如,苹果公司新款**采用M系列处理器**的笔记本如MacBook等的客户机来运行 Docker 容器。具体的安装过程可以看[下一节](#subsec_docker)。
**方案四:头歌实验平台**
我们在EduCoder实验平台网址https://www.educoder.net 上创建了riscv-pke的同步实验课程课程的终端环境docker虚拟机中已完成实验所需软件工具的安装所以如果读者是在头歌平台上选择的本课程则可跳过本节的实验环境搭建过程以及执行支撑软件的安装过程直接进入通过终端命令行进入实验环境头歌实验平台的使用方法见[2.1.3节](#subsec_educoder)。
@ -146,6 +150,119 @@ RISC-V交叉编译器的构建需要一些本地支撑软件包可使用以
在以上命令中我们假设RISCV环境变量已经指向了RISC-V交叉编译器的安装目录即[your.RISCV.install.path]。
<a name="subsec_docker"></a>
**方案三安装Docker桌面环境**
* 第一步安装Docker
* **Ubuntu**
对于 **x86_64** 架构,安装具体的过程可以参考[这篇](https://blog.csdn.net/magic_ll/article/details/139985543?spm=1001.2014.3001.5506)文章。对于 **arm64** 架构,安装具体的过程可以参考[这篇](https://blog.csdn.net/sglin123/article/details/139754107?ops_request_misc=&request_id=&biz_id=102&utm_term=arm64%E5%AE%89%E8%A3%85docker&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-139754107.142^v100^pc_search_result_base8&spm=1018.2226.3001.4187)文章。
* **Windows**
Windows 版本的 Docker 安装可以参考[这篇](https://blog.csdn.net/Liuj666/article/details/126099982?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522EC5F862A-6D9C-439D-96AB-6CB77A783F13%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=EC5F862A-6D9C-439D-96AB-6CB77A783F13&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-126099982-null-null.142^v100^pc_search_result_base8&utm_term=windows%E5%AE%89%E8%A3%85docker&spm=1018.2226.3001.4187)文章。
* **macOS**
macOS 版本的 Docker 安装可以参考[这篇](https://blog.csdn.net/weixin_41860471/article/details/135048312?ops_request_misc=%257B%2522request%255Fid%2522%253A%25220015913A-5C64-4FD0-A192-3686BF8FE2C4%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=0015913A-5C64-4FD0-A192-3686BF8FE2C4&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-135048312-null-null.142^v100^pc_search_result_base8&utm_term=macos%E5%AE%89%E8%A3%85docker&spm=1018.2226.3001.4187)文章。
* 第二步,拉取镜像
* **x86_64/amd64 版本镜像**
*Dockerhub 镜像源*
`$ docker pull docker.io/tjr9098/amd64_pke_mirrors:1.0`
*阿里云镜像源*
`$ docker pull crpi-vycj2ba2y82yi8d0.cn-hangzhou.personal.cr.aliyuncs.com/pke_mirrors/amd64_pke_mirrors:1.0`
* **arm64 版本镜像**
*Dockerhub 镜像源*
`$ docker pull docker.io/tjr9098/arm64_pke_mirrors:1.0`
*阿里云镜像源*
`$ docker pull crpi-vycj2ba2y82yi8d0.cn-hangzhou.personal.cr.aliyuncs.com/pke_mirrors/arm64_pke_mirrors:1.0`
* 第三步,运行镜像
`$ docker run -it --name pke_mirror IMAGE:1.0`
**`IMAGE`** 是镜像名称,名称可通过`$ docker images`查看。
**`-it`**: 交互式运行容器,分配一个伪终端。
**`--name`**: 为容器命名,便于后续使用。
若出现下图所示则成功进入容器。
<img src="pictures/image1-docker.png" alt="image1-docker" style="zoom:80%;" />
* 第四步,验证环境
接下来切换到pke实验代码目录并构造
`# cd riscv-pke`
`# make`
若得到以下输出则可正常进行实验
```bash
# make
compiling util/snprintf.c
compiling util/string.c
linking obj/util.a ...
Util lib has been build into "obj/util.a"
compiling spike_interface/spike_file.c
compiling spike_interface/spike_htif.c
compiling spike_interface/spike_utils.c
compiling spike_interface/dts_parse.c
compiling spike_interface/spike_memory.c
linking obj/spike_interface.a ...
Spike lib has been build into "obj/spike_interface.a"
compiling kernel/syscall.c
compiling kernel/kernel.c
compiling kernel/elf.c
compiling kernel/process.c
compiling kernel/strap.c
compiling kernel/machine/minit.c
compiling kernel/strap_vector.S
compiling kernel/machine/mentry.S
linking obj/riscv-pke ...
PKE core has been built into "obj/riscv-pke"
compiling user/app_helloworld.c
compiling user/user_lib.c
linking obj/app_helloworld ...
User app has been built into "obj/app_helloworld"
```
* 再次进入容器
* 第一步,启动容器
`$ docker container start pke_mirror`
* 第二步,进入容器
`$ docker exec -it pke_mirror /bin/bash`
若出现下图所示则成功进入容器。
<img src="pictures/image2-docker.png" alt="image2-docker" style="zoom:80%;" />
**注意:以上代码默认容器名称为`pke_mirror`,请读者根据自己的容器名称做修改**。
<a name="subsec_educoder"></a>

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Loading…
Cancel
Save