ÔÚLinuxϰ²×°DNW
1. ÏÂÔØLinuxÏÂDNWµÄPC¶ËUSBÇý¶¯ºÍдÈ빤¾ß
ÏÂÔØµØÖ·£ºÒÑÉÏ´«ÖÁCSDN
2. ±àÒëPC¶ËUSBÇý¶¯ºÍдÈ빤¾ß
2.1 ½âѹËõ
$ tar xzvf /path/to/dnw_linux.tgz
dnw_linux/
dnw_linux/secbulk/
dnw_linux/secbulk/Makefile
dnw_linux/secbulk/secbulk.c
dnw_linux/dnw/
dnw_linux/dnw/dnw.c
ÆäÖÐsecbulk.cÊÇPC¶ËUSBÇý¶¯, dnw.cÊÇдÈ빤¾ß
2.2 ±àÒë²¢¼ÓÔØsecbulk.cÄÚºËÄ£¿é
$cd secbulk
$make -C /lib/modules/`uname -r`/build M=`pwd` modules
±àÒë³É¹¦ºóÔÚµ±Ç°Ä¿Â¼Ï¿ÉÒÔ¿´µ½secbulk.ko
ÓÃinsmodÃüÁî¼ÓÔØÄ£¿é£¬ÕâÐèÒªrootȨÏÞ
$sudo insmod ./secbulk.ko
2.3 ±àÒëdnwдÈ빤¾ß
$gcc -o dnw dnw.c
±àÒë³É¹¦ºóÉú³É¿ÉÖ´ÐÐdnw£¨ÕâÒ»²½ÔÚÐéÄâ»úϱàÒëʱ³öÏÖÁËÐí¶à¾¯¸æ£©
3 ʹÓÃDNWÏÂÔØ
3.1 Æô¶¯¿ª·¢°å£¬½øÈëminicom£¬²¢½«¿ª·¢°åºÍPCÓÃUSBµçÀÂÁ¬½Ó£¬´ËʱÓÃdmesgÃüÁî¿ÉÒÔ¿´µ½secbulkÇý¶¯¼ÓÔØ£º
[ 283.677772] usb 1-1: new full speed USB device using uhci_hcd and address 2
[ 284.084835] usb 1-1: configuration #1 chosen from 1 choice
[ 284.140430] secbulk:secbulk probing...
[ 284.140482] secbulk:bulk out endpoint found!
3.2 µ±³öÏÖ“USB host is connected. Waiting a download.”ʱ£¬ÔÚPC¶ËLinuxÉÏÓÃdnw¹¤¾ßдÈëÒªÏÂÔØµÄÎļþ
Çл»µ½rootȨÏÞ£¬Ö´ÐÐdnwÏÂÔØ.
$./dnw /path/to/what/you/want/download
дÈëÍê³ÉºóÌáʾ³É¹¦
100% xxxxxxx bytes OK
4 Ìá¸ßÏÂÔØËÙ¶È
½«secbulk.cÖеÄ
#define BULKOUT_BUFFER_SIZE 32
¸ÄΪ
#define BULKOUT_BUFFER_SIZE 512
¿É·¢ÏÖËÙ¶È¿ìÁ˺ܶࡣ
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ 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 ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
//»ñÈ¡×ÓÍøÑÚÂëµÄº¯ÊýQString GetLocalNetMask()
{
int sock_netmask;
char netmask_addr[50];
struct ifreq ifr_mask;
struct sockaddr_in *net_mask;
sock_netmask = socket( AF_INET, SOCK_STREAM, 0 );
if( sock_netmask == -1)
{
perror("create socket failture...GetLocalNetMask\n");
......