My experience with the Reform so far

First of all, I want to make one thing clear: I’m not ranting and I’m not criticizing. I’m actually pleasantly convinced by this odd machine.

Don’t read any of what follow as a criticism, but rather a tongue-in-cheek account of my early experience with the Reform.

But before that, some screenshot porn, since the machine is finally all setup and I have my workflow more or less back to normal:

So, UPS dropped the laptop on my porch on Tuesday. It’s now Saturday morning and I can say it’s taken me 5 solid evenings of work to get the machine setup just right (i.e. that is, how I need it and I wanted: your mileage may vary). And bear in mind that I’m a Unix professional with 40 years of experience (a bit less with Linux of course) :slight_smile:

This is roughly how it went:

  • I unpacked the laptop. It was nicely packed, the manual is super-nice with thick pages. Yes, I care about those things and I can tell quality when I see it. I didn’t need the manual but I ordered it on purpose to check whether it would be an afterthought, and it wasn’t. Someone actually cared to make it nice, and that’s worth mentioning in this age of mediocrity.

  • I opened the laptop, plugged the USB-C power brick, powered it on: no problem. I was greeted with a screen to let me choose my environment. I’m an i3 guy so I chose Sway. Sway came up, no issue. It felt like home.

  • After playing with the laptop disconnected from the wall wart some, I fell asleep and let the batteries die. The next morning, the laptop was bricked :frowning:

    I unscrewed the lid, disconnected the battery packs, connected the USB charger to bring up the keyboard controller, then reconnected the packs “live” to force some charge into them. The battery status looked weird but some amps were flowing in, so I figured it was charging… [Side note: you can tell the charge display was done by an engineer: when it’s charging, the amperage is a negative value. This would NEVER pass muster at a marketing department in a million years :slight_smile: ]

    Long story short, after a few sketchy operations like that, it finally decided to behave and charge back up normally. Not great, but the show was back on the road.

  • While in instantly loved the trackball, I also instantly hated the button mapping. So I decided to modify the firmware to remap the buttons. That went quickly and smoothly. Nice!

  • As I played with the laptop some more, I noticed that the keyboard kept getting USB reset events for some reason. After asking here, I was informed that the firmware might have a bug. No matter: I git-cloned the latest version, rebuilt it and flashed it and… I bricked the laptop again.

    I tried reflashing the LPC firmware. That didn’t do anything. Finally, I took a peek in the keyboard’s firmware and noticed a glaring mistake. So I cross-compiled it on my regular x86 HP laptop and reflashed the keyboard (which, incidentally, involves gutting a good bit of the laptop).

    That unbricked the laptop! So the show was back on the road once again :slight_smile:

  • After some more time configuring the laptop, I noticed that my keyboard was bulging outward. Odd… After taking a look, I quickly noticed that the CPU module was too tall and the plexiglass bottom was pushing against the heatsink.

    So I took a couple hours to model and 3D-print a spacer to create a bit more space for the module. That cured the problem. But lucky I have access to a big 3D printer that could handle that job! And lucky I have CAD skills also, I guess.

  • Then I went about configuring my work environment. I needed to configure VPN access to my company’s intranet - which uses a Fortinet Fortigate. So I installed openfortivpn and copied my config files over from the HP laptop. And… I spent 8 hours debugging openfortivpn, which is incompatible with the latest pppd daemon :slight_smile:

    Is it the Reform’s fault? Of course not. It’s Debian Unstable. It’s, well, unstable. Still… here’s the thing: no VPN, no work laptop. So I absolutely needed to fix that piece of software.

  • Then I tried to install PrusaSlicer, to generate gcode files for our 3D printers. It immediately complained that it needed OpenGL 3.2, and the Reform’s OpenGL only supports 3.1. Grrr…

    After much searching, I found an ARM64 flatpak of OrcaSlider - which is a fork of PrusaSlicer - that works well. But now I have a new slicer to get used to, because the interface is rather different.

  • At that point, the “big” software packages I needed were sorted out. So I started taking care of the small things - you know, things like the screen locker / screensaver, file manager, clipboard manager, language selector, emoji picker, screenshot utility… stuff you need and use all the time and never think about.

    And sure enough, most of my i3 stuff doesn’t work in Wayland (i3 is X11). So I went hunting for Wayland replacements and configured Sway accordingly for many, many… many hours.

And now it’s done!

The Reform is like all computers: if you care about the environment you run and making your work tool your very own, it’ll never be ready to use out of the box like a Windows or Mac machine. I’ve never bought a computer that I didn’t spend ungodly amounts of time configuring.

But the Reform takes this paradigm to a whole new level!

As the old saying goes: the Reform is user-friendly - just very particular whom it makes friend with :slight_smile:

All in all, I like it. Doing all those chores actually got me to use it rather intensely, so now that it’s all setup, it feels like an old pair of jeans. That’s good.

I don’t much like the speakers, which are wimpy at best, even at full volume. And I don’t much like that I can’t suspend or hibernate the machine, and I can’t just slam it shut in the evening and pick up where I left off the next morning. But I don’t watch movies on my laptop and I can spend another minute booting up once a day I guess, so all in all, it fits my workflow quite well.

But boy! was it a handful. And I have a feeling if I didn’t know my way around Linux intimately and how to compile stuff, I might be in a right ole pickle with that one right now.

6 Likes

You can have Mesa lie to applications about what version of OpenGL is supported. Environment Variables — The Mesa 3D Graphics Library latest documentation

Sometimes they’ll work anyway. I’ve had good luck with this.

What was the error in the keyboard fw?

I tried it of course, but no: PrusaSlicer really does need OpenGL 3.2 features. When you lie to it, it starts and displays a bed, but the parts and a lot of 3D renderings don’t show up, and there are error messages on stdout.

1 Like

I expected much more negativity after this disclaimer but then had a pleasant read of your post. Thank you for sharing and giving honest feedback!

Yes, I received an rk3588 classic Reform from the same batch and can confirm the issues with lpc and keyboard firmware… I do not have the time right now as I’m busy with reform.debian.net fixes for Trixie, so my own rk3588 classic Reform experiments are currently waiting until I either find time to allocate to fixing the problems or somebody else does it before I get to do it…

In any case: I very much enjoy your forum posts and am looking forward to what else you are going to cook up. Happy hacking!

1 Like

Quick update:

So far my Reform has been essentially a 1:1 replacement of my old - now defunct - entry-level HP 14-series notebook: the HP was a bit quicker, and had much better OpenGL support (it could do Blender, which the Reform can’t) while the Reform is a lot more stable and has better hardware support, has a stellar keyboard, more RAM and more disk. So all in all, after wrangling with the beast for a few days, it’s more or less back to life as usual with the Reform.

But I found the one thing that sets it ahead of my old laptop: it runs Android!

Meaning I can run my stupid Android-only banking apps in Linux.

Meaning I don’t have to drag my hiney to the living room to go get my cellphone each time I make a payment in my bank’s home banking website.

Now that’s groovy!

Also, on a side note, I must say I’m properly impressed by the level of support for the arm64 architecture in Linux. I’m sure it’s old news to those who’ve been playing with Raspberry Pi’s for a long time. But the platform is new to me and I was expecting to port a lot of stuff that hadn’t been ported yet, like on RISC-V. And so far I really haven’t found anything that exists on x86 that doesn’t exist in arm64 as a convenient pre-built package.

Well okay, maybe old versions of Blender that might work on the Reform haven’t been ported, in fairness…

1 Like

Yay! I’m very happy that the unit works well for you right now. Lets keep improving it. :slight_smile:

What is your recipe? I used to use this to run waydroid in kiosk mode (using cage) inside qemu (because I don’t trust these android apps and want maximum containment) but it broke and I have to fix that script:

bin/debvm-create -z 5G \
  -s usrmerge \
  -k ~/.ssh/id_rsa.pub -- \
  --include=linux-image-arm64,ca-certificates,waydroid,cage,wlr-randr \
  --customize-hook='printf "[Unit]\nAfter=systemd-logind.service\nWants=systemd-logind.service\n\n[Service]\nType=simple\nExecStart=/usr/bin/cage -- sh -c \"wlr-randr --output Virtual-1 --mode 1440x900 && waydroid show-full-ui\"\nUser=user\nTTYPath=/dev/%%I\nPAMName=cage\n\n[Install]\nWantedBy=graphical.target\n" > "$1"/etc/systemd/system/cage@.service' \
  --customize-hook='chroot "$1" systemctl --root=/ enable cage@tty1.service' \
  --customize-hook='printf "[Unit]\nBefore=cage@tty1.service\n\n[Service]\nType=oneshot\nExecStart=waydroid init\nExecStart=/usr/bin/rm -f /etc/systemd/system/%%n /etc/systemd/system/multi-user.target.wants/%%n\n\n[Install]\nWantedBy=multi-user.target" > "$1"/etc/systemd/system/waydroid-firstboot.service' \
  --customize-hook='chroot "$1" systemctl --root=/ enable waydroid-firstboot.service' \
  --hook-dir=/usr/share/mmdebstrap/hooks/useradd \
  http://deb.debian.org/debian \
  waydroid.sources
2 Likes

No recipe: I installed Waydroid, which installed Lineage, and then I installed MicroG and that’s it. The only slight hiccup in this whole process is that Waydroid still doesn’t support cameras, so I had to activate my bank’s apps with a SMS code instead of a QR code. Aside from that, it was vanilla Android.

I have no need for Android apps apart from my banks’ apps. I suppose they’re trustworthy enough…

Anyway, when I’m done, I shut down the container and the session.

3 Likes