diff --git a/docs/source/develop_help/contribute_doc.rst b/docs/source/develop_help/contribute_doc.rst
index 2722fef56c4cb2154e206726dad3ae6757ffe03c..34f93ad64068a84d7d609bd1563874ace40fc633 100644
--- a/docs/source/develop_help/contribute_doc.rst
+++ b/docs/source/develop_help/contribute_doc.rst
@@ -50,12 +50,10 @@ reStructuredText的语法无需专门记忆,需要用到时再去查询即可
* 环境准备
- 如果你只进行文档开发的话,那么你需要准备好python3, 然后通过pip3按照如下命令安装对应python软件包,包括sphinx、文
- 档主题等:
+ 如果你只进行文档开发的话,那么你需要准备好python3, 然后通过pip3按照如下命令安装对应python软件包,包括sphinx、文档主题等:
.. code-block:: bash
- pip3 install sphinx
pip3 install --user -r yocto-meta-openeuler/scripts/requirements-doc.txt
* 编辑文档
diff --git a/docs/source/develop_help/qemu/qemu_start.rst b/docs/source/develop_help/qemu/qemu_start.rst
index 987832d31a2eefee4e2e5efdd3f3901f60445da8..7a78fff041f06264707311e7a00ef52d66e1683d 100644
--- a/docs/source/develop_help/qemu/qemu_start.rst
+++ b/docs/source/develop_help/qemu/qemu_start.rst
@@ -20,6 +20,10 @@ QEMU使用
$ sudo apt-get install qemu-system-arm
+ .. tab:: SUSELeap15.4
+
+ $ sudo zepper install qemu-arm
+
方法二:基于openEuler社区 `QEMU `_ 代码自行编译
1. 首先下载对应的代码并切换到stable-5.0分支:
@@ -85,10 +89,19 @@ QEMU使用
在宿主机上需要建立名为tap0的虚拟网卡,可以借助脚本实现,创建 :file:`/etc/qemu-ifup` 脚本,具体内容如下:
- .. code-block:: console
+ .. tabs::
+
+ .. code-tab:: shell Ubuntu
+
+ #!/bin/bash
+ ifconfig $1 192.168.10.1 up
- #!/bin/bash
- ifconfig $1 192.168.10.1 up
+ .. code-tab:: shell SUSELeap15.4
+
+ #!/bin/bash
+ ip tuntap add dev "$1" mode tap
+ ip link set dev "$1" up
+ ip addr add 192.168.10.1/24 dev "$1"
其执行需要root权限:
@@ -181,6 +194,115 @@ QEMU使用
如能发现hello_openeuler.txt,则共享成功。
+6. 使能运行虚拟磁盘场景
+=======================
+
+ **Step1:创建虚拟磁盘**
+
+ 通过共享文件系统可以共享文件,但是在有些需要反复启动openEuler Embedded的场景可能有些不便捷,因为qemu的启动命令往往是将系统加载到内存中,每重启一次就需要设置一下共享文件夹。通过构建虚拟磁盘,可以将之前的设置永久保留,以SUSELeap15.4为例,构建过程如下:
+
+ .. code-block:: shell
+
+ # 创建1G虚拟磁盘
+ $ dd if=/dev/zero of=virtual_disk.img bs=1M count=1024
+
+ # 利用fdisk分区
+ $ sudo fdisk virtual_disk.img
+
+ # 将虚拟磁盘挂载
+ $ sudo losetup -Pf --show virtual_disk.img
+
+ # 格式化文件系统,可以通过ls /dev查看虚拟磁盘具体挂载在哪
+ $ sudo mkfs.ext4 /dev/loop0p1
+
+ # 挂载虚拟磁盘
+ $ sudo mkdir /mnt/my_mount_point
+ $ sudo mount /dev/loop0p1 /mnt/my_mount_point
+
+ **Step2:拷贝根文件系统**
+
+ 将openeuler-image-qemu-aarch64-*.rootfs.cpio.gz内所有的文件目录解压,随后拷贝到/mnt/my_mount_point目录下:
+
+ .. code-block:: shell
+
+ # 在openeuler-image-qemu-aarch64-*.rootfs.cpio.gz所在目录下创建temp目录并拷贝
+ $ mkdir temp
+ $ cp openeuler-image-qemu-aarch64-*.rootfs.cpio.gz temp && cd temp
+
+ # 解压根文件系统压缩包
+ $ gunzip -c openeuler-image-qemu-aarch64-*.rootfs.cpio.gz | cpio -idmv
+ $ sudo cp -r * /mnt/my_mount_point
+
+ 至此,一个带有openEuler Embedded系统的虚拟磁盘已经创建完毕。可以通过qemu运行这个虚拟磁盘中的系统,并且会保存登陆密码不需要每一次登录的时候都需要重置密码。
+
+ **Step3:启动虚拟磁盘**
+
+ qemu的启动虚拟磁盘命令如下。可以在 ``bashrc`` 中设置alias命令进行快速启动,避免输入冗长的命令。
+
+ .. code-block:: console
+
+ $ sudo qemu-system-aarch64 -M virt,gic-version=3 -m 1G -cpu cortex-a57 \
+ -append 'maxcpus=3 root=/dev/vda1 rootfstype=ext4 rw' \
+ -smp 4 -kernel zImage -dtb qemu_mcs.dtb -device virtio-net-device,netdev=tap0 \
+ -netdev tap,id=tap0,script=/etc/qemu-ifup \
+ -drive file=virtual_disk.img,format=raw -nographic"
+
+ 这是一条启动混合关键系统的qemu命令,其中 ``root=/dev/vda1`` 指定了根文件系统的位置在挂载的虚拟磁盘上,同时还指定了 ``qemu-ifup`` 以便openEuler Embedded与宿主主机进行通信。
+
+ **Step3:设置SSH密钥**
+
+ 尽管虚拟磁盘保存了密码,不用每次登录时重复设置密码,但在实际调试过程成往往需要频繁的通过scp向openEuler Embedded传输文件,输入密码操作就显得繁琐,可以通过设置ssh密钥的方式,免去输入密码操作:
+
+ .. code-block:: shell
+
+ # 终端输入
+ $ ssh-keygen
+
+ # 选择一个文件保存公钥位置,回车默认保存在/home//.ssh目录下
+ $ Enter file in which to save the key (/home//.ssh/id_rsa):
+
+ # 设置密钥短语,用于保护私钥,回车即可
+ $ Enter passphrase (empty for no passphrase):
+
+ # 再次输入密钥短语,回车即可
+ $ Enter same passphrase again:
+
+ 如果得到类似如下的输出,ssh密钥构建完毕。
+
+ .. code-block:: console
+
+ Your identification has been saved in /home//.ssh/id_rsa
+ Your public key has been saved in /home//.ssh/id_rsa.pub
+ The key fingerprint is:
+ SHA256:rOt1tPXpLY9nPiI4ASV/DLHV+5LG/9JBb96jhQu9fPU @localhost.localdomain
+ The key's randomart image is:
+ +---[RSA 3072]----+
+ | .... |
+ | . oo . |
+ | +.o . |
+ | o . o . . |
+ | S o o + .|
+ | . o o.*.++|
+ | . . =..o===|
+ | o + .oo*BE|
+ | .o . .=*BO|
+ +----[SHA256]-----+
+
+ 此时只需要把/home//.ssh/id_rsa.pub内容追加到qemu运行的虚拟磁盘中的/root/.ssh/authorized_keys中即可。
+
+ .. code-block:: shell
+
+ #将宿主机中的公钥输出,并复制
+ $ cat ~/.ssh/id_rsa.pub
+
+ #在qemu中创建目录,并复制内容
+ $ mkdir /root/.ssh
+
+ # 粘贴内容保存退出
+ $ vi authorized_keys
+
+ 设置完成之后,宿主机和openEuler Embedded即可免密通信。
+
附录:QEMU常用的启动参数
========================
diff --git a/docs/source/getting_started/index.rst b/docs/source/getting_started/index.rst
index b11653186839324aad91aa7bf3259a5beff5a1e3..da2079f125eb1402cd4708754ee7ca9bb2c3c95b 100644
--- a/docs/source/getting_started/index.rst
+++ b/docs/source/getting_started/index.rst
@@ -55,6 +55,24 @@ openEuler Embedded采用yocto构建,但通过 `oebuild