나는 Raspbian, 3G USB 어댑터를 사용하여 시도하고 usb_modeswitch
있습니다 wvdial
.이 튜토리얼이전에는 다른 3G 어댑터와 잘 작동했습니다.
내 3G 어댑터는 ZTE D6601이고 SIM 카드에는 PIN이 없으며 Windows 및 Ubuntu 15에 내장된 모바일 광대역 도구를 사용하여 ISP 도구와 완벽하게 연결됩니다. 하지만 이 작업은 Raspberry Pi의 명령줄을 통해 수행해야 합니다.
지금까지 시도한 내용은 다음과 같습니다. Raspbian을 시작하면 lsusb
반환됩니다.
Bus 001 Device 004: ID 19d2:0154 ZTE WCDMA Technologies MSM
그럼 난 달려
sudo usb_modeswitch -I -v 19d2 -p 0154 -c /etc/usb_modeswitch.conf
그러면 ProductID가 다음으로 변경됩니다.
Bus 001 Device 009: ID 19d2:0108 ZTE WCDMA Technologies MSM
ID가 0154인 3G 동글이 두 개 이상 있으므로 DefaultProduct
표준 전환 규칙이 usb_modeswitch
작동하지 않습니다. 0108은 우분투가 장치를 전환하는 곳이거나, sudo eject
가상 CD 드라이브일 때 무슨 일이 일어나는지라 그걸 사용했습니다.
내 것은 /etc/network/interfaces
WiFi 연결을 사용하도록 변경되었습니다.
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
여태까지는 그런대로 잘됐다. 을 실행하면 sudo wvdialconf
모뎀이 에서 감지됩니다 /dev/ttyUSB1
. 그런 다음 다음과 같이 정의된 sudo wvdial dcom
대로 실행했습니다 dcom
(APN "e-connect"가 정확하며 사용자/패스가 필요하지 않음).
[Dialer dcom]
Modem = /dev/ttyUSB1
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","e-connect"
Stupid Mode = 1
Modem Type = Analog Modem
Phone = *99#
ISDN = 0
Username = { }
Auto Reconnect = 1
Password = { }
Baud = 460800
쉘은 다음을 반환합니다.
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","e-connect"
AT+CGDCONT=1,"IP","e-connect"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT 21600000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Sat Apr 25 18:09:08 2015
--> Pid of pppd: 5530
--> Using interface ppp0
--> pppd: [08]FX[01]�FX[01]8GX[01]p<X[01]�PX[01]�QX[01] (+4 more times)
실행하면 생성이 되었다고 ifconfig
나오긴 ppp0
하지만 할당된 IP 주소가 없습니다. 그리고 약 10초 후에 다음과 같은 일이 발생합니다.
--> Disconnecting at Sat Apr 25 18:09:39 2015
--> The PPP daemon has died: A modem hung up the phone (exit code = 16)
--> man pppd explains pppd error codes in more detail.
--> Try again and look into /var/log/messages and the wvdial and pppd man pages for more information.
--> Auto Reconnect will be attempted in 5 seconds
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","e-connect"
AT+CGDCONT=1,"IP","e-connect"
OK
--> Modem initialized.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","e-connect"
AT+CGDCONT=1,"IP","e-connect"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
ERROR
--> Invalid dial command.
--> Disconnecting at Sat Apr 25 18:09:45 2015
다시 실행 하면 wvdial dcom
위의 두 번째 연결 시도( )의 출력이 반복되고 Invalid dial command
구성도 수행되지 않습니다 ppp0
. 이상한 점은 곧 sudo wvdialconf
(기간은 /etv/wvdial.conf
동일하게 유지됨) 다시 연결할 수 있지만 다시 IP를 할당하지 않고 10초 후에 연결이 끊어진다는 것입니다. 나는 이것을 여러 번 반복했습니다.
아마도 이것도 흥미로울 것입니다. 자동으로 다시 연결되도록 설정되었음에도 불구하고 생성되는 wlan0
순간 IP가 손실되어 ppp0
다시 작동하도록 할 수 있었습니다 sudo ifdown wlan0
.sudo ifup wlan0
답변1
마침내 해결책을 찾았습니다. 버리고 대신 ( 포장에서) wvdial
사용했습니다 . 10시간 전에 연결을 설정했는데 여전히 동일한 IP로 연결이 활성화되어 있습니다. 이것이 내가 하는 방법이다:nmcli
network-manager
1 단계:usb-modeswitch
3G USB 스틱이 저장 장치가 아닌 모뎀으로 인식되도록 실행을 시작하세요 . 거기에는 많은 튜토리얼이 있으므로 여기서는 자세히 설명하지 않겠습니다(예).
2 단계:설치하다네트워크 관리자RPi에서: sudo apt-get install network-manager network-manager-gnome -y
.를 실행하여 NetworkManager가 모뎀을 인식하는지 확인하십시오 nmcli dev
. 그렇다면 다음과 같은 테이블이 표시됩니다.
DEVICE TYPE STATE
ttyUSB2 gsm disconnected
(그렇지 않으면 usb-modeswitch
결함이 있을 수 있으며 시스템이 모뎀을 찾을 수 없습니다.)
3단계:X 서버를 시작하고 startx
메뉴에서 NetworkManager를 열고 새 모바일 광대역 연결을 만듭니다(모바일 광대역 탭 > 추가). 마법사는 프로세스를 안내하고 공급자를 선택할 수도 있으므로 APN 설정에 신경 쓸 필요가 없습니다. 도구는 연결 파일을 생성하며 /etc/NetworkManager/system-connections/
다음 단계에서 연결 이름으로 사용되므로 파일 이름을 기록해 두어야 합니다.
4단계:질문에서 말했듯이 X 서버 없이 명령줄에서 이를 실행할 수 있어야 합니다. 여기서 sudo nmcli con up id "Connection ID"
연결 ID는 2단계에서 생성한 연결의 이름입니다. 이것이 전부입니다. 연결을 끊으려면 를 실행하십시오 sudo nmcli con down id "Connection ID"
.