操作系统实验-OpenEuler编译
前言
- 编译需要一两个小时,时间较长
- OpenEuler版本不同使用的内核不同,这里使用
openEuler-22.03-LTS-x86_64-dvd.iso以匹配linux5.10的内核,可以从镜像下载
远程登陆-解决无法复制粘贴的问题(可略过)
安装软件以远程控制
首先安装一个用于远程控制的软件,比较常用的软件有xshell和finalshell等(vscode似乎也可以配置?但是看起来好麻烦)
获取虚拟机IP
使用ifconfig命令查看虚拟机ip信息

如图,这里的ip是192.168.19.128
远程连接
连接前首先需要下载软件依赖:
yum install openssh-server
下图为xshell中连接的示例:
- 点击新建以建立连接

- 在弹出的窗口中为连接起一个名字,并填写前面获取的ip

- 为避免每次链接都需要登陆,可以点击左边用户身份验证,填写用户名(注意是系统登陆的用户名不是xshell用户名)

- 点击确定以保存,可以看到已经创建了相关会话,选中刚刚创建的会话,点击右下角连接以尝试连接

- 成功后如图,接下来就可以直接在xshell中对系统进行操作了

内核编译
系统安装
注意使用openEuler-22.03-LTS-x86_64-dvd.iso以匹配linux5.10的内核,点此去下载。
系统版本不一致可能会导致下文未提到的报错,这种情况建议你还是问ai吧。
安装过程课程群内一般会有,没有的话建议左转浏览器搜索OpenEuler安装
编译前的准备-安装依赖
按照以下命令下载依赖:
yum install elfutils-libelf-devel
yum install openssl-devel
yum install bc
yum install wget #wget用于从互联网下载文件
yum install lrzsz # rz和sz可以在终端下很方便的传输文件
下载内核包
#下载源码
wget https://gitee.com/openeuler/kernel/repository/archive/5.10.0-13.0.0.zip
#解压
unzip 5.10.0-13.0.0.zip
编译内核
# 进入解压好的源码文件夹,接下来的命令需要在此目录下执行
cd kernel-5.10.0-13.0.0
# 清理过去内核编译产生的文件(如果你有的话)
make mrproper
# 生成内核配置文件.config,如果是手敲命令注意"."前的空格
cp -v /boot/config-$(uname -r) .config
# 执行依赖安装,以下依赖在编译过程中需要使用
yum install ncurses-devel
yum install dwarves
# 配置内核选项并保存到config中,此处只需要直接选中save,保存后exit退出即可
make menuconfig
下面步骤在make menuconfig中保存config文件后进行,请确保上述依赖都已安装
# 内核编译
#可以添加参数-jn使用n个核心进行编译,越多速度越快,建议在VM中分配四个内核并使用命令 make -j4
make
# 安装内核模块
# 注意下划线,不写下划线会报错找不到一些文件,似乎是当成下一步的moudles_install了
make moudles_install
# 安装内核镜像与相关配置,更新引导加载程序
# 如果完全按照我上面说的运行,此处应该会报错提示缺少kvdo和uds模块,接下来说如何处理
make install
缺少模块的处理方法
- KVDO 是一种内核模块,用于提供数据去重和压缩功能,旨在减少存储占用并提高存储效率。
- UDS 是 KVDO 的一个组件,主要负责提供去重索引服务。它帮助 KVDO 更高效地识别和消除重复数据
看起来这两个模块只是用来提高存储效率,至少对于操作系统实验课来说并非必须,所以我选择了最简单粗暴的方法——忽略
# 向配置文件中写入忽略这两个模块的信息
sudo echo "omit_drivers+= \"kvdo uds \"" >> /etc/dracut.conf
# 安装内核镜像与相关配置,更新引导加载程序
make install
以上步骤都完成后重启虚拟机,可以看到编译后的版本已经可选了


浙公网安备 33010602011771号