如何重新编译linux内核

如何重新编译linux内核,第1张

因为一般电脑安装的系统都是Windows,而整个编译过程都需要在Linux环境下实现,所以最好是在虚拟机里安装Linux系统来完成这一过程。我使用的虚拟机是VMware-workstation-full-v7.1.4。

然后,我们需要下载一个较高版本的Linux系统的镜像文件,安装在虚拟机上,作为编译环境。我使用的是ubuntu-11.04-desktop-i386。之所以选择较高版本,是因为它的界面比较方便用户 *** 作。

然后下载一个Linux内核源代码文件,将它保存到虚拟机上新安装的系统中去。并解压到/usr/src目录。我使用的是linux-2.6.36,下载低版本的原因是,小巧轻便,易于编译。

解压命令如下:

bzip2 -d linux-2.6.36.tar.bz2

tar -xvf linux-2.6.36.ta

修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一个系统调用函数。自行编写一个简单的程序即可,只为测试用。

修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,为新添加的程序配置系统调用号。

在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系统调用表。

下面就是最重要的内核编译与安装:

首先配置编译信息,使其生成适合当前机器的Makefile,输入make oldconf ig。

接着还要输入make menuconfig,在字符界面下进行必要的细微的修改。

然后要经过四步编译过程(直接输入命令即可):

(1)make bzImage

将内核编译为压缩映像,存储在源码根目录下的“System.map”文件中。

(2)make modules

编译各个模块。

(3)sudo make modules_install

安装模块

(4)sudo make install

安装内核

第(2)(3)步等待时间较长,可能需要数个小时,请耐心等待。

无报错的话重启进入GRUB界面,就可以看到新编译的内核了。

按回车键进入我们编译的目标内核中,用关键词搜索查看新增加的系统调用“my call”是否已在内核中:

编写测试程序,调用新添加的系统调用:

测试成功,说明系统调用添加成功,进而说明内核编译成功!

以上的办法你可以试一下,希望对你有所帮助。

现在内核编译改动很大,减少了很多的步骤的。

应该是你的 config 有问题。新手不要 make mrproper 后直接 make config 。这样你看到的默认设置是内核那个默认,大部分机器这个默认设置启动都有问题的。

你最好看看 /boot/ 里面有没有系统自带内核的config,拷贝到新的内核源代码里面重命名为 .config (注意文件名开始有点的)。

之后 make oldconfig ,补全设置。之后再 make menuconfig 详细设置。

这样你的 config 应该就不会出现落下什么设置导致不能启动了。

另外,最好你的 Linux 分区所用的分区格式的驱动,还有硬盘控制器芯片驱动,全都编进内核。这样差不多可以脱离 initrd 启动计算机。可以选择绕过 initrd 来防止多一个步骤多一个问题的状况。

1、首先我首要把linux开机, 命令 rebot 这个是linux的重启命令,输入回车就重新启动。

2、reboot有一参数,执行的意义就不一样了reboot  -f  就是强制关机不调用shutdown。

3、命令reboot  -i  在重开机之前,先关闭所有网络界面。

4、命令 reboot -n 重开机之前不检查是否有未结束的程序。

5、命令 reboot -w  仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

扩展资料

Linux是一套免费使用和自由传播的类Unix *** 作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。

Linux *** 作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的 *** 作系统。

基本思想:

Linux的基本思想有两点:

第一,一切都是文;

第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、 *** 作系统、进程等等对于 *** 作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

支持多种平台:

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式 *** 作系统,可以运行在掌上电脑、机顶盒或游戏机上。

2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8904569.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-22
下一篇2023-04-22

发表评论

登录后才能评论

评论列表(0条)

    保存