LinuxÏÂUSB´ÓÉ豸ʹÓÃgadget API
Ò»¡¢USB´ÓÉ豸Çý¶¯½éÉÜ
USB×ÜÏßÉÏÖ÷ÒªÓÐÈýÀàÉ豸£ºÖ÷¿ØÖÆÆ÷£¨Host Controller£¬ such as
EHCI¡¢UHCI¡¢OHCI£©¡¢¼¯Ï߯÷£¨hub£©ºÍÉ豸£¨device£©¡£Host controller£¨HC£©¸ºÔð×ÜÏߵĹÜÀí
£¬
ÊÇ×ÜÏßµÄÖ¸»Ó¹Ù£¬×ÜÏßÉÏÒ»Çд«Êä¶¼ÊÇÓÉHC·¢ÆðµÄ£¬Ö§³ÖOTGµÄDeviceÒ²ÄÜ·¢Æð´«Ê䣻HubÊÇ×ÜÏߵĽڵ㣬ÓÃÀ´À©Õ¹×ÜÏßÉϿɽÓÈëÉ豸µÄÊýÁ¿£¬¶ÔÓÚÇý
¶¯À´ËµÊÇ͸Ã÷µÄ£»Device¾ÍÊǸ÷ÖÖ¸÷ÑùµÄÉ豸ÁË£¬Ã¿¸öÉ豸¶¼ÓÐ×Ô¼ºµÄ¹¦ÄÜ£¬±ÈÈçUÅÌ¡¢USBÉãÏñÍ·µÈµÈ¡£
LinuxÏÂÖ÷»ú¶ËUSBÉ豸µÄÇý¶¯£¨device driver£©±àдµÄ×ÊÁÏÓкܶ࣬LDD3ÖÐÓÐÏàÓ¦µÄ½éÉÜ¡£Ö÷ÒªÊÇͨ¹ýÄÚºËÖÐUSB
coreÕâ¸öÄ£¿éÓëÉ豸½»»¥¡£±¾ÎÄÖ»½éÉÜÔËÐÐLinuxµÄǶÈëʽUSBÉ豸Çý¶¯µÄ±àд¡£ÒòΪHost¶ËÒѾ
ʹ
ÓÃÁËdevice driverÒ»´Ê£¬ÎªÁ˱ÜÃâ»ìÏý£¬Ê¹ÓÃUSB gadget driverÒ»´Î±íʾ´ÓÉ豸Çý¶¯¡£In USB protocol
interactions, the device driver is the master (or client driver) and the
gadget driver is the slave (or function driver).
Linux USB gadget driver API¶¨ÒåÁËÒ»¸öͨÓõÄgadget driverµÄ½Ó¿Ú£¬gadget
driverͨ¹ýAPIÓëµ×²ãUSB controller driverͨÐÅ¡£¸ÃAPIÆÁ±ÎÁ˵ײãÓ²¼þµÄ²»Í¬£¬Ê¹gadget
driver×¢ÖØ¹¦ÄܵÄʵÏÖ£¬¾¡Á¿ÓëÓ²¼þÎ޹ء£Slave¶ËϵͳµÄ¼Ü¹¹ÈçÏÂͼËùʾ£º
ÆäÖУ¬gadgetfsÌṩ¸øÓû§¿Õ¼ä³ÌÐòÖ±½ÓÓëUSB device controller½»»¥µÄÄÜÁ¦¡£
¶þ¡¢Ïà¹Ø×ÊÁÏ
USB gadget API LayerµÄÏà¹Ø×ÊÁÏ£º
1£® http://www.linux-usb.org/gadget/
2£® ÄÚºËÖÐ/KernelDoc/gadget/Ŀ¼ÏµÄÎĵµ
3£®×îÖØÒªµÄ¾ÍÊÇ/include/linux/usb_gadget.hÎļþ£¬¸ÃÎļþÖÐÓÐgadget
API½Ó¿ÚÊý¾Ý½á¹¹ºÍ·½·¨µÄÏêϸ¶¨Òå¼°×¢ÊÍ¡£
Gadget DriverµÄÀý×Ó£º
4£® ÄÚºË/drivers/usb/gadget/Ŀ¼ÏÂÓÐһЩgadget
driverµÄÀý×Ó£¬zero.cΪ×î¼òµ¥µÄÀý×Ó£¬file_storage.cÊÇ´æ´¢É豸µÄgadget driver¡£
Èý¡¢gadget API
ÒªÁ˽âgadget API£¬Ö»ÐèÒªÀí½âÍ·Îļþ£¨usb_gadget.h£©Öм¸¸öÖØÒªµÄÊý¾Ý½á¹¹¾Í¿ÉÒÔÁË¡£ÏêϸµÄ×ֶνéÉÜ¿´hÎļþ×¢ÊÍ¡£
£¨1£©
struct usb_gadget {
const struct usb_gadget_ops *ops;
struct usb_ep *ep0;
struct list_head ep_list;
enum usb_device_speed speed;
unsigned
Ïà¹ØÎĵµ£º
±¾ÎÄת×Ô http://zhzhiqun2005.javaeye.com/blog/462799
Linuxϰ²×°ÅäÖà Jdk1.6+Tomcat6+Apache2.2.x+jk_mod1.2 Ïê½â
Linuxϰ²×°ÅäÖà Jdk1.6+Tomcat6+Apache2.2.x+jk_mod1.2 Ïê½â
±¾ÆªÒÔRedhat AS5£¬ÄÚºËΪLinux 2.6.18-8.el5 ΪÀý£¬ÆäÖÐRedhat/FedoraϵÁлù±¾Ò»Ö£¬ÆäËûLinux»òÕß° ......
×î½üÔÚѧϰlinux ½ñÌì°Ñ¼ÜÉèlinux samba·þÎñÆ÷µÄ·½·¨Ð´³öÀ´ »¶Ó´ó¼ÒÌÖÂÛºÍÖ¸µã
±¾»úÊÇÐéÄâ»úºÍwinxp½øÐвâÊÔ£¬ÐéÄâ»úµØÖ·ÊÇ192.168.1.144 Ö÷»úµØÖ·ÊÇ192.168.1.10.Á½ÕßÊÇ¿ÉÒÔ»¥Í¨µÄ¡£
Ê×ÏÈÎÒÃÇÏÈ×ölinuxϵÄÅäÖÃ
Ò». Ê×ÏÈҪȷ¶¨linuxÊÇ·ñ°²×°ÁËsmb
[root@localhost zy]#rpm -qa | grep samba
samba-2.2.5-10
samba-s ......
ÔÚFC8ÖÐĬÈϰ²×°µÄÓÐmysql£¬Ã»Óеϰ¿ÉÒԺܷ½±ãµÄ°²×°Ï¡£
ĬÈϵÄmysqlµÄincludeÎļþĿ¼ÔÚ/usr/include/mysql
ĬÈϵÄmysqlµÄlibÎļþ¼ÐÔÚ/usr/lib/mysql
ÕâÁ½¸öĿ¼ÔÚÎÒÃDZàÒëʱºòÐèÒªµ½¡£
ÎҵIJâÊÔÓõÄC´úÂëΪ£º
££include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
#define CONN_HOST ......
Ò»ÔçÉ϶¼ÊÇŪÔÚLINUXϹÒÔØusb£¬ºÜÎÞÓ¼¸ºõÕÒ±éÁËËùÓÐÍøÉÏÈ˼ҽéÉܵķ½·¨£¬¿É¶ÔÓÚÒ»¸öÐÂÊÖÀ´Ëµ£¬ËûÃÇ´ó¶¼½²µÄ²»Çå³þ²»³þ£¬×îºó»¹ÊǾõµÃÕâ¸ö±È½Ï·½·¨±È½Ï³É¹¦£¬ËùÒÔÌù³öÀ´´ó¼Ò·ÖÏí£¬Ëµ²»¶¨ÒÔºó»¹ÄÜÓõõ½
1.USBÒÆ¶¯´æ´¢É豸ͨ³£±»Ê¶±ðΪsda1£¬¾ßÌå¿ÉÒÔͨ¹ýfdisk -lÃüÁî²éѯ¡£Ò»°ãÍâ¹ÒµãµÄ×ÓĿ¼¶¼Êǽ¨Á¢ÔÚ/mntÀïÃæµÄ ʹÓà ......
ÔÚ32λƽ̨ÉϱàÒ붯̬¿âûÓÐɶÎÊÌ⣬Äõ½x86_64λƽ̨ÉϱàÒëʱ³öÏÖÁËÎÊÌâ¡£
relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
ÕÕ×ÅÌáʾ±àÒë´úÂëµÄʱºò¼ÓÈë -fPICÑ¡Ïî¾Íok.
......