linux基础(27)--内核编译、内核模块操作--RHEL6.5

来源:互联网 发布:iphone蜂窝数据开关 编辑:程序博客网 时间:2024/06/05 17:08

  实际工作中很少需要对内核进行编译,但是既然学习linux编译几次内核还是很有必要的。

1. 准备工作

  本文编译的是3.19.8内核,需要确保硬盘可用空间大于7G,防止编期间空间不够,建议把虚拟机内存调大一些。

  安装基本工具:

  yum install -y make

  yum istall -y gcc

  yum install -y gcc-c++

  yum install -y ncurses-devel

  安装开发工具和库(安装系统时勾选上即可)

2. 新建分区

  为虚拟机新加一块磁盘sdb。

  新建存放内核的分区sdb1

  新建分区:

  fdisk /dev/sdb

  格式化分区/dev/sdb1

  mkfs.ext4 /dev/sdb1

  新建挂载点:

  mkdir /sdb1

  挂载新建的分区:

  mount /dev/sdb1 /sdb1

3. 编译内核

  此处在编译中加入对文件系统NTFS的支持。

  解压源码压缩包:

  xz -d linux-3.19.8.tar.gz

  查看解压后文件大小:

  du -sh linux-3.19.8

  清理一下缓存,这样编译速度会更快:

  echo 3 > /proc/sys/vm/drop_caches

  配置内核参数:

  cp /boot/config-2.6.32-431.el6.x86_64  /sdb1/linux-3.19.8/.config     #简单起见在虚拟机内核配置文件基础上进行修改

  make menuconfig   #选择File systems->DOS/FAT/NT/ Filesystems->NTF write support(加*)->保存退出

  修改 /sdb1/linux-3.19.8/.config:

  CONFIG_NTFS_RW=y      #修改此行,使之支持读写

  编译内核:

  进入linux-3.19.8

  生成内核:

  make bzImage   #需要编译一段时间

  生成新内核的驱动模块:

  make modules

  安装模块:

  make modules_install

  安装新编译的系统内核:

  make install      #此步可能会报一些虚拟机相关的错误,忽略即可

  重启系统,选择新的内核启动。

  检查内核版本:

  uname -r      #如成功安装则会显示内核版本为3.19.8

  至此新内核安装完成。

4. 内核模块操作

  模块是封装好的具体功能的程序。

  模块存放在/lib/modules路径下。

  插入模块:

  cd /lib/modules/3.19..8/kernel/fs

  插入fat模块

  insmod ./fat.ko

  查看模块是否插入:

  lsmod | grep fat

  删除模块:

  rmmod fat

  查看是否删除:

  lsmod | grep fat

  安装带有依赖关系的模块:

  modprobe vfat

  使插入的模块生效:

  depmod    #使用modprobe插入和删除模块后必须执行此操作

  删除模块:

  modprobe -r vfat

  模块间的依赖关系记录在modules.dep中。

  查看模块信息:

  modinfo vfat

  开机自动加载模块:

  echo "modprobe vfat" >> /etc/rc.local

  

  

  

  



  

  

  

0 0
原创粉丝点击