MNT Reform open source laptop—DIY Edition

I've losely followed the project over the years and ultimately backed the crowdfunding campaign on Crowd Supply back in May 2020 and received my DIY Kit in March 2021. In between I've followed Luka's and team, mostly on twitter.

I must say, I was very much looking forward to receiving my Reform—actually much more so, than any of "the other"™ handheld/terminal/laptop/… devices that I've backed over the years. 🙈

BTW I'm already eagerly awaiting a likely/ maybe(?) crowdfunding campaign for the Pocket Reform a handheld/ terminal type device that Lukas et al. are currently prototyping

DIY Kit Assembly

MNT Reform DIY Assembly

The actuall assembly of the kit was pretty straight forward—not b/c I'm particularly talented (I'm not), rather thanks to Lukas' great and beautifully layouted assembly guide/ instructions and handbook.

Alternative OS Support and Booting

The OOTB experience of the default Debian GNU/Linux system image for Reform (src) is really great: there are two desktop environments (Sway and GNOME) and additional scripts nicely pre-configured. Though, I'm actually even more curious about putting an alternative OS onto my Reform, be it another Linux Distro or maybe even OpenBSD? Also what's RISC OS 🤔…

You should be able to use any distro if you use the supplied kernel and DTS (Image and .dtbfiles in the root (/) directory of the SD card).
Plus, copy /sbin/reform-init to the new system as well.
You might want the other stuff from reform-tools as well: reform2-imx8mq/reform-tools_1.0-6
Some more details on system boot are here: Advanced Topics — MNT Reform Operator Handbook documentation
The reform-init script mentioned at the end lets you dynamically change the rootfs after the kernel is up, based on the text file /reform-boot-medium. It is something that is traditionally done in initramfs, but MNT Reform does not use an initramfs by default. After re-mounting the filesystem root (also supports LUKS), reform-init passes control to the real init of your distro.
—src: MNT Community

Serial Console

Wire up a generic USB-to-UART adapter to the following pins of connector J18
—src: MNT Reform Handbook

  1. UART1_TXD, connect to RX of your adapter —› White
  2. UART1_RXD, connect to TX of your adapter —› Green
  3. GND, connect to GND of your adapter —› Black

USB-to-UART Specification:

  • Red: +5V.
  • Green: Tx.
  • White : Rx.
  • Black: GND.
screen /dev/ttyUSB0 115200

# Detach the screen session
# Ctrl-a d, Ctrl-a Ctrl-d

SD Card

# backup mntreform sd to *.img file
sudo dd if=/dev/mmcblk0 of=/home/matthias/Downloads/mntreform_bkp.img

# restore mntreform from backup *.img file
sudo dd bs=4M if=/home/matthias/Downloads/mntreform_bkp.img of=/dev/mmcblk0

Flash Firmware of internal keyboard

sudo apt install avr-libc gcc-avr
git clone git@source.mnt.re:reform/reform.git
cd reform/reform2-keyboard-fw
make
# remove keyboard frame
# toggle DIP switch SW84 ON
# reset button SW83
sudo apt install dfu-programmer
sudo ./flash
# toggle DIP switch SW84 OFF
# add keyboard frame

To be continued…

Resources