You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							420 lines
						
					
					
						
							7.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							420 lines
						
					
					
						
							7.5 KiB
						
					
					
				
								<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
							 | 
						|
								<HTML
							 | 
						|
								><HEAD
							 | 
						|
								><TITLE
							 | 
						|
								>Using the serial port</TITLE
							 | 
						|
								><META
							 | 
						|
								NAME="GENERATOR"
							 | 
						|
								CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
							 | 
						|
								REL="HOME"
							 | 
						|
								TITLE="Bochs User Manual"
							 | 
						|
								HREF="index.html"><LINK
							 | 
						|
								REL="UP"
							 | 
						|
								TITLE="Tips and Techniques"
							 | 
						|
								HREF="howto.html"><LINK
							 | 
						|
								REL="PREVIOUS"
							 | 
						|
								TITLE="Using Bochs and the remote GDB stub"
							 | 
						|
								HREF="debugging-with-gdb.html"><LINK
							 | 
						|
								REL="NEXT"
							 | 
						|
								TITLE="BIOS Tips"
							 | 
						|
								HREF="bios-tips.html"></HEAD
							 | 
						|
								><BODY
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								BGCOLOR="#FFFFFF"
							 | 
						|
								TEXT="#000000"
							 | 
						|
								LINK="#0000FF"
							 | 
						|
								VLINK="#840084"
							 | 
						|
								ALINK="#0000FF"
							 | 
						|
								><DIV
							 | 
						|
								CLASS="NAVHEADER"
							 | 
						|
								><TABLE
							 | 
						|
								SUMMARY="Header navigation table"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								BORDER="0"
							 | 
						|
								CELLPADDING="0"
							 | 
						|
								CELLSPACING="0"
							 | 
						|
								><TR
							 | 
						|
								><TH
							 | 
						|
								COLSPAN="3"
							 | 
						|
								ALIGN="center"
							 | 
						|
								>Bochs User Manual</TH
							 | 
						|
								></TR
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								WIDTH="10%"
							 | 
						|
								ALIGN="left"
							 | 
						|
								VALIGN="bottom"
							 | 
						|
								><A
							 | 
						|
								HREF="debugging-with-gdb.html"
							 | 
						|
								ACCESSKEY="P"
							 | 
						|
								>Prev</A
							 | 
						|
								></TD
							 | 
						|
								><TD
							 | 
						|
								WIDTH="80%"
							 | 
						|
								ALIGN="center"
							 | 
						|
								VALIGN="bottom"
							 | 
						|
								>Chapter 8. Tips and Techniques</TD
							 | 
						|
								><TD
							 | 
						|
								WIDTH="10%"
							 | 
						|
								ALIGN="right"
							 | 
						|
								VALIGN="bottom"
							 | 
						|
								><A
							 | 
						|
								HREF="bios-tips.html"
							 | 
						|
								ACCESSKEY="N"
							 | 
						|
								>Next</A
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								><HR
							 | 
						|
								ALIGN="LEFT"
							 | 
						|
								WIDTH="100%"></DIV
							 | 
						|
								><DIV
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								><H1
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								><A
							 | 
						|
								NAME="SERIAL-PORT"
							 | 
						|
								>8.13. Using the serial port</A
							 | 
						|
								></H1
							 | 
						|
								><P
							 | 
						|
								>        This section describes what is possible to do with Bochs serial port emulation.
							 | 
						|
								        These examples use dlxlinux disk image 
							 | 
						|
								        (downloaded from 
							 | 
						|
								        <A
							 | 
						|
								HREF="http://bochs.sourceforge.net/guestos/dlxlinux4.tar.gz"
							 | 
						|
								TARGET="_top"
							 | 
						|
								>        http://bochs.sourceforge.net/guestos/dlxlinux3.tar.gz</A
							 | 
						|
								>
							 | 
						|
								        ) running as guest, on a debian x86 linux 2.4.19 host.</P
							 | 
						|
								><P
							 | 
						|
								>        For the examples to work in dlxlinux, after you login as root, you will need to 
							 | 
						|
								        kill the running gpm, as it grabs the serial port.
							 | 
						|
								<TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>Welcome to DLX V1.0 (C) 1995-96 Erich Boehm
							 | 
						|
								                    (C) 1995    Hannes Boehm
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								dlx login: root
							 | 
						|
								Linux 1.3.89.
							 | 
						|
								dlx:~# ps | grep gpm
							 | 
						|
								   30  S0 S     0:00 /usr/bin/gpm -t bare
							 | 
						|
								   40   1 S     0:00 grep gpm
							 | 
						|
								dlx:~# kill -9 30
							 | 
						|
								dlx:~#</PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								></P
							 | 
						|
								><DIV
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								><H2
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								><A
							 | 
						|
								NAME="AEN3122"
							 | 
						|
								>8.13.1. Logging serial port output to a file</A
							 | 
						|
								></H2
							 | 
						|
								><P
							 | 
						|
								>        The first example shows how to log information sent to the serial port
							 | 
						|
								        on the guest system into a file on the host system.
							 | 
						|
								        </P
							 | 
						|
								><P
							 | 
						|
								>        Update the com1: section of your configuration file:
							 | 
						|
								        <TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>com1: enabled=1, mode=file, dev=serial.txt
							 | 
						|
								        </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        After you've launch dlxlinux, everything sent to the serial port will be
							 | 
						|
								        logged to serial.txt :
							 | 
						|
								        <TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>dlx:~# echo "logging to the serial port" > /dev/cua0
							 | 
						|
								        </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        <TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>host$ cat serial.txt
							 | 
						|
								logging to the serial port
							 | 
						|
								host$
							 | 
						|
								        </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        </P
							 | 
						|
								></DIV
							 | 
						|
								><DIV
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								><H2
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								><A
							 | 
						|
								NAME="AEN3129"
							 | 
						|
								>8.13.2. Interactivity : connecting to a virtual terminal</A
							 | 
						|
								></H2
							 | 
						|
								><P
							 | 
						|
								>        The second example shows how to connect to the guest OS, using a 
							 | 
						|
								        virtual terminal on the host OS.
							 | 
						|
								        </P
							 | 
						|
								><P
							 | 
						|
								>        First, you need to find an unused virtual terminal. Typically, 
							 | 
						|
								        X uses vt7; vt8 and up are unused. On my system, I can 
							 | 
						|
								        switch from X to vt9 by pressing ctrl-alt-f9 : this virtual
							 | 
						|
								        terminal is not used, the screen is all black. Pressing alt-f7 
							 | 
						|
								        switches back to X.
							 | 
						|
								        </P
							 | 
						|
								><P
							 | 
						|
								>        Once you found an unused vt, update the com1: section of your
							 | 
						|
								        configuration file:
							 | 
						|
								        <TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>com1: enabled=1, mode=term, dev=/dev/tty9
							 | 
						|
								        </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        The number must be set according to the terminal you want to use (here 9).
							 | 
						|
								        </P
							 | 
						|
								><P
							 | 
						|
								>        Now, launch dlxlinux. After you log in as root and kill gpm, 
							 | 
						|
								        enter the following command:
							 | 
						|
								        <TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>dlx:~# /sbin/agetty 38400 cua0
							 | 
						|
								        </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        If you switch to vt9, you can see dlx welcome banner, and the login prompt:
							 | 
						|
								<TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>Welcome to DLX V1.0 (C) 1995-96 Erich Boehm
							 | 
						|
								                    (C) 1995    Hannes Boehm
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								dlx login: </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        Note that dlxlinux is configured so you can not login as root from a
							 | 
						|
								        serial port. If you want to login, you have to create a new user first.
							 | 
						|
								        </P
							 | 
						|
								><P
							 | 
						|
								>        Also, if you plan to use this feature, the best would be to deactivate
							 | 
						|
								        gpm in /etc/rc.d/rc.local, and add a agetty line in /etc/inittab,
							 | 
						|
								        for example: 
							 | 
						|
								<TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>T0:1234:respawn:/bin/agetty 38400 cua0</PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        </P
							 | 
						|
								></DIV
							 | 
						|
								><DIV
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								><H2
							 | 
						|
								CLASS="SECTION"
							 | 
						|
								><A
							 | 
						|
								NAME="AEN3140"
							 | 
						|
								>8.13.3. Interactivity : connecting to a pseudo terminal</A
							 | 
						|
								></H2
							 | 
						|
								><P
							 | 
						|
								>        The third example is very similar to the second one, except that we
							 | 
						|
								        connect to the guest OS with kermit as client, and we the connection
							 | 
						|
								        is done through a pseudo terminal.
							 | 
						|
								        </P
							 | 
						|
								><P
							 | 
						|
								>        This example uses /dev/ptyp0 and /dev/ttyp0 as pseudo terminal pair.
							 | 
						|
								        We will tie Bochs to the controlling terminal, whereas kermit will
							 | 
						|
								        use the slave terminal.
							 | 
						|
								        </P
							 | 
						|
								><P
							 | 
						|
								>        Update the com1: section of your configuration file:
							 | 
						|
								        <TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>com1: enabled=1, mode=term, dev=/dev/ptyp0
							 | 
						|
								        </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        and lauch dlxlinux. After you log in as root, enter the command:
							 | 
						|
								        <TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>dlx:~# /sbin/agetty 38400 cua0
							 | 
						|
								        </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        Then in the host OS, launch kermit :
							 | 
						|
								        <TABLE
							 | 
						|
								BORDER="0"
							 | 
						|
								BGCOLOR="#E0E0E0"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								><PRE
							 | 
						|
								CLASS="SCREEN"
							 | 
						|
								>host$ kermit -l /dev/ttyp0
							 | 
						|
								C-Kermit 7.0.196, 1 Jan 2000, for Linux
							 | 
						|
								 Copyright (C) 1985, 2000,
							 | 
						|
								  Trustees of Columbia University in the City of New York.
							 | 
						|
								Type ? or HELP for help.
							 | 
						|
								(/tmp/) C-Kermit>connect
							 | 
						|
								Connecting to /dev/ttyp0, speed 0.
							 | 
						|
								The escape character is Ctrl-\ (ASCII 28, FS)
							 | 
						|
								Type the escape character followed by C to get back,
							 | 
						|
								or followed by ? to see other options.
							 | 
						|
								----------------------------------------------------
							 | 
						|
								
							 | 
						|
								Welcome to DLX V1.0 (C) 1995-96 Erich Boehm
							 | 
						|
								                    (C) 1995    Hannes Boehm
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								dlx login: 
							 | 
						|
								        </PRE
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								>
							 | 
						|
								        The same comments as for example 2 apply here.
							 | 
						|
								        </P
							 | 
						|
								></DIV
							 | 
						|
								></DIV
							 | 
						|
								><DIV
							 | 
						|
								CLASS="NAVFOOTER"
							 | 
						|
								><HR
							 | 
						|
								ALIGN="LEFT"
							 | 
						|
								WIDTH="100%"><TABLE
							 | 
						|
								SUMMARY="Footer navigation table"
							 | 
						|
								WIDTH="100%"
							 | 
						|
								BORDER="0"
							 | 
						|
								CELLPADDING="0"
							 | 
						|
								CELLSPACING="0"
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								WIDTH="33%"
							 | 
						|
								ALIGN="left"
							 | 
						|
								VALIGN="top"
							 | 
						|
								><A
							 | 
						|
								HREF="debugging-with-gdb.html"
							 | 
						|
								ACCESSKEY="P"
							 | 
						|
								>Prev</A
							 | 
						|
								></TD
							 | 
						|
								><TD
							 | 
						|
								WIDTH="34%"
							 | 
						|
								ALIGN="center"
							 | 
						|
								VALIGN="top"
							 | 
						|
								><A
							 | 
						|
								HREF="index.html"
							 | 
						|
								ACCESSKEY="H"
							 | 
						|
								>Home</A
							 | 
						|
								></TD
							 | 
						|
								><TD
							 | 
						|
								WIDTH="33%"
							 | 
						|
								ALIGN="right"
							 | 
						|
								VALIGN="top"
							 | 
						|
								><A
							 | 
						|
								HREF="bios-tips.html"
							 | 
						|
								ACCESSKEY="N"
							 | 
						|
								>Next</A
							 | 
						|
								></TD
							 | 
						|
								></TR
							 | 
						|
								><TR
							 | 
						|
								><TD
							 | 
						|
								WIDTH="33%"
							 | 
						|
								ALIGN="left"
							 | 
						|
								VALIGN="top"
							 | 
						|
								>Using Bochs and the remote GDB stub</TD
							 | 
						|
								><TD
							 | 
						|
								WIDTH="34%"
							 | 
						|
								ALIGN="center"
							 | 
						|
								VALIGN="top"
							 | 
						|
								><A
							 | 
						|
								HREF="howto.html"
							 | 
						|
								ACCESSKEY="U"
							 | 
						|
								>Up</A
							 | 
						|
								></TD
							 | 
						|
								><TD
							 | 
						|
								WIDTH="33%"
							 | 
						|
								ALIGN="right"
							 | 
						|
								VALIGN="top"
							 | 
						|
								>BIOS Tips</TD
							 | 
						|
								></TR
							 | 
						|
								></TABLE
							 | 
						|
								></DIV
							 | 
						|
								></BODY
							 | 
						|
								></HTML
							 | 
						|
								>
							 |