July 2022 Update

Transmission begins: Hi, fluke here!

It's been a while.. Last update from me was 2021-09-12..

Kernel

As many of you may know, a whole lot of patches for ROG laptops were upstreamed around the last update blog:

  • panel_od sysfs method (overdrive)
  • dgpu_disable sysfs method
  • egpu_enable sysfs method
  • platform_-profile support
  • custom fan-curves for 2021-2022 G14-G15 devices

dGPU and eGPU control

The dgpu_disable stuff was mostly intended as a way to see what state the dgpu ACPI stuff is in, but you could also use it to enable or disable the dgpu - just not reliably. Since that patch was merged I was provided info by ASUS on the steps actually required to use the ACPI method, so now I can implement this correctly in kernel (soon!).

We have also seen cases of folks with an egpu on the X13 laptop using the egpu_enable method to get it working also. But, again though, I need to do similar work to the above. And then refactor support of these in supergfx.

Custom fan-curves

Not actually much to say, except that folks are using them, and apparently without issues!

asusctl

So.. a lot has happened in asusctl. It's a bit hard to enumerate, so here are the highlights.

  • GA402 AniMe Matrix display
  • LED zones
  • LED power
  • AniMe Matrix improvements
  • logind requirement
  • Many more laptop LED support records
  • User laptop LED config
  • Async internals

GA402 AniMe Matrix support

The fancy (and cool) display on the lid of some of these laptops in a smidge wider, and a bit taller than the GA401 version. And both use the same EC and same ID over USB. With plenty of help from I-Al-Istannen, we now have this working well! I-Al-Istannen completed the diagonal (pixel perfect) part - this is the format that the ASUS gifs use, and what allows a slanted but pixel-perfect image. And together we got the generic image component in asusctl working also - this is the bit that samples and displays a generic image.

It's pretty awesome TBH. And along the way we've tried to improve the documentation in asusctl of various bits.

LED zones

On some models there is control for lid-logo and lightbars, along with 4 horizontal groups of LED in keyboard. Up until now support was rather lacking. That is, until MNS26 provided a whole lot of comprehensive wireshark captures. So now there is proper support for:

  • Keyboard zones 1-4
  • Lid logo
  • Lightbar with two LED

And each of these can have a factory preset applied. From what I understand, the same preset must apply to all? But different colours can be applied.

LED power control

Not actually sure how to classify this. There is the ability to set enabled or disabled for each of the zones above, including single-zone keybaords:

  • Boot time - run or show an animation on boot
  • Awake - enable or disable the LED zone while device is awake
  • Sleep - enable or disable the LED zone while device is suspended (and plugged in)
  • Shutdown time - run or show an animation on shutdown (unsure of effect)

This support was able to be written thanks to MNS26 gathering a wireshark capture for every individual option on every individual zone - this is time consuming work but is the only way to crack these things open.

NOTE: this currently applies only to the later model keyboards. I do have captures and preliminary work for full support of the 0x1866 keyboard thanks to wireshark captures from mpiffault and I will try to get this support finished this week.

General work

A few small fixes in AnimeMatrix support, but more specifically there is now support for running sequence blocks on boot, shutdown, suspend, and wake. So go mad with customization! This requires logind (and therefore systemd).

Additionally thanks to logind we now have charge control and laptop LED mode reloading on suspend and wake. This should also work for hibernation.

GA402R, GU502LV, G512, G513IC, G513QM, GX703HS, G513IM all now have LED support records (the thing that tells us what modes the LEDs support). There is now a total of 55 laptop models in the defaults, some are specific models, and some slightly more broad globs of a model (e.g, GA401Q is glob, while GA401QM is specific). That's a lot of concrete data for us, and will come in very handy for the eventual GUI app which will need to know what laptop supports what to display the correct UI for it.

Users can now add a new file /etc/asusd/asusd-user-ledmodes.toml where they can set LED support for their model without worry that updates will overwrite customiation to asusd-ledmodes.toml. If you use this, please provide the file to asusctl so it can be added to the defaults.

The internals of asusctl were rewritten to use async and the smol crate. This has in many cases dramatically improved things, and enabled me to use zbus 2.3 and the logind-zbus crate I maintain. Some more complex behaiour can be used now.

There is more work on asusctl to come in the next few days.

Community

We now have a (very) small team of us who are working with ASUS to determine a more cohesive goal - I was already under NDA with them which enables me to have direct access to the ROG engineering team, but I just barely have time to keep on top of it. So to help with this some of our lovely people over in the discord server who help facilitate better communication and management - with SammiLucia operating as a team lead for us (we need a name don't we?). Our goal is to get the impormation required to fix various issues as they come up.

Website

We also finally found the time to make a few additions to our website and fixed some of the responsive UX.

Contribution banners

A new page element was created to make the contribution possibilities more obvious and transparent.

Usually we first have a hint how to contribute directly via code, debugging, documentation or in other various ways that benefits everyone and help the project grow organically.

Secondly we now also have a more prominent section for the donation options. We often got a call in our Discord Community where one could spend a dime because they don't have the time to contribute in other ways but really want to give something back.

The money we receive helps us get hands on devices to reverse engineer critical components and goes directly into development.

Third Party page

We always wanted to honour and showcase third party contributions that are based on our achievements and build something on top of it.

There already is a fine selection and we welcome every new contribution - be sure to create a merge request for the website or get in touch with us.

asusctl-gex page

As asusctl-gex is an official part of the project we now have a dedicated page to create more awareness for it. People using GNOME will receive a widget that will always be in sync with the supergfxctl and asusctl API.

It is still in active development and we hopefully have some new features to announce at some point.

Legal Matters

ASUS and ROG Trademark is either a US registered trademark or trademark of ASUSTeK Computer Inc. in the United States and/or other countries.

Reference to any ASUS products, services, processes, or other information and/or use of ASUS Trademarks does not constitute or imply endorsement, sponsorship, or recommendation thereof by ASUS.

The use of ROG and ASUS trademarks within this website and associated tools and libraries is only to provide a recognisable identifier to users to enable them to associate that these tools will work with ASUS ROG laptops.

Privacy Policy

We use Matomo

Matomo is an open source web analytics platform. A web analytics platform is used by a website owner in order to measure, collect, analyse and report visitor data for purposes of understanding and optimizing their website.

Purpose of the processing

Matomo is used to get an idea how our website is used by our users so we can optimize things further so that the user may find the most relevant information more quickly.

Data Matomo is processing

  • User IP address
  • Optional User ID
  • Date and time of the request
  • Title of the page being viewed
  • URL of the page being viewed
  • Referrer URL
  • Screen resolution being used
  • Time in local user’s timezone
  • Files that were clicked and downloaded
  • Links to an outside domain that were clicked
  • Page generation time
  • User location: country, region, city, approximate latitude and longitude
  • Main Language of the browser being used
  • User Agent of the browser being used

Pick up the one you are using:

  • Cookies
  • IP address
  • User ID
  • Custom Dimensions
  • Custom Variables
  • Location of the user

And also:

  • Date and time
  • Title of the page being viewed
  • URL of the page being viewed
  • URL of the page that was viewed prior to the current page
  • Screen resolution
  • Time in local timezone
  • Files that were clicked and downloaded
  • Link clicks to an outside domain
  • Pages generation time
  • Country, region, city
  • Main Language of the browser
  • User Agent of the browser

This list can be completed with additional features such as:

  • Form interactions
  • Media interactions
  • A/B Tests

The processing of personal data with Matomo is based on legitimate interests

If you wish us to not process any personal data with Matomo, you can opt-out from it at any time. There will be no consequences at all regarding the use of our website.

You can withdraw at any time your consent by clicking here

The right to lodge a complaint with a supervisory authority

If you think that the way we process your personal data with Matomo analytics is infringing the law, you have the right to lodge a complaint with a supervisory authority.

We are not doing any profiling.