exfat linux 驱动_(实例)Linux 内核添加exfat驱动
背景:
由于exfat是常用的文件系统格式,而Linux由于版权的问题,没有在官方中添加有关的驱动。
但是 微软也同意开源了,所以比较新的 Linux 会支持这一块。
为了支持exfat的驱动,我们需要手动添加第三方的驱动支持。
这里演示2种添加exfat格式的驱动,而不将驱动编译进内核。
准备:
下载exfat驱动:
git clone https://github.com/arter97/exfat-linux.git
略:准备Linux内核源码,配置内核编译用的gcc
注:由于实际编译的时候,提示了函数重定义这个错误。所以需要注释掉冲突的代码
备份:为了方便演示,复制两份linux内核源码。
linux3.18_module_in : 驱动放进内核源码中进行编译
linux3.18_module_out : 驱动作为独立编译的组件。
放入linux内核源码中编译:
实际上,这一步只要在最后将驱动配置成 y 就可以编译到内核中。
根据:README.md中 “Merging the drivers to existing Linux kernel source” 这一章的内容
1)拷贝驱动源码到内核对应的位置中
cp exfat-linux ~/linux3.18_module_in/fs/exfat
2)修改exfat同级目录中的Kconfig,与Makefile
Kconfig:在 "source/fs/fat/Kconfig"之后添加此行
source "fs/exfat/Kconfig"
Makefile:在 "obj-$(CONFIG_FAT_FS) += fat/"之后添加此行
obj-$(CONFIG_EXFAT_FS) += exfat/
3)配置并编译内核
配置:
make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig
根据实际情况,按Y(配置进内核)或者M(配置成模块),笔者这里编译成模块
编译:(根据内核配置的选项)
make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- modules
#make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- uImage 编译内核
略:拷贝驱动到开发板中
4)加载烧录,测试。
一切正常。
独立编译:
根据《Linux 内核 编译模块》中参考的Makefile,参考驱动源码中的Makefile做修改
由于exfat驱动的编译不单单是一个文件,所以需要添加依赖关系。
obj-m += exfat.o
# exfat makefile 中原有的依赖关系
exfat-objs := super.o core.o core_exfat.o blkdev.o fatent.o cache.o \
nls.o misc.o extent.o xattr.o
KERNELDIR:=/home/schips/linux3.18_module_out
CROSS_COMPILE:=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-
PWD:=$(shell pwd)
default:
$(MAKE) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o *.order .*.cmd *.ko *.mod.c *.symvers *.tmp_versions
编译:make
同样地,生成了一份exfat.ko,正常使用即可。
注:笔者发现根据不同方式生成的ko文件大小和内容上都有小的差异。
diff exfat.ko*
Binary file exfat.ko_in and file exfat.ko_out differ
ls -al exfat.ko*
114K Dec 24 11:41 exfat.ko_in
115K Dec 24 11:41 exfat.ko_out
全文完。
exfat linux 驱动_(实例)Linux 内核添加exfat驱动相关推荐
- 没有ch341驱动_NVIDIA Jetson TX2内核添加串口驱动
NVIDIA Jetson TX2内核添加串口驱动 2018年02月04日 17:26:39 BumBleBee009 阅读数:2419 转载博客:http://blog.csdn.net/gzj20 ...
- ac3165 linux驱动_为什么Linux系统没有类似Windows上的还原精灵和影子系统?
很多从Windows转Linux的用户,面临的最大一个问题,就是Linux上没有还原精灵这种软件.众所周知,作为一个操作系统要想普及,绝不可能只针对懂IT的少部分年轻人,而是需要让不同年龄段,不同职业 ...
- 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤
最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...
- linux培训_达内linux培训:7招教运维释放Linux操作系统的空间
达内linux培训介绍一些简单的方法和技巧来帮助大家清理开源GNU/Linux操作系统 Ubuntu 和Linux Mint 系统并获得更多可用空间. 随着使用时间的推移,随着各种应用程序被添加和删除 ...
- linux内存寻址实例,Linux内存寻址
我会尽力以最简洁清晰的思路来写这篇文章. 所谓内存寻址也就是从写在指令里的地址,转化为实际物理地址的过程.因为操作系统要兼顾许多东西,所以也就变得复杂. 逻辑地址 → 线性地址 → 物理地址 逻辑地址 ...
- python可以在linux运行_在linux运行python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! linux下编译安装python3与python2共存linux下默认系统自带p ...
- linux 软链接_面试 | Linux 下软链接和硬链接的区别
在 Linux 系统中,一切都是文件,然而为了区分不同类型的事物,我们有了: 普通文件 目录文件 链接文件 设备文件 在之前的文章<阿里面试题 | Nginx 所使用的 epoll 模型是什么? ...
- linux多线程_免费Linux下载工具,你还不知道?
今天小编要跟大家分享的文章是关于Linux运维人员应该知道的免费Linux下载工具.Windows用户在想要使用下载管理器时可以享受很多选择.如Download Accelerator Plus和Re ...
- steam linux游戏_在Linux上使用Steam改善游戏性能的6条提示
steam linux游戏 Steam for Linux is finally out. Whether you're an old Linux user who's never cared muc ...
最新文章
- Arcgis10.3在添加XY数据时出现问题
- ThreadLocal不仅要应付面试,更要真的理解,真的会用
- mtk android 设置默认铃声,[转载]MTK修改铃声资源
- NHibernate初学者指南(15):使用LINQ to NHibernate提供程序查询数据
- c#解决TCP“粘包”问题
- 论文A Tutorial on Graph-Based SLAM 学习笔记
- Java web技术及应用答案_超星《Java Web应用开发技术》答案
- neovim安装dein.vim
- Apache自带的ab压力测试工具
- matlab常用滤波处理(图片)小波、高斯、均值、中值
- Latex学习之插入编号-实心圆点列表,横杆,数字
- 手机网络邻居访问电脑_手机怎么访问局域网电脑共享文件
- c/c++ string转int int转string string拼接
- 2019测试工程师面试题
- EC20使用之 quectel-CM的启动
- Hibernate Criteria对象详解(条件查询)
- 手把手教你用delphi 10.2.3 在windows上编译Centos 7下的命令行程序,适合中小学生
- 论文解读:STANet | A Spatial-Temporal Attention-Based Method and a New Dataset for Remote Sensing Image
- 【转】使用Eclipse和BlackBerry JDE开发黑莓应用程序
- Spring Cloud中Hystrix实现断路器原理
热门文章
- C语言简单题-找最大的字符串
- java Date days_Java中的LocalDate plusDays()方法
- Java黑皮书课后题第1章:1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun
- C语言学习之编程输入x,输出对应的y.
- PythonWeb开发教程(一),开发之前需要准备什么
- USACO shuttle
- iscroll5 上拉,下拉 加载数据
- 【mysql的编程专题⑥】视图
- 《计算机组成与体系结构:性能设计》读后小记 4、cache存储器
- Tomcat连接池配置