Re: RS232 GSM Modem



Hi Dan,

i realized that ModemManager does something with the serial port, but with the wrong port. I have /dev/ttyS= which is connected over a serial line to my PC. Getty listen on this port.
And i have /dev/ttyS1 where the modem is connected.
When i reboot the device, some AT-Commands will be written to ttyS0.

##### Start boot process #######
.
Starting network connection manager: NetworkManagerBridge firewalling registered
Bluetooth: SCO (Voice Link) ver 0.6
Bluetooth: SCO socket layer initialized
.
0`枆~00怘�ADebian GNU/Linux squeeze/sid banane ttyS0

AT+GCAPlogin: P
Debian GNU/Linux squeeze/sid banane ttyS0

banane login: AT+GCAP
Debian GNU/Linux squeeze/sid banane ttyS0

banane login: x�~
Debian GNU/Linux squeeze/sid banane ttyS0

banane login: x�~
Debian GNU/Linux squeeze/sid banane ttyS0
##### END boot process #######

I pressed sometimes 'ENTER' because otherwise you wouldn't see the output (new message would overwrite old messages).

Hope this information helps!

Cheers,

Tom


2010/4/30 toabctl <toabctl googlemail com>


2010/4/29 Dan Williams <dcbw redhat com>

On Thu, 2010-04-29 at 09:53 +0200, toabctl wrote:
>
>
> 2010/4/28 Dan Williams <dcbw redhat com>
>         On Wed, 2010-04-28 at 09:37 +0200, toabctl wrote:
>         > 1) How does network-manager detect that the modem is
>         connected? Or how
>         > can i tell networkmanager on which port the modem is
>         attached? I use a
>         > rs232<->usb adapter so the port is /dev/ttyUSB0 .
>
>
>         ModemManager uses udev for device detection.  It listens for
>         udev events
>         (which you can also listen for with udevmonitor) and when it
>         receives a
>         notification of a new serial port, it will inspect that port
>         and attempt
>         to probe it.
>
> How does ModemManager probe the port? I want to use modem manager also
> with a rs232 device and there are no uevents because rs232 has no
> hotplug. but i could emit a uevent "by hand".

At the moment we don't probe platform devices for a few reasons, one
that (a) the code isn't there, and (b) older devices like those
connected to platform serial ports on normal PCs often get upset
precisely because they are older and either aren't modems, or aren't
standards compliant in any way.

But check out this commit:

commit 1864d8da0766e615c37a13f30bcacb72d381aa69
Author: Dan Williams <dcbw redhat com>
Date:   Thu Apr 29 12:17:56 2010 -0700

   core: add platform device support and whitelist

and see if that works for you.  It uses a whitelist for platform
drivers.  Let me know!


does not work for me. i used the latest git master source. But i'm not sure hot to test it. i just use the python script from test/mm-test.py and the result is: "no modems found". But the device is available (checked with minicom) and /lib/udev/rules.d/77-mm-
platform-serial-whitelist.rules is available.

What to do next? Do you need more information?

Cheers,

Tom

 
Dan

> The information about the device (  /dev/ttyS1 ):
>
> # udevadm info --query=all -n /dev/ttyS1
> P: /devices/platform/atmel_usart.1/tty/ttyS1
> N: ttyS1
> S: char/4:65
> E: UDEV_LOG=3
> E: DEVPATH=/devices/platform/atmel_usart.1/tty/ttyS1
> E: MAJOR=4
> E: MINOR=65
> E: DEVNAME=/dev/ttyS1
> E: SUBSYSTEM=tty
> E: DEVLINKS=/dev/char/4:65
>
> # udevadm info --query=all -n /dev/ttyS1 --attribute-walk
> ...
> looking at device '/devices/platform/atmel_usart.1/tty/ttyS1':
>     KERNEL=="ttyS1"
>     SUBSYSTEM=="tty"
>     DRIVER==""
>
>   looking at parent device '/devices/platform/atmel_usart.1':
>     KERNELS=="atmel_usart.1"
>     SUBSYSTEMS=="platform"
>     DRIVERS=="atmel_usart"
>     ATTRS{modalias}=="platform:atmel_usart"
>
>   looking at parent device '/devices/platform':
>     KERNELS=="platform"
>     SUBSYSTEMS==""
>     DRIVERS==""
>
>
> How can i use this port with ModemManager? The modem is connected and
> AT-Commands works.
>
>         There are a number of requirements of the port though; it
>         verifies that the kernel has assigned a driver name to the
>         port or one
>         of the port's parents, and it attempts to grab the port's
>         physical
>         device.  Given that it's USB, it *should* work.  But if it
>         doesn't, and
>         you have a chance to grab the ModemManager source [1], there's
>         a tool
>         called 'lsudev' in the test/ directory that can give us an
>         idea of the
>         udev-provided information of the device.
>
> i guess 'lsudev' does the same as my 2 commands with 'udevadm', right?
> or does 'lsudev' something more special?
>
>
>         > 2) How does the connection-config looks like?
>
>
>         ModemManager is just a tool to control the modem, it doesn't
>         store any
>         configuration about it.  The configuration is provided by a
>         program that
>         tells ModemManager what to do.  There are a few ways to do
>         that;
>         NetworkManager provides a general modem control solution, but
>         you can
>         also write your own app that uses D-Bus to tell ModemManager
>         what to do
>         with the modem.  See test/mm-test.py for a short example of
>         how to use
>         python and D-Bus to make MM connect the modem and get
>         information out of
>         it.
>
> ah. that's great. i need to control the modem over a web-interface so
> no nm-applet available.
>
>
> Cheers,
>
> Tom
>






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]