linux - FT232 USB-Serial not usable with deamon
2014-07
I am trying to use an USB-Serial converter with a program (a deamon) that is launched at startup on a embedded board (Odroid-XU). The deamon does not work since it fails to open the serial port /dev/ttyUSB0 reporting that the port is already in use (Device or resource busy).
Thus my first idea was that something uses the serial port shortly after the boot. BUT when I unplug and plug back the USB-Serial adapter, I have the same issue: I cannot use it for a few seconds. I checked with an oscilloscope the output of the TX port and it appears that it receives commands after being plugged or after the boot.
So what is happening here ? And what would be the solution to avoid that ?
I solved my problem using sudo lsof /dev/tty*
to find out what process was using the serial port. Then simply removing modemmanager
from the boot sequence solved my problem.
BTW, I found the answer I needed a bit too late. I should spend more time on superuser
.
How can enable remote terminal login into Ubuntu 9.10 using a USB serial port?
I created device /dev/ttyUSB0 and i want to allow logins using Hyper-Terminal.
I found some resources but they are related to real hardware rs232 ports. I can't find any information about USB converter.
So far I have established connection between that USB-serial port and my laptop. I can send text to the port (cp sometext.txt /dev/ttyUSB0) and read it using hyperterminal.
What do I need to do to enable logins on this port?
See the Ubuntu Serial Console HowTo. You'll need to adapt it for your hardware -- instead of ttyS0, which is the first hardware serial port, you'll need to use ttyUSB0. An example of this is below.
At minimum, you need to configure upstart to start a getty on that port.
Create
/etc/init/ttyUSB0.conf
and paste the following into it:# ttyUSB0 - getty on USB serial port # # This service maintains a getty on ttyUSB0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 115200 ttyUSB0 vt102
Start the getty:
sudo start ttyUSB0
Older Ubuntu versions and distributions that don't use upstart do this by adding a line in /etc/inittab.
This doesn't consider changes to the bootloader configuration to allow Grub to talk to the serial port; refer to the HowTo for details. I'm not sure if Grub can talk to a USB serial port or if that's limited to hardware ports.
Better approach in Ubuntu 12.04:
start on (tty-device-added ttyUSB0)
stop on (runlevel [!2345] or tty-device-removed ttyUSB0)
respawn
exec /sbin/getty -L 115200 ttyUSB0 vt102
- starting getty when hot plugging in ttyUSB0
- stop getty when hot plugging out ttyUSB0