|
sshfs依赖fuse,fuse需要linux-kernel或linux-kernel-module支持,内核本身自带一份相关代码,fuse自己也提供一份内核模块代码。
下面是我遇到的问题:
最初安装linux-kernel时没有配置fuse相关部分(filesystem->filesystem userspace),所以配置fuse时,fuse自动启用自带的内核模块代码(此时需要一份配置过的对应于当前运行中内核的源代码)。然后噩梦开始了,fuse-2.7.3,无法编译内核模块;fuse-2.7.2,无法编译内核模块;fuse-2.7.0,无法编译内核模块。每个fuse版本遇到的编译错误都不一样,困惑。然后开始怀疑所用内核版本2.6.25-rc3太新,其提供的内核头文件与fuse提供的内核模块代码不兼容。google半天并没有发现fuse依赖特定内核版本,最后检查fuse配置后的log文件,才发现内核本身提供fuse相关代码。
后面的问题就简单了,重新配置linux-kernel,打开fuse支持filesystem->filesystem userspace,重新编译安装内核,重新编译fuse,编译sshfs。
回头来看,编译失败,第一步应该检查编译前配置的结果,即使配置过程没有错误发生,也可能发现解决问题的关键,就如同上面的情况。
再一个问题是最初没有足够重视http://cblfs.cross-lfs.org/index ... 内建fuse支持。
还剩下的问题:linux-kernel-2.6.25-rc3版本是否太新,是否与fuse提供的内核模块代码不兼容?貌似历史遗留问题 |
|