Главная категория > Linux

Mageia 7 86_64 и доводим её до ума

<< < (6/7) > >>

Master X:
Или:Вставляем в /lib/udev/rules.d/40-usb_modeswitch.rules сверху

--- Код: ---
KERNEL=="sr*",ACTION=="add",ATTRS{idVendor}=="2020",ATTRS{idProduct}=="0002",RUN+="/usr/bin/eject.sh -s /dev/%k"
ACTION=="add",ATTRS{idVendor}=="2020",ATTRS{idProduct}=="4000",RUN+="/usr/bin/usbserial-driver-bind.sh %s{idVendor} %s{idProduct}"
KERNEL=="ttyACM0|ttyUSB0",ACTION=="add",ATTRS{idVendor}=="2020",ATTRS{idProduct}=="4000",RUN+="/usr/bin/3g_connect.sh %k"
--- Конец кода ---

Создаём /usr/bin/3g_connect.sh

--- Код: ---
#!/bin/sh

#by zhuhaiyan 20120712

# check device
if [ "$1" = "" ]; then
    echo "device is null. exit 1."
    exit 1
fi

dev_str=`echo $1 | grep "tty"`
if [ "$dev_str" == "" ]; then
    echo "$1 is a invalid device! exit 1."
    exit 1
fi

dev_str=`ls /dev/tty* | grep "$1"`
if [ "$dev_str" == "" ]; then
    echo "$1 is not exist! exit 1."
    exit 1
fi

# check ppp0
ppp0_str=`ifconfig | grep "ppp0"`

if [ "$ppp0_str" != "" ]; then
    echo "ppp0 is exist! exit 0"
    exit 0
fi

# init comm port.
/usr/bin/atinit /dev/ttyUSB0
/usr/bin/atinit /dev/ttyUSB1
#check pin sim status.
`cat /dev/$1 > /tmp/devicelock & sleep 1` 1>/dev/null 2>&1
killall cat

`cat /dev/$1 > /tmp/cfun & chat -V "" "AT+CFUN=1" < /dev/$1 > /dev/$1` 1>/dev/null 2>&1
sleep 1
killall cat

`cat /dev/$1 > /tmp/devicelock & chat -V "" "AT+CPIN?" < /dev/$1 > /dev/$1` 1>/dev/null 2>&1
sleep 1
killall cat

at_return=`grep "READY" /tmp/devicelock`

if [ "$at_return" == "" ]; then
    echo "Invalid SIM card, please check sim pin status."
    exit 1
fi

echo "SIM is ready!!"

#for auto find apn and connect to internet.

#kill modem-manager of ubuntu.
#killall modem-manager
#get apn profile

tries=0
string_plmn=""

while [ $tries -le 3 -a "$string_plmn" = "" ]; do
#============================do======================
echo get plmn by +bmhplmn tries=$tries
#get all data from modem.
`cat /dev/$1 > /tmp/bmhplmn & sleep 1` 1>/dev/null 2>&1
killall cat
#get PLMN
`cat /dev/$1 > /tmp/bmhplmn & chat -V "" "AT+BMHPLMN" < /dev/$1 > /dev/$1` 1>/dev/null 2>&1
sleep 1
killall cat

# echo AT RETURN:
# cat /tmp/bmhplmn

at_return=`grep "+BMHPLMN:" /tmp/bmhplmn`

if [ "$at_return" != "" ]; then
   
    string_plmn=`echo $at_return | awk '{print $2}'`
    if [ "$string_plmn" = "" ]; then
        tries=$((tries + 1))
        continue
    fi
   
    string_plmn=`expr substr $string_plmn 1 5`
    break
fi

tries=$((tries + 1))
#==================================done==========
done

tries=0

while [ $tries -le 3 -a "$string_plmn" = "" ]; do
#=============================do=======================

if [ "$string_plmn" = "" ]; then
    echo get imsi by +cimi tries=$tries
    #get all data from modem.
    `cat /dev/$1 > /tmp/cimi & sleep 1` 1>/dev/null 2>&1
    killall cat

    #get cimi
    `cat /dev/$1 > /tmp/cimi & chat -V "" "AT+CIMI" < /dev/$1 > /dev/$1` 1>/dev/null 2>&1
    sleep 1
    killall cat

    echo AT RETURN:
    cat /tmp/cimi
    at_return=`grep "[0-9]" /tmp/cimi`

    if [ "$at_return" = "" ]; then
        echo invalid imsi.
        tries=$((tries + 1))
        continue
    fi
   
    string_cimi=`echo $at_return | awk '{print $1}'`
    if [ "$string_cimi" = "" ]; then
        echo fail to get cimi.
        tries=$((tries + 1))
        continue
    fi
   
    #get 5 num for plmn form imsi.
    string_plmn=`expr substr $string_cimi 1 5`
   
fi
#=========================done===================
done

if [ "$string_plmn" = "" ]; then
    echo fail to get PLMN.
    exit 1
fi

echo success to get PLMN=$string_plmn

tries=0
string_OK=""
while [ $tries -le 3 -a "$string_OK" = "" ]; do
#===================================do=================
#get all data from modem.
`cat /dev/$1 > /tmp/cfun & sleep 1` 1>/dev/null 2>&1
killall cat

`cat /dev/$1 > /tmp/cfun & chat -V "" "AT+CFUN=1" < /dev/$1 > /dev/$1` 1>/dev/null 2>&1
sleep 1
killall cat

string_OK=`grep "OK" /tmp/cfun`

tries=$((tries + 1))
#=================================done=================
done

if [ "$string_OK" = "" ]; then
    echo fail to execute at+cfun=1
    exit 1
fi

echo successfull to execute at+cfun=1
echo "start to wait for register network..."

tries=0
string_RegHome=""
string_RegRoaming=""
string_Reg="0"

while [ $tries -le 45 -a "$string_Reg" = "0" ]; do
#===================================do=================
echo "wait for network registered...,tries=$tries"
#get all data from modem.
`cat /dev/$1 > /tmp/cgatt & sleep 1` 1>/dev/null 2>&1
killall cat

`cat /dev/$1 > /tmp/cgatt & chat -V "" "AT+CREG?" < /dev/$1 > /dev/$1` 1>/dev/null 2>&1
sleep 1
killall cat

string_RegHome=`grep ",1" /tmp/cgatt`
string_RegRoaming=`grep ",5" /tmp/cgatt`
if [ "$string_RegHome" != "" -o "$string_RegRoaming" != "" ]; then
    string_Reg="1"
fi

tries=$((tries + 1))
#=================================done=================
done

if [ "$string_Reg" = "0" ]; then
    echo "fail to register network, please check."
    exit 1
fi

echo "successfull to register network."

#get apn profile
apn_profile=`grep $string_plmn /etc/3g_modem_connection/apn.dat`
echo get apn profile = $apn_profile
apn_dial=`echo $apn_profile | awk -F, '{ print $3 }'`
apn_user=`echo $apn_profile | awk -F, '{ print $4 }'`
apn_pass=`echo $apn_profile | awk -F, '{ print $5 }'`
apn_apn=`echo $apn_profile | awk -F, '{ print $6 }'`
apn_auth=`echo $apn_profile | awk -F, '{ print $7 }'`

echo apn_dial=$apn_dial
echo apn_user=$apn_user
echo apn_pass=$apn_pass
echo apn_apn=$apn_apn
echo apn_auth=$apn_auth

#make a chat script
cp /etc/3g_modem_connection/3g.template /etc/3g_modem_connection/3g
sed -i "s/__DIAL__/$apn_dial/g" /etc/3g_modem_connection/3g
if [ "$apn_apn" != "" ]; then
    sed -i "s/__APN__/$apn_apn/g" /etc/3g_modem_connection/3g
    sed -i "s/__NO_APN__/OK/g" /etc/3g_modem_connection/3g
else
    sed -i "s/__NO_APN__/#/g" /etc/3g_modem_connection/3g
fi


#make a pppd connection script.
cp /etc/ppp/peers/3g.template /etc/ppp/peers/3g
sed -i "s/__DEVICE__/$1/g" /etc/ppp/peers/3g
sed -i "s/__USER__/$apn_user/g" /etc/ppp/peers/3g
sed -i "s/__DIAL__/$apn_dial/g" /etc/ppp/peers/3g
sed -i "s/__APN__/$apn_apn/g" /etc/ppp/peers/3g
#make pap-secrets
cp /etc/ppp/pap-secrets.template /etc/ppp/pap-secrets
sed -i "s/__USER__/$apn_user/g" /etc/ppp/pap-secrets
sed -i "s/__PASSWORD__/$apn_pass/g" /etc/ppp/pap-secrets
#make chap-secrets
cp /etc/ppp/chap-secrets.template /etc/ppp/chap-secrets
sed -i "s/__USER__/$apn_user/g" /etc/ppp/chap-secrets
sed -i "s/__PASSWORD__/$apn_pass/g" /etc/ppp/chap-secrets

tries_pppd_call_3g=0
ppp0_str=""

while [ $tries_pppd_call_3g -le 3 -a "$ppp0_str" = "" ]; do
#==========================================================
exit 0
#connect to internet
pppd call 3g

tries=0
echo "pppd connecting...(timeout=120 seconds)"
ppp0_str=`ifconfig | grep "ppp0"`

while [ "$ppp0_str" = "" -a $tries -le 120 ]; do
    sleep 1
    echo "pppd connecting...,tries=$tries"
    ppp0_str=`ifconfig | grep "ppp0"`

    tries=$((tries + 1))
done

if [ "$ppp0_str" != "" ]; then
    echo "pppd is connected."

else
    killall pppd
    sleep 1
    /usr/bin/modemtoatmode
    sleep 2
fi
#===========================done============================
tries_pppd_call_3g=$((tries_pppd_call_3g + 1))

done

if [ "$ppp0_str" = "" ]; then
    echo "pppd connection timeout! exit 1."
    killall -9 pppd
    exit 1
fi

#end
--- Конец кода ---

Создаём /usr/bin/eject.sh

--- Код: ---
#!/bin/sh

#by zhuhaiyan 20130406

#bind usb2serial driver.
/usr/bin/usbserial-driver-bind.sh 2020 4000

#eject the cdrom.
/usr/bin/eject -s $1
--- Конец кода ---


Создаём /usr/bin/usbserial-driver-bind.sh

--- Код: ---
#!/bin/sh

#by zhuhaiyan 20120716 for usb serial deiver bind

if [ "$1" != "" -a "$2" != "" ]; then
modprobe -r usbserial
        modprobe usbserial "vendor=0x$1" "product=0x$2"   
fi
--- Конец кода ---

Делаем их выполняемыми:
cd /usr/bin
chmod +x *.sh
http://elementary.today/forum/viewtopic.php?id=713
Ещё про модемы:
/usr/lib/libDrakX/network/connection/providers/cellular_extra.pm -от сюда берутся логины пароли днски(при настройке подключения) и складываются в /etc/sysconfig/network-scripts/chat-ppp0 отсюда и подключение происходит.

Master X:
Если захотелось перейти с релиза на альфу, бэту etc(а переустанавливать не хочется) то:
СпойлерУдаляем старые источники:
--- Код: ---
urpmi.removemedia -a
--- Конец кода ---
Добавляем новые:
--- Код: ---
urpmi.addmedia --all-media --distrib ftp://mirror.yandex.ru/mageia/distrib/cauldron/x86_64
--- Конец кода ---

или:

--- Код: ---
urpmi.addmedia --all-media --distrib http://aglae.biomedicale.univ-paris5.fr/distrib/cauldron/x86_64/
--- Конец кода ---
для 586й архитектуры:
--- Код: ---
urpmi.addmedia --all-media --distrib ftp://mirror.yandex.ru/mageia/distrib/cauldron/i586
--- Конец кода ---
Обновляемся:
--- Код: ---
urpmi --replacefiles --auto-update --auto
--- Конец кода ---

Перезагружаемся.Наводим красоту:

--- Код: ---
drakrpm-edit-media --expert
--- Конец кода ---
Удаляем все источники. Жмём "Добавить"
Note:  Галки напротив Debug и Testing лучше не ставить, можно увалить систему тестовыми пакетами.

  #LC_ALL=C msecgui -Запуск апплета:Настройка безопасности, прав доступа и аудита системы, так же будет вывод консоли на инглише.

Master X:
#LC_ALL=C имя утилиты, запустится на инглише, для багтрекера.

Master X:
А чтоб 3Г модем заработал:

/etc/sysconfig/network-scripts/chat-ppp0

ABORT BUSY
ABORT ERROR
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT 'Invalid Login'
ABORT 'Login incorrect'
ABORT VOICE
ABORT 'NO ANSWER'
ABORT DELAYED
ABORT 'SIM PIN'
'' ATZ
OK-AT-OK 'AT+CPIN?'
OK-AT-OK 'AT+CMEE=2'
OK-AT-OK 'AT+CGDCONT=1,"IP","internet"'
OK-AT-OK 'AT+CGATT?'
OK 'ATDT*99#'
TIMEOUT 120
CONNECT ''
TIMEOUT 5
'~--' ''

Master X:
Чтоб управлять вантузом в локалке, нужно установить:
# urpmi  rammina remmina-plugins-rdp
НО Перед этим на вантузе надо выполнить:
 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Чтоб в эти реестры приклеелось...(от одмена)... хз... Так нада...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Произошла ошибка благодарности
Думаю...
Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 
Перейти к полной версии