* Environment woes
@ 2010-08-09 22:37 Josua Dietze
2010-08-10 4:37 ` Kay Sievers
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Josua Dietze @ 2010-08-09 22:37 UTC (permalink / raw)
To: linux-hotplug
Hi everyone,
I am in need of a friendly hint regarding a delicate matter ...
I maintain a Linux tool to put USB devices from one mode (or state) to
the other. Many wireless sticks support that "feature", showing up as
a storage device and providing their Windows drivers onboard. To be
used as modems they are switched by these drivers (once they are
installed) to their second mode.
This can be handled in Linux and is properly tested.
Usually there is more than one interface exposed after the mode
switch, but only one is suitable for a wireless connection; binding
the GSM driver ("option") or the generic serial driver will add
multiple ports though (ttyUSB).
Up to now I have used a rule to add a symlink to the "right" port; the
check is done by a script via "PROGRAM". If the port is not right, the
result of the script is empty, thus no symlink:
ACTION="add", KERNEL="ttyUSB*", PROGRAM="<script> %p", SYMLINK="%c"
To handle *only* the device that was switched by my other rules, I
stored the bus and device number during the switching process in a
temporary file which is then used by the <script>. I had tried to work
with ENV first but failed.
You might already guess what I'm going to ask ...
I was reprimanded - and rightly so - for using the temp file, which is
said to be insecure and not working at boot time.
But I am at a loss how I should signal from one enumeration event to
annother without using a file; neither ENV nor IMPORT are working,
probably because the different modes behave like two unrelated
devices, storage and serial. Quite often the USB ID changes with the
mode switch.
Is there really no environment that can be accessed from both
scripts/events?
Or is there a third way maybe?
The order of events is guaranteed in my case ...
Thanks,
Josua Dietze
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Environment woes
2010-08-09 22:37 Environment woes Josua Dietze
@ 2010-08-10 4:37 ` Kay Sievers
2010-08-10 6:28 ` Josua Dietze
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Kay Sievers @ 2010-08-10 4:37 UTC (permalink / raw)
To: linux-hotplug
On Tue, Aug 10, 2010 at 00:37, Josua Dietze <digidietze@draisberghof.de> wrote:
> Up to now I have used a rule to add a symlink to the "right" port; the check
> is done by a script via "PROGRAM". If the port is not right, the result of
> the script is empty, thus no symlink:
>
> ACTION="add", KERNEL="ttyUSB*", PROGRAM="<script> %p", SYMLINK="%c"
Who needs these custom links? Why don't you just use the stuff in
/dev/serial/ which should already work?
Kay
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Environment woes
2010-08-09 22:37 Environment woes Josua Dietze
2010-08-10 4:37 ` Kay Sievers
@ 2010-08-10 6:28 ` Josua Dietze
2010-08-10 19:30 ` Greg KH
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Josua Dietze @ 2010-08-10 6:28 UTC (permalink / raw)
To: linux-hotplug
Am 10.08.2010 06:37, schrieb Kay Sievers:
> On Tue, Aug 10, 2010 at 00:37, Josua Dietze<digidietze@draisberghof.de> wrote:
>> Up to now I have used a rule to add a symlink to the "right" port; the check
>> is done by a script via "PROGRAM". If the port is not right, the result of
>> the script is empty, thus no symlink:
>>
>> ACTION="add", KERNEL="ttyUSB*", PROGRAM="<script> %p", SYMLINK="%c"
>
> Who needs these custom links? Why don't you just use the stuff in
> /dev/serial/ which should already work?
There is a symlink to *every* port in the /dev/serial folders. Again,
only *one* of them is usable for connecting through
wvdial/umtsmon/networkmanager. The latter often auto-selects a wrong
port, BTW.
I add *one* symlink called "gsmmodem[x]" to make life easier for users.
Examples:
Huawei E160 ttyUSB0,1,2 gsmmodem -> ttyUSB0
ZTE MF110 ttyUSB0,1,2 gsmmodem -> ttyUSB2
These interfaces all have a class of 0xff. Some are even accepting AT
commands, but are only intended for diagnostic purposes, misleading
users and probers.
Thanks,
Josua Dietze
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Environment woes
2010-08-09 22:37 Environment woes Josua Dietze
2010-08-10 4:37 ` Kay Sievers
2010-08-10 6:28 ` Josua Dietze
@ 2010-08-10 19:30 ` Greg KH
2010-08-10 20:02 ` Josua Dietze
2010-08-10 20:14 ` Greg KH
4 siblings, 0 replies; 6+ messages in thread
From: Greg KH @ 2010-08-10 19:30 UTC (permalink / raw)
To: linux-hotplug
On Tue, Aug 10, 2010 at 12:37:23AM +0200, Josua Dietze wrote:
> Hi everyone,
>
> I am in need of a friendly hint regarding a delicate matter ...
>
> I maintain a Linux tool to put USB devices from one mode (or state)
> to the other.
What program, usb-modeswitch?
> Usually there is more than one interface exposed after the mode
> switch, but only one is suitable for a wireless connection; binding
> the GSM driver ("option") or the generic serial driver will add
> multiple ports though (ttyUSB).
Let the modem-manager program handle knowing which tty device to use,
that type of logic can usually only be detected after talking to the
device.
And what happens with your tool when in the near future, we want to talk
to those other device nodes because modem-manager knows what thoes ports
do and how to get the data out of them?
In short, you shouldn't have to do any of this.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Environment woes
2010-08-09 22:37 Environment woes Josua Dietze
` (2 preceding siblings ...)
2010-08-10 19:30 ` Greg KH
@ 2010-08-10 20:02 ` Josua Dietze
2010-08-10 20:14 ` Greg KH
4 siblings, 0 replies; 6+ messages in thread
From: Josua Dietze @ 2010-08-10 20:02 UTC (permalink / raw)
To: linux-hotplug
Am 10.08.2010 21:30, schrieb Greg KH:
> On Tue, Aug 10, 2010 at 12:37:23AM +0200, Josua Dietze wrote:
>> I maintain a Linux tool to put USB devices from one mode (or state)
>> to the other.
>
> What program, usb-modeswitch?
That's the one, yes.
>> Usually there is more than one interface exposed after the mode
>> switch, but only one is suitable for a wireless connection; binding
>> the GSM driver ("option") or the generic serial driver will add
>> multiple ports though (ttyUSB).
>
> Let the modem-manager program handle knowing which tty device to use,
> that type of logic can usually only be detected after talking to the
> device.
Unfortunately, I keep receiving reports that modem-manager picks the
wrong port after probing, and there is no way of setting the port
manually in NetworkManager. This happens mostly with devices where the
interrupt port has a number > 0. I have yet to meet a GSM modem device
where the "interrupt rule" does *not* apply.
I usually recommend using wvdial (autoprobing problems too) and edit
the port directly in the config file. And just entering "gsmmodem"
spares users the testing of all ports, some of which may seem to work
at first but then build up a very unreliable connection.
> And what happens with your tool when in the near future, we want to talk
> to those other device nodes because modem-manager knows what thoes ports
> do and how to get the data out of them?
The usb_modeswitch helper in the post-switch rule only picks ttyUSB
ports and looks only for their transfer type. It doesn't do anything
to the ports if they are bulk.
Note that this is unrelated to the preceding switching process and
doesn't change anything at all except that one symlink.
And yes, it can be scrapped anytime without further consequences when
there are other solutions. It is a temporary workaround to make user's
life a little easier.
> In short, you shouldn't have to do any of this.
I couldn't agree more! :-)
Regards,
Josua Dietze
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Environment woes
2010-08-09 22:37 Environment woes Josua Dietze
` (3 preceding siblings ...)
2010-08-10 20:02 ` Josua Dietze
@ 2010-08-10 20:14 ` Greg KH
4 siblings, 0 replies; 6+ messages in thread
From: Greg KH @ 2010-08-10 20:14 UTC (permalink / raw)
To: linux-hotplug
On Tue, Aug 10, 2010 at 10:02:10PM +0200, Josua Dietze wrote:
> Am 10.08.2010 21:30, schrieb Greg KH:
> >Let the modem-manager program handle knowing which tty device to use,
> >that type of logic can usually only be detected after talking to the
> >device.
>
>
> Unfortunately, I keep receiving reports that modem-manager picks the
> wrong port after probing, and there is no way of setting the port
> manually in NetworkManager. This happens mostly with devices where
> the interrupt port has a number > 0. I have yet to meet a GSM modem
> device where the "interrupt rule" does *not* apply.
Then point people at the modem-manager developers :)
> I usually recommend using wvdial (autoprobing problems too) and edit
> the port directly in the config file. And just entering "gsmmodem"
> spares users the testing of all ports, some of which may seem to
> work at first but then build up a very unreliable connection.
It sounds like this is information that the modem-manager developers
would like to know about, so that they can pick the correct ports. Or
is it networkmanager that does that these days, I can't remember, sorry.
Either way, I don't see this a function of the modeswitch program at
all.
good luck,
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-08-10 20:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-09 22:37 Environment woes Josua Dietze
2010-08-10 4:37 ` Kay Sievers
2010-08-10 6:28 ` Josua Dietze
2010-08-10 19:30 ` Greg KH
2010-08-10 20:02 ` Josua Dietze
2010-08-10 20:14 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).