linux编译内核之后 还是没有新模块
我编译内核的目的是为了增加MD模块,但是我编译玩内核之后,然后使用新内核还是没有这个模块,我该怎么办!!...
我编译内核的目的是为了增加MD模块,但是我编译玩内核之后,然后使用新内核还是没有这个模块,我该怎么办!!
展开
2个回答
展开全部
图片好小...
不过依稀看到了是加载一个内核模块(dm-region-hash)错误,这个模块应该是和文件系统相关的,然后后面mount 文件系统的时候就找不到磁盘...
你更新了的内核出了问题...加载模块的时候显示这个模块已经存在,所以就没法insmod这个模块,操作不成功了。大概是重复加载了...
然后给你搜索了下,这个问题好像比较常见,这里面有人给出了解决方案:
地址:
把有用的给你贴出来吧...
insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists
这一句是说你把dm-region-hash编译进内核,却没有生成dm-region-hash.ko文件,可能是有些需要的项没选上,我也是遇到这种问题,一直没解决 [/quote]
是因为重复加载了/lib/dm-region-hash.ko
可以解决的,步骤如下
1,解压initrd文件
[root@bogon ~]# cp /boot/initrd-2.6.30.4.img /tmp
[root@bogon ~]# cd /tmp/
[root@bogon tmp]# ls
initrd-2.6.30.4.img
[root@bogon tmp]# mkdir newinitrd
[root@bogon tmp]# cd newinitrd/
[root@bogon newinitrd]# zcat ../initrd-2.6.30.4.img |cpio -i
11537 blocks
释放之后看到如下内容
[root@bogon newinitrd]# ls
bin dev etc init lib proc sbin sys sysroot
2,ok,下边就是编辑init,删掉其中重复的四行中的两行
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
3,重新打包initrd
[root@bogon newinitrd]# find .|cpio -c -o > ../initrd
11538 blocks
[root@bogon newinitrd]# cd ..
[root@bogon tmp]# gzip -9 < initrd > initrd.img
[root@bogon tmp]# ls
initrd-2.6.30.4.img initrd initrd.img newinitrd
好了,initrd.img就是重新打包的initrd了,然后把initrd.img拷贝到/boot,更改grub.conf里边的initrd-2.6.30.4.img为initrd.img就可以了,
这样“insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists” 就不会有了
其实将init文件的第二行“setquiet” 去掉,你就知道initrd文件到底在做什么了
不过依稀看到了是加载一个内核模块(dm-region-hash)错误,这个模块应该是和文件系统相关的,然后后面mount 文件系统的时候就找不到磁盘...
你更新了的内核出了问题...加载模块的时候显示这个模块已经存在,所以就没法insmod这个模块,操作不成功了。大概是重复加载了...
然后给你搜索了下,这个问题好像比较常见,这里面有人给出了解决方案:
地址:
把有用的给你贴出来吧...
insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists
这一句是说你把dm-region-hash编译进内核,却没有生成dm-region-hash.ko文件,可能是有些需要的项没选上,我也是遇到这种问题,一直没解决 [/quote]
是因为重复加载了/lib/dm-region-hash.ko
可以解决的,步骤如下
1,解压initrd文件
[root@bogon ~]# cp /boot/initrd-2.6.30.4.img /tmp
[root@bogon ~]# cd /tmp/
[root@bogon tmp]# ls
initrd-2.6.30.4.img
[root@bogon tmp]# mkdir newinitrd
[root@bogon tmp]# cd newinitrd/
[root@bogon newinitrd]# zcat ../initrd-2.6.30.4.img |cpio -i
11537 blocks
释放之后看到如下内容
[root@bogon newinitrd]# ls
bin dev etc init lib proc sbin sys sysroot
2,ok,下边就是编辑init,删掉其中重复的四行中的两行
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
3,重新打包initrd
[root@bogon newinitrd]# find .|cpio -c -o > ../initrd
11538 blocks
[root@bogon newinitrd]# cd ..
[root@bogon tmp]# gzip -9 < initrd > initrd.img
[root@bogon tmp]# ls
initrd-2.6.30.4.img initrd initrd.img newinitrd
好了,initrd.img就是重新打包的initrd了,然后把initrd.img拷贝到/boot,更改grub.conf里边的initrd-2.6.30.4.img为initrd.img就可以了,
这样“insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists” 就不会有了
其实将init文件的第二行“setquiet” 去掉,你就知道initrd文件到底在做什么了
浙江启扬智能科技有限公司
2023-06-12 广告
2023-06-12 广告
Android和ARM、Linux之间存在密切的联系。Android是一种基于Linux内核的嵌入式智能操作系统,它采用了ARM处理器作为其主要处理器架构。Android的内核和许多应用程序都是基于ARM架构编写的,包括处理器和内存管理器。...
点击进入详情页
本回答由浙江启扬智能科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询