On Wed, Jan 06, 2021 at 02:23:31PM +0800, Xiao Shenwei wrote:
On Wed, Jan 06, 2021 at 02:13:03PM +0800, Wang Chenglong wrote:
Signed-off-by: Wang Chenglong 18509160991@163.com
doc/tutorial.md | 71 ++++++++++++------------------------------------- 1 file changed, 17 insertions(+), 54 deletions(-)
diff --git a/doc/tutorial.md b/doc/tutorial.md index bf72630..bab40bc 100644 --- a/doc/tutorial.md +++ b/doc/tutorial.md @@ -150,61 +150,24 @@ job yaml 是测试描述和执行的基本单元,以[YAML](http://yaml.org/YAM
#### 操作步骤
- 获取对应 os 版本的 rootfs(以 openEuler 为例)
- 通过 docker 获取 rootfs
1) 下载 openEuler 官方提供的 docker 镜像压缩包
```bash
wget https://repo.openeuler.org/openEuler-20.03-LTS/docker_img/aarch64/openEuler-docker.aarch64.tar.xz
```
2) 加载 docker 镜像
```bash
docker load -i openEuler-docker.aarch64
```
3) 启动 openEuler 容器
```bash
docker run -id openeuler-20.03-lts
```
4) 拷贝 docker 的 rootfs
```bash
docker cp -a docker run -d openeuler-20.03-lts:/ openEuler-rootfs
```
- 通过 qemu.img(qcow2格式)获取 rootfs (openEuler为例)
1) 下载 openEule r官方网站提供的 qcow2 格式镜像
```bash
wget https://repo.openeuler.org/openEuler-20.03-LTS/virtual_machine_img/aarch64/openEuler-20.03-LTS.aarch64.qcow2.xz
```
2) 使用{compass-ci}/container/qcow2rootfs 制作rootfs
```bash
cd {compass-ci}/container/qcow2rootfs
./run openEuler-20.03-LTS.aarch64.qcow2.xz /tmp/openEuler-rootfs
```
- 定制rootfs
1. 使用chroot命令切换到 rootfs (此步骤需要 root 权限)
```bash
chroot openEuler-rootfs
```
2. 根据个人需要安装并配置服务
a. 修改 root 密码
b. 配置 ssh 服务
c. 检查系统时间
d. 如果使用 docker 制作 osimage 还需要以下操作:
> 1. 安装所需版本内核
> 2. 从 centos 官方网站下载内核rpm包
> 3. 使用 yum 进行安装
> 4. 删除 docker 环境变量文件
- 退出 rootfs,并打包
```bash
cd $rootfs
find . | coip -o -Hnewc |gzip -9 > $os_name.cgz
```
- 制作镜像(以 openEuler 为例)
```bash
cd {compass-ci}/rootfs/initramfs/openeuler/aarch64/20.03-LTS/
^ how about $CCI_SRC ?
good idea.
./run
```
- 打包驱动软件/内核源码
如果想要使用 {compass-ci} 未提供的内核版本,可以解压镜像,获取rootfs后,在 rootfs 中手动安装对应版本内核,并将驱动软件/内核源码进行打包。
^ ditto
ok
Thanks, Chenglong
Thanks, Shenwei
```bash
mkdir rootfs
cd rootfs
zcat ../$os_name.cgz | cpio -idmv
find ./lib/modules/* | cpio -o -Hnewc | gzip -9 > $HOME/modules-$os_name.cgz
find ./usr/src/kernels/* | cpio -o -Hnewc | gzip -9 > $HOME/headers-$os_name.cgz
```
#### FAQ
- 日志报错 “Unable to mount root fs on unknown-block”
- 问题现象
-- 2.23.0