1. Byłoby lepiej, abyś wyłączył/a pytanie o pin w karcie sim używając do tego komórki. W ten sposób będzie nieco łatwiej uzyskać połączenie.
II. Zaczynamy:
1. Pobierz sterownik hso-1.6.tar.gz ze strony http://www.pharscape.org/component/opti ... pic/t,544/
i zapisz go do Twojego folderu domowego, w moim przypadku był to folder /home/mateusz.
2. Pobierz archiwum hso-udev.tar.gz ze strony http://www.pharscape.org/component/opti ... pic/t,425/
i zapisz je do folderu /home/twoj_login/hso-udev (oczywiście utwórz folder hso-udev, zanim zapiszesz w nim archiwum).
3. Otwórz terminal.
4. Rozpakuj oba archiwa:
cd ~
tar xzvf hso-1.5.tar.gz
cd ~/hso-udev
tar xzvf hso-udev.tar.gz
5. Skompiluj i zainstaluj sterownik hso:
cd ~/hso_26
make
sudo make install
6. Skompiluj i zainstaluj reguły udev do modemu:
cd ~/hso-udev
rm rezero
make
sudo make install
Podłącz modem do usb.
7. Utwórz skrypt automatycznego startu usługi iplus przy uruchamianiu systemu:
sudo touch /etc/init.d/iplus
sudo chmod +x /etc/init.d/iplus
8. Otwórz pusty skrypt poleceniem:
sudo gedit /etc/init.d/iplus &
i wklej do niego poniższe komendy:
Kod: Zaznacz cały
#!/bin/sh
#################################################################################################
# Script: hso_connect.sh
# Purpose:Bring the interface up and down, send the needed AT commands to connect
#################################################################################################
# checking for root
USERID=`id -u`
if [ "$USERID" != "0" ]
then
echo "Need root permissions to run this script"
exit
fi
# always start with checking if a connection data file has been supplied
CONNECTIONFILE="/etc/ppp/conninfo.ini"
if [ -z "$2" ]
then
if [ ! -f $CONNECTIONFILE ]
then
echo "# this file contains the connection information for your subscription" >> $CONNECTIONFILE
echo "APN=web.pro.be" >> $CONNECTIONFILE
echo "# USER=" >> $CONNECTIONFILE
echo "# PASS=" >> $CONNECTIONFILE
echo "# PIN=" >> $CONNECTIONFILE
fi
else
if [ -f $2 ]
then
CONNECTIONFILE=$2
else
echo "Supplied file $2 does not exist"
exit 1
fi
fi
DEVICE=/dev/ttyHS0
NETDEV=hso0
TMPFIL=/tmp/connect.$$
OUTPUTFILE=/tmp/output.$$
SCRIPTFILE=/tmp/scriptfile.$$
#################################################################################################
# METHOD: Connect
# PURPOSE:Connect to the specified APN with the specified user and pass and get the ip
# set the IP to the interface
#################################################################################################
Connect()
{
echo "Initializing..."
#============================================================
# get the APN, USER, PASS and PIN out of the connection file
#============================================================
APN=`grep '^APN=' $CONNECTIONFILE | cut -d= -f2`
USER=`grep '^USER=' $CONNECTIONFILE | cut -d= -f2`
PASS=`grep '^PASS=' $CONNECTIONFILE | cut -d= -f2`
PIN=`grep '^PIN=' $CONNECTIONFILE | cut -d= -f2`
if [ -z "$APN" ]
then
echo "Please provide an APN (eg web.pro.be)"
exit
fi
#============================================================
# send the PIN, APN, USER and PASS
#============================================================
rm -f $SCRIPTFILE
echo "ABORT ERROR" > $SCRIPTFILE
echo "TIMEOUT 10" >> $SCRIPTFILE
echo "\"\" ATZ" >> $SCRIPTFILE
if [ -n "$PIN" ]
then
echo "OK \"AT+CPIN=\\\"$PIN\\\"^m\"" >> $SCRIPTFILE
fi
echo "OK \"AT+COPS=0^m\"" >> $SCRIPTFILE
echo "OK \"\d\d\d\d\d\d\dAT+COPS=?^m\"" >> $SCRIPTFILE
echo "OK \"AT+CGDCONT=1,,\\\"$APN\\\"^m\"" >> $SCRIPTFILE
if [ -n "$USER" -a -n "$PASS" ]
then
echo "OK \"AT\$QCPDPP=1,1,\\\"$PASS\\\",\\\"$USER\\\"^m\"" >> $SCRIPTFILE
fi
echo "OK \"\"" >> $SCRIPTFILE
#============================================================
# run the script
#============================================================
echo "Trying $APN ..."
rm -f $OUTPUTFILE
( /usr/sbin/chat -E -s -V -f $SCRIPTFILE <$DEVICE >$DEVICE ) 2> $OUTPUTFILE
ISERROR="`grep '^ERROR' $OUTPUTFILE`"
if [ -n "$ISERROR" ]
then
echo "Failed to initialize connection"
cat $OUTPUTFILE
echo " "
rm -f $OUTPUTFILE
exit
fi
ISERROR="`grep '^+CME' $OUTPUTFILE`"
if [ -n "$ISERROR" ]
then
echo "Failed to initialize connection"
cat $OUTPUTFILE
echo " "
rm -f $OUTPUTFILE
exit
fi
rm -f $SCRIPTFILE
sleep 2
#============================================================
# now actually connect
#============================================================
echo "Connecting..."
stty 19200 -tostop
# make the call script
echo "ABORT ERROR" > $SCRIPTFILE
echo "TIMEOUT 10" >> $SCRIPTFILE
echo "\"\" ATZ" >> $SCRIPTFILE
echo "OK \"AT_OWANCALL=1,1,0^m\"" >> $SCRIPTFILE
echo "OK \"\d\d\d\d\dAT_OWANDATA=1^m\"" >> $SCRIPTFILE
echo "OK \"\"" >> $SCRIPTFILE
PIP=""
COUNTER=""
while [ -z "$PIP" -a "$COUNTER" != "-----" ]
do
echo "trying$COUNTER"
sleep 2
rm -f $OUTPUTFILE
( /usr/sbin/chat -E -s -V -f $SCRIPTFILE <$DEVICE > $DEVICE ) 2> $OUTPUTFILE
ISERROR=`grep '^ERROR' $OUTPUTFILE`
if [ -z "$ISERROR" ]
then
PIP="`grep '^_OWANDATA' $OUTPUTFILE | cut -d, -f2`"
NS1="`grep '^_OWANDATA' $OUTPUTFILE | cut -d, -f4`"
NS2="`grep '^_OWANDATA' $OUTPUTFILE | cut -d, -f5`"
fi
COUNTER="${COUNTER}-"
done
echo Connected
#============================================================
# always check the IP address
#============================================================
if [ -z "$PIP" ]
then
echo "We did not get an IP address from the provider, bailing ..."
cat $OUTPUTFILE
rm -f $OUTPUTFILE
exit
fi
rm -f $OUTPUTFILE
#============================================================
# setting network settings
#============================================================
echo "Setting IP address to $PIP"
ifconfig $NETDEV $PIP netmask 255.255.255.255 up
echo "Adding route"
route add default dev $NETDEV
mv -f /etc/resolv.conf /tmp/resolv.conf.hso
echo "Setting nameserver"
echo "nameserver $NS1" > $OUTPUTFILE
echo "nameserver $NS2" >> $OUTPUTFILE
mv $OUTPUTFILE /etc/resolv.conf
echo "Done."
}
#################################################################################################
# METHOD: Disconnect
# PURPOSE:disconnect from the providers network
#################################################################################################
Disconnect()
{
echo "Bringing interface down..."
ifconfig $NETDEV down
echo "Disconnecting..."
# make the disconnect script
rm -f $SCRIPTFILE
echo "TIMEOUT 10" >> $SCRIPTFILE
echo "ABORT ERROR" >> $SCRIPTFILE
echo "\"\" ATZ" >> $SCRIPTFILE
echo "OK \"AT_OWANCALL=1,0,0^m\"" >> $SCRIPTFILE
echo "OK \"\"" >> $SCRIPTFILE
#============================================================
# run the script
#============================================================
/usr/sbin/chat -V -f $SCRIPTFILE <$DEVICE >$DEVICE 2> /dev/null
if [ -f /tmp/resolv.conf.hso ]
then
echo "Reset nameserver..."
mv -f /tmp/resolv.conf.hso /etc/resolv.conf
fi
echo "Done."
}
#################################################################################################
# METHOD: usage
# PURPOSE:
#################################################################################################
usage()
{
echo Usage: $0 \(start\|stop\|restart\)
}
#################################################################################################
# Choose your action
#################################################################################################
case "$1" in
start)
Connect
;;
stop)
Disconnect
;;
restart)
Disconnect
Connect
;;
*)
usage
;;
esac
10. Utwórz plik conninfo.ini, w którym wpiszesz dane dotyczące Twojego dostawcy, pin, itd.:
sudo touch /etc/ppp/conninfo.ini
sudo chmod 755 /etc/ppp/conninfo.ini
11. Otwórz ten plik w celu wpisania niezbędnych do połączenia danych:
sudo gedit /etc/ppp/conninfo.ini &
12. Jeśli masz iplusa i wyłączone pytanie o pin, wpisz do pliku:
Kod: Zaznacz cały
APN=www.plusgsm.pl
Kod: Zaznacz cały
APN=www.plusgsm.pl
PIN=1234
14. Poinformuj system, by uruchamiał usługę przy włączaniu systemu:
sudo update-rc.d iplus defaults 20
To wszystko. Po reboocie iplus powinien uruchomić się automatycznie.
III. Uwagi końcowe:
1. W analogiczny sposób (aczkolwiek nie sprawdzałem) można próbować uruchomić modem u innych operatorów, np. w Erze lub Orange modyfikując zawartość pliku conninfo.ini
Dla Ery APN=erainternet
Dla Orange APN=internet
Dla Play APN=internet
Po więcej tego typu informacji odsyłam do strony: http://www.bez-kabli.pl/viewtopic.php?p=81956#81956
2. Możliwe, że podczas kompilacji coś się wywali, wówaczas może pomóc doinstalowanie paczki build-essential oraz nagłówków do jądra. W konsoli wpisz:
sudo apt-get install build-essential linux-headers-`uname -r`
3. Jeśli nie możesz poradzić sobie z powyższym sposobem, spróbuj zupełnie inaczej. Będzie to proste i przejrzyste graficznego rozwiązanie, niezależne od ww.:
Pobierz dwie paczki i zapisz je do folderu domowego:
http://www.pharscape.org/index2.php?opt ... load&id=38
http://www.pharscape.org/index2.php?opt ... load&id=50
Otwórz terminal i wpisz kolejno:
cd ~
sudo dpkg -i *.deb
W menu Aplikacje -> Internet powinna być aplikacja HSOconnect. Otwórz ją. Jeśli program poprosi o wpisanie pinu podaj go a następnie kliknij Connect, aby się połączyć. Po chwili połączenie powinno być ustalone. Czasami program dostaje zawiechy, więc odczekaj chwilę i spróbuj znów się połączyć klikając Connect. Teraz sprawdź czy masz neta.