Systemctl: error starting reform-hw-setup.service

Hi there,
I just updated my debian installation and I see an error starting the service reform-hw-setup.service.: “Failed to start reform-hw-setup service - MNT Reform Hardware Defaults Setup”.

The issue detected is that “shutdown suspend” never more wakeup. When I push the circle and then wake (space) my laptop does nothing; I have to Power off and then Power on. I dont see any other impact of this issue.

Before the update all was ok.

Output of uname -a is: Linux reform 6.8.9.

Journalctl say that cannot create the wakeup file.

Nothing is pending to be updated/upgraded

Any suggestion?

Thank you

Hi! Which CPU module does your Reform have, and can you paste the output of cat /proc/device-tree/model and the output of sudo systemctl status reform-hw-setup?

Here you have,

  1. CPU is NXP i.MX8M Quad.
  2. device-tree/model

MNT Reform 2 HDMI

  1. systemctl status
    × reform-hw-setup.service - MNT Reform Hardware Defaults Setup
    Loaded: loaded (/usr/lib/systemd/system/reform-hw-setup.service; enabled; preset: enabled)
    Active: failed (Result: exit-code) since Tue 2024-05-21 08:10:32 CEST; 2h 20min ago
    Invocation: 07429323058e4cfda8938d0b2a81af1b
    Process: 1370 ExecStart=/usr/sbin/reform-hw-setup (code=exited, status=2)
    Main PID: 1370 (code=exited, status=2)

May 21 08:10:32 reform reform-hw-setup[1375]: Simple mixer control ‘Left Input Mixer Boost’,0
May 21 08:10:32 reform reform-hw-setup[1375]: Capabilities: pswitch pswitch-joined
May 21 08:10:32 reform reform-hw-setup[1375]: Playback channels: Mono
May 21 08:10:32 reform reform-hw-setup[1375]: Mono: Playback [on]
May 21 08:10:32 reform reform-hw-setup[1370]: /usr/sbin/reform-hw-setup: 66: cannot create /sys/devices/platform/soc@0/30800000.bus/30860000.serial/tty/ttymxc0/power/wakeup: Directory nonexistent
May 21 08:10:32 reform reform-hw-setup[1370]: /usr/sbin/reform-hw-setup: 67: cannot create /sys/devices/platform/soc@0/30800000.bus/30890000.serial/tty/ttymxc1/power/wakeup: Directory nonexistent
May 21 08:10:32 reform reform-hw-setup[1370]: /usr/sbin/reform-hw-setup: 68: cannot create /sys/devices/platform/soc@0/30800000.bus/30880000.serial/tty/ttymxc2/power/wakeup: Directory nonexistent
May 21 08:10:32 reform systemd[1]: reform-hw-setup.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
May 21 08:10:32 reform systemd[1]: reform-hw-setup.service: Failed with result ‘exit-code’.
May 21 08:10:32 reform systemd[1]: Failed to start reform-hw-setup.service - MNT Reform Hardware Defaults Setup.

Hi Lukas,
After some digging I did the next change to the reform-hw-setup script:

< echo enabled > /sys/devices/platform/soc@0/30800000.bus/30860000.serial/30860000.serial:0/30860000.serial:0.0/tty/ttymxc0/power/wakeup
< echo enabled > /sys/devices/platform/soc@0/30800000.bus/30890000.serial/30890000.serial:0/30890000.serial:0.0/tty/ttymxc1/power/wakeup
< echo enabled > /sys/devices/platform/soc@0/30800000.bus/30880000.serial/30880000.serial:0/30880000.serial:0.0/tty/ttymxc2/power/wakeup

echo enabled > /sys/devices/platform/soc@0/30800000.bus/30860000.serial/tty/ttymxc0/power/wakeup
echo enabled > /sys/devices/platform/soc@0/30800000.bus/30890000.serial/tty/ttymxc1/power/wakeup
echo enabled > /sys/devices/platform/soc@0/30800000.bus/30880000.serial/tty/ttymxc2/power/wakeup

Now systemctl has no errors and systemctl standby is working as usual

Regards,

Vinicio

1 Like

You can surround code blocks in triple backticks or indent it by four spaces to not mess up the formatting. This looked better when I read your message in my (text based) email client. :slight_smile:

@minute if you can confirm that this is the correct fix, I’ll cook up a patch including a fallback for older kernels and submit a MR.

For clarity (apologies) this is are the lines that I modified. Lines 66,67 and 68 in the reform-hw-setup script,

    echo enabled > /sys/devices/platform/soc@0/30800000.bus/30890000.serial/30890000.serial\:0/30890000.serial\:0.0/tty/ttymxc1/power/wakeup
    echo enabled > /sys/devices/platform/soc@0/30800000.bus/30880000.serial/30880000.serial\:0/30880000.serial\:0.0/tty/ttymxc2/power/wakeup

Thank you! In the search of a solution that works for new kernels and for old kernels I came up with this invocation of find. Could you please run it and report what its output on your system with kernel 6.8 is?

find /sys/devices/platform/soc/ -wholename '*/tty/ttymxc*/power/wakeup'

/soc doesnt exist, I changed the path by /soc@0
The execution of
find /sys/devices/platform/soc@0/ -wholename '*/tty/ttymxc*/power/wakeup' gives the output

/sys/devices/platform/soc@0/30800000.bus/30860000.serial/30860000.serial:0/30860000.serial:0.0/tty/ttymxc0/power/wakeup
/sys/devices/platform/soc@0/30800000.bus/30890000.serial/30890000.serial:0/30890000.serial:0.0/tty/ttymxc1/power/wakeup
/sys/devices/platform/soc@0/30800000.bus/30880000.serial/30880000.serial:0/30880000.serial:0.0/tty/ttymxc2/power/wakeup

Aha, thank you! Indeed you found a bug in my find command. The fixed version is this and should give the exact same output:

find /sys/devices/platform/soc*/ -wholename '*/tty/ttymxc*/power/wakeup'

If anybody with an imx8mq reform before kernel 6.8 could run this and paste the output, that would be great!

A final apostrophe (') is missed, I added and executed. The output is the same that I send before

1 Like

Output on my i.mx8mq reform2 is:

$ uname -a
Linux reform 6.7.9-reform2-arm64 #1 SMP Debian 6.7.9-reform2-2+reform20240405T193339Z (2024-04-05 aarch64 GNU/Linux
$ find /sys/devices/platform/soc*/ -wholename '*/tty/ttymxc*/power/wakeup'
/sys/devices/platform/soc@0/30800000.bus/30860000.serial/tty/ttymxc0/power/wakeup
/sys/devices/platform/soc@0/30800000.bus/30890000.serial/tty/ttymxc1/power/wakeup
/sys/devices/platform/soc@0/30800000.bus/30880000.serial/tty/ttymxc2/power/wakeup
1 Like

Thank you all for your help! The problem should be fixed with reform-tools 1.43 in this commit:

Just wanted to let you know that 1.43 fixed the issue for me; my Reform can suspend again. Thanks for all the work.

1 Like

Thank you for reporting it! I cannot fix issues without them getting reported first. :slight_smile:

1 Like

Ah, wasn’t me but @invictvs that reported it. Regardless, thanks again! Can’t wait for my Pocket and RK3588.

1 Like