Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!datapg!com50!pai!erc From: erc@pai.UUCP (Eric Johnson) Newsgroups: comp.unix.i386 Subject: Request for Help on Interactive COM2: access Keywords: Interactive UNIX Serial COM2: Message-ID: <793@pai.UUCP> Date: 18 Dec 89 16:40:21 GMT Organization: Prime Automation, Inc., Burnsville, MN Lines: 127 I'm having some problems accessing the second serial port under Interactive UNIX. I have a no-name 386 clone with two serial ports clearly marked on the back. I`m running Interactive's 386/ix release 2.0 (release notes Dec 88). COM1: works fine (I have a MS serial mouse clone hooked up to it and the mouse works fine with the X Window System). There are no getty's running on any serial ports (at least that's what /etc/inittab says). What I want to do is access the second serial port through a C program, for my own serial I/O. Since the first port is used by the mouse, I need to use the second port. Interactive's documentation seems to say that the asy driver comes pre-installed and that it handles both COM1: and COM2:. None of the kconfig/sysadm menus seem to want to give me any information regarding the serial ports. When I try to open the port with a simple C program (source below), I get error #6 (ENXIO in sys/errno.h): No such device or address. The code looks like: ______________________________________________________________ /* ** foo.c ** Test program to open a port. ** ** E F Johnson ** */ #include #include #include #include extern int errno; #define BUFSIZE 256 #define MY_PORT "/dev/tty01" main( argc, argv ) int argc; char *argv[]; { int port, i; char error_message[ BUFSIZE + 1 ]; char dev_file[ BUFSIZE + 1 ]; /* ** Check for -dev devicefile on command line */ strcpy( dev_file, MY_PORT ); i = 1; while( i < argc ) { if ( strcmp( "-dev", argv[ i ] ) == 0 ) { i++; if ( i < argc ) { strcpy( dev_file, argv[ i ] ); } } i++; } port = open( dev_file, O_RDWR + O_NDELAY ); if ( port == (-1) ) { sprintf( error_message, "ERROR %d: Could not open %s.", errno, dev_file ); perror( error_message ); } else { close( port ); printf( "Port %s opened successfully\n", dev_file ); } exit( 0 ); } /* ** end of file. */ ______________________________________________________________ Am I doing anything wrong in the software? This same program opens /dev/tty00 (COM1:) just fine. Should I tear open the machine and check the hardware switch settings? Perhaps this indicates that the COM2: is not set up properly in hardware? The documentation seems to indicate that the device file mapping is: COM1: /dev/tty00 COM2: /dev/tty01 Is this correct? Is there anywhere else I should check? (Section 11.10 Adding a New Terminal in the 386/ix Operating System Guide doesn't really seem to help.) Does anyone have any ideas? Any help would be appreciated. Thanks, -Eric -- Eric F. Johnson, Boulware Technologies, Inc. 415 W. Travelers Trail, Burnsville, MN 55337 USA. Phone: +1 612-894-0313. erc@pai.mn.org - or - bungia!pai!erc (We have a very dumb mailer, so please send a bang-!-style return address.)