1## To Build 2Note: In addition to a toolchain and autoconf tools, this requires `autotools-archive` to be installed. 3 4To build this project, run the following shell commands: 5 6``` 7./bootstrap.sh 8./configure ${CONFIGURE_FLAGS} 9make 10``` 11 12To fully clean the repository, run: 13``` 14./bootstrap.sh clean 15``` 16 17## To Run Server 18Running the server requires a serial port (e.g. /dev/ttyS0): 19 20``` 21touch obmc-console.conf 22./obmc-console-server --config obmc-console.conf ttyS0 23``` 24 25## To Connect Client 26To connect to the server, simply run the client: 27 28``` 29./obmc-console-client 30``` 31 32To disconnect the client, use the standard `~.` combination. 33 34 35## Underlying design 36 37This shows how the host UART connection is abstracted within the BMC as a Unix 38domain socket. 39 40``` 41 +--------------------------------------------------------------------------------------------+ 42 | | 43 | obmc-console-client unix domain socket obmc-console-server | 44 | | 45 | +---------------------+ +------------------------+ | 46 | | client.2200.conf | +---------------------+ | server.ttyVUART0.conf | | 47 +---+--+ +---------------------+ | | +------------------------+ +--------+-------+ 48Network | 2200 +--> +->+ @obmc-console.host0 +<-+ <--+ /dev/ttyVUART0 | UARTs 49 +---+--+ | socket-id = "host0" | | | | socket-id = "host0" | +--------+-------+ 50 | | | +---------------------+ | | | 51 | +---------------------+ +------------------------+ | 52 | | 53 | | 54 | | 55 +--------------------------------------------------------------------------------------------+ 56``` 57 58This supports multiple independent consoles. The socket-id is a unique 59portion for the unix domain socket created by the obmc-console-server 60instance. The server needs to know this because it needs to know what to name 61the pipe; the client needs to know it as it needs to form the abstract socket 62name to which to connect. 63