Hi! I was trying to utilize a program for updating mobile phone's firmware (for Siemens/Benq mobiles, just an original app with encapsulated firmware image). This program immediately told that there are no serial ports present in my machine and terminated. After a bit of seeking in my own memory and wine list mail archive I remembered that there should be some registry entries which a program can examine and get some basic info about the ports. In an old mail I found something, which I converted to the following registry entry and put to system.reg file:
[Hardware\Devicemap\Serialcomm] 1015709345 "Serial0"="COM1" "Serial1"="COM2" "Serial2"="COM3" "Serial3"="COM4"
I think this should go to the standard system.reg by default, maybe in the reduced form with just the first two ports. Together with correct links in .wine/dosdevices, it makes that the program can really find the port.
And at the end: How to create such a registry entry by wine's regedit ? I've spent about 15 minutes trying to do so but I've failed and then edited the file manually. Any attempt to create a "folder" called Serialcomm in Hardware\Devicemap was unsuccessfull; I didn't find how to create a "folder" for keys, and using "Add key" menu entry I always got an error dialog saying "A subkey must be volatile". What does it mean ? With regards, Pavel Troller
Sunday, January 1, 2006, 1:36:52 PM, Pavel Troller wrote:
Hi! I was trying to utilize a program for updating mobile phone's firmware (for Siemens/Benq mobiles, just an original app with encapsulated firmware image). This program immediately told that there are no serial ports present in my machine and terminated. After a bit of seeking in my own memory and wine list mail archive I remembered that there should be some registry entries which a program can examine and get some basic info about the ports. In an old mail I found something, which I converted to the following registry entry and put to system.reg file:
[Hardware\Devicemap\Serialcomm] 1015709345 "Serial0"="COM1" "Serial1"="COM2" "Serial2"="COM3" "Serial3"="COM4"
Hm must be a win9x format. Because on winNT+ it's "\Device\Serial0"="COM1" - exactly as symlinks in ??.
I think this should go to the standard system.reg by default, maybe in the reduced form with just the first two ports. Together with correct links in .wine/dosdevices, it makes that the program can really find the port.
I personally don't like dosdevices idea - we now have the more correct way to do it (in the object manager). But these registry keys could be the place to configure serial port mappings. But I do not like idea creating "fake" entries here. Who knows I might not have serial ports at all (like many new laptops).
And at the end: How to create such a registry entry by wine's regedit ? I've spent about 15 minutes trying to do so but I've failed and then edited the file manually. Any attempt to create a "folder" called Serialcomm in Hardware\Devicemap was unsuccessfull; I didn't find how to create a "folder" for keys, and using "Add key" menu entry I always got an error dialog saying "A subkey must be volatile". What does it mean ? With regards, Pavel Troller
"Volatile" means that these keys will not be saved. And you have to create them with that flag set (which regedit can not do). So what you did is pretty much the only way right now to do that.
Vitaliy
Hm must be a win9x format. Because on winNT+ it's "\Device\Serial0"="COM1" - exactly as symlinks in ??.
Possibly, I don't know windoze at all. I just looked at the trace output, which key the program tried to open, and grepped that string in my mail archive. What I found, I entered to the registry, and the program was happy then. So, to prevent guessing or entering some default values for everybody, maybe it could be made configurable using winecfg; I can imagine a tab called "I/O ports" or similarly, which would allow users to enter their port configuration similarly as for disk drives. winecfg would create dosdevices links (or its equivalent) as well as those registry entries. With regards, Pavel Troller