Run one line at system start up

Ok, so first off, some background…

I have an old Lenovo AIO (specs at the bottom) that I like using as a little control term for the rest of my systems. But there is an issue: Lenovo hardware sucks. Namely, the bios. Because of how screwed the bios code is, it is flooding the system with interrupt requests* and pushing a single core of the CPU up into the 80% utilization range. It appears to be a hardware/firmware issue. Now, thinking that a BIOS update might help, I went through the whole painful process of installing windows10 on a spare ssd just so I could run the stupid windows-only lenovo bios update utility (I did try fwupd first - no updates found for system) and update the bios to version O0BKT25A. The issue, however, still remains.

The only way I have found to remedy the issue is by running the following in console as root (sudo does not work)

echo disable > /sys/firmware/acpi/interrupts/gpe1B

I have to open a console window, login as root, and enter that line of code every time the system starts. I would like to automate this. I am a bit old school, so I attempted to use cron first but found that crontab was missing on this distro. So, did some more searching and decided to try making a service. Very loosely following the guide here and checking and verifying information here I put together a ‘service’ that would hopefully run at startup and prevent me from having to manually type this in all the time.

[Unit]
Description=quietFirmwareWarnings
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=echo disable > /sys/firmware/acpi/interrupts/gpe1B
[Install]
WantedBy=default.target

This did not work. Though checking the status of the ‘service’ after boot shows that it ran successfully, the single core of the CPU is still pegged and requires me to run the line manually to get it to stop.

The end result I would like is just so I don’t have to keep typing this line at every reboot. Either we fix the underlying interrupt issue or auto-run that line at startup - all I care about is stopping that cpu hog.

*This is my very basic understanding of the issue based on the information I found online concerning the symptoms of my system. It could be that I have worded this wrong. The solution specified, however, works perfectly.

System Specs:

  • Lenovo B50-30 (F0AU008FUS)
  • CPU: i5-4460S
  • GPU: NVIDIA GeForce 840M?
  • RAM: 16 GB
  • Running EndeavourOS (duh) with kernel version 6.12.7-arch1-1

I don’t think it will work like this because echo is a shell built-in. Maybe you can launch a shell with the exec line and quote the command to run.

ExecStart=/bin/sh -c 'echo disable > /sys/firmware/acpi/interrupts/gpe1B'

Can’t help you with your problem, but if you or someone else has the same problem with updating the BIOS, you can use this Windows Live Iso. No need to install Windows on your PC with that.

I just modified the service. Rebooting now to see if that works

Edit: THAT WORKED! Finally…
Thank you for that. Makes using this system much less of a pain

1 Like

I did attempt that first. Not THAT specific Windows Live. I used the Rufus ‘Windows to Go’ usb stick. It took twenty minutes to boot and then failed instantly. Might give hirens a shot next time.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.