[Fedora-Chinese] linux下的3G卡片的终极解决方案,请参考。

guohui luo guohui.great在gmail.com
星期一 三月 22 14:19:40 UTC 2010


*Ò»£® **»·¾³*

*Ò»£® »·¾³*

*1. *¿ª·¢°åÄںˣºlinux kernel 2.6.14

*2. *3G¿¨Æ¬£ºHUAWEI E1750

*¶þ£® **Ïà¹Ø¹¤¾ßÓë¿âÎļþÏÂÔØ*

*1. **usb_modeswitch-1.0.6.tar.bz2*(
http://www.draisberghof.de/usb_modeswitch/)

½¨ÒéÏÂÔؽÏа汾£¬Èç¹ûÅÂÂé·³¾ÍÏÂÔØÓëÎÒÒ»ÑùµÄ°æ±¾£¬ÏÂͬ¡£

Usb_modeswitchÊǶÔUSBÉ豸µÄ¹¤×÷ģʽ½øÐÐת»»Ò»ÖÖÍòÄܹ¤¾ß£¬µ±È»ÕâÖÖ±¦±´£¬Ö»ÓÐÔÚlinuxϲÅÄÜÌåÏÖÆä¾Þ´óµÄ×÷Óá£Ëæ×ÅÒƶ¯Í¨ÐÅ£¬ÎÞÏßͨÐŵķ¢Õ¹£¬Ô½À´Ô½¶àµÄÉ豸±»ÖÆ×÷³ÉUSB½Ó¿Ú£¬ÏñһЩÎÞÏßÍø¿¨£¬3GÊý¾Ý¿¨µÈµÈ¡£ÕâЩÉ豸µÄ³§¼ÒÒ»°ã¶¼»áÌṩwindows
ÏÂÇý¶¯£¬ÕâЩÉ豸ÔÚµÚÒ»´Î²åÉÏ»ú×ÓµÄʱºò£¬ËüÃÇ´¦ÓÚCDROM+ÉÁ´æģʽ£¬¿ÉÒÔ´ÓÖÐÌṩÇý¶¯³ÌÐò°²×°Çý¶¯£¬ÔÚÇý¶¯³ÌÐò°²×°Íê³Éºó£¬Çý¶¯»áת»»³É3Gģʽ£¬´Ëʱ¾Í»á³öÏÖusb
modemÉ豸£¬Ä¿Ç°µÄ3G¿¨Æ¬È«¶¼ÊÇÕâÑù£¬Õâ¾ÍÊÇËùνµÄ¡°ZeroCD¡±¡£

¶øÔÚlinuxÏÂÎÒÃÇ¿ÉûÓÐÄÇôºÃµÄ´ýÓö£¬³§¼ÒÒ»°ã²»»á¸øÎÒÃÇÌṩlinuxÏÂÃæµÄÇý¶¯,¶øÄ¿Ç°µÄÄں˻¹²»ÄÜ×Ô¶¯Ê¶±ð²¢Çý¶¯¡£ËùÒÔÎÒÃÇÐèÒªÓÃusb_modeswitchÕâ¸ö¹¤¾ßÀ´½øÐÐģʽת»»£¬É豸ģʽÒÀÀµusb-storageºÍusbserialģʽ£¬ËùÒÔ£¬ÔÚ¿ª·¢°åÉÏÐèÒªÓÐÕâÁ½ÖÖÄ£¿éµÄÖ§³Ö£¬É豸²¢Äܹ»Õý³£¹¤×÷ÓÚÕâÁ½ÖÖģʽÏ¡£

*2**£®**usb_modeswitch-current_data.tar.bz2*(
http://www.draisberghof.de/usb_modeswitch/)

Õâ¸ö°üÀï°üÀ¨Ìṩ¸øUDEVµÄÇý¶¯É豸ÐÅÏ¢£¬ºÍºÜ¶àÉ豸ʹÓÃusb_mdoeswitch½øÐÐת»»Ä£Ê½Ê±ÐèÒªÅäÖõIJÎÊý¡£ÏÂÔØËüÓÃÓڲο¼¡£

*3. **libusb-1.0.6.tar.bz2 *(
http://sourceforge.net/projects/libusb/files/libusb-1.0/)

Libusb²ÅÊÇÎÒÃǵÄÕæÕý¹Ç¸ÉÁ¦Á¿£¬Ìṩ¸øusb_modeswitchÒ»Ì×ϵͳAPI£¬ËùÒÔ£¬×ÔÈ»usb_modeswitchÕâ¸ö°ü¹¤Í·ÒªÏ빤×÷£¬¿Ï¶¨²»ÄÜÀ뿪libusbÕâ¸ö¹¤ÈËΪÆä·þÎñ¡£

*4.libusb-compat-0.1.3.tar.bz2 **(
http://www.linuxfromscratch.org/blfs/view/svn/general/libusb-compat.html**£©*
**

libusb·ÖΪ0.1ºÍ1.0Á½Äê°æ±¾£¬¶ø1.0°æ±¾Óë0.1ÓнϴóµÄ²»Í¬£¬²¢²»ÏòϼæÈÝ£¬±ØÐëÒÀÀµlibusb-compat¡£

*Èý£® **½»²æ±àÒëusb_modeswitch*

*1. **½»²æ±àÒë libusb*

A. ½âѹ²¢½øÈëlibusb-1.0.6Ŀ¼£¬½¨Á¢×ÓĿ¼installÓÃÓÚ´æ·Å×îºóÉú´æµÄ¿âÎļþÓëÍ·Îļþ¡£

[Anson在libusb-1.0.6]# mkdir install

B. ÅäÖò¢Éú³ÉMakefileÎļþ

[Anson在libusb-1.0.6]#./configure --build=i686-linux --host=arm-linux
--prefix=/home/Anson/libusb-1.0.6/install

C. [Anson在libusb-1.0.6]#make

D. [Anson在libusb-1.0.6]# make install

*2. **ÉèÖÃPKG_CONFIG_PATH**»·¾³±äÁ¿£¬ÒÔʹÎÒÃǺóÃæµÄ±àÒëÄܹ»Ë³ÀûÕÒµ½libusb**¿â*

A.ÉèÖû·¾³±äÁ¿

[Anson在libusb-1.0.6]# export
PKG_CONFIG_PATH=/home/Anson/libusb-1.0.6/install/lib/pkgconfig:$PKG_CONFIG_PATH

B.²é¿´ÊÇ·ñÉèÖÃÕýÈ·

[Anson在libusb-1.0.6]#echo $PKG_CONFIG_PATH

*3. **½»²æ±àÒëlib_compat*

ÓëÉÏÃæ±àÒëlibusbµÄ·½·¨ÀàËÆ£º

*A**£®*[Anson在libusb-compat-0.1.3]#.mkdir install**

*B .* [Anson在libusb-compat-0.1.3]#./configure --build=i686-linux
--host=arm-linux --prefix=/home/Anson/libusb-compat-0.1.3/install

*C.* [Anson在libusb-compat-0.1.3]#make

*D. *[Anson在libusb-compat-0.1.3]#make install

**

˵Ã÷£ºÈç¹û´Ëʱ³öÏÖ"-Wno-pointer-sign"¡¢"-fvisibility=hidden"ÕâÀà´íÎó£¬ÔòÊÇÓÉÓÚ±àÒëÆ÷°æ±¾¹ýµÍ²»Ö§³Öµ¼Öµģ¬¿ÉÒÔÖ±½ÓÔÚMakefileºÍlibusb/MakefileÎļþÖÐɾ³ýÕâЩ±àÒëÑ¡Ïî¼´¿É¡£

**

*4. **½»²æ±àÒëusb_modeswitch*

A£®ÐÞ¸ÄMakefileÎļþ

ÐÞ¸ÄSTRIPºÍCCÑ¡ÏîΪ£º

STRIP = arm-xxx-linux-strip

CC = arm-xxx-linux-gcc

B.
¿ÉÒÔ½«ÉÏÃæµÄlibusbºÍlibusb-compatµÄ¿âºÍÍ·Îļþ¿½±´µ½½»²æ±àÒëÆ÷µÄlibºÍincludeĿ¼Ï£¬»òÕßÖ±½Ó¼ÓÉϱàÒëÑ¡ÏîÖ¸Áî¿âµÄ·¾¶¼´¿ÉÈçÏ£º

INCLUDEDIR = /home/anson//libusb-1.0.6/install/include/libusb-1.0

LIBDIR = /home/anson/libusb-1.0.6/install/lib

$(PROG): $(OBJS)

$(CC) $(CCFLAGS) -I $(INCLUDEDIR) -L $(LIBDIR) -o $(PROG) $(OBJS)**

ÕâÀïµÄusb.h¾ÍÊÇlibusb-compatĿ¼Ïµģ¬Èç¹ûûÓÐusb.h,usb_modeswitchÊDZàÒë²»¹ýÈ¥µÄ¡£

*C. make*

**

*5. ±à¼­**usb_modeswitch**Ŀ¼ÏµÄusb_modeswitch.conf**Îļþ£¬¼ÓÈëÒÔÏÂÄÚÈÝ£º*

**

DefaultVendor= 0x12d1

DefaultProduct= 0x1446

TargetVendor = 0x12d1

TargetProduct= 0x1001

MessageContent="55534243000000000000000000000011060000000000000000000000000000"

MessageEndpoint=0x01

CheckSuccess=5

HuaweiMode=0 £¨Ìرð×¢ÒâÕâ¸ö²ÎÊý£¬ÎÒÔÚ¿ª·¢°åÉϵÄÂé·³¾Í³öÔÚÕâ¸ö²ÎÊýÉÏÃ棩

**

*6. **½«ÉÏÃæÉú³ÉµÄlibusb**¶¯Ì¬¿â¿½±´µ½¿ª·¢°åµÄ¿âĿ¼Ï£¬½«ÉÏÃæÉú³ÉµÄusb_modeswitch**
¿ÉÖ´ÐгÌÐòºÍusb_modeswitch.conf**ÅäÖÃÎļþÏÂÔص½¿ª·¢°åijĿ¼Ï¡£*

*ËÄ£® **½»²æ±àÒë3G**¿¨Æ¬Çý¶¯*

*1. **±àÒë 3G**Ä£¿éµÄÇý¶¯option.ko*

ÔÚÄÚºËÔ´Âë°üÖÐÕÒµ½usbµÄ3GÇý¶¯Îļþ driver//usb/serial/option.cÔÚÆäÖмÓÈë3G¿¨Æ¬µÄ HUAWEI_VENDOR_ID
0x12D1ºÍHUAWEI_PRODUCT_E1750
0x1446¡£È»ºóÐÞ¸ÄKconfig½«option±àÒë³ÉÄ£¿é¡£½«±àÒëÉú³ÉµÄoption.koÏÂÔص½¿ª·¢°åÖв¢Ê¹ÓÃinsmod¼ÓÔØ¡£

*Î壮 **¼ÓÔØÇý¶¯*

*1. ****¹ÒÔØusb**ÐéÄâÎļþϵͳ£º**mount -t usbfs usbfs /proc/bus/usb/*

*2. **µ¯³ö3G**¿¨Æ¬µÄcdrom: *eject /dev/cdroms/cdrom0

*3. *ÏÖÔھͿÉÒÔʹÓÃusb_modeswitch ¨CW ¨Cc
~/usb_modeswitch.confÇл»3G¿¨Æ¬µÄģʽÁË¡£´Ëʱ»á³öÏÖһЩÐÅÏ¢£¬Äã»á¿´µ½×ª»»³É3GģʽºóµÄ¼¸¸ö´®¿ÚÐÅÏ¢£¬ttyUSB0,
ttyUSB1, ttyUSB2£¬ÈçÏ£º

option 1-1:1.0: Option 3G data card converter detected
usb 1-1: Option 3G data card converter now attached to ttyUSB0
option 1-1:1.1: Option 3G data card converter detected
usb 1-1: Option 3G data card converter now attached to ttyUSB1
option 1-1:1.2: Option 3G data card converter detected
usb 1-1: Option 3G data card converter now attached to ttyUSB2

Èç¹ûûÓÐʹÓÃudev£¬¾Í²»»á×Ô¶¯Éú³ÉÕâЩ½áµã£¬ËùÒÔÐèÒªÊÖ¶¯´´½¨ÕâЩ×Ö·û½Úµã¡£

*mknod* /dev/usb/*ttyUSB0 c 188 0*

*mknod* /dev/usb/ttyUSB1 c 188 1

*mknod* /dev/usb/ttyUSB2 c 188 2

´ËʱÄã¿ÉÒÔÔÚ/dev/usb/ttsÏÂÃæÕÒµ½Éú³ÉÁË3¸ö½Úµã1£¬2£¬3.Èç¹ûÔÚPCÉÏÃæʹÓ÷¢Ðа棬һ°ã¶¼»áʹÓÃudev×ö/devÏÂÃæµÄ½Úµã£¬ÕâÑù×ӾͿÉÒÔÖ±½ÓÔÚ/etc/udev/rules.d/ÏÂÃæÌí¼ÓÏàÓ¦µÄÉ豸ÐÅÏ¢ºÍ´¦Àí¾Í¿ÉÒÔÁË£¬µ«ÊÇÓÉÓÚ¿ª·¢°åÉϲ¢Ã»ÓÐudev£¬Ëü»áÉú̬̫¶àÉ豸½Úµã£¬¶ÔǶÈëʽ¿ª·¢×ÊÔ´ÓнϴóÀË·Ñ£¬ÕâÀ¸ù¾ÝÌáʾÐÅϢ˵Ã÷driverÔÚX1µØÖ·´¦ÕÒµ½ÁËY1É豸£¬ËüÔÚ/devÏÂÃæµÄ½Úµã½ÐZ1£¬ËùÒÔ´ËʱÎÒÃÇÐèÒªÊÖ¶¯´´½¨¡£ÎÒµÄÒâ˼¾ÍÊÇ˵Õâ¸ö½Úµã±¾ÉíÒѾ­×¢²áÁËÏàÓ¦µÄioctlÁË£¬Ö»ÊÇÉ豸½ÚµãûÓÐÉú³É¶øÒÔ£¬ËùÒÔÕâʱÊÖ¶¯´´½¨ÊÇÍêȫûÓÐÎÊÌâµÄ¡£

*4. **ʹÓô®¿ÚµÄ²âÊÔ¹¤¾ß·¢ËÍAT**Ö¸Áî²âÊÔ¼¸¸ö´®¿ÚÊÇ·ñ¿ÉÓá£*

*Áù£® **½»²æ±àÒëpppd**²¦ºÅ¹¤¾ß£¬²¢±àд²¦ºÅ½Å±¾*

*1. ****½»²æ±àÒëpppd**²¦ºÅ¹¤¾ß£¨ÕâÀï²»Ïêϸ½²½â£¬¿É²Î¿¼ºóÐøÎÄÕµÄÏêϸ˵Ã÷£©*

*2. **±àд²¦ºÅ½Å±¾,**ÓëGPRS**µÄ²¦ºÅ½Å±¾ÀàËÆ¡£*

*A. **ÁªÍ¨WCDMA-HSDPA:*

*(1)wcdma:*

debug

nodetach

lock

/dev/ttyUSB0

115200

user "card"

password "card"

crtscts

show-password

usepeerdns

noauth

noipdefault

novj

novjccomp

noccp

defaultroute

ipcp-accept-local

ipcp-accept-remote

connect '/usr/sbin/chat -s -v -f chat-wcdma-connect'

disconnect '/usr/sbin/chat -s -v -f chat-wcdma-disconnect'

**

*(2) chat-wcdma-connect:*

TIMEOUT 5

ABORT 'NO CARRIER'

ABORT 'ERROR'

ABORT 'NO DIALTONE'

ABORT 'BUSY'

ABORT 'NO ANSWER'

'' \rAT

OK \rATZ

OK \rAT+CGDCONT=1,"IP","3gnet",,0,0

OK-AT-OK ATDT*99#

CONNECT \d\c

*(3)* *chat-wcdma-disconnect*

ABORT "BUSY"

ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\nSending break to the modem\n"

'' "\K"

'' "+++ATH"

SAY "\nGoodbay\n"

**

*B. ****Òƶ¯TD-CDMA*

*(1)td:*

debug

logfile /var/log/pppd.log

lock

/dev/ttyUSB0

115200

user "card"

password "card"

crtscts

connect '/usr/sbin/chat -v -t3 -f td-connect-chat'

disconnect '/usr/sbin/chat -s -v -f td-disconnect-chat'

show-password

usepeerdns

noauth

noipdefault

novj

novjccomp

noccp

defaultroute

ipcp-accept-local

ipcp-accept-remote

**

*(2)* *td-connect-chat:*

ABORT 'NO CARRIER'

ABORT 'ERROR'

ABORT 'NO DIALTONE'

ABORT 'BUSY'

ABORT 'NO ANSWER'

'' \rATZ

OK-AT-OK ATD#777

CONNECT \d\c

**

*(3) td-disconnect-chat:*

ABORT "BUSY"

ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\nSending break to the modem\n"

'' "\K"

'' "+++ATH"

SAY "\nGoodbay\n"**

**

**

*C. **µçÐÅCDMA1x*

*(1) cdma1x:*

debug

nodetach

lock

/dev/ttyUSB0

115200

user "card"

password "card"

crtscts

show-password

usepeerdns

noauth

noipdefault

novj

novjccomp

noccp

defaultroute

ipcp-accept-local

ipcp-accept-remote

connect '/usr/sbin/chat -s -v -f cdma1x-connect-chat'

disconnect '/usr/sbin/chat -s -v -f cdma1x-disconnect-chat'

*(2) cdma1x-connect-chat:*

TIMEOUT 5

ABORT 'NO CARRIER'

ABORT 'ERROR'

ABORT 'NO DIALTONE'

ABORT 'BUSY'

ABORT 'NO ANSWER'

'' \rATZ

OK \rAT\^PREFMODE=2

OK-AT-OK ATD#777

CONNECT \d\c

*(3) cdma1x-disconnect-chat:*

ABORT "BUSY"

ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\nSending break to the modem\n"

'' "\K"

'' "+++ATH"

SAY "\nGoodbay\n"

*D. **µçÐÅCDMA2000-EVDO*

*(1) evdo**£º*

debug

nodetach

lock

/dev/ttyUSB0

115200

user "card"

password "card"

crtscts

show-password

usepeerdns

noauth

noipdefault

novj

novjccomp

noccp

defaultroute

ipcp-accept-local

ipcp-accept-remote

connect '/usr/sbin/chat -s -v -f evdo-connect-chat'

disconnect '/usr/sbin/chat -s -v -f evdo-disconnect-chat'

*£¨2**£©evdo-connect-chat**£º*

TIMEOUT 5

ABORT 'NO CARRIER'

ABORT 'ERROR'

ABORT 'NO DIALTONE'

ABORT 'BUSY'

ABORT 'NO ANSWER'

'' \rATZ

OK-AT-OK ATD#777

CONNECT \d\c

*£¨3**£©evdo-disconnect-chat**£º*

ABORT "BUSY"

ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\nSending break to the modem\n"

'' "\K"

'' "+++ATH"

SAY "\nGoodbay\n"

*3. **ʹÓÃpppd**²¦ºÅ **£ºpppd file td(wcdma/evdo/cdma1x)*

*4. *
´Ëʱ½«»áʹÓýű¾ÖÐÉèÖõĶ˿ڽøÐв¦ºÅ£¬Èç¹û³É¹¦ºó»á»ñµÃIPµØÖ·£¬µçÐŵÄ3G¿¨Æ¬»ñÈ¡µÄÊÇÍâÍøIPµØÖ·£¬¶øÆäËüÔòÊÇ»ñÈ¡µÄÒ»¸öÄÚÍøIP£¬½«»ñÈ¡µ½µÄDNSÌí¼Óµ½/
*etc*/*resolv*.*conf*
.ÖУ¬²¢Ê¹ÓÃrouteÌí¼ÓÒ»ÌõĬÈÏ·ÓÉ£¬pingÒ»ÏÂÍâÍøµÄµØÖ·£¬Èç¹ûÄܹ»pingͨ£¬Ôò˵Ã÷Íê³ÉÁ˱¾ÆªµÄ¹¤×÷ÁË£¬µçÐÅ£¬Òƶ¯£¬ÁªÍ¨ÓеÄÍøÂç»á½ûping£¬ËùÒÔping²»Í¨£¬ËùÒÔÕâ¹û£¬¾ÍÐèҪʹÓÃ×Ô¼ºµÄ²âÊÔ¹¤¾ß£¬·¢ËÍtcp/udp°ü£¬È·¶¨ÊÇ·ñ³É¹¦Íê³É±¾Æª¹¤×÷¡£
**

*Æߣ® **¿É²Î¿¼ÎÄÕ£º*

*1. **http://blog.chinaunix.net/u3/106318/showart_2110454.html*<http://blog.chinaunix.net/u3/106318/showart_2110454.html>

*2. *http://blog.chinaunix.net/u3/106318/showart_2102540.html




ÔÚ 2010Äê3ÔÂ22ÈÕ ÏÂÎç9:48£¬guohui luo <guohui.great在gmail.com>дµÀ£º

> Dear gai:
>  Äã¿ÉÒԲο¼ÎÒÓʼþÖÐÌáµ½µÄÎÄÕ£¬ÊÔһϣ¬Èç¹û²»ÐУ¬¾ÍÔÙÌÖÂÛ£¡3KS
>
> ÔÚ 2010Äê3ÔÂ22ÈÕ ÏÂÎç9:18£¬¸ÇÒæ <gaiyi1984在gmail.com>дµÀ£º
>
> ÎÒÊÔ¹ýtdºÍÒƶ¯µÄ2¿î3G USBÉÏÍø¿¨ µ«ÊǶ¼Ê§°ÜÁË ÓÐͬÊÂÓôø3gÄ£¿éµÄt400ʵÑéҲʧ°ÜÁË
>>
>> ÏÖÔÚÎÒÖ»ÄÜÔÚLinuxÏ¿ªÐéÄâ»ú²ÅÄÜÓÃ3GÉÏÍø¡£¡£¡£ÎÒÊÇ×ö¼à¿ØµÄ ËùÒÔ±ØÐëÒªÓõ½ÕâÆÆÍæÒâ
>>
>> Èç¹ûË­Óк÷½·¨ Íû²»ØĴͽÌ
>>
>>
>>
>


关于邮件列表 Chinese 的更多信息