本文讲解了怎样进行内核编译及模块相关命令的使用方法。

一 Linux内核相关信息

#查看Linux系统
[root@serv01 ~]# uname
Linux
#查看所有信息
[root@serv01 ~]# uname -a
Linux serv01.host.com2.6.32-131.0.15.el6.x86_64 #1 SMP Tue May 10 15:42:40
EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
#内核信息
[root@serv01 ~]# uname -r
2.6.32-131.0.15.el6.x86_64#/boot目录下
/boot
#驱动
initrd-2.6.32-131.0.15.el6.x86_64kdump.img
#内核
vmlinuz-2.6.32-131.0.15.el6.x86_64#桌面版的内核存放位置
[root@larrywen boot]# cd/usr/src/kernels/2.6.32-131.0.15.el6.x86_64/
[root@larrywen 2.6.32-131.0.15.el6.x86_64]#ls
arch  crypto   firmware  include ipc     lib       Makefile.common  Module.symvers  samples security  System.map  usr
block drivers  fs        init    kernel  Makefile  mm               net             scripts  sound    tools       virt#解压内核到/usr/src下
[root@serv01 ~]# tar -xvf linux-2.6.38.tar.gz-C /usr/src/
[root@serv01 ~]# cd /usr/src/linux-2.6.38/
[root@serv01 linux-2.6.38]# pwd
/usr/src/linux-2.6.38#已经安装好的版本有配置文件
[root@larrywen ule-sa2]# cd/usr/src/kernels/2.6.32-131.0.15.el6.x86_64/
[root@larrywen 2.6.32-131.0.15.el6.x86_64]#ls .config
.config#查看配置文件
[root@serv01 linux-2.6.38]# vim/boot/config-2.6.32-131.0.15.el6.x86_64#源码不区分32位和64位#查看make帮助
#需要在linux-2.6.38目录下
[root@serv01 linux-2.6.38]# make help
clean 清除,保留配置文件
mrproper 清除,不保留配置文件,更彻底make menuconfig:图形界面
make xconfig:图形界面,需要安装QT
#<*>:制作成内核
#<M>:制作成模块

二 编译配置

[root@serv01 linux-2.6.38]# make menuconfigHOSTCC  scripts/basic/fixdepHOSTCC  scripts/basic/docprocHOSTCC  scripts/kconfig/conf.oHOSTCC scripts/kconfig/kxgettext.o***Unable to find the ncurses libraries or the***required header files.***'make menuconfig' requires the ncurses libraries.******Install ncurses (ncurses-devel) and try again.***
make[1]: ***[scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig] Error 2
[root@serv01 linux-2.6.38]# yum install"ncurses-devel" -y#OCFS:Oracle Class FileSystem#配置后生成.config文件
[root@serv01 linux-2.6.38]# ls .config
[root@serv01 linux-2.6.38]# vim Makefile[root@serv01 linux-2.6.38]# lsarch/x86/boot/ -d
arch/x86/boot/

三 编译

[root@serv01 linux-2.6.38]# make bzImage
Root device is (8, 2)
Setup is 14908 bytes (padded to 15360bytes).
System is 3704 kB
CRC 7521c374
Kernel: arch/x86/boot/bzImage is ready  (#1)

四 编译模块

[root@serv01 linux-2.6.38]# make modules

五 安装模块

[root@serv01 linux-2.6.38]# makemoudule_install
#make moudule_install拷贝到该目录
[root@serv01 linux-2.6.38]# ls/lib/modules/2.6.32-131.0.15.el6.x86_64/kernel/[root@serv01 linux-2.6.38]# ls/lib/modules/2.6.38/kernel
#出现这个错误是因为交换分区过小/bin/sh: line 1: 10010 Killed                  /sbin/depmod -ae -F System.map2.6.38
make: *** [_modinst_post] Error 137

六 安装

[root@serv01 linux-2.6.38]# make install
#可以比较下已有版本和编译的版本的不同,(编译版本:没选防火墙)
[root@serv01 linux-2.6.38]# ls/lib/modules/2.6.38/kernel/net/
802   9p   bluetooth  can  dccp          ieee802154  ipv6 llc       phonet  rfkill sctp    wimax     xfrm
8021q atm  bridge     core dns_resolver  ipv4        key  mac80211  rds     sched  sunrpc  wireless
[root@serv01 linux-2.6.38]# ls/lib/modules/2.6.32-131.0.15.el6.x86_64/kernel/net/
802   9p   bluetooth  can  dccp        ipv4  key mac80211   phonet  rfkill sctp    wimax     xfrm
8021q atm  bridge     core ieee802154  ipv6  llc netfilter  rds     sched  sunrpc  wireless[root@serv01 linux-2.6.38]# ls /lib/modules/2.6.38/kernel/fs/ntfs/ntfs.ko[root@serv01 linux-2.6.38]# ls/boot/grub/grub.conf
/boot/grub/grub.conf
[root@serv01 linux-2.6.38]# cat/boot/grub/grub.conf
# grub.conf generated by anaconda
# #
# # Note that you do not have to rerun grubafter making changes to this file
# # NOTICE: You have a /boot partition.  Thismeans that
# #         all kernel and initrd paths are relative to /boot/, eg.
# #         root (hd0,0)
# #         kernel /vmlinuz-version ro root=/dev/sda2
# #         initrd /initrd-[generic-]version.img
# #boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux(2.6.32-131.0.15.el6.x86_64)root(hd0,0)kernel/vmlinuz-2.6.32-131.0.15.el6.x86_64 roroot=UUID=110fab7c-85c4-4bae-9114-98bc2ada24d8rd_NO_LUKSrd_NO_LVM rd_NO_MD rd_NO_DMLANG=en_US.UTF-8SYSFONT=latarcyrheb-sun16KEYBOARDTYPE=pc KEYTABLE=uscrashkernel=auto rhgb quietinitrd/initramfs-2.6.32-131.0.15.el6.x86_64.img[root@serv01 linux-2.6.38]# cat/boot/grub/grub.conf
#/boot目录下新生成的文件initramfs-2.6.38.img
vmlinuz-2.6.38#会在这个文件中新加一个内核信息
[root@serv01 linux-2.6.38]# cat/boot/grub/grub.conf#出现错误一般是交换分区过小,我们可以增加交换分区。如何增加交换分区,请参考此文:系统运维技巧(三)——利用dd命令增加交换分区

七 模块相关命令使用

#查看当前系统加载的模块
[root@serv01 linux-2.6.38]# lsmod
#手工加载模块
[root@serv01 linux-2.6.38]# cd/lib/modules/2.6.38
[root@serv01 linux-2.6.38]# cd kernel/ns
[root@serv01 linux-2.6.38]# insmod/lib/modules/2.6.38/kernel/fs/fat/fat.ko
[root@serv01 linux-2.6.38]# lsmod |grep fat
[root@serv01 linux-2.6.38]# insmod/lib/modules/2.6.38/kernel/fs/fat/vfat.ko
[root@serv01 linux-2.6.38]# lsmod |grep fat
#卸载模块,可以跟模块名,也可以跟全路径
[root@serv01 linux-2.6.38]# rmmod fat
ERROR:Module fat is in use by vfat
[root@serv01 linux-2.6.38]# rmmod vfat
[root@serv01 linux-2.6.38]# lsmod |grep fat
#模块之间有依赖,先加这个不能加上
[root@serv01 linux-2.6.38]# insmod/lib/modules/2.6.38/kernel/fs/fat/vfat.ko#自动处理依赖关系,不需要加全路径
[root@serv01 linux-2.6.38]# modprobe vfat
[root@serv01 linux-2.6.38]# lsmod |grep fat#-r参数,表示remove
[root@serv01 linux-2.6.38]# modprobe -r fat
[root@serv01 linux-2.6.38]# modprobe -rvfat#记录模块依赖
[root@serv01 linux-2.6.38]# vim/lib/modules/2.6.32-131.0.15.el6.x86_64/modules.dep[root@larrywen pdf]# pwd
/opt/soft/ule-sa2/pdf
[root@larrywen pdf]# ls ule-kerenl.pdf
ule-kerenl.pdf
[root@larrywen pdf]# ls ule-module.pdf
ule-module.pdf#查看模块信息
[root@serv01 linux-2.6.38]# modinfo vfat
filename:      /lib/modules/2.6.32-131.0.15.el6.x86_64/kernel/fs/fat/vfat.ko
author:         Gordon Chaffee
description:    VFAT filesystem support
license:        GPL
srcversion:     ACCC2F7E9526F402F526976
depends:        fat
vermagic:       2.6.32-131.0.15.el6.x86_64 SMPmod_unload modversions
  我的邮箱:wgbno27@163.com  新浪微博:@Wentasy27         微信公众平台:JustOracle(微信号:justoracle)数据库技术交流群:336882565(加群时验证 From CSDN XXX)Oracle交流讨论组:https://groups.google.com/d/forum/justoracle  By Larry Wen
 
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]

内核编译及模块相关命令使用相关推荐

  1. H3C光模块相关命令和检测方法

    当光模块不亮时首先确定对端有光过来,因为有光过来则光模块会亮,如果确定对端有光过来(见下面的命令),则调整两端的双工和速率,如果还是不亮则用以下方法:用一根好的尾纤自环后发现灯不亮则说明模块坏了 H3 ...

  2. Linux内核编译与模块编程

    写在前面的话: 作为一个做完这个实验的软工狗.表示心里几经波澜 , 一招不慎可能全盘皆输,从头再来. 我也不多说什么,做过这个实验的人,我们相视一笑吧. :) 我把整个过程分享在下面,包括我碰到的问题 ...

  3. Maven编译代码的相关命令

    第一.main目录下的主代码编写完毕后,使用Maven进行编译,在项目根目录下运行命令mvn clean compile进 行项目编译. 第二.test目录下的测试用例编写完毕之后就可以调用Maven ...

  4. Linux内核编译出来模块过大

    问题原因:内核调试信息编进了模块 一开始编译出来的大小: 解决方案:编译选项Kernel Hacking中去掉Kernel  debbugging选项,重新编译安装内核 重新编译安装之后得大小

  5. oracle vm发现无效设置_Oracle数据库编译失效对象相关命令总结大全,值得收藏

    概述 在日常数据库维护过程中,我们会发现数据库中一些对象(包Package.存储过程Procedure.函数Function.视图View.同义词.....)会失效,呈现无效状态(INVALID).有 ...

  6. LINUX内核编译(ZT)

    LINUX内核编译(ZT) 在这里转贴一些关于内核编译的文章,绝非笔者原创,也无意注明出处.有些内容有重复之处,请原谅. ==================================== 一. ...

  7. Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...

    一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...

  8. java 手动编译打包_Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...

    一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...

  9. java手动编译jar包_Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...

    一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...

最新文章

  1. tomcat 启动项目 页面文字乱码_eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法...
  2. 今日头条字节跳动抖音小程序上线前后的搜索优化配置
  3. linux查看无线网卡频率,查看无线网卡工作模式
  4. Python——基于OpenCV获取倾斜子图的一种方法
  5. Caffe RPN :error C2220: warning treated as error - no 'object' file generated
  6. 手机系统安装打印机服务器错误代码,OKI打印机报错?各型号代码故障解决方法...
  7. 【Java】兔子问题
  8. Windows环境下基于python3 + selenium构建网络爬虫
  9. 腾讯优图升级为计算机视觉研发中心,与《科学》宣布战略合作
  10. 编写matlab程序设计状态反馈增益阵,利用MATLAB设计状态观测器.pdf
  11. 还不懂数据库模糊查询?总结7种窍门技巧!
  12. 泛泰A850 (高通8064+720p)刷4.4专用中文recovery TWRP2.7.1.3版
  13. RBAC权限设计详解
  14. 毕业论文格式(图片题注引用,表格,公式格式)
  15. 用最通俗易懂的代码帮助新手理解javascript闭包
  16. espeak 开源离线语音合成工具
  17. Spring3开发实战 之 第二章:IoC/DI开发(2)
  18. acmclub 2081 班级聚会上的游戏
  19. 余弦相似度(Cosine Similarity)
  20. 直播平台基本功能解读:以呆萌直播为例的技术剖析

热门文章

  1. rabbitmq基础1——消息中间件概念、Rabbitmq的发展起源和基本组件的作用流程
  2. 二叉搜索树详解--实现插入和删除
  3. Spark之核心架构
  4. 【Java】两层for循环 break跳出
  5. 程序员上班摸鱼时都会浏览哪些网站?年轻人耗子尾汁
  6. 机械硬盘选购指南——从选购经历谈起
  7. IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY(TCSVT) 投稿经验
  8. 被腾讯起诉抄袭《王者荣耀》的公司发声明,重点却是法官
  9. 电容充电放电时间计算公式
  10. linux鼠标滚轮不能上下滚动页面,Windows10鼠标滚轮无法滚动页面如何解决