NOTE:
# = Root Terminal (you had to type sudo su
, or just su
to get here)
$ = User Terminal (requires sudo for root permissions)
When given the instructions to use the vim
command you could substitute that with the nano
command. nano
can be simpler to use when editing files and commands to save and escape are simpler with ^X
meaning Ctrl+X
Download latest ChimeraOS ISO, put on ventoy flash drive
Boot up to live linux system and use ChimeraOS installer.
Once installed, ChimeraOS is a filesystem locked distro, meaning anything outside of /home
is Read-Only be default.
To make any edits or modifications to the OS that live outside of /home
you MUST unlock the filesystem. Edits outside of /home
(v37+), and outside of /etc
(v38+), will be lost upon upgrade/update as Chimera will rewrite the new image to the locked filesystems. Chimera updates about once a month.
To unlock the filesystem for edits a command is required:
$ sudo frzr-unlock
From this point forward, we'll refer to “unlocking the filesystem” as a “FS Unlock”.
Some tweaks may require an update to the unstable or testing branch of ChimeraOS. v37 does NOT include pipewire for audio handling. v38+ does include pipewire. The audio fix in these instructions require pipewire.
You can jump over to the unstable/testing branch using the following command:
$ sudo frzr-deploy chimeraos/chimeraos:unstable
After completion, you'll want to reboot and you'll be using the latest packages for the latest ChimeraOS image. Be warned. Unstable branch could result in a testing package that causes issues. If this bothers you, feel free to wait until the update. You could also revert to stable once the required fixes/updates are marked “stable”.
$ sudo frzr-deploy chimeraos/chimeraos:stable
First boot will take you into Big Picture Mode (BPM).
Press CTRL+ALT+F2
to enter TTY2
Login using the username gamer
and password gamer
Now run the following command:
$ chimera-session gamepadui
This setting is “sticky” meaning after power off and/or reboot. You'll continue to use the gamepadui. If using desktop mode, reboot will take you back to desktop mode.
To return to Steam's GamepadUI from desktop mode:
Touch Activities
in the top left.
A bottom bar will appear, touch the grid of dots
for the app grid.
Then touch the Game Mode
icon and you'll exit the desktop back into GamepadUI.
$ sudo su
# vim /boot/EFI/BOOT/syslinux.cfg
Move the cursor to the correct location before quiet splash
and press i
to insert , and type fbcon=rotate:3
Press escape key
and type :wq
and press enter key
to Write and Quit. Yes the colon is required for VIM commands.
NOTICE: These drivers are already included in ChimeraOS by default. Only if the current version doesn't work, should you do this.
AOKZOE and OneXPlayer are both owned by One-Netbook. These devices all use the same oxp-platform sensors. Lets install those drivers.
$ sudo pacman -S base-devel git
$ git clone https://gitlab.com/Samsagax/oxp-platform-dkms.git
$ cd oxp-platform-dkms
$ make
$ sudo make dkms
Wrong sound card is chosen by default? go into Settings > Audio, change the default output and input devices. If you're having hissing or white noise issues, continue further.
The sound card is known to have issues with the system automatically choosing the wrong audio format and rate. It works for a little while until you get a white noise static sound upon failure. We want “S16LE” format and “48khz” rate.
Arch and HoloISO can be a bit confusion because you're not configuring ALSA (Advanced Linux Sound Architecture), or PulseAudio (Audio Server and manager), or Pipewire (PulseAudio compatible replacement), but you're configuring WirePlumber that automatically configures Pipewire/PulseAudio and ALSA.
First we need to copy the Global Default files to the /etc directory. Since its no longer wiped during upgrades, this will allow our changes to survive upgrades and protect us if we mess up. Then we can edit the copy thats in the higher priority location.
$ sudo su
# cp -a /usr/share/wireplumber /etc/
# vim /etc/wireplumber/main.lua.d/50-alsa-config.lua
From here you'll scroll down to Line 137
and start making edits. You'll want to remove the double hyphen which is “commenting out” the line and edit them to look like this:
--["audio.channels"] = 2,
["audio.format"] = “S16LE”,
["audio.rate"] = 96000,
--["audio.allowed-rates"] = “32000,96000”,
WARNING!! This tool is known to cause instability, lockups, hangs, long shutdowns and long boots! It is not recommended unless you know what you're doing
$ curl -L https://github.com/SteamDeckHomebrew/decky-loader/raw/main/dist/install_release.sh | sh
This will enable the use of the Fantastic
plugin in conjunction with the oxp-platform driver to create your own fan curves.
You could also add the ProtonDB Badges
plugin for better compatibility data of games.
WARNING!! This tool is known to cause instability due to not being updated to work with the latest version of Steam! It is not recommended unless you're a DEV or Contributor!
$ flatpak install --user space.crankshaft.Crankshaft
This will enable you to add plugins such as HandyPT
to control TDP, SMT, and more.
You could also add the ProtonDB Indicator
plugin for better compatibility data of games.
Download the modified EDID binary for the screen and open a terminal.
We need to move the binary to the edid firmware folder.
$ sudo mkdir /lib/firmware/edid
$ sudo mv ~/Downloads/aokzoea1ar07_edid.bin /lib/firmware/edid/
Now that we have the modified EDID in the firmware folder we need to inject it into the initramfs so it can be read upon boot.
$ sudo vim /etc/mkinitcpio.conf
You'll need to edit the FILES line to include the EDID binary. It should look like this:
# vim:set ft=sh
MODULES=(dm_mod ext4 sha256 sha512 overlay)
BINARIES=()
FILES=(/lib/firmware/edid/aokzoea1ar07_edid.bin)
HOOKS=(base udev modconf block keyboard keymap filesystems fsck frzr-etc)
Now we have to update the initramfs to include the binary file, but to do that lets move some files around, perform the action, then put them back since they aren't in the typical location.
$ sudo su
# cp /boot/chimeraos-*/* /boot
# mkinitcpio -P
# cp -a /boot/initramfs-linux.img /boot/chimeraos-*/
OK, we've rebuilt and replaced the old initramfs. Now lets clean up our unneeded files in /boot.
# rm /boot/initramfs*
# rm /boot/vmlinuz-linux
Now our that our /boot is clean we need to update the syslinux.conf to force the EDID to load.
# vim /boot/EFI/BOOT/syslinux.cfg
Now add the drm.edid_firmware=eDP-1:edid/aokzoea1ar07_edid.bin
so that the append
line looks similar to this:
append root=LABEL=frzr_root rw rootflags=subvol=deployments/chimeraos-37_1877cb7 drm.edid_firmware=eDP-1:edid/aokzoea1ar07_edid.bin fbcon=rotate:3 iomem=relaxed quiet splash loglevel=3 rd.systemd.show_status=auto rd.udev.log_priority=3
And reboot! Your A1 screen should now work properly at 60hz, 50hz, 48hz, and 40hz. Other refresh rates will likely have issues.
You don't. Chimera is a frozen system using syslinux. Attempting to manually upgrade the kernel will likely break the boot process. Attempting an upgrade in pacman WILL break the OS as pacman will recognize and pull kernel updates which won't setup syslinux to boot the expected kernel. Its not impossible to upgrade, but currently not worth the effort and doesn't survive ChimeraOS updates.
There is a reason for this. Some games are designed with 30fps or 60fps in mind and vsync. In some platformers, programmers have to know how fast character acceleration should occur when jumping, falling, etc. Otherwise you'll get moon-style hang times etc. So the game locks itself to 30fps or 60fps which is bad when the screen uses 40hz and a 40fps limiter. While you don't get screen tearing you instead get frame stuttering and jitter from dropping a fraction of your rendered frames. You may be able to take better advantage of this by disabling fps limiters and vsync within the game and allowing gamescope (steam gamepadUI) to handle the vsync and fps limitations. You may also just want to disable the fps limiter all together and see if that helps. Not all games will offer settings to accommodate these changes either.
So Linux kernel developers have recognized there is a problem with programmers abusing something called split-locks
. Split lock abuse can appear like local DDoS or somewhat controlled fork bombing consuming and controlling most of the resources. To enforce appropriate use of split locks and prevent abuse/poor practices the kernel put in place a method to police applications using abusing split locks and throttle them. Unfortunately, many games could be considered as abusing split locks and they are throttled sometimes to the point of being unusable. You'll need to add another kernel parameter to turn off the split-lock detection.
vim /boot/EFI/BOOT/syslinux.cfg
Now add the split_lock_detect=off
so that the append
line looks similar to this:
append root=LABEL=frzr_root rw rootflags=subvol=deployments/chimeraos-37_1877cb7 fbcon=rotate:3 iomem=relaxed split_lock_detect=off quiet splash loglevel=3 rd.systemd.show_status=auto rd.udev.log_priority=3
Download THIS script or if you wish to download the script without desktop mode or a browser you can do this:
$ curl -O http://wiki.darkremix.net/aokzoe/a1tweaks.sh
Now lets make the script executable and launch the script as root.
$ chmod +x a1tweaks.sh
$ sudo su
# ./a1tweaks.sh
If you want to see the script its below:
#!/bin/bash
### AOKZOE A1 TWEAKS
### Unlock Filesystem
frzr-unlock
### Force 16 bit audio, format S16LE, rate 192000
cp -a /usr/share/wireplumber /etc/
sed -i 's/--\["audio.format"\]/\["audio.format"\]/' /etc/wireplumber/main.lua.d/50-alsa-config.lua
sed -i 's/--\["audio.rate"\]/\["audio.rate"\]/' /etc/wireplumber/main.lua.d/50-alsa-config.lua
sed -i 's/44100/96000/' /etc/wireplumber/main.lua.d/50-alsa-config.lua
### Inject EDID override into initramfs & rotate screen to landscape
curl -O http://wiki.darkremix.net/aokzoe/aokzoea1ar07_edid.bin
mkdir -p /lib/firmware/edid
cp -a aokzoea1ar07_edid.bin /lib/firmware/edid/
sed -i 's#FILES=()#FILES=\(/lib/firmware/edid/aokzoea1ar07_edid.bin\)#' /etc/mkinitcpio.conf
cp /boot/chimeraos-*/* /boot
mkinitcpio -P
cp -a /boot/initramfs-linux.img /boot/chimeraos-*/
### Update Syslinux.cfg if exists
if ! grep -q "drm.edid_firmware=eDP-1:edid/aokzoea1ar07_edid.bin fbcon=rotate:3 iomem=relaxed split_lock_detect=off" /boot/EFI/BOOT/syslinux.cfg
then
sed -i 's#quiet splash#drm.edid_firmware=eDP-1:edid/aokzoea1ar07_edid.bin fbcon=rotate:3 iomem=relaxed split_lock_detect=off quiet splash#' /boot/EFI/BOOT/syslinux.cfg
fi