/etc/devd/k3772z.conf
#
# vodafone K3772Z
#
attach 100 {
device-name "umodem[0-9]+";
match "vendor" "0x19d2";
match "product" "0x1181";
action "/root/vodafone/umts_stick.perl -a";
};
/etc/ppp/ppp.conf
default:
set log Phase Chat LCP IPCP CCP tun command +connect
vodafone:
set device /dev/cuaU0
set speed 460800
set phone *99***1\#
set authname vodafone
set authkey
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
\"\" \
AT OK-AT-OK \
AT+CFUN=1 OK-AT-OK \
AT+CSQ OK \
AT+CGDCONT=1,\\\"IP\\\",\\\"vitamax.snet.vodafone.net\\\" OK \
AT+CGACT? OK-AT-OK \
AT+CGATT? OK \
AT+COPS? OK \
ATD*99***1# CONNECT"
set timeout 180 # 3 minute idle timer (the default)
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
set vj slotcomp off
set crtscts on
add default HISADDR
# enable dns # request DNS info (for resolv.conf) ## vodafone eseteben nalam nem mukodik
# resolv rewrite # igy workaround lesz ;)
/root/vodafone/umts_stick.perl
#!/usr/bin/perl
#
# Copyright (C) 2009 Lars Engels <lars@0x20.net>
# All rights reserved. Standard 2-clause BSD license and disclaimer applies.
# umts_stick
use strict;
use warnings;
use Getopt::Std;
my $VERSION = 0.1;
my $modem = "/dev/cuaU0"; # Change to your device name
my $pin = "0000"; # Insert your device's PIN
my $rc = 0;
my %options=();
$SIG{ALRM} = sub {
die("Timeout: no response from modem $modem\n");
};
sub query_pin_status;
sub query_provider;
sub query_signal;
sub send_pin;
sub usage;
usage if ((@ARGV <= 0) || (@ARGV >= 2));
getopts("ahsp", \%options) or usage;
usage if defined $options{h};
open(MODEM, "+<", $modem) or die("can't open modem $modem: $!");
alarm(10);
send_pin if defined $options{a};
if (defined $options{s}) {
query_provider;
sleep(1);
query_signal;
}
query_pin_status if defined $options{p};
close(MODEM) or die "Cannot close modem: $!";
exit $rc;
#### SUBS ####
sub query_pin_status {
my $query_pin_cmd = "AT+CPIN?\n\r";
print MODEM $query_pin_cmd;
while (<MODEM>) {
if (/READY/) {
print "Ready: PIN already accepted or no PIN needed.\n";
last;
} elsif (/SIM\ PIN/) {
print "Waiting for PIN.\n";
last;
} elsif (/SIM\ PUK/) {
print "Waiting for PUK.\n";
last;
} elsif (/^(OK)|$/) {
next;
} else {
print "Unknown PIN status!\n";
$rc = 1;
}
}
$rc = 0;
}
sub query_provider {
my $query_prov_cmd = "AT+COPS?\n\r";
my @conn_types = ('GSM', 'Compact GSM', 'UMTS', 'EDGE', 'UMTS with HSDPA', 'UMTS with HSUPA', 'UMTS with HSDPA and HSUPA');
print MODEM $query_prov_cmd;
while (<MODEM>) {
if (/^\+COPS/) {
my (undef, undef, $provider, $conn_type) = split /,/;
printf "Provider: %s\nConnection type: %s\n", $provider, $conn_types[$conn_type];
$rc = 0;
last;
}
}
}
sub query_signal {
my $query_signal_cmd = "AT+CSQ\n\r";
print MODEM $query_signal_cmd;
while (<MODEM>) {
if (/^\+CSQ:\ (\d+),\d+/) {
my $rssi = $1;
printf "Signal strength: %d dBm\n", ($rssi * 2) - 113;
$rc = 0;
last;
}
}
}
sub send_pin {
my $send_pin_cmd = "AT+CPIN=\"$pin\"\n\r";
print MODEM $send_pin_cmd;
while (<MODEM>) {
if (/OK/) {
print "PIN accepted\n" ;
$rc = 0;
last;
}
if (/ERROR/) {
print "PIN rejected\n" ;
$rc = 1;
last;
}
}
}
sub usage {
print "Usage: $0 [-a] [-h] [-s] [-p]\n";
print "Options:\n";
print " -a send PIN to device\n";
print " -s print current provider, connection type and signal quality\n";
print " -p get current PIN status\n";
print " -h this help message\n";
exit -1;
}
~/bin/vodafone-3g.sh
#!/bin/sh
#/root/vodafone/umts_stick.perl -a
/usr/sbin/ppp -ddial vodafone
/bin/echo "nameserver 80.244.97.30" > /etc/resolv.conf
/bin/echo "nameserver 80.244.98.166" >> /etc/resolv.conf
A kernelmodulokat egy alapbol szallitott devd szabaly behuzza, igy ezzel a resszel nem kell torodni.
Elso lepesben a /etc/devd/k3772z.conf file kell a helyere rakni, es ezt kovetoen kiadni a service devd restart parancsot. Ha ez megvan, johet a ppp config, ami a /etc/ppp/ppp.conf file szerkesztesevel tortenik meg. Kovetkezo lepes az umts_stick.perl beszerzese, amit fentrol ki lehet masolni, vagy innen: http://wiki.bsdforen.de/howto/umts_mit_huawei .Utolso lepesben meg az egeszre egy wrapper scriptet letrehozni, mivel a DNS infokat nem kaptam a vodafone-tol, igy a DNS beallitasokat kezzel allitjuk be.
A network-managert es mas monstrumot nem kivanok hasznalni, ahogy lathato, par sorral elintezheto az egesz.
- pinyo_villany blogja
- A hozzászóláshoz be kell jelentkezni
- 44396 megtekintés
Hozzászólások
Es a GENERIC (nem tudom a FBSD hogy hivja az alapbol szallitottat) kernel tartalmazza is a felsorolt modulokat?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Jol irtad, GENERIC-nek hivjak. Az en 9.1-es gepemen a kovetkezo a felallas:
gyari kernelbe beleforditva ott van az umass es az u3g, es mind a 3 elerheto modulbol. Mint szerepel is, ha nem herelte ki az ember a /etc/devd/usb.conf fajlt, akkor a modulok automatikusan betoltodnek. Mondjuk annyi furcsasagot latok, hogy nalam a vendorID=0x19d2 mellett szep hosszu lista szerepel, de abban a listaban a productID=0x1181 eppen pont nem szerepel. (Es amugy is csak az u3g/t toltene be, az umodemet nem.)
Azaz vagy kezzel kiadod, hogy kldload umodem, vagy automatizalod, pl. bele lehet tenni valamelyikbe:
a) /boot/loader.conf -ba
umodem_load="YES"
b) /etc/rc.config -ba
kld_list="umodem"
es innentol minden tovabbi boot-nal is betoltodik.
Valamint akar a fentebb emlitett devd-vel is lehet jatszani, hogy berantsa az ember. Ha megteheto, en szemely szerint ez utobbit tartom jonak, minek legyen bent egy modul ha amugy nem kell. Ehhez pedig csinalsz egy devd konfig fajlt. *Elvben* a helye: /etc/devd.conf (gyarilag keszen van, szerintem nem jo piszkalni), /etc/devd/*.conf (itt van pl. az usb.conf, szinten nem jo piszkalni), iletve /usr/local/etc/devd/*.conf - no ide kene egy uj szabaly:
c) pl. /usr/local/etc/devd/umodem.conf
nomatch 32 {
match "bus" "uhub[0-9]+";
match "mode" "host";
match "vendor" "0x19d2";
match "product" "0x1181";
action "kldload -n umodem";
};
Nekem a leirasbol az nem derult ki, hogy Pinyonal mitol van umodem. De termeszetesen a ket devd.conf -os reszt (amit Piny irt, es amit en irtam) ossze is lehet vonni egy fajlba. A "nomatch" resz (amit en irtam) a megfelelo stick eseten (ha nem ismerte volna fel a rendszer) betolti az umodemet, az "attach" resz (amit Pinyo), az pedig a konkret umodem eszkoznel lefuttatja az inicializalo parancsot.
- A hozzászóláshoz be kell jelentkezni
Fu, koszi. Igazabol csak a generices resz erdekelt.
Akkor a devd kb megfelel a linuxos udevnek ha jol sejtem...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni