当前位置:首页 » 编程软件 » linux内核编译重新

linux内核编译重新

发布时间: 2024-09-27 06:18:45

linux只想部分修改内核应该怎么办,是不是要重新编译

如果只是修改内核的模块内容,则可以不需要重新编译,因为即使重新编译非模块部分还是原来的一样。只需要改完后make moles 在make moles_install。这个过程中make moles会重新编译内核的模块,install则会把模块放到/lib/moles/内核名 的文件夹里去,并且接下来运行depmod,重新生虫*.dep文件,系统靠这个文件加载模块。如果修改的是非模块部分的话,那么就一定要重新编译了。

❷ linux内核编译的几点疑惑

1.不一定是升级。一般编译内核有升级某些特性修正一些bug,但是也有精简来适应自己的机子硬件。
2.编译成功后的内核与原来内核没有影响(除非将原来的覆盖),原来的内核最好保留,避免新内核运行不成功。
3.编译的新内核主要看你自己在config文件上的配置。

❸ 重新编译了一下linux内核,现在系统进不去了。。。

可以用原来的内核启动。
开机出grub选单时参考提示 (可能要按esc退出gurb图形界面) 然后按C键 进入grub控制台。
>root(hdX,x) ------>你的根分区 可以 root ( 然后 tab 看看有没有可选,一般是hd0 ,然后 root (hd0, 再tab。
>kernel 你的内核
>initrd 你的 initrd 文件
>boot

你重新编译内核后,可能要重mkinitrdfs 重做 initrd
内核模块变化的话,可能需要depmod -a 重新产生mole依赖

普通用户:回答供参考 grub部分对 grub2不能保证正确 grub2没仔细看过how-to 思路就是这样子的,详细参考 man 或 help

比如我的vmware里的archlinux里是这样子的
grub选单 按C
>root (hd0,0)
>kernel /vmlinuz26
>initrd /kernel26.img
>boot

我的debian是grub2引导的还没仔细看过 grub2 怎么回事

===========================================================
linux内核现在一般都是 grub或别的loader 加载启动的,最早的时候内核支持通过特殊方式写入磁盘引导,开机bios直接jump到内核的代码启动,现在的版本都不用了。 如果你是通过修改 grub.cfg改的内核实际上还是通过grub引导的样子。是不是你的timeout=0 了

以前记得grub开机好像有个热键停在菜单上。很模糊,当前没找到资料。

一点建议:ununtu是debian的引申版本, 编译了新内核放再/boot后,应该可以 update-grub 开自动编辑grub。
=============================================================
不行就用你的安装光盘引导系统吧,或者做个grub引导盘吧

❹ 如何重新编译linux内核

因为一般电脑安装的系统都是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
moles
编译各个模块。
(3)sudo
make
moles_install
安装模块
(4)sudo
make
install
安装内核
第(2)(3)步等待时间较长,可能需要数个小时,请耐心等待。
无报错的话重启进入GRUB界面,就可以看到新编译的内核了。
按回车键进入我们编译的目标内核中,用关键词搜索查看新增加的系统调用“my
call”是否已在内核中:
编写测试程序,调用新添加的系统调用:
测试成功,说明系统调用添加成功,进而说明内核编译成功!
以上的办法你可以试一下,希望对你有所帮助。

❺ linux内核模块编译-通过Makefile重命名.ko文件名和模块名

假设模块的源文件为hello.c,源码如下:

使用该文件编译内核模块。
正常情况下,Makefile文件内容如下:

执行 make 命令,生成hello.ko文件。
执行 sudo insmod hello.ko 命令,安装该模块。
执行 lsmod 命令,查看安装的模块。就会看到第一行的就是hello模块。

但是,如果想自定义模块名称为 xmole ,而不是默认的 hello ,如何实现呢?方法如下:
在Makefile中重命名obj-m并将obj-m的依赖关系设置为原始模块(hello)
修改后的Makefile文件内容如下:

将obj-m设置为 xmole .o,并使 xmole .o依赖于 hello .o.
执行 make 命令后,生成 xmole .ko, 而不是 hello .ko,
安装命令: sudo insmod xmole.ko
查看命令: lsmod ,就会看到被安装名为 xmole 的模块。

热点内容
php7下载 发布:2024-09-27 09:23:38 浏览:937
溯源码刷胶 发布:2024-09-27 09:13:51 浏览:203
文件夹归类软件 发布:2024-09-27 09:05:41 浏览:380
ccache缓存 发布:2024-09-27 09:00:51 浏览:191
网络摄像头的原始密码是多少 发布:2024-09-27 08:44:41 浏览:790
c语言设t 发布:2024-09-27 08:42:18 浏览:236
游戏编程培训学校 发布:2024-09-27 08:29:44 浏览:980
量子算法包括 发布:2024-09-27 08:20:33 浏览:671
linux堡垒机 发布:2024-09-27 08:11:30 浏览:762
广东广电在哪里看wifi密码 发布:2024-09-27 07:54:55 浏览:120