ExFAT无Fuse驱动安装配置完全攻略
项目基础介绍及编程语言
ExFAT-NoFuse 是一个开源项目,旨在提供一个无需依赖FUSE(用户空间文件系统)的ExFAT和VFAT文件系统内核驱动,适用于Android ARM架构以及更广泛的Linux系统环境。该驱动使得Linux可以直接原生支持ExFAT文件系统,提高了访问速度并简化了管理流程。项目主要使用C语言编写,并通过Makefile进行构建管理。
关键技术和框架
- 内核模块开发: 直接在Linux内核层面实现了文件系统驱动,而非通过用户空间模拟。
- C语言编程: 核心逻辑以C语言实现,确保高效性和底层控制力。
- Linux内核集成: 需要修改内核配置和添加相关代码至内核源码树,利用内核的模块化特性加载驱动。
安装和配置步骤
准备工作
- 环境要求: 确保你的系统有Linux内核源代码并且具有编译环境。
- 获取源码: 使用Git克隆项目源码。
git clone https://github.com/dorimanx/exfat-nofuse.git
安装步骤
作为独立模块安装
- 编译驱动: 进入项目目录执行:
make
- 安装驱动: 使用root权限安装:
sudo make install
- 加载驱动: 在终端以root身份运行:
modprobe exfat
作为内核部分集成
- 复制源码到内核树: 将下载的
exfat-nofuse
目录复制到内核源码的fs
目录下,例如,如果你的内核源代码位于/usr/src/linux-source
:sudo cp -rvf exfat-nofuse /usr/src/linux-source/fs/
- 编辑内核配置: 进入内核源码目录:
编辑cd /usr/src/linux-source
fs/Kconfig
,增加对ExFAT的支持行(如果已有,则跳过此步):
并在+source "fs/exfat/Kconfig"
fs/Makefile
中同样加入ExFAT:+obj-$(CONFIG_EXFAT_FS) += exfat/
- 配置内核: 运行:
转到make menuconfig
File systems
->DOS/FAT/NT Filesystems
,将EXFAT
设置为模块(通常标记为M
)。 - 编译和安装内核: 保存退出后,按照你的内核编译习惯编译整个内核或者仅模块,然后更新内核:
之后重启系统使新的内核生效。make && sudo make modules_install && sudo make install
作为DKMS模块安装
- 准备DKMS环境(如果未安装DKMS需先安装): 在Ubuntu上,执行:
sudo apt install dkms
- 复制项目到DKMS路径: 把项目复制到DKMS规定的路径,假设版本号为1.2.3:
sudo cp -R exfat-nofuse /usr/src/exfat-1.2.3
- 注册并构建DKMS模块: 添加模块到DKMS:
然后构建并安装:sudo dkms add -m exfat -v 1.2.3
sudo dkms build -m exfat -v 1.2.3 sudo dkms install -m exfat -v 1.2.3
- 自动加载: 重启系统或手动加载模块:
sudo modprobe exfat
注意事项
- 安装过程中确保权限足够,必要时使用sudo。
- 内核编译可能耗时较长,并且需要足够的硬盘空间。
- 对于最新的Linux发行版,可能会发现ExFAT支持已内置,此时上述步骤可能不需要。
完成以上步骤后,您的系统应已成功配置了ExFAT无fuse驱动,可以愉快地读写ExFAT格式的存储设备了。