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