collapseos/tools
Virgil Dupras 7dc00179f7 tools/upload: use A! instead of C! to write
By default, it changes nothing, but it allows interesting
setups, such as using AT28! for directly uploading to EEPROM.

I've also updated the EEPROM recipe to upload directly to 0x2000.
I'm not sure what has changed, but it's working fine now.
2020-09-17 13:30:29 -04:00
..
.gitignore
blkpack.c Replace deprecated bzero with memset (#119) 2020-06-16 18:58:23 -05:00
blkunpack.c blkunpack: don't include trailing empty lines 2020-06-23 06:52:34 -04:00
blkup.c tools: improve usability on OpenBSD 2020-07-02 11:36:53 -04:00
common.c tools: improve reliability of ttyopen() 2020-09-17 10:25:08 -04:00
common.h Add arduinouno/at28 recipe 2020-07-22 17:26:06 -04:00
exec.c tools/exec: exec specified file instead of hardcoding on stdin 2020-08-02 16:11:19 -04:00
Makefile emul: don't embed forth.bin in emul binaries 2020-05-23 09:54:26 -04: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: use A! instead of C! to write 2020-09-17 13:30:29 -04: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