文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux内核移植的步骤是什么

2023-06-28 13:44

关注

今天给大家介绍一下Linux内核移植的步骤是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。

Linux内核如何进行移植?所谓的内核移植就是从一种硬件平台转移到另一硬件平台上进行移植。

方式一:kernel提供的源码包,进行编译替换

1、首先做好内核编译前的准备工作,

主要有两个准备工作,一是在linux kernel官网上下载源码包,二是安装好任意版本的linux Ubuntu 系统并下载相应的编译工具。

在linux kernel上下载源码包,网址为:https://www.kernel.org/pub/linux/kernel/,选择对应的源码包下载,注意源码包的大小一般是几十兆左右,命名后缀为.tar.bz2,如下图所示:以linux_3.2.1为例子: Linux内核移植的步骤是什么

下载完成后,进行第二个准备工作,安装任意版本的Ubuntu,安装镜像网址:http://www.ubuntu.org.cn/download ,像装其他任意操作系统一样,安装完成Ubuntu操作系统,然后配置好联网,进行apk_get的下载。以下过程在root权限下进行,安装有关编译程序。安装make ,gcc, make-kpkg,运行menuconfig等等和编译内核相关的工具。

有关命令:

 $sudo  apt-get install build-essential kernel-package   libncurses5-dev

注意: (1)libncurses5-dev是为之后配置内核能运行 make menuconfig程序做准备 Build-essential为编译工具,kernel-package是编译内核工具

(2)如果系统显示无法查找到这三个文件,输入#apt-get update更新数据源。 把刚刚下载的源码包进行拷贝在ubuntu系统中,并解压到/usr/src 目录下,解压可以直接右键解压,或者采用以下命令进行解压:

 $sudo tar Jvfx linux-3.4.88.tar.xz
2、开始配置编译的相关文件及环境

首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行。 相关命令如下:

 #$ sudo make mrproper

然后将自己原本内核的配置文件拷贝过来成为新内核的配置文件,命令:

 #cp /boot/config-`uname -r` ./.config

这里需要说明的是,拷贝过来是很方便的,相当于直接给新的内核编译提供对应的配置文件,告诉内核哪些文件要编译,哪些不需要编译,但是经过几次的编译修改,这一部分是可以自定义的,利用我们之前下载的工具menuconfig。

进入内核的源码目录

 #cd /usr/src/linux_3.2.1

执行以下命令:

 #make  menuconfig

注意:这个命令需要在超级用户权限下执行,否则可能会报出一些莫名奇妙的错误。执行这个命令之后了,就可一看到下面的图片了: Linux内核移植的步骤是什么 这个图里面就可以对配置文件进行一个修改了,如果当初直接拷贝原内核的配置文件,那么此时直接选择倒数第二行load an Alternate Configuration File,然后sava即可。

如果自己配置则选择上面的任意目录,进行选择哪些文件要编译,哪些不编译,一般需要选择的是设备驱动,选项是Device Drivers,选择完毕后同样保存save即可。

注意这两种方式都可以,看用户自己的选择。具体的每个选项的内容解析见一下博客: http://forum.ubuntu.org.cn/viewtopic.php?t=134404

3、开始编译新内核

编译命令:

 #make all -j4

执行以上命令之后就可以编译内核了, make all就是将内核以及模块一起编译。后面的参数-j4表示,cpu要开启四个线程来编译内核。一般来说,每个cpu可以开启两个线程来编译内核,我的电脑是有两个cpu,所以开启了4个线程。这样编译真心很快的,以前没有发现这样编译,只有一个线程编译真心够等好长时间的。

4、编译完成之后,就可以进行内核的安装了

我们将源代码目录下的arch/x86_64/boot/bzImage复制到/boot/下面,因为我下载的源代码版本为linux-3.2.1,但是需要根据自己的cpu类型,如是x86架构还是amd,或者是32位或64位,在相应的目录下寻找bzImage。 所以复制的命令为:

 #cp arch/x86_64/boot/bzImage /boot/vmlinuz-3.2.1

这里需要说明,bzImage必须得有,是编译成功完成的一个生成文件,如果没有此文件,对不起,编译失败,请重新回去编译。vmlinuz-3.2.1 是自己主动命令的,可以自己改,但一般都是这种命令方式。

5、将源代码目录下的System.map复制到/boot目录下:

命令:

 #cp /usr/src/linux-3.2.1/System.map System.map-3.2.1
6、.将源代码目录下的.config复制到/boot/目录下:

命令:

 #cp .config /boot/config-3.2.1
7、安装模块

命令:

 #make modules_install
8、生成initrd.img文件
 #cd /lib/modules/3.2.1 #update-initramfs –c –k 3.2.1
9、.切换到/boot/grub/目录下,自动查找新内核,并添加至grub引导
 #update-grub
10、修改开机grub启动时间间隔,命令如下:
 #cd /ect/default #sudo nano ./grub

将hidden两行代码注释掉,这样开机启动的grub就会出现,可以由你选择改启动哪个内核版本。

 #GRUB_HIDDEN_TIMEOUT=0 #GRUB_HIDDEN_TIMEOUT_QUIET=tru

更改完成之后,在重新生成grub.cfg文件,命令和上面一样:

 #update-grub
11、切换至grub.cfg目录

以文本形式查看,是否更新有新内核的启动项,如果有即可不用修改,如果没有,进行手动修改。

 #cd /boot/grub #sudo nano ./grub.cfg

手动修改,按照原来内核的格式进行修改,只用修改新内核的名字而已。

12、重启电脑,在previous version中选择启动新编译的内核,成功进入系统。

输入内核版本检测命令:

 命令:#uname -r

就会出现新内核的名称!!!恭喜,替换内核成功!

方式二:下载内核安装包deb,进行升级替换

首先必须说明的是,这种方式我尝试了两台电脑,两个不同的内核升级,均为成功,原因不详: 具体步骤简单如下:

1.下载deb包

在 http://kernel.ubuntu.com/~kernel-ppa/mainline/ 上下载所需升级包。此处下载的是64位的3.5.4版本的3个deb包:

 linux-headers-3.5.4-030504_3.5.4-030504.201209142010_all.deb linux-headers-3.5.4-030504-generic_3.5.4-030504.201209142010_amd64.deb linux-image-3.5.4-030504-generic_3.5.4-030504.201209142010_amd64.deb
2.安装deb包

首先安装架构无关的即带all的headers包

 sudo dpkg -i linux-headers-3.5.4-030504_3.5.4-030504.201209142010_all.deb sudo dpkg -i linux-headers-3.5.4-030504-generic_3.5.4-030504.201209142010_amd64.deb sudo dpkg -i linux-image-3.5.4-030504-generic_3.5.4-030504.201209142010_amd64.deb

安装后,/boot目录下会生成新的内核的相关文件,/lib/modules目下也生成了相应模块。

3.更新启动项grub

按照上述的步骤9开始,与上面一样。更新完了grub.cfg,然后重新启动,进行新的内核即可。

以上就是Linux内核移植的步骤是什么的全部内容了,更多与Linux内核移植的步骤是什么相关的内容可以搜索编程网之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯