USB挂载及内核配置.doc_第1页
USB挂载及内核配置.doc_第2页
USB挂载及内核配置.doc_第3页
USB挂载及内核配置.doc_第4页
USB挂载及内核配置.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

想查看usb设备的信息,输入:cat /proc/bus/usb/devices 但我的ubuntu系统显示:没有这个文件或目录。 在网上搜了很久,发现没人进行该问题的讨论,郁闷了很久。无意间看到了解决方法,哈哈,大喜. 解决办法: $ sudo mount -t usbfs usbfs /proc/bus/usb/ 保证usbfs是挂载在/proc/bus/usb上的此外,还可以用lsusb命令查看,如果你喜欢看大量的输出信息,运行lsusb -v就可以满足你的这一欲望。lsusb另一个有用的选项是给出当前USB物理层次的树状信息,这可以更容易让你准确理解设备体系结构,这个命令就是lsusb -tlinux-2.6.28 内核配置,支持网络,SCSI硬盘,USB配置发布时间:2010-10-05 12:19来源: 浏览: 472010-04-16 12:21/wangpeng1314/blog/item/5997c3a9bce392f01f17a2c1.html转载地址:/zengzhaonong/blog/item/978fc6f9e820555a252df2ea.html内核支持U盘 - zImage for sbc-2410x# cd linux-2.6.19# vi arch/arm/mach-s3c2410/mach-smdk2410.c-(1) 添加头文件/zxl for usb start#include #include #include #include /zxl for usb end(2) 以下内容加在static void _init smdk2410_map_io(void)前面/* zxl add start */static struct s3c2410_hcd_info usb_sbc2410_info = .port0 = .flags = S3C_HCDFLG_USED ;int usb_sbc2410_init(void) unsigned long upllvalue = (0x7812)|(0x02 18) & 0xfffc, .boot_params = S3C2410_SDRAM_PA + 0x100, .map_io = smdk2410_map_io, .init_irq = smdk2410_init_irq, .timer = &s3c24xx_timer, /zxl add .init_machine= &usb_sbc2410_init,MACHINE_END(4) 在smdk2410_map_io()函数里面添加usb_sbc2410_init()函数调用:static void _init smdk2410_map_io(void) s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc); s3c24xx_init_clocks(0); s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs); s3c24xx_set_board(&smdk2410_board); /zxl add usb_sbc2410_init();内核配置(For USB)-让内核支持热插拔General setup -* Configure standard kernel features (for small systems) - * Support for hot-pluggable devices (NEW)Device Drivers - Generic Driver Options - Userspace firmware loading support /(1) Block devices - Low Performance USB Block driver SCSI device support - SCSI device support SCSI disk support SCSI generic support USB support - Support for Host-side USB * USB device filesystem OHCI HCD support - NOTE: USB_STORAGE enables SCSI, and SCSI disk support - may also be needed; see USB_STORAGE Help for more information USB Mass Storage support * USB MonitorFile systems - DOS/FAT/NT Filesystems - MSDOS fs support VFAT (Windows-95) fs support (936) Default codepage for FAT (cp936) Default iocharset for FAT NTFS file system support Partition Types - * PC BIOS (MSDOS partition tables) support Native Language Support - Simplified Chinese charset (CP936, GB2312) NLS UTF8# make zImage注: 系统正真支持U盘,busybox中还需要有udev应用程序(用户工具)将zImage下载到开发板上,然后挂载U盘# mount /dev/sda1 /mnt=转载地址:/u3/104564/showart_2092008.html配置USB for mini2440 & LinuxU盘与鼠标的配置:配置:# make menuconfig选上以下:Device Drivers - SCSI device support - SCSI device support * legacy /proc/scsi/ support SCSI disk support * HID Devices - USB Human Interface Device (full HID) support * /dev/hiddev raw HID device support * USB support - Support for Host-side USB * USB device filesystem * USB device class-devices (DEPRECATED) OHCI HCD support USB Mass Storage support编译:# make zImageU盘和USB鼠标均可以使用!摄象头的配置:配置:# make menuconfig选上以下:Device Drivers - Multimedia devices - Video For Linux * Enable Video For Linux API 1 (DEPRECATED) * Video capture adapters - * Autoselect pertinent encoders/decoders and other helper chip * V4L USB devices - USB Video Class (UVC) * UVC input events device support GSPCA based webcams - 如果不确定你的USB摄像头使用何种芯片,全部选上即可!编译:# make zImage友善之臂公司提供的基于Qt的USB摄像头测试程序可以使用!usb设备/proc/bus/usbUSB设备检测的一般过程作者 pxe2USB设备检测也是通过/proc目录下的USB文件系统进行的。为了使一个USB设备能够正常工作,必须要现在系统中插入USB桥接器模块。在检测开始时,一般要先检测是否存在/proc/bus/usb目录,若不存在则尝试插入USB桥接模块。现在一般的USB桥接器模块有两种类型,UHCI和OHCI。在决定插入那一个桥接器模块时,可以察看/proc/pci文件来决定。打开此文件,您若发现USB节为 I/O at 0xHHHH格式(例如出现 I/O at 0xe000 0xe01f),HHHH为16进制数,则桥接器类型为UHCI。若是它为32 bit memory at 0xHH000000形式(例如出现32 bit memory at 0xee000000),HH为16进制数,则桥接器类型为OHCI。但是若您的桥接器类型不满足上述任何一种情况,唯一的解决办法就是您尝试插入这两种模块,直到成功为止。一般而言,UHCI类型的桥接器它的插入模块是uhci或usb-uhci(由内核版本决定);而对于OHCI类型的桥接器它的插入模块是ohci或usb-ohci。您在正确的插入了桥接器模块之后,这时/proc文件系统下就会出现USB设备目录,不过这时这个目录是空的,没有任何文件。这时您就必须挂接usbdevfs文件系统,然后通过此文件系统检测连接的设备。在成功挂接usb文件系统之后,就会生成文件/proc/bus/usb/devices,/proc/bus/usb/drivers和目录/proc/bus/usb/busNo。挂接usbdevfs文件您可以通过如下操作实现:mount -t usbdevfs none /proc/bus/usb或在/etc/fstab上加入none /proc/bus/usb usbdevfs defaults 0 0然后通过/proc/bus/usb/devices文件的内容,您就可以获得连接的设备信息,包括设备标识和制造商标是等信息。usb设备类型描述:设备规范 设备类码 接口类码应用程序特定 - 0xFE声音接口 0x00 0x01通信设备 0x02 -CDC控制接口 - 0x02CDC数据接口 - 0x0AHID 0x00 0x03HUB 0x09 0x09批量存储设备 0x00 0x08监视器 same as HID same as HID电源设备 same as HID same as HID物理设备 - 0x05打印机 - 0x07供应商特定 - 0xFF5.2 usb文件系统简介T = 总线拓扑结构(Lev, Prnt, Port, Cnt, 等),是指USB设备和主机之间的连接方式B = 带宽 (仅用于USB主控制器)D = 设备描述信息P = 产品标识信息S = 串描述符C = 配置描述信息 (* 表示活动配置)I = 接口描述信息E = 终端点描述信息一般格式:d = 十进制数x = 十六进制数s = 字符串拓扑信息T: Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd| | | | | | | | |_最大子设备| | | | | | | |_设备速度(Mbps)| | | | | | |_设备编号| | | | | |_这层的设备数| | | | |_此设备的父连接器/端口| | | |_父设备号| | |_此总线在拓扑结构中的层次| |_总线编号|_拓扑信息标志带宽信息B: Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd| | | |_同步请求编号| | |_中断请求号| |_分配给此总线的总带宽|_带宽信息标志设备描述信息和产品标识信息D: Ver=x.xx Cls=xx(s) Sub=xx Prot=xx MxPS=dd #Cfgs=ddP: Vendor=xxxx ProdID=xxxx Rev=xx.xxD: Ver=x.xx Cls=xx(sssss) Sub=xx Prot=xx MxPS=dd #Cfgs=dd| | | | | | |_配置编号| | | | | |_缺省终端点的最大包尺寸| | | | | | | | |_设备协议| | | |_设备子类型| | |_设备类型| |_设备USB版本|_设备信息标志编号#1P: Vendor=xxxx ProdID=xxxx Rev=xx.xx| | | |_产品修订号| | |_产品标识编码| |_制造商标识编码|_设备信息标志编号#2串描述信息S: Manufacturer=ssss| |_设备上读出的制造商信息|_串描述信息S: Product=ssss| |_设备上读出的产品描述信息,对于USB主控制器此字段为USB *HCI Root Hub|_串描述信息S: SerialNumber=ssss| |_设备上读出的序列号,对于USB主控制器它是一个生成的字符串,表示设备标识|_串描述信息配置描述信息C: #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA| | | | |_最大电流(mA)| | | |_属性| | |_配置编号| |_接口数|_配置信息标志接口描述信息(可为多个)I: If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss| | | | | | | |_驱动名| | | | | | |_接口协议| | | | | |_接口子类| | | | |_接口类| | | |_中断点数| | |_可变设置编号| |_接口编号|_接口信息标志终端点描述信息E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddmsE: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms| | | | |_间隔| | | |_终端点最大包尺寸| | |_属性(终端点类型)| |_终端点地址(I=In,O=Out)|_终端点信息标志 mount -t usbfs none /proc/bus/usb 或者mount -t usbdevfs none /proc/bus/usb这需要看你的系统支持哪些文件系统。# cat /proc/filesystemnodev sysfsnodev rootfsnodev bdevnodev procnodev tmpfsnodev binfmt_miscnodev sockfsnodev usbfsnodev pipefsnodev anon_inodefsnodev rpc_pipefsnodev configfsnodev devpts ext3 ext2 ext4 cramfsnodev ramfsnodev hugetlbfs vfat msdosnodev nfsnodev nfs4nodev nfsdnodev cifs ntfsnodev autofsnodev fuse fuseblknodev fusectl一、代码修改主要是按照这个贴来做:/S3C2410/kaifa/063152202483252_37.htm我也看过其它不同版本的内核关于usb驱动的移植,移植方法几乎一样,只是修改的文件不同而已。上面的贴子有不少头文件没有例出来,以下是我按照以上贴子添加的代码(好像在很多论坛上包括头文件部分都显示不出来,在这里把include前面的#给删了,希望有帮助):/*add by lfc*/includeincludeincludeinclude/*end add*/*add by lfc*/static struct s3c2410_hcd_info usb_sbc2410_info = .port0 = .flags= S3C_HCDFLG_USED ;int usb_sbc2410_init(void)unsigned long upllvalue = (0x78上面的修改其实也参考了这个牛贴一下,里面有大虾们对USB驱动移植的讨论,还不错:/forum/showflat.php?Cat=&Board=embedded&Number=556915&page=0&view=collapsed&sb=5&o=0&fpart=其实到了这里,要修改的代码已经修改完了,比添加Nand flash的支持修改的地方还要少_,不过我一直以为还没修改好,最后发现原来是没配置好_二、内核配置下面说一下郁闷了我好一阵子的内核配置(支持USB)问题,这个就比Nand flash的配置要复杂多了。、让内核支持热插拔 General setup- Support for hot-pluggable devices、USB驱动设置,可能有些不选也行,不过没时间去试,至于为什么要选这些选项的话可以看一下这个贴(Linux下的硬件驱动USB设备):/developerworks/cn/linux/l-usb/index1.html Device Drivers- Generic Driver Options- Hotplug firmware loading support Block devices- Low Performance USB Block driver SCSI device support- SCSI generic support Probe all LUNs on each SCSI device USB support- Support for Host-side USB USB device filesystem OHCI HCD support USB Mass Storage support USB Monitor、加入了MSDOS fs和VFAT fs的支持。 File systems- DOS/FAT/NT Filesystems- MSDOS fs support VFAT (Windows-95) fs support (936) Default codepage for FAT (cp936) Default iocharset for FAT NTFS file system support做完这些后,插入u盘后,内核应该可以识别到u盘,出现:usb 1-1: new full speed USB device using s3c2410-ohci and address 3ub(1.3): GetMaxLUN returned 0, using 1 LUNs但是,还有下面一句出错提示:/dev/ub/a: unknown partition table再次查看了贴子上大虾们的讨论,提到:“使能CONFIG_MSDOS_PARTITION选项”,再仔细查找,发现配置选项如下: File systems- Partition Types- PC BIOS (MSDOS partition tables) support加上这个后应该就可以挂载usb上的MSDOS分区了以下是我的内核插入u盘后的提示信息:usb 1-1: new full speed USB device using s3c2410-ohci and 2ub(1.2): GetMaxLUN returned 0, using 1 LUNs/dev/ub/a: p1表示usb设备已经挂载到/dev/ub/a/part1设备文件下4.加入中文字体库(可惜在我的板上还是没能正常显示中文_,知道的朋友麻烦告诉我一声,大家一起探讨) Native Language Support- Simplified Chinese charset (CP936, GB2312) NLS UTF8以下是挂载usb设备后的显示:rootluofuchong /# mount -t vfat -o iocharset=cp936 /dev/ub/a/part1 /mntrootluofuchong /# ls /mntcramfs-1.1.tar.gz netkit-base-0.17.tar.gzthttpd-2.25b.tar.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论