Re: Мобила и FreeBSD
Добавлено: 2008-12-04 19:22:25
под любой небудет
у каждой свой usbdev -v
у каждой свой usbdev -v
Чем глубже в песке твоя голова - тем беззащитнее жопа
https://forum.lissyara.su/
Код: Выделить всё
diff -urN filename1 filename2
Код: Выделить всё
--- umodem.c 2007-07-30 00:16:43.000000000 +0600
+++ /backup/jail/ftp/var/ftp/pub/FreeBSD/patches/SE_K550i/umodem.c 2008-11-25 02:20:41.000000000 +0500
@@ -127,6 +127,7 @@
{ USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_AHK3001V, 0 },
{ USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC5720, 0 },
{ USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_PC5740, 0 },
+ { 0x0fce, 0xd069, 1 },
{ 0, 0, 0 },
};
@@ -180,6 +181,8 @@
static void umodem_get_caps(usbd_device_handle, int *, int *);
+static usb_cdc_union_descriptor_t *
+umodem_get_union(usbd_device_handle dev, int iface_no);
static void umodem_get_status(void *, int portno, u_char *lsr, u_char *msr);
static void umodem_set(void *, int, int, int);
static void umodem_dtr(struct umodem_softc *, int);
@@ -280,6 +291,7 @@
usb_interface_descriptor_t *id;
usb_endpoint_descriptor_t *ed;
usb_cdc_cm_descriptor_t *cmd;
+ usb_cdc_union_descriptor_t *cud;
int data_ifcno;
int i;
struct ucom_softc *ucom;
@@ -302,11 +314,13 @@
/* Get the data interface no. */
cmd = umodem_get_desc(dev, UDESC_CS_INTERFACE, UDESCSUB_CDC_CM);
if (cmd == NULL) {
- device_printf(sc->sc_dev, "no CM descriptor\n");
+ cud = umodem_get_union(dev, sc->sc_ctl_iface_no);
+ if (cud ==NULL) {
+ device_printf(sc->sc_dev, "no CM and Union descriptors\n");
goto bad;
- }
- sc->sc_data_iface_no = data_ifcno = cmd->bDataInterface;
-
+ }else data_ifcno = cud->bSlaveInterface[0];
+ }else data_ifcno = cmd->bDataInterface;
+ sc->sc_data_iface_no = data_ifcno;
device_printf(sc->sc_dev,
"data interface %d, has %sCM over data, has %sbreak\n",
data_ifcno, sc->sc_cm_cap & USB_CDC_CM_OVER_DATA ? "" : "no ",
@@ -538,19 +552,36 @@
*cm = *acm = 0;
- cmd = umodem_get_desc(dev, UDESC_CS_INTERFACE, UDESCSUB_CDC_CM);
- if (cmd == NULL) {
- DPRINTF(("umodem_get_desc: no CM desc\n"));
- return;
- }
- *cm = cmd->bmCapabilities;
-
cad = umodem_get_desc(dev, UDESC_CS_INTERFACE, UDESCSUB_CDC_ACM);
if (cad == NULL) {
DPRINTF(("umodem_get_desc: no ACM desc\n"));
return;
}
*acm = cad->bmCapabilities;
+
+ cmd = umodem_get_desc(dev, UDESC_CS_INTERFACE, UDESCSUB_CDC_CM);
+ if (cmd == NULL) {
+ DPRINTF(("umodem_get_desc: no CM desc\n"));
+ *cm = USB_CDC_CM_DOES_CM | USB_CDC_CM_OVER_DATA;
+ }else *cm = cmd->bmCapabilities;
+}
+
+usb_cdc_union_descriptor_t *
+umodem_get_union(usbd_device_handle dev, int iface_no)
+{
+ usb_cdc_union_descriptor_t *desc;
+ usb_config_descriptor_t *cd = usbd_get_config_descriptor(dev);
+ uByte *p = (uByte *)cd;
+ uByte *end = p + UGETW(cd->wTotalLength);
+ while (p < end) {
+ desc = (usb_cdc_union_descriptor_t *)p;
+ if (desc->bDescriptorType == UDESC_CS_INTERFACE &&
+ desc->bDescriptorSubtype == UDESCSUB_CDC_UNION &&
+ desc->bMasterInterface == iface_no)
+ return (desc);
+ p += desc->bLength;
+ }
+ return (0);
}
void
Код: Выделить всё
FreeBSD cs.cns.org.ua 7.1-STABLE FreeBSD 7.1-STABLE #7: Tue Feb 3 03:51:55 UTC 2009 root@cs.cns.org.ua:/usr/src/sys/i386/compile/SERVER i386
Код: Выделить всё
[root@cs /ftp/ftp/public]# patch umodem.c < patch.diff
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- umodem.c 2007-07-30 00:16:43.000000000 +0600
|+++ /backup/jail/ftp/var/ftp/pub/FreeBSD/patches/SE_K550i/umodem.c 2008-11-25 02:20:41.000000000 +0500
--------------------------
Patching file umodem.c using Plan A...
Hunk #1 failed at 127.
Hunk #2 failed at 181.
2 out of 2 hunks failed--saving rejects to umodem.c.rej
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|
--------------------------
File to patch: umodem.c
Patching file umodem.c using Plan A...
Hunk #1 failed at 291.
Hunk #2 failed at 314.
Hunk #3 failed at 552.
3 out of 3 hunks failed--saving rejects to umodem.c.rej
done
Код: Выделить всё
И, видно, где-то допустил логическую очепятку, потому что файл откомпилился, а устройство все равно не появилось!
Пишем в /root/.cshrc:MAK писал(а):Извините, не удержался - где я?Dron писал(а):Код: Выделить всё
53 0:20 cd /usr/src 54 0:20 ls 55 0:21 cd sys 56 0:21 ls 57 0:21 cd dev 58 0:21 ls 59 0:22 cd umodem 60 0:22 ls -la 61 0:22 cd usb 62 0:22 ee umodem.ko 63 0:22 ls 64 0:22 ee umodem.c 65 0:25 cd .. 66 0:25 pwd
Код: Выделить всё
set prompt = "`/bin/hostname -s`:%/@%B[%T]%b# "
ф топку.Dorlas писал(а):Пишем в /root/.cshrc:И все будит карашоКод: Выделить всё
set prompt = "`/bin/hostname -s`:%/@%B[%T]%b# "
Код: Выделить всё
alias ls ls -FG
set autolist
set nobeep
setenv EDITOR ee
Пробовал все варианты от 0 до 3-х включительно.... безрезультатно! может есть еще у кого идеи?Dorlas писал(а):Патч ты наложил правильно
А вот с этой строкой не все в порядке: { USB_VENDOR_SIEMENS3, 0x0003, 0 },Код: Выделить всё
И, видно, где-то допустил логическую очепятку, потому что файл откомпилился, а устройство все равно не появилось!
Ты уверен, что тут все ОК ? Почитай ветку подробно, поймешь, что не всегда 3-я цифра 0...
PS: Еще при ковырянии umodem я из ядра cdce драйвер выкидывал - он мне мешался (хватался за телефон)...
Код: Выделить всё
[root@cs ~]# usbdevs -v | grep "Siemens"
port 2 addr 2: full speed, power 98 mA, config 1, Siemens USB Connectivity(0x0003), Siemens AG(0x11f5), rev 0.95
Код: Выделить всё
[root@cs ~]# kldstat -v | grep "umodem"
100 uhub/umodem
Код: Выделить всё
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)
set device /dev/cuaU0
set speed 57600
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
\"\" AT OK-AT-OK ATE1Q0 OK \\dAT+CGDCONT=1, "IP", \
\ "internet.beeline.ru"\\T TIMEOUT 40 CONNECT"
set timeout 180 # 3 minute idle timer (the default)
enable dns # request DNS info (for resolv.conf)
papchap:
set phone "*99***1#" #PHONE_NUM
set authname beeline #USERNAME
set authkey beeline #PASSWORD
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add default HISADDR # Add a (sticky) default route
Код: Выделить всё
diversunt# ppp
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
Working in interactive mode
Using interface: tun0
ppp ON diversunt> dial
ppp ON diversunt> Warning: Chat script failed
Warning: deflink: Unable to set physical to speed 0
Warning: deflink: Unable to set physical to speed 0
ppp ON diversunt> quit
Код: Выделить всё
diversunt# cu -l cuaU0
Connected
ati
Nokia
OK
ati2
V 07.21
05-11-08
RM-217
(c) Nokia.
OK
Ну это я читал длинный он, поэтому читаю медленно вникаю так сказать.ну и man ppp
как запускать
Это мы с радостью только как? Что откуда выдрать надо, что есть достанем и положим.лог настройте а то нифига непонятно что там кто там пишет
Код: Выделить всё
Jan 2 06:02:11 diversunt ppp[788]: Phase: Using interface: tun0
Jan 2 06:02:11 diversunt ppp[788]: Phase: deflink: Created in closed state
Jan 2 06:02:11 diversunt ppp[788]: tun0: Command: default: ident user-ppp VERSION (built COMPILATIONDATE)
Jan 2 06:02:11 diversunt ppp[788]: tun0: Command: default: set device /dev/cuaU0
Jan 2 06:02:11 diversunt ppp[788]: tun0: Command: default: set speed 57600
Jan 2 06:02:11 diversunt ppp[788]: tun0: Command: default: set dial ABORT BUSY ABORT NO\sCARRIER TIMEOUT 5 "" AT OK-AT-OK ATE1Q0 OK \dAT+CGDCONT=1, IP, internet.beeline.ru\T TIMEOUT 40 CONNECT
Jan 2 06:02:11 diversunt ppp[788]: tun0: Command: default: set timeout 180
Jan 2 06:02:11 diversunt ppp[788]: tun0: Command: default: enable dns
Jan 2 06:02:11 diversunt ppp[788]: tun0: Phase: PPP Started (interactive mode).
Jan 2 06:02:14 diversunt ppp[788]: tun0: Command: /dev/ttyv0: dial
Jan 2 06:02:14 diversunt ppp[788]: tun0: Phase: bundle: Establish
Jan 2 06:02:14 diversunt ppp[788]: tun0: Phase: deflink: closed -> opening
Jan 2 06:02:14 diversunt ppp[788]: tun0: Phase: deflink: Connected!
Jan 2 06:02:14 diversunt ppp[788]: tun0: Phase: deflink: opening -> dial
Jan 2 06:02:14 diversunt ppp[788]: tun0: Chat: deflink: Dial attempt 1 of 1
Jan 2 06:02:14 diversunt ppp[788]: tun0: Chat: Send: AT^M
Jan 2 06:02:14 diversunt ppp[788]: tun0: Chat: Expect(5): OK
Jan 2 06:02:19 diversunt ppp[788]: tun0: Chat: Expect timeout
Jan 2 06:02:19 diversunt ppp[788]: tun0: Chat: Send: AT^M
Jan 2 06:02:19 diversunt ppp[788]: tun0: Chat: Expect(5): OK
Jan 2 06:02:24 diversunt ppp[788]: tun0: Chat: Expect timeout
Jan 2 06:02:24 diversunt ppp[788]: tun0: Warning: Chat script failed
Jan 2 06:02:24 diversunt ppp[788]: tun0: Phase: deflink: dial -> hangup
Jan 2 06:02:24 diversunt ppp[788]: tun0: Warning: deflink: Unable to set physical to speed 0
Jan 2 06:02:24 diversunt ppp[788]: tun0: Phase: deflink: Disconnected!
Jan 2 06:02:24 diversunt ppp[788]: tun0: Warning: deflink: Unable to set physical to speed 0
Jan 2 06:02:25 diversunt ppp[788]: tun0: Phase: deflink: Connect time: 11 secs: 0 octets in, 0 octets out
Jan 2 06:02:25 diversunt ppp[788]: tun0: Phase: deflink: 0 packets in, 0 packets out
Jan 2 06:02:25 diversunt ppp[788]: tun0: Phase: total 0 bytes/sec, peak 0 bytes/sec on Fri Jan 2 06:02:14 2009
Jan 2 06:02:25 diversunt ppp[788]: tun0: Phase: deflink: hangup -> closed
Jan 2 06:02:25 diversunt ppp[788]: tun0: Phase: bundle: Dead
Jan 2 06:02:29 diversunt ppp[788]: tun0: Command: /dev/ttyv0: quit
Jan 2 06:02:29 diversunt ppp[788]: tun0: Phase: PPP Terminated (normal).
Код: Выделить всё
default:
ident user-ppp VERSION (built COMPILATIONDATE)
set device /dev/cuaU0
set speed 38400
set dial "ABORT BUSY \"\" \
ATE1 OK AT+CGDCONT=1,\\\"IP\\\",\\\"active\\\" OK \
AT+CGQREQ=1,0,0,0,0,0 OK AT+CGQMIN=1,0,0,0,0,0 OK ATDT*99# CONNECT"
set timeout 0
enable dns # if you're on local network and don't like ppp overwriting your
# resolv.conf every time you connect, comment this out
set ctsrts off
# set authname eurotel # those can be usually chosen at will
# set authkey gprs
set timeout 300
set ifaddr 0 0 255.255.255.0
add default HISADDR
Код: Выделить всё
default:
set log Phase Chat tun command #LCP IPCP CCP
ident user-ppp VERSION (built COMPILATIONDATE)
set device /dev/cuaU0
set speed 38400
#set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
#\"\" AT OK-AT-OK ATE1Q0 OK \
#AT+CGDCONT=1,\\\"IP\\\",\\\"internet.beeline.ru\\\" OK \
#\\dATDT\\T TIMEOUT 40 CONNECT"
set dial "ABORT BUSY \"\" \
ATE1 OK AT+CGDCONT=1,\\\"IP\\\",\\\"internet.beeline.ru\\\" OK \
AT+CGQREQ=1,0,0,0,0,0 OK AT+CGQMIN=1,0,0,0,0,0 OK ATDT*99# CONNECT"
set timeout 60 # 1 minute idle timer (the default)
enable dns # request DNS info (for resolv.conf)
set phone *99***1\#
set authname beeline
set authkey beeline
set timeout 300
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255
#set ifaddr 0 0 255.255.255.0
add default HISADDR
Код: Выделить всё
Jan 2 07:37:59 diversunt ppp[773]: Phase: Using interface: tun0
Jan 2 07:37:59 diversunt ppp[773]: Phase: deflink: Created in closed state
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: ident user-ppp VERSION (built COMPILATIONDATE)
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: set device /dev/cuaU0
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: set speed 38400
Jan 2 07:37:59 diversunt ppp[773]: tun0: Warning: /etc/ppp/ppp.conf: 10: Syntax error
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: ATE1 OK AT+CGDCONT=1,\"IP\",\"internet.beeline.ru\" OK
Jan 2 07:37:59 diversunt ppp[773]: tun0: Warning: ATE1: Invalid command
Jan 2 07:37:59 diversunt ppp[773]: tun0: Warning: ATE1: Failed 1
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: AT+CGQREQ=1,0,0,0,0,0 OK AT+CGQMIN=1,0,0,0,0,0 OK ATDT*99
Jan 2 07:37:59 diversunt ppp[773]: tun0: Warning: AT+CGQREQ=1,0,0,0,0,0: Invalid command
Jan 2 07:37:59 diversunt ppp[773]: tun0: Warning: AT+CGQREQ=1,0,0,0,0,0: Failed 1
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: set timeout 60
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: enable dns
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: set phone *99***1#
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: set authname beeline
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: set authkey ********
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: set timeout 300
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255
Jan 2 07:37:59 diversunt ppp[773]: tun0: Command: default: add default HISADDR
Jan 2 07:37:59 diversunt ppp[773]: tun0: Phase: PPP Started (interactive mode).
Jan 2 07:38:07 diversunt ppp[773]: tun0: Command: /dev/ttyv1: dial
Jan 2 07:38:07 diversunt ppp[773]: tun0: Phase: bundle: Establish
Jan 2 07:38:07 diversunt ppp[773]: tun0: Phase: deflink: closed -> opening
Jan 2 07:38:07 diversunt ppp[773]: tun0: Phase: deflink: Connected!
Jan 2 07:38:07 diversunt ppp[773]: tun0: Phase: deflink: opening -> dial
Jan 2 07:38:07 diversunt ppp[773]: tun0: Chat: deflink: Dial attempt 1 of 1
Jan 2 07:38:07 diversunt ppp[773]: tun0: Phase: deflink: dial -> carrier
Jan 2 07:38:08 diversunt ppp[773]: tun0: Phase: deflink: /dev/cuaU0 doesn't support CD
Jan 2 07:38:08 diversunt ppp[773]: tun0: Phase: deflink: carrier -> login
Jan 2 07:38:08 diversunt ppp[773]: tun0: Phase: deflink: login -> lcp
Jan 2 07:39:03 diversunt ppp[773]: tun0: Phase: deflink: Too many LCP NAKs sent - abandoning negotiation
Jan 2 07:39:06 diversunt ppp[773]: tun0: Warning: deflink: Unable to set physical to speed 0
Jan 2 07:39:06 diversunt ppp[773]: tun0: Phase: deflink: Disconnected!
Jan 2 07:39:06 diversunt ppp[773]: tun0: Phase: deflink: lcp -> logout
Jan 2 07:39:06 diversunt ppp[773]: tun0: Phase: deflink: logout -> hangup
Jan 2 07:39:06 diversunt ppp[773]: tun0: Warning: deflink: Unable to set physical to speed 0
Jan 2 07:39:06 diversunt ppp[773]: tun0: Phase: deflink: Disconnected!
Jan 2 07:39:06 diversunt ppp[773]: tun0: Warning: deflink: Unable to set physical to speed 0
Jan 2 07:39:07 diversunt ppp[773]: tun0: Phase: deflink: Connect time: 60 secs: 1308 octets in, 1308 octets out
Jan 2 07:39:07 diversunt ppp[773]: tun0: Phase: deflink: 34 packets in, 35 packets out
Jan 2 07:39:07 diversunt ppp[773]: tun0: Phase: total 43 bytes/sec, peak 172 bytes/sec on Fri Jan 2 07:39:03 2009
Jan 2 07:39:07 diversunt ppp[773]: tun0: Phase: deflink: hangup -> closed
Jan 2 07:39:07 diversunt ppp[773]: tun0: Phase: bundle: Dead
Jan 2 07:39:21 diversunt ppp[773]: tun0: Command: /dev/ttyv1: quitquit
Jan 2 07:39:26 diversunt ppp[773]: tun0: Command: /dev/ttyv1: quit
Jan 2 07:39:26 diversunt ppp[773]: tun0: Phase: PPP Terminated (normal).
Код: Выделить всё
diversunt# ppp
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
Working in interactive mode
Using interface: tun0
Warning: /etc/ppp/ppp.conf: 10: Syntax error
Warning: ATE1: Invalid command
Warning: ATE1: Failed 1
Warning: AT+CGQREQ=1,0,0,0,0,0: Invalid command
Warning: AT+CGQREQ=1,0,0,0,0,0: Failed 1
ppp ON diversunt> dial
ppp ON diversunt> quitWarning: deflink: Unable to set physical to speed 0
Warning: deflink: Unable to set physical to speed 0
Warning: deflink: Unable to set physical to speed 0
ppp ON diversunt> quit
Warning: quitquit: Invalid command
Warning: quitquit: Failed 1
ppp ON diversunt> quit
diversunt#