Nonni, takaisin otsikon aiheeseen eli ZTE:hen.
Tässä on nyt "mml":stä sellainen versio, joka toimii myös ZTE:n kanssa. (Toimii siis E180:lla myös.)
Hirmun epävarmaa kaikenkaikkiaan on Ubuntulla sarjaporttien toiminta sekä Huaweilla että ZTE:llä. Välillä toimii vain koko koneen buuttauksen jälkeen, välillä vaatii 3G-yhteyden pystytyksen, välillä ei sitä hyväksy. Mikä näihin vaihteluihin lienee syynä? Myös vasteita hukkuu modeemien lähettämään pöperöön, eli komennon joutuu usein antamaan pari kertaa,
Toimiessaan Huawein tulostus näyttää tältä:
Modeemi
-------
Valmistaja: huawei
Malli: E180
Revisio: 11.104.10.00.00
Radioverkko
-----------
Operaattori: dna
Sijaintialue: 01F/31
Solutunnus: 3CA66/
Aktiivisena: Vain 3G/UMTS
Signaali: -95 dB
Datapalvelu
-----------
Palvelun tila: Datapalvelu OK
Kaytettavissa: Piiri- ja pakettikytk.
Radioverkko: Kotiverkossa
Datasiirto: WCDMA-tila
SIM-kortti: SIM-kortti OK
Ja ZTE:n tulostus tältä:
Modeemi
-------
Valmistaja: ZTE INCORPORATED
Malli: MF636+
Revisio: BD_EL
Radioverkko
-----------
Operaattori: Elisa
Sijaintialue: 5B00CC
Solutunnus: 527C6
Aktiivisena: Vain 3G/UMTS
Signaali: -103 dB
Datapalvelu
-----------
Teknologia: 3G
Kaytettavissa: CS_PS
Verkkovierailu: ROAM_ON
Ja itse skripti on tällainen:
#!/bin/bash
# MML - Modem Monitor for Linux
# Ubuntu version - Anttu 090923
# Portin määritys ja vikatulostukset piiloon
echo " "
case $1 in
"") echo "Anna myös modeemin sarjaportti: esim: \"mml /dev/ttyUSB1\""
echo ""
echo "Komennolla \"dmesg |grep -i modem\" saat tietoa kytketyistä porteista."
echo ""
exit;;
*) DIAGPORT=$1;;
esac
# Ylimääräisten tulostusten piilotus
exec 2> /dev/null
# --- Huawei-modeemi ---
HUA=`lsusb |grep -i Huawei`
if [ -n "$HUA" ]; then
# Tietojen kysely modeemilta
echo ""
echo -n "Odota, haetaan tietoja.."
echo at > $DIAGPORT && cat > /dev/null $DIAGPORT & sleep 1 && killall cat ||(sleep 1 && echo at > $DIAGPORT && cat > /dev/null $DIAGPORT & sleep 1 && killall cat)
echo -n "."
MODEM=`echo ati > $DIAGPORT && cat $DIAGPORT & sleep 1 && killall cat ||(sleep 1 && echo ati > $DIAGPORT && cat $DIAGPORT & sleep 1 && killall cat)`
MANUF=`echo $MODEM |grep : |cut -d":" -f2 |cut -d"M" -f1`
MODEL=`echo $MODEM |grep : |cut -d":" -f3 |cut -d"R" -f1`
REVIS=`echo $MODEM |grep : |cut -d":" -f4 |cut -d"I" -f1`
echo -n "."
RSSI=`echo at+csq > $DIAGPORT && cat $DIAGPORT |grep +CSQ |cut -d" " -f2 |cut -d"," -f1 & sleep 1 && killall cat ||(sleep 1 && echo at+csq > $DIAGPORT && cat $DIAGPORT |grep +CSQ |cut -d" " -f2 |cut -d"," -f1 & sleep 1 && killall cat)`
SIG=`expr 2 \* $RSSI - 113` 2>/dev/null
SYSCO=`echo at^sysconfig? > $DIAGPORT && cat $DIAGPORT |grep SYSCONFIG: |cut -d":" -f2 & sleep 1 && killall cat ||(sleep 1 && echo at^sysconfig? > $DIAGPORT && cat $DIAGPORT |grep SYSCONFIG: |cut -d":" -f2 & sleep 1 && killall cat)`
echo -n "."
DATAP=`echo at^sysinfo > $DIAGPORT && cat $DIAGPORT |grep SYSINFO: |cut -d":" -f2 & sleep 1 && killall cat ||(sleep 1 && echo at^sysinfo > $DIAGPORT && cat $DIAGPORT |grep SYSINFO: |cut -d":" -f2 & sleep 1 && killall cat)`
DPTILA=`echo $DATAP |cut -d"," -f1`
DPKAYT=`echo $DATAP |cut -d"," -f2`
DPVIER=`echo $DATAP |cut -d"," -f3`
DPRAT=`echo $DATAP |cut -d"," -f4`
DPSIM=`echo $DATAP |cut -d"," -f5`
echo -n "."
echo at+creg=2 > $DIAGPORT && cat $DIAGPORT >/dev/null & sleep 1 && killall cat ||(sleep 1 && at+creg=2 > $DIAGPORT && cat $DIAGPORT >/dev/null & sleep 1 && killall cat)
CREG=`echo at+creg? > $DIAGPORT && cat $DIAGPORT |grep CREG: |cut -d":" -f2 & sleep 1 && killall cat ||(sleep 1 && echo at+creg? > $DIAGPORT && cat $DIAGPORT |grep CREG: |cut -d":" -f2 & sleep 1 && killall cat)`
LACH=`echo $CREG |cut -d"," -f3`
LAC=$((0x0$LACH)) 2>/dev/null
CIH=`echo $CREG |cut -d"," -f4`
SCRAT=`echo $SYSCO |cut -d":" -f2 |cut -d"," -f1`
echo -n "."
ROAM=`echo $DATAP |cut -d"," -f3`
echo at+cops=3,1 > $DIAGPORT && cat $DIAGPORT >/dev/null & sleep 1 && killall cat ||(sleep 1 && at+cops=3,1 > $DIAGPORT && cat $DIAGPORT >/dev/null & sleep 1 && killall cat)
echo -n "."
NETW=`echo at+cops? > $DIAGPORT && cat $DIAGPORT |grep COPS: & sleep 1 && killall cat ||(sleep 1 && echo at+cops? > $DIAGPORT && cat $DIAGPORT |grep COPS: & sleep 1 && killall cat)`
OPER=`echo $NETW |cut -d":" -f2 |cut -d"\"" -f2`
ELISA=`echo $NETW |grep -i elisa`
if [ "$ROAM" = '1' -a -n "$ELISA" ]; then
OPER="Saunalahti (Elisa)"
fi
# Tietojen tulostus
echo -e "\n\n\n\n\n\n\n\n"
echo "Modeemi"
echo "-------"
echo -n -e "Valmistaja:\t"
echo $MANUF
echo -n -e "Malli: \t"
echo $MODEL
echo -n -e "Revisio: \t"
echo $REVIS
echo ""
echo "Radioverkko"
echo "-----------"
echo -n -e "Operaattori:\t"
echo $OPER
echo -n -e "Sijaintialue: \t"
echo $LACH"/"$LAC
echo -n -e "Solutunnus: \t"
echo $CIH"/"$CI
echo -n -e "Aktiivisena:\t"
case $SCRAT in
"2") echo "3G/2G-automatiikka";;
"14") echo "Vain 3G/UMTS";;
"13") echo "Vain 2G/GPRS";;
esac
echo -n -e "Signaali: \t" 2>/dev/null
echo $SIG dB
echo ""
echo "Datapalvelu"
echo "-----------"
echo -n -e "Palvelun tila:\t"
case $DPTILA in
"0") echo "Ei verkossa";;
"1") echo "Rajoitettu palvelu";;
"2") echo "Datapalvelu OK";;
"3") echo "Aluerajoitettu palvelu";;
"4") echo "Virransaastotila";;
esac
echo -n -e "Kaytettavissa:\t"
case $DPKAYT in
"0") echo "Ei verkkoa";;
"1") echo "Piirikytkentainen";;
"2") echo "Pakettikytkentainen";;
"3") echo "Piiri- ja pakettikytk.";;
esac
echo -n -e "Radioverkko:\t"
case $DPVIER in
"0") echo "Kotiverkossa";;
"1") echo "Vieraassa verkossa";;
esac
echo -n -e "Datasiirto:\t"
case $DPRAT in
"0") echo "Ei verkossa";;
"3") echo "GSM/GPRS-tila";;
"5") echo "WCDMA-tila";;
esac
echo -n -e "SIM-kortti:\t"
case $DPSIM in
"0") echo "Ei kaytettavissa";;
"1") echo "SIM-kortti OK";;
"255") echo "Ei korttia/PIN-lukittu";;
esac
echo ""
fi
# --- ZTE-modeemi ---
ZTE=`lsusb |grep -i 19d2`
if [ -n "$ZTE" ]; then
# Tietojen kysely modeemilta
echo ""
echo -n "Odota, haetaan tietoja.."
echo at+cpms? > $DIAGPORT && cat > /dev/null $DIAGPORT & sleep 1 && killall cat
echo -n "."
MODEM=`echo ati > $DIAGPORT && cat $DIAGPORT & sleep 1 && killall cat`
MANUF=`echo $MODEM |grep : |cut -d":" -f2 |cut -d"M" -f1`
MODEL=`echo $MODEM |grep : |cut -d":" -f3 |cut -d"R" -f1`
REVIS=`echo $MODEM |grep : |cut -d":" -f4 |cut -d"I" -f1`
echo -n "."
RSSI=`echo at+csq > $DIAGPORT && cat $DIAGPORT |grep +CSQ |cut -d" " -f2 |cut -d"," -f1 & sleep 1 && killall cat`
SIG=`expr 2 \* $RSSI - 113` 2>/dev/null
echo -n "."
DATAP=`echo at+zdon? > $DIAGPORT && cat $DIAGPORT & sleep 1 && killall cat |grep ZDON`
DPTILA=`echo $DATAP |cut -d"," -f1`
DPVIER=`echo $DATAP |cut -d"\"" -f6`
DATA2=`echo at+zpas? > $DIAGPORT && cat $DIAGPORT & sleep 1 && killall cat |grep ZPAS:`
DPRAT=`echo $DATA2 |cut -d"\"" -f2`
DPKAYT=`echo $DATA2 |cut -d"\"" -f4`
echo -n "."
echo at+creg=2 > $DIAGPORT && cat > /dev/null $DIAGPORT & sleep 1 && killall cat
LACI=`echo at+creg? > $DIAGPORT && cat $DIAGPORT & sleep 1 && killall cat |grep CREG:`
LACH=`echo $LACI |cut -d"," -f3|cut -d"O" -f1`
CIH=`echo $LACI |cut -d"," -f4|cut -d"O" -f1`
SCRAT=`echo at+zsnt? > $DIAGPORT && cat $DIAGPORT & sleep 1 && killall cat |grep ZSNT:`
SCRAT=`echo $SCRAT |cut -d":" -f2`
echo -n "."
ROAM=`echo $DATAP |cut -d"," -f3`
echo at+cops=3,1 > $DIAGPORT && cat > /dev/null $DIAGPORT & sleep 1 && killall cat
echo -n "."
NETW=`echo at+cops? > $DIAGPORT && cat $DIAGPORT & sleep 1 && killall cat`
OPER=`echo $NETW |cut -d":" -f2 |cut -d"\"" -f2`
ROAM=`echo $DATAP |cut -d"\"" -f6`
OPER=`echo $OPER |grep -i elisa`
if [ "$ROAM" = 'ROAM_ON' -a -n "$OPER" ]; then
$OPER="Saunalahti (Elisa)"
fi
# Tietojen tulostus
echo -e "\n\n\n\n\n\n\n\n"
echo "Modeemi"
echo "-------"
echo -n -e "Valmistaja:\t"
echo $MANUF
echo -n -e "Malli: \t"
echo $MODEL
echo -n -e "Revisio: \t"
echo $REVIS
echo ""
echo "Radioverkko"
echo "-----------"
echo -n -e "Operaattori:\t"
echo $OPER
echo -n -e "Sijaintialue: \t"
echo $LACH" "$LAC
echo -n -e "Solutunnus: \t"
echo $CIH
echo -n -e "Aktiivisena:\t"
case $SCRAT in
" 0,0,2 OK") echo "3G/2G-automatiikka";;
" 2,0,0 OK") echo "Vain 3G/UMTS";;
" 1,0,0 OK") echo "Vain 2G/GPRS";;
*) echo "Anna komento 2g, 3g tai auto";;
esac
echo -n -e "Signaali: \t" 2>/dev/null
echo $SIG dB
echo ""
echo "Datapalvelu"
echo "-----------"
echo -n -e "Teknologia:\t"
echo $DPRAT
echo -n -e "Kaytettavissa:\t"
echo $DPKAYT
echo -n -e "Verkkovierailu:\t"
echo $DPVIER
echo ""
echo ""
fi
# END
Skriptin voi siis copy-pasteta tekstitiedostoksi ja ajaa. Ohjetta tähän on muutama pykälä taaempana tässä samassa threadissa.