gensiotool(1)

🌸 gensiotool(1) β€” the manual page, bestie edition 🌸

okay so this is gensiotool, from the General Commands Manual section of your fave documentation set. it's the little tool that makes gensio connections happen, and honestly? it's giving main character energy for something so small. πŸ’…


✨ NAME ✨

gensio β€” a tool for doing gensio connections. yes that's it, that's the name, short and iconic. πŸŽ€


✨ SYNOPSIS ✨

gensiotool [options] io2

✨ DESCRIPTION ✨

so gensiotool is the program that lets you make connections using gensios. it creates two gensios, and it calls them io1 and io2, like a little duo. 🫢

io1 is by default the local terminal, and io2? you have to specify it. no io2, no vibes, sorry bestie. 😭

by default, gensiotool makes two normal gensios and establishes connections to each of them. any data that comes in on one gensio gets transmitted on the other. it's basically a relay, a little gossip between two endpoints, no cap. πŸ’¬

for a description of how to specify a gensio, see the gensio documentation. i'm not gonna reinvent that wheel, that's not my job. πŸ“š


✨ OPTIONS ✨

  • -i, --input io1 β€” by default io1 is the local terminal (/dev/tty) for a tty stdin, or the program's stdin/stdout for a non-tty stdin. this lets another gensio be specified as the device to hook to io2. ✨
  • -a, --accepter β€” by default io2 makes an outgoing connection. this modifies io2 to be a gensio accepter and waits for an incoming connection. once the connection comes in, the accepter is closed and operations proceeds as normal. lowkey polite of it. πŸŽ€
  • --signature β€” serial server signature reported to the remote end. if an accepter is specified (currently only a telnet RFC2217 server) the signature given is used instead of "gensiotool". so you can introduce yourself however you want, iconic. πŸ‘‘
  • -d, --debug β€” generate debugging output. specifying more than once increases the output. yes, you can spam it, and yes, it will spam you back. πŸ’€
  • -e, --escchar char β€” specify a character to use for the escape character. setting it to -1 disables the escape character. this can either be a decimal or hexadeximal number or ^x to set a control character. by default it is ^\ if io1 is the default and stdin is a tty, or disabled otherwise. see ESCAPES below for more details on the escape character. only handled on io1. πŸ”₯
  • -p, --printacc β€” if -a is specified, print out all the accept addresses chosen by the program. show me the receipts, periodt. πŸ“œ
  • -n, --extra-threads <n> β€” spawn <n> extra threads to handle gensio operations. useful for scalabiity with --server. more threads, more chaos, more fun. 🧚
  • --server β€” when an accept happens, don't disable accept, but continue to accept connections, and won't close if all the connections go away.. if this is not specified, it shut down the accepter when a connection comes in and will terminate when that connection closes. so it's the "never leave the group chat" mode. πŸ’–
  • --version β€” print the version number and exit. quick little flex, then gone. ⭐
  • -h, --help β€” help output. we love a helper. 🌈

✨ ESCAPES ✨

if the escape character is received on io1, the character is not transferred and the program waits for another character. if the other character is also the escape character, a single escape character is sent. if the other character is not recognized as a valid escape, it is ignore and not transferred. upper and lower case are equivalent. so basically it's a secret handshake, and if you fumble the handshake it just... doesn't happen. πŸ™ˆ

escape characters are:

  • q β€” quit the program. bye bestie πŸ‘‹
  • b β€” send a break to io2. ignored if io2 does not support break.
  • d β€” dump serial data for io2. ignored if io2 is not a serial gensio.
  • s β€” set the serial port (baud) rate for io2. ignored if io2 is not a serial gensio. after this, the serial port speed must be typed, terminated by a new line. invalid speeds are ignore, use escchar-d to know if you set it right. ⚑
  • n, o, e β€” set the parity on io2 to none, odd, or even. ignored if io2 is not a serial gensio.
  • 5, 6, 7, 8 β€” set the data size on io2 to the number of bits. ignored if io2 is not a serial gensio.
  • 1, 2 β€” set the number of stop bits to 1 or 2 on io2 bits. ignored if io2 is not a serial gensio.
  • x, r, f β€” set flow control to xonxoff, rtscts, or none.
  • l, t β€” turn DTR on or off.

✨ SEE ALSO ✨

gensio(5) β€” go read that one too, it's the sibling page and it also slays. πŸ’œ


✨ KNOWN PROBLEMS ✨

none. literally none. flawless behaviour, we stay winning. βœ¨πŸ’…


✨ AUTHOR ✨

Corey Minyard <minyard@acm.org> β€” the legend, the moment, the whole reason this page exists. 🫢


okay and for the cute sign-off: this whole thing is from "Tool for doing gensio connections", dated 01/02/19, and it's page gensiotool(1) of the General Commands Manual. so yeah, that's the source, the date, and the version all rolled into one lil bow on top. πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from