1# QEMU(C-SKY 教程) 2 3## 1.简介 4 5QEMU可以模拟内核运行在不同的单板,解除对物理开发板的依赖。`SmartL_E802/`子目录包含部分Qemu C-SKY虚拟化平台验证的OpenHarmony kernel\_liteos\_m的代码,通过它来模拟一个基于C-SKY架构的单板。 6 7## 2.环境搭建 8 9 1. 编译工具链安装 10 11 提示:用户也可以直接使用下列指令来使用默认环境中配置好的编译器,跳过该步骤。 12 13 若要使用默认环境请先执行 '3.获取源码' ,然后在根目录下执行下列指令安装默认编译器。 14 15 ```shell 16 sh build/prebuilts_download.sh 17 ``` 18 19 可选的编译器安装流程: 20 21 a) 创建`csky_toolchain`文件夹并进入 22 23 ```shell 24 mkdir csky_toolchain && cd csky_toolchain 25 ``` 26 27 b) 下载csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz 到`csky_toolchain`文件夹并解压,下载地址:https://occ.t-head.cn/community/download?id=3885366095506644992 28 29 ```shell 30 wget https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1356021/1619529111421/csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz 31 tar -xf csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz 32 ``` 33 34 c) 将csky-elfabiv2编译工具链加入环境变量(将user_toolchain_xxx_path修改为自己的安装路径): 35 36 ```shell 37 vim ~/.bashrc 38 export PATH=$PATH:user_toolchain_xxx_path/csky_toolchain/bin 39 source ~/.bashrc 40 ``` 41 42 d) 删除默认的编译器路径: 43 44 修改SmartL_E802\liteos_m\config.gni: 45 46 ```c 47 board_toolchain_path = "$ohos_root_path/prebuilts/gcc/linux-x86/csky/csky/bin" 48 ``` 49 50 改为 51 52 ```c 53 board_toolchain_path = "" 54 ``` 55 56 2. qemu安装 57 58 a) 创建`csky_qemu`文件夹并进入 59 60 ```shell 61 mkdir csky_qemu && cd csky_qemu 62 ``` 63 64 b) 下载csky-qemu-x86_64-Ubuntu-16.04-20210202-1445.tar.gz到`csky_qemu`文件夹下并解压,下载地址:https://occ.t-head.cn/community/download?id=636946310057951232 65 66 ```shell 67 wget https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1356021/1612269502091/csky-qemu-x86_64-Ubuntu-16.04-20210202-1445.tar.gz 68 tar -xf csky-qemu-x86_64-Ubuntu-16.04-20210202-1445.tar.gz 69 ``` 70 71 c) 将qemu加入环境变量(将user_qemu_xxx_path修改为自己的安装路径): 72 73 ```shell 74 vim ~/.bashrc 75 export PATH=$PATH:user_qemu_xxx_path/csky-qemu/bin 76 source ~/.bashrc 77 ``` 78 79 d) 安装依赖 80 81 ```shell 82 ldd qemu_installation_path/bin/qemu-system-cskyv2 83 ``` 84 85 根据ldd执行结果,安装缺少的依赖库 86 87 (注:更多使用安装指导,请参考官方指南:https://occ.t-head.cn/community/download?id=636946310057951232) 88 89## 3.获取源码 90 91[代码获取](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md) 92 93提示: 可以使用 `repo` 命令来获取源码。 94 95## 4.源码构建 96 97 1. 执行hb set命令并选择项目`qemu_csky_mini_system_demo`。 98 99 2. 执行hb clean && hb build命令构建产生 `OHOS_Image` 的可执行文件。 100 101 ```shell 102 hb set 103 hb clean && hb build 104 ``` 105 106 3. 在构建完成之后,对应的可执行文件在主目录下: 107 108 ``` 109 out/SmartL_E802/qemu_csky_mini_system_demo/ 110 ``` 111 112## 5.在Qemu中运行镜像 113 114 1. 启动qemu(不配合GDB) 115 116 ```shell 117 ./qemu-run 118 ``` 119 120 2. 启动qemu(配合GDB) 121 122 a) 启动GDB服务器,等待连接 123 124 ```shell 125 ./qemu-run -g 126 ``` 127 128 b) 新建终端并使用GDB连接qemu 129 130 ```shell 131 csky-abiv2-elf-gdb out/SmartL_E802/qemu_csky_mini_system_demo/OHOS_Image -ex "target remote localhost:1234" 132 ``` 133 134 注:qemu退出方式为:按下ctrl加a键,然后松开再按下x键。 135