红联Linux门户
Linux帮助

Centos7下编译ramdisk内核模块brd.ko的方法

发布时间:2016-06-19 15:40:29来源:linux网站作者:dhb_oschina

1.确保centos7上有gcc和make等工具


2.获取centos7源码。
CentOS-7-x86_64-1503-01版本的内核是3.10.0-229.el7.x86_64,下载该distribution版本的内核源码,拷贝到根目录:
http://vault.centos.org/7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.1.2.el7.src.rpm

安装该源码包
[user@host]# rpm -i kernel-3.10.0-229.1.2.el7.src.rpm

现在内核的源代码目录树可以在 ~/rpmbuild/SOURCE/ 这个目录内找得到,源码文件是linux-3.10.0-229.1.2.el7.tar.xz


3.编译内核源码
(1) 将linux-3.10.0-229.1.2.el7.tar.xz 文件拷贝到目录  /usr/src/kernels/ 下
 
(2) 解压内核源码
[user@host kernels]#  tar -xvf linux-3.10.0-229.1.2.el7.tar.xz

(3) 切换到 linux-3.10.0-229.1.2.el7目录
[user@host kernels] #  cd linux-3.10.0-229.1.2.el7

(4)清除从前编译内核时残留的.o 文件和不必要的关联。
确保源代码目录下没有不正确的.o文件和文件依赖关系,执行该命令后,内核选项会回到默认的状态下。如果你是下载的内核源码,而且是第一次编译,就没有必要执行这一步操作
[user@host inux-3.10.0-229.1.2.el7]# make mrproper

将已存在的./.config文件内容,作为新版本内核的默认值。
[user@host inux-3.10.0-229.1.2.el7]# make oldconfig

(5) 配置内核,修改相关参数
[user@host inux-3.10.0-229.1.2.el7]# make menuconfig
在内核配置菜单中配置ramdisk块驱动模块的个数和大小,并保存退出
Device Drivers
|-->Block devices
|-->  [M]RAM block device support
(xx) Default number of RAM disks
(xx) Default RAM disk size(kbytes)

(6) 编译内核和内核模块
[user@host inux-3.10.0-229.1.2.el7]# make bzImage 
[user@host inux-3.10.0-229.1.2.el7]# make modules

(7) 编译后的Ramdisk模块的存放位置
/usr/src/kernels/linux-3.10.0-229.1.2.el7/drivers/block/brd.ko


4.安装新的brd.ko模块

(1) 将新的brd.ko模块拷贝到Centos7系统的 如下目录/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/block/,
覆盖原来的ramDisk模块brd.ko。

(2) 将旧的brd.ko模块从内核中移除。
[root@localhost ~]# rmmod brd

(3) 更新内核模块依赖。
[root@localhost  ~]# depmod -a

(4) 重新挂载内核模块。
[root@localhost  ~]# modprobe brd

(5) 检查内核模块是否挂载成功,
如果上面的内核选项中[Default number of RAM disks]的值设置的是2,那么,
新模块加载成功后,命令会输出显示/dev/ram0 和 /dev/ram1 两个设备
[root@localhost  ~]#  ls /dev/ram*  

(6) 检查ramdisk的容量大小(以1024M的ramdisk为例),输入以下命令。
[root@localhost  ~] mkdir /tmp/ramdisk0
[root@localhost  ~] mke2fs /dev/ram0
[root@localhost  ~] mount /dev/ram0 /tmp/ramdisk0
[root@localhost  ~] df -h
Filesystem  Size  Used Avail Use% Mounted on
/dev/ram0  1008M  1.3M  956M   1% /tmp/ramdisk0


本文永久更新地址:http://www.linuxdiyf.com/linux/21660.html