内核编译及模块相关命令使用
本文讲解了怎样进行内核编译及模块相关命令的使用方法。
一 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博客] |
内核编译及模块相关命令使用相关推荐
- H3C光模块相关命令和检测方法
当光模块不亮时首先确定对端有光过来,因为有光过来则光模块会亮,如果确定对端有光过来(见下面的命令),则调整两端的双工和速率,如果还是不亮则用以下方法:用一根好的尾纤自环后发现灯不亮则说明模块坏了 H3 ...
- Linux内核编译与模块编程
写在前面的话: 作为一个做完这个实验的软工狗.表示心里几经波澜 , 一招不慎可能全盘皆输,从头再来. 我也不多说什么,做过这个实验的人,我们相视一笑吧. :) 我把整个过程分享在下面,包括我碰到的问题 ...
- Maven编译代码的相关命令
第一.main目录下的主代码编写完毕后,使用Maven进行编译,在项目根目录下运行命令mvn clean compile进 行项目编译. 第二.test目录下的测试用例编写完毕之后就可以调用Maven ...
- Linux内核编译出来模块过大
问题原因:内核调试信息编进了模块 一开始编译出来的大小: 解决方案:编译选项Kernel Hacking中去掉Kernel debbugging选项,重新编译安装内核 重新编译安装之后得大小
- oracle vm发现无效设置_Oracle数据库编译失效对象相关命令总结大全,值得收藏
概述 在日常数据库维护过程中,我们会发现数据库中一些对象(包Package.存储过程Procedure.函数Function.视图View.同义词.....)会失效,呈现无效状态(INVALID).有 ...
- LINUX内核编译(ZT)
LINUX内核编译(ZT) 在这里转贴一些关于内核编译的文章,绝非笔者原创,也无意注明出处.有些内容有重复之处,请原谅. ==================================== 一. ...
- Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...
一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...
- java 手动编译打包_Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...
一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...
- java手动编译jar包_Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...
一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...
最新文章
- tomcat 启动项目 页面文字乱码_eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法...
- 今日头条字节跳动抖音小程序上线前后的搜索优化配置
- linux查看无线网卡频率,查看无线网卡工作模式
- Python——基于OpenCV获取倾斜子图的一种方法
- Caffe RPN :error C2220: warning treated as error - no 'object' file generated
- 手机系统安装打印机服务器错误代码,OKI打印机报错?各型号代码故障解决方法...
- 【Java】兔子问题
- Windows环境下基于python3 + selenium构建网络爬虫
- 腾讯优图升级为计算机视觉研发中心,与《科学》宣布战略合作
- 编写matlab程序设计状态反馈增益阵,利用MATLAB设计状态观测器.pdf
- 还不懂数据库模糊查询?总结7种窍门技巧!
- 泛泰A850 (高通8064+720p)刷4.4专用中文recovery TWRP2.7.1.3版
- RBAC权限设计详解
- 毕业论文格式(图片题注引用,表格,公式格式)
- 用最通俗易懂的代码帮助新手理解javascript闭包
- espeak 开源离线语音合成工具
- Spring3开发实战 之 第二章:IoC/DI开发(2)
- acmclub 2081 班级聚会上的游戏
- 余弦相似度(Cosine Similarity)
- 直播平台基本功能解读:以呆萌直播为例的技术剖析
热门文章
- rabbitmq基础1——消息中间件概念、Rabbitmq的发展起源和基本组件的作用流程
- 二叉搜索树详解--实现插入和删除
- Spark之核心架构
- 【Java】两层for循环 break跳出
- 程序员上班摸鱼时都会浏览哪些网站?年轻人耗子尾汁
- 机械硬盘选购指南——从选购经历谈起
- IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY(TCSVT) 投稿经验
- 被腾讯起诉抄袭《王者荣耀》的公司发声明,重点却是法官
- 电容充电放电时间计算公式
- linux鼠标滚轮不能上下滚动页面,Windows10鼠标滚轮无法滚动页面如何解决