Bare Metal Linux on Lenovo IdeaPad Gaming Chromebook 16 (TANIKS, 82V80009UX, 16IAU7)

I built this page to consolidate everything I know about this specific model. I found it frustratingly difficult to find all of this information in one place, so I paid it forward.

https://geekazoid.notion.site/Bare-Metal-Linux-on-Lenovo-IdeaPad-Gaming-Chromebook-16-4bdbedfa32b14b12bfb1e5ab6eecaab1

[Excerpts Below]

USB-C

The USBC is fully supported, but there is a bug that requires loading the kernel modules in reverse order to get it working.

rmmod cros-ec-typec; rmmod intel-pmc-mux # unload these modules
modprobe intel-pmc-mux; modprobe cros-ec-typec # load in reverse order

This can be automated with a systemd service. Create this file at /etc/systemd/system/usb4-fix.service:

[Unit]
Description=Fix USB4 module loading issue
After=multi-user.target

[Service]
Type=oneshot
ExecStartPre=/usr/sbin/rmmod cros-ec-typec
ExecStartPre=/usr/sbin/rmmod intel-pmc-mux
ExecStart=/usr/sbin/modprobe intel-pmc-mux
ExecStart=/usr/sbin/modprobe cros-ec-typec
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Reload systemd to recognize the new service, and enable it on startup.

sudo systemctl daemon-reload
sudo systemctl enable usb4-fix.service

# you can test it now if you like
#sudo systemctl start usb4-fix.service

Reboot to test; USBC should start automatically

Keyboard Layout

Using keyd I remapped:

  • the number keypad to the numeric values (as if NUMLOCK was on)
  • the F keys to F1-F11 (there is no F12)
  • Alt modifies the top row to their alternate functions (similar to Fn key)
  • the Super key to Caps Lock
  • Alt-Super is now Super
[ids]

*

[main]

# Map number pad keys to their standard characters, regardless of NumLock state
kp0 = 0
kp1 = 1
kp2 = 2
kp3 = 3
kp4 = 4
kp5 = 5
kp6 = 6
kp7 = 7
kp8 = 8
kp9 = 9
kpdot = .
leftmeta = capslock
rightalt = layer(altlayer)
back = f1
refresh = f2
zoom = f3
scale = f4
sysrq = f5
brightnessdown = f6
brightnessup = f7
micmute = f8
mute = f9
volumedown = f10
volumeup = f11
#power = f12 #power is a reserved key

[altlayer]
leftmeta = layer(meta)
back = back
refresh = refresh
zoom = zoom
scale = scale
sysrq = sysrq
brightnessdown = brightnessdown
brightnessup = brightnessup
micmute = micmute
mute = mute
volumedown = volumedown
volumeup = volumeup
pageup = f12

Onboard Audio

This TANIKS board is Alder Lake based (adl).

To get audio working we are going to need to install and link some drivers. There is a script to do this on multiple distros:

GitHub - WeirdTreeThing/chromebook-linux-audio: Script to enable audio support on many Chrome devices

This peculiar dev WeirdTreeThing mentions in his script that he won’t support Ubuntu and that it doesn’t work. However I have found that this is not factual. If you comment out the part of his code that excepts Ubuntu, it works fine.

Workaround for Ubuntu 24

:warning: On my Ubuntu 24 build, I commented out lines 338 & 339 where the ubuntu() function is called, the script will just install the necessary drivers. I suspect that this will work with Ubuntu 23 as well. Don’t do this with any of the supported distros.

```
#   if distro.lower().__contains__("ubuntu_codename") and not distro.lower().__contains__("pop"):
#        ubuntu()

    print_header("Audio installed successfully! Reboot to finish setup.")

```


working audio on Ubuntu 24

lol

Docs: Am i a joke to you?

Note for anyone reading: The Chrultrabook will not help with issues on Ubuntu since its not supported for a reason

Sorry I don’t do groupthink. I just make things work.

1 Like

If you have an ideological problem with the dev who created the audio script, you could always just not use it.

Obviously the beauty of open source does mean that you are free to use it in whatever way you like, but it does seem odd to me that you’d rather hack the script than use something other than Ubuntu.

What’s odd is your concern for my distro choice. It sounds idealogical to me.

I have eight other ubuntu machines in my day to day. It’s not just my decision. I have been actively using Linux for over 25yrs. I don’t really need to rationalize my choices to anyone.

I’m just filling a gap in the search engine results, which is pro-social behavior. If you don’t like that, I can’t help you bro.

1 Like

I didn’t say you can’t choose to use Ubuntu. You’re completely right, I really don’t care what you use.

Now follow along with my logic here, but if you have the freedom to use whatever you want, then the developer making the software that you want to use also has the freedom to not support whatever platform they don’t want to support.

Uh, what? I just checked Google, your blog post isn’t even on the first page of results when using the search term “lenovo ideapad gaming chromebook linux”

Let’s recap for a second:

  • this is my first post on this “support forum” and I’m already being trolled, by you.
  • I don’t have a problem with the developer not doing work. I have a problem with the developer not allowing others to do the work or deliberately removing choice.
  • I don’t really have a dog in this distro fight you are having and don’t get it. It’s a lame attitude to have and counterproductive.
  • my reddit post is on the first page of google results for me already. I can’t speak to the SEO configuration of this forum.
1 Like

I can confirm, your reddit post is at the top, which is how I found my way here. Much appreciated :heart:

What I don’t understand is why the other fellow thinks it’s a sane suggestion to hop distros to avoid commenting out two line.

1 Like

I mean the points made make sense. GrapheneOS also has really strange install recommendations for Ubuntu, as they have broken packages. Using a non-LTS kernel in an LTS distro sounds like a bad idea.

You are free to use whatever you want, but when errors occur you may be on your own.

I recently installed Linux Mint on the same hardware and the same problem existed - script claims it won’t work, comment out the ubuntu trap and it works.

the “trap” is just a warning once the script is done, commenting that out only prevents the warning text from showing, no functional difference

1 Like