cereal
cereal is a serial terminal management system. cereal provides a framework to easily set up and maintain automated, timestamped logs of serial lines, while simultaneously allowing end user access to them. This is probably most useful for providing automated, logged access to remote serial consoles.
cereal can control an arbitrary number of independently monitored and logged lines. Direct access to the monitored lines is allowed only to a specific user (who doesn't necessarily otherwise have access to the direct serial line), but logs can be made available to any group. Logs are rotated automatically and their total space can be limited in size.
cereal uses GNU screen as the terminal interface to the serial lines. cereal attaches a screen session to a specified serial terminal, and then monitors the screen session with runit. Any activity on that screen session is written to a log file.
cereal was conceived as a way to manage the monitoring of serial consoles on other machines. Other than network connections, serial lines are the most useful way to interact with a machine. All legitimate BIOS, bootloaders, and operating systems can provide console/terminal access through a serial line. In a high-density environment, such as a rack, all machines can be configured with their consoles on a serial line. A serial console server can then be setup with a high number of serial ports to monitor the serial consoles of all the machines in the rack. Serial monitoring requires less space, and is more flexible and convenient that typical KVM systems. cereal can be used on the serial console server to manage all the serial connections to the machines in the rack.
cereal is available under the GNU General Public License, v3 or later.
terminology
- a "session" connects a "terminal", with screen, to a "host" (serial console) via serial "line"
- one can "attach" to enabled session
- one can "follow" enabled session (read logs)
dependencies
cereal depends on runit and GNU screen.
hardware
cereal is particularly useful on machines with large numbers of serial ports, acting as a console server. How can you make it so that your machine has a large number of serial ports for a reasonable price?
- the Octopus-550, an 8-port PCI card. These work well under linux, and CMRG has lots of experience with them. search around a bit for the best prices. Highly recommended.
- CableMax USBG-8X-RS232 USB 8-port serial adapter -- uses the Prolific chipset (pl2303), which has robust driver support in Linux. Doesn't require external power or a hub for 8 ports, which is nice. One purchased in early 2009 does indeed use pl2303, and works great with cereal on debian lenny.
- AUM180 USB 8-port Serial adapter -- also claims to use the prolific chipset. haven't tried it, but looks nice and compact.
Note: If you're using udev and USB, you might have trouble getting the devices to be named consistently. Joey Hess has a good concise writeup of how to do that (assuming you don't swap around your USB cables).
download
cereal is of course available in Debian.
The latest version of cereal is also available from CMRG in source or .deb form, or from the CMRG apt repository by adding the following to your /etc/apt/sources.list:
deb http://cmrg.fifthhorseman.net/debian unstable cereal deb-src http://cmrg.fifthhorseman.net/debian unstable cereal
etch backport
The latest version of cereal no longer works on etch because of changes in runit. If you want to use cereal on an etch system, please put the following lines in /etc/apt/sources.list instead:
deb http://cmrg.fifthhorseman.net/debian etch cereal deb-src http://cmrg.fifthhorseman.net/debian etch cereal
Note: these repositories are signed by dkg's GPG key. You can import this key for apt if you want cryptographic verification of these packages.
Anonymous, read-only access to the source is available via svn:
svn co http://cmrg.fifthhorseman.net/svn/trunk/cereal
You can also browse the source on this site.
open issues

