jiangtao9999 发表于 2008-5-19 08:46:16

ML 的内核能不能加上 aufs 或者 unionfs 的补丁?

aufs 可以脱离 kernel 编译,但是需要内核加补丁才能编译出来后可以被 insmod ……
- sec_perm-2.6.24.patch
For linux-2.6.24 and later.
When you compile aufs as a module and enable CONFIG_SECURITY, this
patch is required.

localhost squashfs # grep CONFIG_SECURITY config-2.6.24.4-smp.mgc
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
# CONFIG_SECURITY_CAPABILITIES is not set
# CONFIG_SECURITY_ROOTPLUG is not set
# CONFIG_SECURITY_SELINUX is not set
localhost squashfs #

应该是他导致 aufs 编译后不能 insmod ……

不知道关掉这个 CONFIG_SECURITY 后编译内核这个模块能否成功 insmod……

UnionFS 只有内核补丁,所有的东西已经整合进入内核了……貌似没有办法单独编译。
找个同版本打上补丁,编译成模块后拿出来还是不能 insmod 到 ML自带内核。

[ 本帖最后由 jiangtao9999 于 2008-5-19 08:53 编辑 ]

jiangtao9999 发表于 2008-5-19 08:54:40

Index: linux-2.6.24-rc3/security/security.c
===================================================================
RCS file: /ext1/sysadm/transparent/repository/linux-2.6.24-rc3/security/security.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- linux-2.6.24-rc3/security/security.c      21 Nov 2007 13:03:11 -0000      1.1
+++ linux-2.6.24-rc3/security/security.c      21 Nov 2007 13:07:55 -0000      1.2
@@ -409,6 +409,7 @@ int security_inode_permission(struct ino
                return 0;
      return security_ops->inode_permission(inode, mask, nd);
}
+EXPORT_SYMBOL(security_inode_permission);

int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{

这么简单的 patch ……:shock:

jiangtao9999 发表于 2008-5-19 09:01:12

取消掉后重新编译内核一下,再编译 aufs 就能 insmod 鸟~~~

jiangtao9999 发表于 2008-5-19 10:54:48

诡异,aufs 不能挂 sqlzma 的东西。
只要同时挂上他们两个相关的东西,就挂掉……不过 kernel 还正常……
:shock:

jiangtao9999 发表于 2008-5-19 11:09:31

:evil:
不弄了!他们两个在一起就挂掉!

sejishikong 发表于 2008-5-19 17:21:54

aufs的那个patch是打给aufs本身的吧,我已经打好了2.6.25.4,squashfs/aufs都正常。

jiangtao9999 发表于 2008-5-19 18:13:08

aufs 有两个补丁是给内核打的,一个是解决因为一个 symbol 没有引出导致 insmod aufs.ko 会显示 undefined symbol 导致出错。一个是使用 squashfs 以及其他 loopback 设备方式挂载的时候也会有问题的补丁。
第一个问题就是楼顶的补丁,我说的第二个估计就是引起 aufs 和 squash 同时使用会崩溃的补丁。

我用 ML 的 config 编译内核,从来就没有正常编译过……

sejishikong ,你能不能编译一个可以同时工作的 sqlzma + aufs 以及内核的 rpm ??

我估计现在我只要能用上 aufs ,基本上 livUSB 就能成功了。
剩下的就是解决镜像文件设置的问题了。

jiangtao9999 发表于 2008-5-19 20:16:54

我的 3 套 Linux 数据全乱了……
只好重新来过了……

基本原理目前明白了。只要 ML 的内核没问题, initrd.img 的脚本只需要改几行而已。如果在 nash 的脚本里,可以增加识别 kernel 命令行参数的东西,以及根据这个脚本分开执行两部分代码,完全可以一个 initrd 实现 liveXXX 和硬盘安装的 initrd 共用~~

不过 nash 支持不支持现在不好说,mash 自带的 mount 貌似不支持 -o loop 设备挂载?

sejishikong 发表于 2008-5-19 21:40:13

改用busybox
编译服务器上有更新的内核和aufs包。
仓库里也有。

compiz-fusion的包打完了,不过不知道实际用起来怎么样。

jiangtao9999 发表于 2008-5-19 22:01:58

:shock:
busybox 可以考虑,不过没有特别方便的那个 mkrootdev 命令吧?
不过可以尝试混合使用……

还有就是,编译服务器是啥……:oops:

jiangtao9999 发表于 2008-5-19 22:05:18

apt 里找到新的内核了。

sejishikong 发表于 2008-5-19 22:13:51

linux-live用的mdev。原来2.0的live用的udevstart

jiangtao9999 发表于 2008-5-20 18:21:27

sejishikong ,你没打上 sqlzma 吧……

jiangtao9999 发表于 2008-5-20 18:29:52

:shock:
modules.* 里包含依赖就是好啊……
不需要另外 insmod unlzma 和 sqlzma 了……

jiangtao9999 发表于 2008-5-20 18:35:57

:-D 能用~我再做个 squashfs 的镜像文件试试
页: [1] 2
查看完整版本: ML 的内核能不能加上 aufs 或者 unionfs 的补丁?