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
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html