树莓派3b+ openwrt 21.02.3添加exfat支持
因何而起,从网上花了40大洋买了一个比较水的128G U盘,准备格式化为ext4以供openwrt的samba来使用。但经两天的努力后,发现无法格式化为ext4,只能格式化为exfat。但是 树莓派的3B+ openwrt 21.02.3版本,在仓库里面无法安装kmod-fs-exfat。简单来说,就是系统不支持exfat格式的U盘。为了不浪费这40大洋,只能自己想方法解决问题。
解决思路
1. 直接在网上搜索,看看有没有大神已经编译好了相对应内核的模块。经过半天的百度,没有找到答案。(此方案放弃)
2. 自己动手编译,这个比较麻烦,找到的教程,都是说编译单个app或者直接就编译内核。为了让钱花得值,决定自己动手编译单个内核模块
编译前准备工作
1. 确认内核版本号
2. 根据内核版本号,找到openwrt的sdk工具,链接地址:https://downloads.openwrt.org/releases/21.02.3/targets/bcm27xx/bcm2710/
对应的openwrt-sdk为 https://downloads.openwrt.org/releases/21.02.3/targets/bcm27xx/bcm2710/openwrt-sdk-21.02.3-bcm27xx-bcm2710_gcc-8.4.0_musl.Linux-x86_64.tar.xz sha256sum: 713f9e589178825d0abf639c29eaedda0344a1e6fab50caa873fffbd8691d804
3. 最重要的,你需要有一台装有Linux系统的电脑(此处以ubuntu为例子,openwrt-sdk配置教程 https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem )
4.说不下去了,直接提供我编译的kmod-fs-exfat的(对应内核版本为5.4.188)
链接: https://pan.baidu.com/s/1DZOCM5NPoS_qgTYcdumWxQ?pwd=j6im 提取码: j6im 复制这段内容后打开百度网盘手机App,操作更方便哦
使用说明
直接安装kmod-fs-exfat_5.4.188+5.12.3-1_aarch64_cortex-a56.ipk就可以了,其余的exfat-fsck,exfat-mkfs是用于exfat文件系统的管理使用的(可以考虑不安装),fuse-utils,libfuse是可以用于fuse block挂载的,实际测试没有用到
kmod-fs-exfat 安装命令
# 192.168.x.x 是你openwrt的ip地址,使用pscp命令,复制kmod-fs-exfat文件到/tmp目录里面 pscp -scp kmod-fs-exfat_5.4.188+5.12.3-1_aarch64_cortex-a53.ipk root@192.168.x.x:/tmp/ # 使用 opkg安装 opkg install /tmp/ kmod-fs-exfat_5.4.188+5.12.3_1_aarch64_cortex-a53.ipk # 使用insmod加载内核模块 insmod exfat # 重启电脑,使装载的内核模块生效 reboot
装载exfat内核模块的效果,如下图
成功挂载exfat格式的U盘,效果如下图