欢迎来到天天文库
浏览记录
ID:23607376
大小:78.50 KB
页数:21页
时间:2018-11-09
《史上最牛linux内核学习方法论》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。基本上,Linux内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。对于一个希望能够在Linux内核的汪洋代码里看到一丝曙光的人来说,将它们放在怎么重要的地位都不过分。 我们去香港,通过海关的时候,总会有免费的地图和各种指南拿,有了它们在手里我们才不至于无头苍蝇般迷惘的行走在陌生的街道上。即使在内地出去旅游的时候一般来说也总是会首先找份地图,当然了,这时就是要去买了,拿是拿不到的,不同的地方有不同的特色,只不过有的特色是服务,有的特色是索取。 Kconfig和Makefil
2、e就是LinuxKernel迷宫里的地图。地图引导我们去认识一个城市,而Kconfig和Makefile则可以让我们了解一个Kernel目录下面的结构。我们每次浏览kernel寻找属于自己的那一段代码时,都应该首先看看目录下的这两个文件。 利用Kconfig和Makefile寻找目标代码 就像利用地图寻找目的地一样,我们需要利用Kconfig和Makefile来寻找所要研究的目标代码。比如我们打算研究U盘驱动的实现,因为U盘是一种storage设备,所以我们应该先进入到drivers/usb/storage/目录。但是该目录下的文件很多,那么究竟哪些文件才是我们需要关注的?这时就有必
3、要先去阅读Kconfig和Makefile文件。 对于Kconfig文件,我们可以看到下面的选项。configUSB_STORAGE_DATAFABbool"DatafabCompactFlashReadersupport(EXPERIMENTAL)"dependsonUSB_STORAGE&&EXPERIMENTALhelpSupportforcertainDatafabCompactFlashreaders.Datafabhasawebpageat. 显然,这个选项和我们的目的没有关系。首先它专门针对Datafab公司的产品
4、,其次虽然CompactFlashreader是一种flash设备,但显然不是U盘。因为drivers/usb/storage目录下的代码是针对usbmassstorage这一类设备,而不是针对某一种特定的设备。U盘只是usbmassstorage设备中的一种。再比如:configUSB_STORAGE_SDDR55bool"SanDiskSDDR-55SmartMediasupport(EXPERIMENTAL)"dependsonUSB_STORAGE&&EXPERIMENTALhelpSayYheretoincludeadditionalcodetosupporttheSandis
5、kSDDR-55SmartMediareaderintheUSBMassStoragedriver. 很显然这个选项是有关SanDisk产品的,并且针对的是SM卡,同样不是U盘,所以我们也不需要去关注。 事实上,很容易确定,只有选项CONFIG_USB_STORAGE才是我们真正需要关注的。9configUSB_STORAGE10tristate"USBMassStoragesupport"11dependsonUSB&&SCSI12---help---13SayYhereifyouwanttoconnectUSBmassstoragedevicestoyour14computer'
6、sUSBport.ThisisthedriveryouneedforUSB15floppydrives,USBharddisks,USBtapedrives,USBCD-ROMs,16USBflashdevices,andmemorysticks,alongwith17similardevices.Thisdrivermayalsobeusedforsomecameras18andcardreaders.1920Thisoptiondependson'SCSI'supportbeingenabled,butyou21probablyalsoneed'SCSIdevicesupport:S
7、CSIdisksupport'22(BLK_DEV_SD)formostUSBstoragedevices.2324Tocompilethisdriverasamodule,chooseMhere:the25modulewillbecalledusb-storage. 接下来阅读Makefile文件。0#1#MakefilefortheUSBMassStoragedevicedrivers.2#3#15Aug2000,Christ
此文档下载收益归作者所有