ÔÚ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
¿É·¢ÏÖËÙ¶È¿ìÁ˺ܶࡣ
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
ÓÐʱ²»ÒªÒÔΪprintfÒ»¶¨ÄÜ´òÓ¡³öÊý¾ÝÀ´¡£ÓÐʱ£¬Äã²»ÔÚ³ÌÐòµÄÿ¸öµØ·½printfµÄµØ·½¶¼²»¼ÓÉÏ"\n”,³ÌÐò¸ù±¾¾Í²»´òÓ¡ÈκÎÊý¾Ý³öÀ´£¬ÐŲ»£¿£¡ÎҾ͵¹Ã¹µÄÓöµ½¸öÒ»´Î¡£Óöµ½ÕâЩºÜÍ·Ì۵쬻¹ÒÔΪÊdzÌÐòÄĶù³ö´í¿©¡£ÔÀ´ÕâÊÇÒòΪ£¬ËüÆäʵÓлº³åµÄ¹¦ÄÜ£¬Ö»ÓÐÔÚ“\n”£¬Ëü²Å½«»º³åÀïµÄ ......
LinuxµÄÓû§ºÍÓû§×é¹ÜÀí
LinuxϵͳÊÇÒ»¸ö¶àÓû§¶àÈÎÎñµÄ·Öʱ²Ù×÷ϵͳ£¬ÈκÎÒ»¸öҪʹÓÃϵͳ×ÊÔ´µÄÓû§£¬¶¼±ØÐëÊ×ÏÈÏòϵͳ¹ÜÀíÔ±ÉêÇëÒ»¸öÕ˺ţ¬È»ºóÒÔÕâ¸öÕ˺ŵÄÉí·Ý½øÈëϵͳ¡£Óû§µÄÕ˺ ......
//»ñÈ¡±¾»úMACµØÖ·º¯ÊýQString GetLocalMac()
{
int sock_mac;
struct ifreq ifr_mac;
char mac_addr[30];
sock_mac = socket( AF_INET, SOCK_STREAM, 0 );
if( sock_mac == -1)
{
perror("create socket falise...mac\n");
return "";
}
memset(&ifr_mac,0,sizeof(ifr_mac));
......