There is a system here that I upgraded to buster from stretch which runs a perl program I wrote that accesses a RS-232 dialup modem over /dev/ttyS0, a native RS-232 port on the mother board.
It works. The dialup modem is pretty useless these days for it's original intended purpose but I wrote a nasty little program that reads callerID tags and lets telemarketers take a trip down Memory Lane when they repeatedly call us. There is another system whose hard drive crashed a couple of weeks ago so I put stretch on it from a netinstall disk and promptly upgraded it to buster before installing cpanplus and Device::SerialPort as the less software you have, the smoother the upgrade, generally. Interestingly enough, the system that didn't crash and was upgraded perl and all from stretch to buster is handling the modem fine, whistling cheerfully at callers who are too big of a wuss to properly identify themselves. On the system that got perl after the new drive, the complaint is that none of the parameters such as baud rate, handshake and all other trates throw errors right and left about uninitiallised variables, the variable being the port that was previously defined. It's like the port isn't there. The first program I tried that exhibited this behavior was one that accesses /dev/ttyACM0, a device that shows up if you plug a Uniden scanner radio in to a usb port. In stretch days, it nicely acted as a RS-232 port. Right now, it shows up as soon as the cable is connected but the program I wrote in perl to control it throws the same errors. Obviously, the two boxes are separate hardware and the cable to the radio scanner is not long enough to stretch over to that same box to see if it works there, but I suspect it might. I think the difference is that perl was added after the buster upgrade on the serially-deaf box and neither the virtual usb serial port nor the actual hardware serial port seem to work any more even though they show up in /dev and the /dev/ACM0 port goes away when unplugged. Any ideas as to what is going on here? I am also a member of a perl discussion list but I thought I would start here as this problem is directly related to buster VS stretch. With stretch, it all worked. The only other possibility is that there may be a recommended syntax for perl and serial ports that I got by with violating in earlier Linux and now the chickens have come home to roost and I need to do it differently but much of what I wrote is stolen from other code examples so I bet it is something in buster that isn't right yet. Any suggestions are much appreciated. Martin McCormick WB5AGZ