linuxÄÚºËÖÐusbϵͳÖ÷ÒªµÄÊý¾Ý½á¹¹
USB Äںˣ¨USBÇý¶¯£¬USBD £©´¦ÓÚϵͳµÄÖÐÐÄ£¬¶ÔÓÚËü½øÐÐÑо¿ÊÇÄܹ»½øÐÐUSBÇý¶¯¿ª·¢£¨°üÀ¨¿Í»§Çý¶¯ºÍÖ÷»úÇý¶¯£©µÄµÚÒ»²½¡£ËüΪ¿Í»§¶ËÇý¶¯ºÍÖ÷»ú¿ØÖÆÆ÷Çý¶¯ÌṩÁËÖ÷ÒªÊý¾Ý½á¹¹ºÍ½Ó¿Úº¯Êý£¬Ö÷ÒªÓÐËÄÀ๦ÄÜ£º¿Í»§¶ËÇý¶¯¹ÜÀí£¬USBÉ豸µÄÅäÖú͹ÜÀí£¬Ö÷»ú¿ØÖÆÆ÷µÄ¹ÜÀí£¬ÐÒé¿ØÖÆÃüÁºÍÊý¾Ý´«ÊäµÄ¹ÜÀí¡£¾ßÌå´úÂëÖ÷Òª¼¯ÖÐÔÚ linux/drivers/usbϵÄusb.c, usb.hÖÐ
Ö÷ÒªÊý¾Ý½á¹¹·ÖÎö
Ö÷ÒªÓÐËĸöÊý¾Ý½á¹¹£¬·Ö±ðÊÇUSBÉ豸usb_device£¬±£´æÁËÒ»¸öUSBÉ豸µÄÐÅÏ¢£¬°üÀ¨É豸µØÖ·£¬É豸ÃèÊö·û£¬ÅäÖÃÃèÊö·û£¬µÈµÈ
USB×ÜÏßϵͳusb_bus£¬±£´æÁËÒ»¸öUSB×ÜÏßϵͳµÄÐÅÏ¢£¬°üÀ¨×ÜÏßÉÏÉ豸µØÖ·ÐÅÏ¢£¬¸ù¼¯Ï߯÷£¬´ø¿íʹÓÃÇé¿öµÈ¡£Ò»¸öUSB×ÜÏßϵͳ¿Ï¶¨ÓÐÒ»¸öÖ÷»ú¿ØÖÆÆ÷ºÍÒ»¸ö¸ù¼¯Ï߯÷¡£LinuxÖ§³Ö¶àUSB×ÜÏßϵͳ
¿Í»§¶ËÇý¶¯³ÌÐòusb_driver£¬±£´æÁ˿ͻ§Çý¶¯ÐÅÏ¢£¬°üÀ¨Çý¶¯Ãû³Æ£¬ÒÔ¼°Çý¶¯Ìṩ¸øUSBÄÚºËʹÓõĺ¯ÊýÖ¸ÕëµÈ
£¨USB Request Block£©urb£¬ÊǽøÐÐUSBͨÐŵÄÊý¾Ý½á¹¹¡£LinuxµÄUSB×ÓϵͳֻʹÓÃÕâôһÖÖÊý¾Ý½á¹¹À´½øÐÐUSBͨÐÅ£¬urb°üº¬Á˽¨Á¢ÈκΠUSB´«ÊäËùÐèµÄËùÓÐÐÅÏ¢£¬²¢¹á´©ÓÚUSBÐÒéÕ»¶ÔÊý¾Ý´¦ÀíµÄÕû¸ö¹ý³Ì¡£
ÏÂÃæÊǶԸ÷²¿·Ö½øÐÐÏêϸ·ÖÎö¡£
struct usb_device { //´ú±íÒ»¸öUSBÉ豸
int devnum; //·ÖÅäµÄÉ豸µØÖ·£¬1-127
enum {
USB_SPEED_UNKNOWN = 0, /* enumerating */
USB_SPEED_LOW, USB_SPEED_FULL, /* usb 1.1 */
USB_SPEED_HIGH /* usb 2.0 */
} speed; //É豸ËÙ¶È£¬µÍËÙ/È«ËÙ/¸ßËÙ
struct usb_device *tt; /* usb1.1 device on usb2.0 bus */£¬ÊÂÎñ´¦Àí½âÊÍÆ÷
int ttport; /* device/hub port on that tt */É豸ËùÁ¬½ÓµÄ¾ßÓÐÊÂÎñ´¦Àí½âÊÍÆ÷¹¦Äܵļ¯Ï߯÷¶Ë¿Ú
atomic_t refcnt; /* Reference count */ÒýÓüÆÊý
struct semaphore serialize; //ÓÃÓÚͬ²½
unsigned int toggle[2]; /* one bit for each endpoint ([0] = IN, [1] = OUT) */ÓÃÓÚͬ²½Çл»µÄλͼ£¬Ã¿¸ö¶ËµãÕ¼ÓÃ1룬[0]±íʾÊäÈ룬[1]Êä³ö
unsigned int halted[2]; /* endpoint halts; one bit per endpoint # & direction; [0] = IN, [1] = OUT */±íʾ¶ËµãÊÇ·ñ´¦ÓÚֹͣ״̬µÄλͼ
int epmaxpacketin
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
LINUX, ¾Ñé×ܽá, ²ËÄñ, ÈýÈËÐÐ, ѧϰ
Ò»¡¢LINUX½éÉÜ
Linux£ºLinuxÊÇÓÉ·ÒÀ¼´óѧµÄLinus TorvaldÀî納˹·¢Æð´´½¨µÄ¿ªÔ´Èí¼þÏîÄ¿¡£
°æ±¾ºÅxx.yy.zz £º¢Ù.xx±íΪÖ÷°æ±¾ºÅ£¬yyΪ´Î°æ±¾ºÅ£¬zzΪÐÞ¶©µÄ°æ±¾ºÅ¡£¢Ú.´Î°æ±¾ºÅÖУ¬µ¥Êý´ú±í²âÊ԰棬˫Êý´ú±íÕýʽ·¢Ðаæ
¿ªÔ´Èí¼þ£º¢ÙÔ´´úÂ뿪·Å¡£
¢ÚGPLÐÒ飺Ö÷ÒªÊÇÒÔÔ´´ú ......
linuxĿ¼¼Ü¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî
binary file µÄÄ¿錄
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ
(kernel) ÔÚÄÚ
/boot/grub/menu.lst GRUBÉèÖÃ
/boot/vmlinuz ÄÚºË
......
Ŀ¼£º
£¨1£©Ó²¼þÅäÖÃÎÊÌ⣺
£¨2£©×î¼òµ¥µÄATI»òNvidiaÏÔ¿¨×îйٷ½Çý¶¯°²×°·½·¨£º
£¨3£©Èç¹ûÏÔ¿¨°²×°ºó£¬ÖØÆôµçÄÔºÚÆÁÔõô°ì£¿
£¨4£©×°ÁËÐÂÏÔ¿¨Çý¶¯£¬¶¼ºÚÆÁÁË£¬Ôõô»ØÍ¼ÐνçÃæ£¿ÄѵÀÖ»ÄÜÓûØXP²»³É£¿
£¨5£©Èç¹ûÒ»ÇÐ˳Àû£¬ÏÔ¿¨¹Ù·½Çý¶¯¾ÍÒѾÕýÈ·°²×°ÁË¡£
£¨6£©ÏÔ¿¨Çý¶¯×°ºÃÁË£¬°²×°compiz fusionÊÔÓÃ3D×ÀÃæ¡£
£¨7£ ......
¼ÆËã»úÖеĴ洢Æ÷·ÖΪ£ºÖ÷´æºÍ¸¨´æ¡£ÆäÖÐÐèÒªÖ¸Ã÷µÄÊÇÖ÷´æÊÇ¿ÉÒÔ±»´¦ÀíÆ÷Ö±½Ó·ÃÎʵ쬶ø¸¨´æÊDz»Äܱ»´¦ÀíÆ÷Ö±½Ó·ÃÎʵġ£Ö÷´æµÄÈÝÁ¿Ò»°ãÏà¶ÔÓÚ¸¨´æ¶øÑÔÊǽÏСµÄ£¬ËùÒÔÔÚÏÖ´úµÄ¼ÆËã»úÌåϵÖУ¬Í¨³£Ê¹ÓõÄÊǶú»ú´æ´¢Ä£Ê½¡£ÀûÓø¨´æµÄ´óÈÝÁ¿À´Ìṩ½Ï´óµÄ´æ´¢¿Õ¼ä£¬´æ´¢×¼±¸ÔËÐеijÌÐòºÍÊý¾Ý£¬µ±ÐèҪʱ£¬ÔÚ½«ÆäÔØÈëÖ÷´æÖС£
¼ÆËã ......