失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux 编译3g驱动_linux重新编译内核

linux 编译3g驱动_linux重新编译内核

时间:2022-04-21 04:58:56

相关推荐

linux 编译3g驱动_linux重新编译内核

1.内容简介

linux内核简介

linux内核版本号

linux为什么重新编译内核

linux内核编译模式

linux内核功能划分

linux内核编译步骤

2linux内核简介

内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动、文件和网络系统,决定着系统的性能和稳定性。

3.内核版本号

确定内核版本uname -r

一个树是稳定树(stable tree)

一个树是非稳定树(unstable tree)或者开发树(development tree)

源程序版本号的形式为x.y.z

对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数),比如说2.5.18是正在开发的版本,2.6.18是已经可以用的版本了。

4.为什么重新编译内核

编译的原因

支持新安装的硬件设备:比如您刚买了一块新的声卡,但是当前的内核没有提供其驱动,而新版本内核可以驱动该声卡。

运行一个程序,但是操作系统不支持该程序需要的功能。

某个用户需要的内核功能。

用户希望对内核进行优化,自己定制编译的内核运行更快(具有更少的代码)。

内核升级(驱动、BUG、意愿、功能、安全、有时间进行升级)。

不需要的功能编译进入内核可能会增加被系统***者利用的漏洞。

为什么不编译

如果只是想给内核加上很少数量的功能的话,就没有必要进行编译

编译内核可能会遇到的困难:面对众多的选项

6.内核编译模式

如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,你就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管你是否需要这部分功能,它都会存在,这就是Windows惯用的招数,建议经常使用的部分直接编译到内核中,比如网卡。

如果编译成模块,就会生成对应的.o文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。

7.linux内核功能划分

进程管理

内存管理

设备控制

网络功能

设备和模块分类

字符设备、块设备、网络接口

字符模块、块模块、网络模块

8.新版本内核的获取和更新

linux内核版本发布的官方网站是

新版本的内核分两种,

一种是full Source版本,

一种是patch文件,即补丁

9.为内核源代码打补丁

内核经常需要小规模地升级。每次升级修复一个特定的bug,增加一个新的驱动程序或者功能,或者实现其他任务。

1) 下载主版本的源代码和升级到新版本需要的补丁的源代码。

2) 使用c d命令把路径切换到/usr/src目录。

3) 把下载的源代码和补丁都拷贝到这个目录中。

4) 进入内核源码包内,执行

bzcat ../patch-2.6.27 -p1

zcat ../patch-2.6.27 -p1

5) 准备编译

10.以实现挂载NTFS分区为例

需要重新编译内核 (需要在make menuconfig时添加内核对ntfs的支持,如果不重新编译内核,可以下个软件,ntfs-3g来达到支持ntfs的功能)

编译内核

1)获取需要安装的内核源代码

2)使用tar命令把源代码解包到/usr/src/目录

3)使用cd命令把路径切换到这个目录

4)"makemrproper"删除目前的配置和所有生成的文件(vimMakefile1149)5)选择你想使用的内核配置工具程序

图形化功能最少,又很乏味的工具是config程序

一个图形化的工具是menuconfig程序

用于对内核进行配置的X工具总是最流行的,它叫做xconfig

Make[config|menuconfig|xconfig|oldconfig]

保存并退出内核配置程序之后,就已经有了用来配置内核设置值了

6)"makedep"这个命令在2.4以前版本使用。建立依赖关系表,它定义了包括在内核源代码中的某个特定文件如果发生了变化,就需要修改哪一个文件。

7)"makebzImage"完成建立新内核的过程

8)"makemodules"编译内核模块并把它们存放到相应的位置。这是那些需要加载或者卸载的内核模块,另外还有一些固定加载的

9)"makemodules_install"命令安装模块到需要的位置

10)"makeinstall"将vmlinuz安装到/boot,并配置grub.conf(也可手动完成)

11) "reboot"重新启动,加载新的内核

内核 mkinitrd BUG(个人认为)

/show_bug.cgi?id=488991

No module dm-mem-cache found for

No module dm-region found for

No module dm-message found for

No module dm-raid45 found for (此问题我已经解决)

/~heinzm/sw/dm/dm-raid45/

手动设置编译好的内核

vmlinuz-2.6.27

System.map-2.6.27

initrd-2.6.27.img

关于这三个文件的作用,大家可以到/_01_474.html看一下!

#mkinitrd/boot/initrd-2.6.27.img2.6.27--without-dmraid

Nomoduledm-mem-cachefoundforkernel2.6.27,aborting.

#cp/usr/src/linux-2.6.27/arch/i386/boot/bzImage/boot/vmlinuz-2.6.7

#cp/usr/src/linux-2.6.7/System.map/boot/System.map-2.6.7

如果觉得《linux 编译3g驱动_linux重新编译内核》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。