openEuler Embedded快速上手与qemu应用问题补充
openEuler Embedded快速上手与qemu应用问题记录
参考链接:快速上手 — openEuler Embedded在线文档 1.0.0 documentation
按照手册安装时遇到许多问题,在此记录。
openEuler Embedded快速上手
1. 安装必要的主机包
问题1:自动安装不想要的podman-docker
第一步sudo yum install python3 python3-pip docker,会自动安装podman-docker,无法进行后续操作。
解决方法:应当执行下面的命令,安装docker-ce:
sudo yum install python3 python3-pip docker-ce
问题2:docker重启失败
执行sudo systemctl restart docker时出现下述错误:
[root@localhost ~]# sudo systemctl daemon-reload && sudo systemctl restart docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
用systemctl status docker.service查看具体错误信息如下:
[root@localhost ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2023-10-24 13:47:47 CST; 4s ago
Docs: https://docs.docker.com
Process: 303558 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 303558 (code=exited, status=1/FAILURE)
...
解决方法:参考链接centos7 - Docker service start failed - Stack Overflow
2. 初始化oebuild构建环境
注意:在执行oebuild init <work_dir> 之前,需要先用su user切换为普通用户。
在linux上安装qemu:
https://zhuanlan.zhihu.com/p/631195884
遇到一些问题,上网查找解决了。
4. 使用oebuild构建一个qemu-aarch64镜像
https://openeuler.gitee.io/yocto-meta-openeuler/master/yocto/oebuild.html
按安装文档执行完pip install oebuild之后运行报错,通过另一种安装方式(二进制包安装)解决了,仓库README文档给出了这种安装方式,openEuler网站文档没有给出,提了一个issue:
https://gitee.com/openeuler/oebuild/issues/I7WJ2W
构建得到iso文件,但未能正常运行,提示No bootable device,待处理
5. 在qemu上运行构建出来的镜像
将上一步得到的.iso文件载入qemu的虚拟机中即可
6. 简单写一个hello的c语言程序
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
7. 使用交叉编译链编成二进制程序
将x86的c语言文件交叉编译为aarch64的二进制程序
gcc hello.c -o hello

浙公网安备 33010602011771号