collapseos/tools
Virgil Dupras 2fa88176c0 VE: don't emit chars higher than 0x7f
Uninitialized blocks often contains garbage, and emitting it on
the TRS-80 4P results in serious visual glitches.
2020-12-22 18:34:03 -05:00
..
.gitignore VE: don't emit chars higher than 0x7f 2020-12-22 18:34:03 -05:00
blkdown.c tools: add "blkdown" tool 2020-12-21 17:02:36 -05:00
blkpack.c Transform "blk/" folders into "blk.fs" text files 2020-11-14 18:34:15 -05:00
blkunpack.c tools/blkunpack: add "upto" argument 2020-12-21 17:02:36 -05:00
blkup.c tools/blkup: add shortcut for zero blocks 2020-12-17 20:19:12 -05:00
common.c tools/upload: send data as string hex to avoid control characters 2020-12-16 16:52:54 -05:00
common.h Add arduinouno/at28 recipe 2020-07-22 17:26:06 -04:00
exec.c tools/exec: fix segfault 2020-11-17 17:02:10 -05:00
Makefile tools: add "blkdown" tool 2020-12-21 17:02:36 -05:00
memdump.c tools: improve usability on OpenBSD 2020-07-02 11:36:53 -04:00
pingpong.c Add arduinouno/at28 recipe 2020-07-22 17:26:06 -04:00
README.md tools: improve stty-related advices in README 2020-08-02 16:21:31 -04:00
ttysafe.c
upload.c tools/upload: send data as string hex to avoid control characters 2020-12-16 16:52:54 -05:00

Tools

This folder contains tools to communicate to Collapse OS machines from a modern environment or to manipulate a blkfs.

Communication tools all take a device path as a first argument. That device is the serial device that connects you to your machine. It's often a USB-to-TTL dongle. When - is specified, stdin is used as the device.

Note that for these tools to work well, you need the serial device to be properly set up, TTY-wise. You'll probably want to do that with stty. The tool itself takes care of setting the regular stuff (cs8, -parenb, etc), but you need to set the speed. Here's an example working on OpenBSD:

$ ( stty 115200 raw ; sleep 2 ; ./upload - a000 os.bin ) <> /dev/cuaU0

To be honest, I'm having a bit of troubles making these tools work as well on OpenBSD as they do in Linux. But it does work. Here are some advices:

  • Use cuaXX instead of ttyXX.
  • Run cu -l /dev/cuaXX before running your tool and run a dummy command to make sure that the output buffer is flushed.
  • Use the "raw" option to avoid TTY-processing options to mess with data.
  • If you experience random failures in your command, try inserting a "sleep 2" between your "stty" invocation and the command. In my experience, these tend to help.

On Linux, it's generally easier:

  • Run screen on the device (often /dev/ttyUSBX)
  • Quit with CTRL+A :quit
  • Run the tool on the same device