嵌入式Linux作业一(内核版本更换)

嵌入式Linux实验

嵌入式Linux作业一



作业要求

  1. 下载一个新版本的内核源码,尽量与你的笔记本也就是本机内核版本相近。
  2. 修改内核源码,在启动过程中加入你的名字和学号,并重新编译内核。
  3. 用新内核启动,过程中应该出现你加入的信息。
  4. 在启动时最好出现两个内核版本的选择.
  5. 要求写出详细的实验步骤和结果记录。
  6. 作业完成可进行小组讨论,但作业报告需独立完成,个人独立提交作业报告。

提示:以下是本篇文章正文内容,下面案例可供参考

一、作业分析

  1. 查看本机内核版本,并在Linux官网下载一个相近的内核版本,
  2. 修改内核中的启动信息。
  3. 启动时尽可能可以选择内核版本(可选任务项)

二、实验步骤

1.查看本机内核版本,并在官网下载相近内核版本

查看内核版本:可以有多种方式查看,主要采用了三种命令查看分别是:cat /proc/version和 uname -a 和 uname -r,运行截图如下图所示:
可以看到本主机的内核版本为5.15.0
内核版本
因此去Linux官网上下载相近的版本,如图所示,最相近的版本为5.15.86:
下载内核文件
将下载的Linux放到qemuLinux文件夹中并解压,截图如图所示:
文件夹截图

2.修改内核源码并重新编译内核

  1. 对linux-5.15.86修改配置文件和源码
    修改配置文件makefile的384、385行如下图所示:
    修改配置文件
    在Linux-5.15.86/init/main.c中第939行添加一行printk(“Linux kernel 5.15.8 ---------------- qqt SA22225303\n”);,修改源码截图如下图所示:
    Linux5修改内核源码

  2. 配置sh make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm menuconfig sh System Type --> [ ] Enable the L2x0 outer cache controller 取消该选项
    重新编译make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm
    make dtbs

  3. qemu模拟器启动Linux-5.15.86内核qemu-system-arm -M vexpress-a9 -m 512M -kernel linux-5.15.86/arch/arm/boot/zImage -dtb linux-5.15.86/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 console=ttyAMA0 rw init=/linuxrc" -sd a9rootfs.ext3
    可以看到启动的截图:在这里插入图片描述

  4. 同理,修改linux-4.9.336/init/main.c源文件,如图所示:
    在这里插入图片描述

重新编译linux-4.9.336内核并qemu运行,qemu-system-arm -M vexpress-a9 -m 512M -kernel linux-4.9.336/arch/arm/boot/zImage -dtb linux-4.9.336/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 console=ttyAMA0 rw init=/linuxrc" -sd a9rootfs.ext3,qemu运行截图如图所示:
在这里插入图片描述

3.启动时选择内核版本

启动时选择内核版本,本小组采用的方法是通过写一个运行命令的Linux脚本来实现,运行qemuStartLinux.sh脚本,根据提示输入信息,从而选择相应的内核版本启动。
qemuStart.sh脚本代码如下所示:

  1 #!/bin/bash
  2 read -p "1:linux-4.9.336 2:linux-5.15.86,choose a version to pick: " num
  3 echo $num
  4 cd ~/workdir/qemuLinux
  5 if [ $num = "1" ] ; then
  6         qemu-system-arm -M vexpress-a9 -m 512M -kernel linux-4.9.336/arch/arm/boot/zImage -dtb linux-4.9.336/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 co    nsole=ttyAMA0 rw init=/linuxrc" -sd a9rootfs.ext3
  7 else
  8         qemu-system-arm -M vexpress-a9 -m 512M -kernel linux-5.15.86/arch/arm/boot/zImage -dtb linux-5.15.86/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 co    nsole=ttyAMA0 rw init=/linuxrc" -sd a9rootfs.ext3
  9 fi

运行该脚本,即./qemuStartLinux.sh,运行截图如下图所示:

  1. 选择linux-4.9.336:
    在这里插入图片描述

  2. 选择linux-5.15.86
    在这里插入图片描述

至此,本次作业的实验步骤全部结束。


总结

本次作业主要是查看内核的版本,下载相近的内核版本。然后修改内核源码,添加自己个人信息,修改Linux内核的配置文件并编译。最后通过Linux脚本,启动时出现两个内核版本的选择,可根据输入数字选择linux-5.15.86和linux-4.9.336两个版本。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值