25.2.1 LinuxÄÚºËUSBÇý¶¯¿ò¼Ü
25.2.1 LinuxÄÚºËUSBÇý¶¯¿ò¼Ü
ͼ25-2ÊÇLinuxÄں˴ÓÖ÷»úºÍÉ豸Á½¸ö½Ç¶È¹Û²ìUSB×ÜÏ߽ṹµÄʾÒâͼ¡£
´Óͼ25-2ÖпÉÒÔ¿´³ö£¬LinuxÄÚºËUSBÇý¶¯Êǰ´ÕÕÖ÷»úÇý¶¯ºÍÉ豸Çý¶¯Á½Ì×ÌåϵʵÏֵģ¬ÏÂÃæ½éÉÜÁ½Ì×ÌåϵµÄ½á¹¹ºÍÌØµã¡£
1£®»ù±¾½á¹¹
ͼ25-2µÄ×ó²àÊÇÖ÷»úÇý¶¯½á¹¹¡£Ö÷»úÇý¶¯µÄ×îµ×²ãÊÇUSBÖ÷»ú¿ØÖÆÆ÷£¬ÌṩÁËOHCI/EHCI/UHCIÕâ3ÖÖÀàÐ͵Ä×ÜÏß¿ØÖƹ¦ÄÜ¡£ÔÚUSB¿ØÖÆÆ÷µÄÉÏÒ»²ãÊÇÖ÷»ú¿ØÖÆÆ÷µÄÇý¶¯£¬·Ö±ð¶ÔÓ¦OHCI/EHCI/UHCIÕâ3ÖÖÀàÐ͵Ä×ÜÏß½Ó¿Ú¡£USBºËÐIJ¿·ÖÁ¬½ÓÁËUSB¿ØÖÆÆ÷Çý¶¯ºÍÉ豸Çý¶¯£¬ÊÇÁ½ÕßÖ®¼äµÄת»»½Ó¿Ú¡£USBÉ豸Çý¶¯²ãÌṩÁ˸÷ÖÖÉ豸µÄÇý¶¯³ÌÐò¡£
USBÖ÷»ú²¿·ÖµÄÉè¼Æ½á¹¹ÍêÈ«ÊÇ´ÓUSB×ÜÏßÌØµã³ö·¢µÄ¡£ÔÚUSB×ÜÏßÉÏ¿ÉÒÔÁ¬½Ó¸÷ÖÖ²»Í¬ÀàÐ͵ÄÉ豸£¬°üÀ¨×Ö·ûÉ豸¡¢¿éÉ豸ºÍÍøÂçÉ豸¡£ËùÓÐÀàÐ͵ÄUSBÉ豸¶¼ÊÇÓÃÏàͬµÄµçÆø½Ó¿Ú£¬Ê¹ÓõĴ«ÊäÐÒéÒ²»ù±¾Ïàͬ¡£ÏòÓû§ÌṩijÖÖÌØ¶¨ÀàÐ͵ÄUSBÉ豸ʱ£¬ÐèÒª´¦ÀíUSB×ÜÏßÐÒé¡£ÄÚºËÍê³ÉËùÓеÄUSB×ÜÏßÐÒé´¦Àí£¬²¢ÇÒÏòÓû§Ìṩ±à³Ì½Ó¿Ú¡£
ͼ25-2 LinuxÄÚºËUSB×ÜÏ߽ṹ
ͼ25-2ÓÒ²àÊÇÉ豸Çý¶¯½á¹¹¡£ÓëUSBÖ÷»úÀàËÆ£¬USBÉ豸ÌṩÁËÏàͬµÄ²ã´Î½á¹¹ÓëÖ®¶ÔÓ¦¡£µ«ÊÇÔÚUSBÉ豸һ²àʹÓÃÃûΪGadget APIµÄ½á¹¹×÷ΪºËÐÄ¡£Gadget APIÊÇLinuxÄÚºËʵÏֵĶÔÓ¦USBÉ豸µÄºËÐĽṹ¡£Gadget APIÆÁ±ÎÁËUSBÉ豸¿ØÖÆÆ÷µÄϸ½Ú£¬¿ØÖƾßÌåµÄUSBÉ豸ʵÏÖ¡£
2£®É豸
ÿ¸öUSBÉ豸ÌṩÁ˲»Í¬¼¶±ðµÄÅäÖÃÐÅÏ¢¡£Ò»¸öUSBÉ豸¿ÉÒÔ°üº¬Ò»¸ö»ò¶à¸öÅäÖ㬲»Í¬µÄÅäÖÃʹÉ豸±íÏÖ³ö²»Í¬µÄÌØµã¡£ÆäÖУ¬É豸µÄÅäÖÃÊÇͨ¹ý½Ó¿Ú×é³ÉµÄ¡£LinuxÄں˶¨ÒåÁËUSBÉ豸ÃèÊö½á¹¹ÈçÏ£º
struct usb_device_descriptor {
__u8 bLength; // É豸ÃèÊö·û³¤¶È
__u8 bDescriptorType; // É豸ÀàÐÍ
__le16 bcdUSB; // USB°æ±¾ºÅ£¨Ê¹ÓÃBCD±àÂ룩
__u8 bDeviceClass; // USBÉ豸ÀàÐÍ
__u8 bDeviceSubClass; // USBÉ豸×ÓÀàÐÍ
__u8 bDeviceProtocol; // USBÉ豸ÐÒéºÅ
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
×î½ü×°ÁËfedora9,ÓÉÓÚÏÔʾÎÊÌâºÜ´ó,ÓÖÍË»ØÁËf8.È»ºóÔÚf9°²×°Ê±¶ÔÎļþµÄ±¸·Ý·ÖÇø¼ÓÁËÃÜ,½á¹ûµ¼ÖÂÎÒ²»Äָܻ´±¸·ÝÎļþÁË,ÄǸöÓôÃÆ°¢,Ò»¹ÒÔØ
¼ÓÃÜ·ÖÇø¾ÍÌáʾÎÒ"mount: unknown filesystem type
'crypt_LUKS'",ÍøÉÏÕÒÁ˰ëÌì²ÅÕÒµ½½â¾ö°ì·¨,˳´øÒ²Á˽âÁËlinux¶ÔÊý¾Ý±£»¤µÄÇ¿´ó
ÕâÀï¾Í¶ÔÈçºÎʹÓÃlinux±£»¤
Ó²ÅÌÀïµÄ ......
from:×ÞöεÄרÀ¸
ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
&n ......
20.1 LinuxÄÚºËÒÆÖ²Òªµã
LinuxµÄ´úÂëÍêÈ«¿ª·ÅÒÔ¼°ÆäÁ¼ºÃµÄ½á¹¹Éè¼Æ·Ç³£ÊÊÓÚǶÈëʽϵͳ¡£ÒÆÖ²Linuxϵͳ°üÀ¨Äںˡ¢³ÌÐò¿âºÍÓ¦ÓóÌÐò£¬ÆäÖÐ×îÖ÷ÒªµÄ¾ÍÊÇÄÚºËÒÆÖ²¡£ÓÉÓÚLinuxÄں˵Ŀª·ÅÐÔ£¬³öÏÖÁËÐí¶àÕë¶ÔǶÈëʽӲ¼þϵͳµÄÄں˰汾£¬ÆäÖÐÖøÃûµÄ°üÀ¨μcLinux¡¢RT-LinuxµÈ¡£
Linux±¾Éí¶ÔÄÚ´æ¹ÜÀí£¨MMU£©ÓкܺõÄÖ§³Ö¡£Ò ......