Changeset 12432

Show
Ignore:
Timestamp:
07/03/2009 03:59:30 PM (7 months ago)
Author:
BrainSlayer
Message:

hso support

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/router/libutils/lib3g.c

    r12369 r12432  
    8282        mkdir("/tmp/usb"); 
    8383        eval("mount", "-t", "usbfs", "usb", "/tmp/usb"); 
    84         insmod("usbserial"); 
    8584//insmod("sierra");  //further investigation required (compass problem) 
    86         insmod("option"); 
    87         insmod("ipw"); 
    88         insmod("pl2303"); 
    8985#endif 
    9086 
     
    110106                //sierra wireless  
    111107                fprintf(stderr, "Sierra Wireless Compass 885 deteted\n"); 
     108                insmod("usbserial"); 
     109                insmod("sierra"); 
    112110                nvram_set("3gdata", "/dev/usb/tts/4"); 
    113111                return "/dev/usb/tts/3"; 
     
    116114                //sierra wireless  
    117115                fprintf(stderr, "Sierra Wireless Compass 888 deteted\n"); 
     116                insmod("usbserial"); 
     117                insmod("sierra"); 
    118118                nvram_set("3gdata", "/dev/usb/tts/4"); 
    119119                return "/dev/usb/tts/3"; 
     
    123123                fprintf(stderr, "Sierra Wireless MC8790\n"); 
    124124                nvram_set("3gdata", "/dev/usb/tts/4"); 
     125                insmod("usbserial"); 
     126                insmod("sierra"); 
    125127                checkreset("/dev/usb/tts/3"); 
    126128                return "/dev/usb/tts/3"; 
     
    130132                fprintf(stderr, "Sierra Wireless MC8790\n"); 
    131133                nvram_set("3gdata", "/dev/usb/tts/4"); 
     134                insmod("usbserial"); 
     135                insmod("sierra"); 
    132136                checkreset("/dev/usb/tts/3"); 
    133137                return "/dev/usb/tts/3"; 
     
    137141                fprintf(stderr, "Sierra Wireless MC8790\n"); 
    138142                nvram_set("3gdata", "/dev/usb/tts/4"); 
     143                insmod("usbserial"); 
     144                insmod("sierra"); 
    139145                checkreset("/dev/usb/tts/3"); 
    140146                return "/dev/usb/tts/3"; 
     
    143149                //huawei 
    144150                fprintf(stderr, "HUAWEI/Option E172 detected\n"); 
     151        insmod("usbserial"); 
    145152        insmod("option"); 
    146153                return "/dev/usb/tts/0"; 
     
    149156                //huawei 
    150157                fprintf(stderr, "HUAWEI/Option E301 HSUPA detected\n"); 
     158        insmod("usbserial"); 
    151159        insmod("option"); 
    152160                return "/dev/usb/tts/0"; 
     
    155163                //huawei 
    156164                fprintf(stderr, "HUAWEI/Option E600 detected\n"); 
     165        insmod("usbserial"); 
    157166        insmod("option"); 
    158167                return "/dev/usb/tts/0"; 
     
    161170                //huawei 
    162171                fprintf(stderr, "HUAWEI/Option EC270 detected\n"); 
     172        insmod("usbserial"); 
    163173        insmod("option"); 
    164174                return "/dev/usb/tts/0"; 
     
    167177                //huawei 
    168178                fprintf(stderr, "HUAWEI/Option EC168 detected\n"); 
     179        insmod("usbserial"); 
    169180        insmod("option"); 
    170181                return "/dev/usb/tts/0"; 
     
    173184                //huawei 
    174185                fprintf(stderr, "HUAWEI/Option EC168 detected\n"); 
     186        insmod("usbserial"); 
    175187        insmod("option"); 
    176188                return "/dev/usb/tts/0"; 
     
    181193                fprintf(stderr, "QUALCOMM ICON 210 detected\n"); 
    182194                nvram_set("3gdata", "/dev/usb/tts/2"); 
     195        insmod("usbserial"); 
    183196        insmod("option"); 
    184197                return "/dev/usb/tts/2"; 
     
    198211        system("usb_modeswitch -c /tmp/usb_modeswitch.conf"); 
    199212        sleep(2); 
     213        insmod("usbserial"); 
    200214        insmod("option"); 
    201215        nvram_set("3gdata", "/dev/usb/tts/2"); 
     
    206220                //huawei 
    207221        fprintf(stderr, "QUALCOMM ICON 225 detected\n"); 
    208 /*      FILE *out = fopen("/tmp/usb_modeswitch.conf","wb"); 
    209         fprintf(out,"DefaultVendor=0x0af0\n"); 
    210         fprintf(out,"DefaultProduct=0x6971\n"); 
    211         fprintf(out,"TargetClass=0xff\n"); 
    212         fprintf(out,"MessageContent=\"55534243785634120100000080000601000000000000000000000000000000\"\n"); 
     222        system("ozerocdoff -wi 0x6971"); 
     223        sleep(10); 
     224        system("insmod hso"); 
     225        FILE *out=fopen("/tmp/conninfo.ini","wb"); 
     226        fprintf(out,"APN=%s\n",nvram_safe_get("wan_apn")); 
     227        fprintf(out,"USER=%s\n",nvram_safe_get("ppp_username")); 
     228        fprintf(out,"PASS=%s\n",nvram_safe_get("ppp_passwd")); 
     229        fprintf(out,"PIN=%s\n",nvram_safe_get("wan_pin")); 
    213230        fclose(out); 
    214         system("usb_modeswitch -c /tmp/usb_modeswitch.conf");*/ 
    215         system("ozerocdoff -wi 0x6971"); 
    216         sleep(5); 
    217         system("insmod hso"); 
    218         nvram_set("3gdata", "/dev/usb/tts/2"); 
    219             return "/dev/usb/tts/2"; 
    220         } 
    221  
    222  
     231        nvram_set("3gdata", "hso"); 
     232        system("/etc/hso/hso_connect.sh restart"); 
     233        return "hso"; 
     234        } 
    223235 
    224236        if (scanFor(0x1199, 0x6832)) { 
     
    229241                return "/dev/usb/tts/2"; 
    230242        } 
     243        insmod("usbserial"); 
     244        insmod("sierra"); 
    231245        insmod("option"); 
    232246        return ttsdevice; 
  • src/router/libutils/utils.c

    r12344 r12432  
    16411641        int wan_link = 0; 
    16421642 
    1643         if (nvram_match("wan_proto", "pptp") 
     1643        if ((nvram_match("wan_proto", "pptp") 
    16441644            || nvram_match("wan_proto", "l2tp") 
    16451645            || nvram_match("wan_proto", "pppoe") 
    16461646            || nvram_match("wan_proto", "3g") 
    1647             || nvram_match("wan_proto", "heartbeat"))
     1647            || nvram_match("wan_proto", "heartbeat")) && !nvram_match("3gdata","hso"))
    16481648                FILE *fp; 
    16491649                char filename[80]; 
  • src/router/services/networking/network.c

    r12374 r12432  
    25252525        nvram_set("pppd_pppifname", ""); 
    25262526 
     2527#ifdef HAVE_3G 
     2528        nvram_set("3gdata", ""); 
     2529#endif 
    25272530        /* 
    25282531         * Configure WAN interface  
     
    25302533#ifdef HAVE_3G 
    25312534        if ((strcmp(wan_proto, "3g") == 0)) { 
     2535                stop_dhcpc(); 
     2536#ifdef HAVE_PPTP 
     2537                stop_pptp(); 
     2538#endif 
     2539                mkdir("/tmp/ppp", 0777); 
     2540                symlink("/sbin/rc", "/tmp/ppp/ip-up"); 
     2541                symlink("/sbin/rc", "/tmp/ppp/ip-down"); 
     2542                unlink("/tmp/ppp/log"); 
     2543                unlink("/tmp/ppp/connect-log"); 
     2544                unlink("/tmp/ppp/set-pppoepid"); 
    25322545                char *controldevice = get3GControlDevice(); 
    2533  
    2534                 mkdir("/tmp/ppp", 0777); 
    25352546                int timeout = 5; 
     2547                if (controldevice && !strcmp(controldevice,"hso")) 
     2548                    { 
     2549                     
     2550                     
     2551                    }else{ 
     2552 
    25362553 
    25372554                /* init PIN */ 
     
    25852602                fclose(fp); 
    25862603 
    2587                 symlink("/sbin/rc", "/tmp/ppp/ip-up"); 
    2588                 symlink("/sbin/rc", "/tmp/ppp/ip-down"); 
    2589                 unlink("/tmp/ppp/log"); 
    2590  
    2591                 // Clean pppoe linksys client files - Added by ice-man (Wed Jun 1) 
    2592                 unlink("/tmp/ppp/connect-log"); 
    2593                 unlink("/tmp/ppp/set-pppoepid"); 
    2594  
    2595                 stop_dhcpc(); 
    2596 #ifdef HAVE_PPTP 
    2597                 stop_pptp(); 
    2598 #endif 
     2604 
     2605 
    25992606                eval("pppd", "file", "/tmp/ppp/options.pppoe"); 
    26002607 
     
    26542661                                start_redial(); 
    26552662                        } 
     2663                } 
    26562664                } 
    26572665 
  • src/router/services/networking/ppp.c

    r12224 r12432  
    4747#define IFUP (IFF_UP | IFF_RUNNING | IFF_BROADCAST | IFF_MULTICAST) 
    4848 
     49 
     50char *getenvs(char *env) 
     51{ 
     52static unsigned char r[64]; 
     53char *e=getenv(env); 
     54int c=0; 
     55int i; 
     56for (i=0;i<strlen(e);i++) 
     57    { 
     58    if (e[i]!=' ') 
     59        r[c++]=e[i]; 
     60    } 
     61return r; 
     62} 
    4963/* 
    5064 * Called when link comes up 
     
    89103                nvram_set("pppoe_ifname", wan_ifname); 
    90104 
    91         if ((value = getenv("IPLOCAL"))) { 
     105        if ((value = getenvs("IPLOCAL"))) { 
    92106                ifconfig(wan_ifname, IFUP, value, "255.255.255.255"); 
    93107                if (nvram_match("wan_proto", "pppoe")) { 
     
    119133        } 
    120134 
    121         if ((value = getenv("IPREMOTE"))) { 
     135        if ((value = getenvs("IPREMOTE"))) { 
    122136                nvram_set("wan_gateway", value); 
    123137                if (nvram_match("wan_proto", "pptp")) { 
     
    127141        } 
    128142        strcpy(buf, ""); 
    129         if (getenv("DNS1")) 
    130                 sprintf(buf, "%s", getenv("DNS1")); 
    131         if (getenv("DNS2")) 
     143        if (getenvs("DNS1")) 
     144                sprintf(buf, "%s", getenvs("DNS1")); 
     145        if (getenvs("DNS2")) 
    132146                sprintf(buf + strlen(buf), "%s%s", strlen(buf) ? " " : "", 
    133                         getenv("DNS2")); 
     147                        getenvs("DNS2")); 
    134148        nvram_set("wan_get_dns", buf); 
    135149 
  • src/router/services/sysinit/sysinit-rt2880.c

    r12224 r12432  
    6969        mount("proc", "/proc", "proc", MS_MGC_VAL, NULL); 
    7070        mount("sysfs", "/sys", "sysfs", MS_MGC_VAL, NULL); 
     71        mount("usbfs", "/proc/bus/usb", "usbfs", MS_MGC_VAL, NULL); 
    7172        cprintf("sysinit() tmp\n"); 
    7273