日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

exfat linux 驱动_(实例)Linux 内核添加exfat驱动

發布時間:2024/4/19 linux 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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驱动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。