Git Product home page Git Product logo

rog-core's Introduction

ROG-Core

NOTICE: rog-core is now obsoleted and you will get a better experience using the dkms module or patch, and asus-nb-ctrl.


The last version of rog-core will work with any kernel with or without this patch and provide full functions.


rog-core is a utility for Linux to control many aspects (eventually) of the ASUS ROG laptops like the Zephyrus GX502GW.

One of the benefits of this app (for me at least) is that you don't require a kernel with correct support for the laptop keyboard EC. The app reads and writes direct to the device interrupts, and can be customised (in source) quite extensively to do what you want such as directly controlling your laptop backlight rather than emitting a key-press for the DE to handle.

Other laptop functions such as fan modes or battery charge limiting will need kernel level support which exists in most newer kernels (higher than 5.6.10).

Discord

Discord server link

SUPPORTED LAPTOPS

Please help test or provide info for:

  • GL703(0x1869)
  • GL553/GL753 (device = 0x1854) (attempted support from researching 2nd-hand info, multizone may work)

Laptop support is modified on a per-case basis as the EC for the keyboard varies a little between models, e.g, some RGB modes are missing, or it's a single colour. As far as I can see, the EC does not give us a way to find what modes are supported.

KEYS + OTHER FUNCTIONS

Media keys are Volume -/+, Mute output, previous, next, play/pause. These keys are grouped together on one interface block on the keyboard EC as a "Consumer Device" HID, all other fn+ combo are on another interface which is "Vendor Custom", this includes things like keyboard LED brightness and mode change keys, Calc, fan-mode toggles etc.

MODEL Media keys Additional FN+ AniMe Touchpad-Numpad Fan Modes Charge Limit
GM501 X X X X
GX502 X X X X
GX531 X X X X
GX701 X X X X
G512 X X X X
G712 X X X X
G531 X X X X
G731 X X X X
G532 X X X X
GA401 X X X X X
GA502 X X X X X
GU502 X X X X X

NOTE: GA14/GA401 and GA15/GA502/GU502, You will need kernel patches.

LED MODES

Models GA401, GA502, GU502 support LED brightness change only (no RGB).

MODEL SINGLE BREATHING STROBE RAINBOW STAR RAIN HIGHLIGHT LASER RIPPLE PULSE COMET FLASH ZONES PER-KEY RGB
G512LI X X X X
G712LI X X X X
GM501 X X X X X
GX531 X X X X X
G512 X X X X X
G712 X X X X X
GX502 X X X X X X X X X X X X X
GX701 X X X X X X X X X X X X X
G531 X X X X X X X X X X X X X X
G731 X X X X X X X X X X X X X X
G532 X X X X X X X X X X X X X

Implemented

  • Setting/modifying built-in LED modes
  • Per-key LED setting
  • Fancy LED modes (See examples)
  • Daemon mode
  • Saving settings for reload
  • System control
    • ROG key custom mapping (Can be done in source)
    • Fan/Performance mode
    • Screen off? Now mapped to a keycode but has no effect
    • Screen brightness up/down
    • Touchpad toggle
    • Sleep
    • Airplane mode
  • Capture and use hotkeys
    • Aura control by Aura keys
    • Volume + media controls work
    • Mic mute
  • Logging - required for journalctl
  • AniMatrix display on G14 models that include it
  • Set battery charge limit (with kernel supporting this)

Requirements for compiling

  • rustc + cargo + make
  • libusb-1.0-0-dev
  • libdbus-1-dev
  • llvm
  • libclang-dev

Installing

Run make then sudo make install then reboot.

The default init method is to use the udev rule, this ensures that the service is started when the device is initialised and ready.

If you are upgrading from a previous installed version, you will need to restart the service or reboot.

$ systemctl daemon-reload && systemctl restart rog-core

You may also need to activate the service for debian install. If running Pop!_OS, I suggest disabling system76-power gnome-shell extension, or at least limiting use of the power-management parts as rog-core lets you set the same things (one or the other will overwrite pstates). I will create a shell extension at some point similar to system76, but using the rog-core parts. It is safe to leave system76-power.service enabled and use for switching between graphics modes.

Ubuntu PPA

Alternatively, instead of building manually you can use the PPA.

sudo add-apt-repository ppa:lukedjones/rog-core
sudo apt-get update
sudo apt-get install rog-core

the rog-core service will run when the device is initialised.

Gentoo ebuild

Thanks to @aspann you can grab it here sys-power/rog-core

Arch AUR

You can find the thingimajig here. If you are using a GA14 or GA15 series, you may need kernel patches.

Updating

Occasionally I might break things for you by tweaking or changing the config file layout. Usually this will mean you need to remove /etc/rog-core.conf and restart the daemon to create a new one. You can back up the old one and copy settings back over (then restart daemon again).

Usage

NOTE! Fan mode toggling requires a newer kernel. I'm unsure when the patches required for it got merged - I've tested with the 5.6.6 kernel and above only. To see if the fan-mode changed cat either:

  • cat /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy or
  • cat /sys/devices/platform/asus-nb-wmi/fan_boost_mode

The numbers are 0 = Normal/Balanced, 1 = Boost, 2 = Silent.

Running the program as a daemon manually will require root. Standard (non-daemon) mode expects to be communicating with the daemon mode over dbus.

Commands are given by:

rog-core <option> <command> <command-options>

Help is available through:

rog-core --help
rog-core <command> --help

Some commands may have subcommands:

rog-core <command> <subcommand> --help

Example

$ rog-core --help
Usage: rog-core [OPTIONS]

Optional arguments:
  -h, --help          print help message
  -v, --version       show program version number
  -d, --daemon        start daemon
  -b, --bright VAL    <off, low, med, high>
  -f, --fan-mode FAN  <silent, normal, boost>

Available commands:
  led-mode  Set the keyboard lighting from built-in modes

$ rog-core led-mode --help
Usage: rog-core led-mode [OPTIONS]

Optional arguments:
  -h, --help  print help message

Available commands:
  stable        set a single static colour
  breathe       pulse between one or two colours
  strobe        strobe through all colours
  rainbow       rainbow cycling in one of four directions
  star          rain pattern mimicking raindrops
  rain          rain pattern of three preset colours
  highlight     pressed keys are highlighted to fade
  laser         pressed keys generate horizontal laser
  ripple        pressed keys ripple outwards like a splash
  pulse         set a rapid pulse
  comet         set a vertical line zooming from left
  flash         set a wide vertical line zooming from left
  multi-static  4-zone multi-colour

$ rog-core led-mode stable --help
Usage: rog-core led-mode stable [OPTIONS]

Optional arguments:
  -h, --help  print help message
  -c HEX      set the RGB value e.g, ff00ff

$ rog-core led-mode star --help
Usage: rog-core led-mode star [OPTIONS]

Optional arguments:
  -h, --help  print help message
  -c HEX      set the first RGB value e.g, ff00ff
  -C HEX      set the second RGB value e.g, ff00ff
  -s SPEED    set the speed: low, med, high

ROG Key

The ROG key can be customized in a limited way by use of presets:

  • Power
  • Sleep
  • MediaRecord
  • MediaFastFwd
  • MediaRewind
  • MediaNext
  • MediaPrev
  • MediaStop
  • MediaPlayPause
  • MediaVolMute
  • MediaVolUp
  • MediaVolDown
  • BacklightInc
  • BacklightDec
  • ControlConfig
  • LaunchTextEditor
  • LaunchEmailApp
  • LaunchNewsReader
  • LaunchCalendar
  • LaunchCalculator
  • LaunchWebBrowser
  • FileBrowser

This key can be changed in /etc/rogcore.conf, for example:

{
  "rog_key": "FileBrowser",

Daemon mode

If the daemon service is enabled then on boot the following will be reloaded from save:

  • LED brightness
  • Last used built-in mode
  • fan-boost/thermal mode
  • battery charging limit

The daemon also saves the settings per mode as the keyboard does not do this itself - this means cycling through modes with the Aura keys will use the settings that were used via CLI.

Daemon mode creates a config file at /etc/rogcore.conf which you can edit a little of. Most parts will be byte arrays, but you can adjust things like mode_performance.

DBUS Input

See README_DBUS.md.

AniMe input

You will want to look at what MeuMeu has done with https://github.com/Meumeu/ZephyrusBling/

Wireshark captures

TODO: see ./wireshark_data/ for some captures.

Supporting more laptops

At a minimum it probably needs to be a Zephyrus laptop. If there is enough interest I will remove the restriction on board names so that anyone can try the app.

From there I'll need wireshark captures from Windows using Armoury Crate if possible:

  • No USB devices plugged in
  • One action per capture, 2 or 3 times
  • An action may be switching a mode or pressing a button

The real ticket items are:

  • Captures from installing Armoury Crate. To do this you need to uninstall almost all ASUS junkware and such
  • Byte sequence captures from hotkeys pressed in linux (which I need to make a tool for)
  • lsusb output

lsusb:

First do lsusb |grep 0b05 and check the part after 0b05:, output looks like:

Bus 001 Device 005: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device

Then do sudo lsusb -vd 0b05:1866 > ~/laptop_info and give that to me.

Other helpful info can be gained from sudo usbhid-dump, for which you may need to unload kernel drivers. Please google this.

Also required (for my book-keeping of data):

  • cat /sys/class/dmi/id/product_name
  • cat /sys/class/dmi/id/product_family
  • cat /sys/class/dmi/id/board_name

License

Mozilla Public License 2 (MPL-2.0)

Credits

rog-core's People

Contributors

aspann avatar flukejones avatar meumeu avatar shoenig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rog-core's Issues

G14

After installing rog-core, it freezes my keyboard on the login screen... can't type my password.

Unable to install or build on Ubuntu 18.04

Hello,

I couldn't install rog-core un my Zephyrus GX501 running Ubuntu 18.04. The provided deb repository seems to host only builds for Ubuntu 20.04 (it gives dependency problems related with libc versions).

Tried to build the project but it fails near the end:

Compiling filetime v0.2.10 Compiling xattr v0.2.2 Compiling regex v1.3.9 Compiling mio v0.6.22 Compiling tar v0.4.29 Compiling cexpr v0.4.0 Compiling env_logger v0.7.1 Compiling syn-mid v0.5.0 Compiling synstructure v0.12.4 Compiling libusb1-sys v0.3.7 Compiling rusb v0.6.0 Compiling uhidrs-sys v1.0.1 error: failed to run custom build command foruhidrs-sys v1.0.1`

Caused by:
process didn't exit successfully: /home/hvico/rog-core/target/release/build/uhidrs-sys-43b328dadac05f2a/build-script-build (exit code: 101)
--- stderr
/usr/include/x86_64-linux-gnu/sys/types.h:145:10: fatal error: 'stddef.h' file not found
/usr/include/x86_64-linux-gnu/sys/types.h:145:10: fatal error: 'stddef.h' file not found, err: true
thread 'main' panicked at 'Unable to generate bindings: ()', src/libcore/result.rs:1188:5
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.
`

I have latest libclang-dev installed.

G532LW support

@devs thank you for the great work on this software.

I edited the laptops.rs file and can confirm that all led modes work at the level of GX502.
Everything else worked properly on this machine, except for the fan toggle (but I don't have a kernel version with the patches you mentioned, so I wasn't really expecting it to work).

Can you please add G532 to the supported models list?

RGB integration into OpenRGB

I'm the developer of an RGB control application called OpenRGB. My goal is to support as many RGB devices as possible in one unified API and program. I would be interested in adding support for the laptops you're researching. My app currently does not provide a daemon, but my goal is to have one daemon that handles hardware communication with all RGB devices eventually (once I get the network API figured out).

If you're interested, check out my project: https://gitlab.com/CalcProgrammer1/OpenRGB

If you want to add some of the devices I support to your project, I have documented a bunch of protocol information on my project wiki.

Thanks,
Adam

Zephyrus S GX531 Support

Hi @flukejones and community

I am currently working on adding support to Zephyrus S GX531 series. This series also features a 1866 device but it doesn't seems to properly work with the current implementation (for example, the ROG and Touchpad Switch doesn't seems to work).

the keyboard also report two codes for the touchpad switch key what is weird, will make a WIP PR later this week. If someone has this model and want to help providing wireshark captures please, don't be shy, I really hate having to install Windows on the machine in order to tackle down that data.

Regards.

P.S: I am not sure how and why I set this up as a bug but looks like I can not remove that label now

Randmon crash and doesn't start any more

Super strange, it just stopped working and doesn't start any more even after full reboot.
Crash log:

[INFO ] Found GX502 or similar
[INFO ] Config loaded
[INFO ] INTERVAL: 1
[INFO ] MAX_PKT_SIZE: 64
[INFO ] SYNC: NoSync
[INFO ] TRANSFER_TYPE: Interrupt
[INFO ] ENDPOINT: 4
[ERROR] Invalid parameter
thread 'main' panicked at 'Invalid parameter', <::std::macros::panic macros>:5:6
stack backtrace:
   0:     0x55b13b13ff9a - backtrace::backtrace::libunwind::trace::h84fcc841152fc264
                               at /build/rust/src/rustc-1.43.1-src/vendor/backtrace/src/backtrace/libunwind.rs:86
   1:     0x55b13b13ff9a - backtrace::backtrace::trace_unsynchronized::h9512da4a7923cf5a
                               at /build/rust/src/rustc-1.43.1-src/vendor/backtrace/src/backtrace/mod.rs:66
   2:     0x55b13b13ff9a - std::sys_common::backtrace::_print_fmt::h80a9838fbf6210c7
                               at src/libstd/sys_common/backtrace.rs:78
   3:     0x55b13b13ff9a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hfbfe9ad65a0640ca
                               at src/libstd/sys_common/backtrace.rs:59
   4:     0x55b13b0abd1c - core::fmt::write::hb409a30975c0f9f5
                               at src/libcore/fmt/mod.rs:1063
   5:     0x55b13b13f404 - std::io::Write::write_fmt::h7ee7c68a0296cf9a
                               at src/libstd/io/mod.rs:1426
   6:     0x55b13b13f00a - std::sys_common::backtrace::_print::h7cd9cb89129f3e0f
                               at src/libstd/sys_common/backtrace.rs:62
   7:     0x55b13b13f00a - std::sys_common::backtrace::print::ha9beca6e65f7f1cd
                               at src/libstd/sys_common/backtrace.rs:49
   8:     0x55b13b13f00a - std::panicking::default_hook::{{closure}}::h5e5a680f03f4adf9
                               at src/libstd/panicking.rs:204
   9:     0x55b13b13e723 - std::panicking::default_hook::hb8f06365ed415b3d
                               at src/libstd/panicking.rs:224
  10:     0x55b13b13e723 - std::panicking::rust_panic_with_hook::h1e03621439587007
                               at src/libstd/panicking.rs:470
  11:     0x55b13b13e30a - rust_begin_unwind
                               at src/libstd/panicking.rs:378
  12:     0x55b13b13e2b0 - std::panicking::begin_panic_fmt::hc43e1369214a6caa
                               at src/libstd/panicking.rs:332
  13:     0x55b13b131d21 - daemon::daemon::start_daemon::{{closure}}::{{closure}}::he36b4981a748d04a
  14:     0x55b13b1312ae - <std::future::GenFuture<T> as core::future::future::Future>::poll::h9f92e186da602c5a
  15:     0x55b13b11b9fd - rog_core::main::h52183f91b7196cea
  16:     0x55b13b10f856 - std::rt::lang_start::{{closure}}::hb73d94e66ca68283
  17:     0x55b13b11b327 - main
  18:     0x7f9686b12002 - __libc_start_main
  19:     0x55b13b09f09e - _start
  20:                0x0 - <unknown>
fish: Job 2, 'sudo env RUST_BACKTRACE=full /u…' zakończony sygnałem SIGABRT (Przerwij)

Any idea what could cause this? Even reboot didn't help

EDIT

Update to 0.9.6, still crashes.

please readd the initial data/rogcore.conf

Hi @flukejones,

between 13.1 and 14.0 you removed the initial config. could you be so kind and readd it into the next release, otherwise it breaks the gentoo ebuild.. (you know that config replacement thingy - for now, I'll use (again) my own until it is available again)

cheers.

Silent fan profile does not persist on GA401

After applying the 'silent' fan profile with

$ rog-core -f silent

the fan spin down, but only for a few seconds. After that, they return to their normal speed.
In order to have the fans in silent mode continuously, the command above has to be run periodically.

G531GW Does not support 4-zone

Hi,

I noticed that g531 is listed under 4-zone RGB in laptops.rs, It supports per key and is controlled via aura creator on windows.
switching to 4-zone rgb just turns off the lights altogether.

I am not sure if it is possible to have per key controls, but i can provide wireshark captures.
Also it will be nice to have some control over these light bars and logo on the lid.
bars

Please add support for ROG Strix G731GV

Well honestly when I decided to install linux on my machine I was really prepared to give up all the extra functions which was offered with asus drivers on Windows. But then, when I found this project incidently, I was so amazed that I can't even begin to describe...
My Asus ROG G731GV wasn't on the list but I decided to give it a try and the results are quite satisfying.
In fact almost everything other than Fan Modes and LED Modes work fine. Changing Fan modes or LED color either using physical keys or bash commands is not possible and right now I'm stuck with static red color on the keyboard (before installing rog-core it was turned off).
Media and FN+ keys including Mic mute, volume control, screen brightness, touchpad toggle, sleep, airplane mode and even Charge Limit all work fine.

  • Distro: Linux Mint 20 Ulyana

  • Kernel: 5.4.0-42-generic

  • cat /sys/class/dmi/id/product_name: ROG Strix G731GV_G731GV

  • cat /sys/class/dmi/id/product_family: ROG Strix

  • cat /sys/class/dmi/id/board_name: G731GV

  • lsusb | grep 0b05: Bus 001 Device 003: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
    laptop_info.LOG

  • sudo journalctl -b --unit rog-core > rog-core.log
    rog-core.log

  • `sudo usbhid-dump > usbhid.log
    usbhid.log

here are some pictures of the keyboard:
top
side

G531GW more supportred led-modes

@devs great work, this exactly what i was looking for.

I Edited the laptops.rs and found these effects to be working

Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Static // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Breathing // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Strobing // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Rainbow // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Comet // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Flash // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Keypress Highlight // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Rain // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Keypress Ripple // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Stars // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - RGB per-key // Not Working yet
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - Pulse // Working
Jul 20 15:41:23 V3X-ARCH rog-core[462]: INFO: - 4-Zone Static Colours // Not supported on this machine

[SINGLE, BREATHING, STROBE, RAINBOW, COMET, FLASH, HIGHLIGHT, RAIN, RIPPLE, STAR, PULSE]
Can these be merged?

G401 Series - aniMe Matrix Display

I finally got the windows software (Armoury Crate) and services running. (it was a pain)

Howto install "Armory Crate" on a "fresh" windows installation. (not the preinstalled one):

  1. Turn on Secureboot (BIOS)
  2. Turn on "Armoury Crate interface support" (BIOS)
  3. Clean windows installation
  4. Install all upates and drivers (amd/Nvidia)
  5. enable .net 2.0/3.0 windows feature
  6. Install "ROG Font" and "ASUSSystemControlInterfaceV2_DCH_W10_64_V22100"
  7. Reboot
  8. install "ROGLiveServicePackage_W10_64_V10250"
  9. Reboot
  10. Install "ARMOURYCRATEService_ASUS_V272"
  11. Reboot
  12. install "Armoury Crate" UWP
  13. Reboot
  14. Waiit upto 30 Minutes to allow "Armoury Crate" fetching its updates
  15. ready to use..

I'll post any progress using this issue.

[quote in adition to #3]:

@aspann for the animatrix thingy I'm expecting something like this. But since it's a single colour it should be a lot simpler... maybe. I've no idea of the resolution of it. Maybe if we can get the corner LEDs byte sequence it'll give an idea of a pattern.

From memory, the packet sent to USB is 64 bytes, and at least 57 of those bytes are used for LED control (on the GX502). If the display is written by bit pattern, then it can control 456 of those pixels per packet - which means it's likely to be multiple packets. The GX502 uses ten packets to control the RGB...

There's likely to be an initialization byte sequence, and I suspect it will be part of the keyboard controller, which may make things a little easier.

[edit]:
The current progress can be viewed here(still WiP): https://lab.retarded.farm/zappel/asus-rog-zephyrus-g14/-/wikis/Hardware/aniMe-Matrix-Display

Setting turbo/boost on AMD gives an error

[ERROR] Could not write to /sys/devices/system/cpu/cpufreq/boost, Os { code: 22, kind: InvalidInput, message: "Invalid argument" }

I think it means it is writing wrong value?
BTW. it would be fine to also allow setting no_turbo to for example "ignore" or "donotchange" or just comment it out.

Custom fan curve support

I'm planning to submit a PR for this so this ticket is mainly for figuring out the details of how it should work.

UX

rog-core cli command

rog-core --fan-curve 30c:0%,40c:1%,50c:4%,60c:10%,70c:40%,80c:60%,90c:100%,100c:100% --fan-curve-force
rog-core fan normal -f --curve '30c:0%,40c:1%,50c:4%,60c:10%,70c:40%,80c:60%,90c:100%,100c:100%'

This will set the config for the current profile and apply the fan curve. Potentially --fan-curve default to clear the custom curve.

I put --fan-curve-force as a separate parameter since that looks easy to add to the existing cli code. It may be better to split fan control into its own sub command though.


Proposed config format

"silent": {
    "min_percentage": 0,
    "max_percentage": 100,
    "no_turbo": true,
    "fan_curve": {
        "curve": "30c:0%,40c:1%,50c:4%,60c:10%,70c:40%,80c:60%,90c:100%,100c:100%",
        "force": true
    }
}

The fan curve settings will be optional (no error if they aren't present, will be saved as null).

If fan curve isn't set it will do the current behavior.

Fan curve uses the same format as atrofac. If fan curve force is false the safety limits used by atrofac/armoury crate will be enforced.

Overriding the board name will not be allowed to avoid issues with incompatibility coming back to rog-core.

Implementation

I've created a crate https://github.com/Yarn/rog_fan_curve that will handle the board specific implementation. It uses the acpi_call kernel module internally.

There is an outstanding issue with the fans changing rpm constantly (also happens on windows). cronosun/atrofac#5

Need to press fan mode button twice to change fan mode

maj 21 13:25:59 rog rog-core[111668]: [INFO ] Current fan mode: Silent
maj 21 13:25:59 rog rog-core[111668]: [INFO ] Fan mode stepped to: Normal
maj 21 13:26:13 rog rog-core[111668]: [INFO ] Current fan mode: Silent
maj 21 13:26:13 rog rog-core[111668]: [INFO ] Fan mode stepped to: Normal
maj 21 13:26:26 rog rog-core[111668]: [INFO ] Current fan mode: Normal
maj 21 13:26:26 rog rog-core[111668]: [INFO ] Fan mode stepped to: Boost
maj 21 13:26:34 rog rog-core[111668]: [INFO ] Current fan mode: Normal
maj 21 13:26:34 rog rog-core[111668]: [INFO ] Fan mode stepped to: Boost

On G14 I need to press fan button mode twice to switch fan profile, it is also visible in logs, twice it goes to Normal, then twice to go to Boost.
I don't think this is actually linked to G14

Allow changing fan modes from cmdline/dbus

I think it would be nice to add more commands available via the rog-core cmdline like setting fan mode.
This would allow us to make more integration with some DE/WM.

Add G531GT Support

Hi! I own a G531GT. I wanted to know what i need to provide to get it supported. Maybe with some guidance i can add the support myself.

I'm using Ubuntu 20.04, 5.4.0 kernel.

Thanks

Rename modes to match Armory crate

The following need to be renamed

rog-core armory
rain star
disco rain
thin zoomy comet
wide zoomy flash/dash
mode 2 breathing
mode 3 strobing

ROG Strix G512LU

Describe the bug
Regardless of distribution, the following FN keys do not work on this laptop:

  • brightness keys
  • volume key
  • AURA keys
  • keyboard light keys

The brightness can be changes through Gnome GUI and also by using the light CLI tool.

All led lights work by using this tool: https://github.com/wroberts/rogauracore

rog-core is not working:

~ >>> rog-core -d                                                                                                                                                           
INFO: Product name: ROG Strix G512LU_G512LU
INFO: Board name: G512LU
thread 'main' panicked at 'Unsupported laptop, please request support at

To Reproduce
Buy G512LU
Be sad about Fn keys not working.

Expected behavior
Fn keys should work

Please provide the following:

  • Distro: Manjaro

  • Kernel (uname -r): 5.7.0-3-MANJARO

  • cat /sys/class/dmi/id/product_name:ROG Strix G512LU_G512LU

  • cat /sys/class/dmi/id/product_family: ROG Strix

  • cat /sys/class/dmi/id/board_name:G512LU

  • lsusb |grep 0b05: Bus 001 Device 002: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
    --> can not attach (github bug)

  • sudo journalctl -b --unit rog-core > rog-core.log
    rog-core.log

  • sudo usbhid-dump > usbhid.log and attach to issue.
    usbhid.log

Additional context
Please let us know if all issues stated are within the scope of this repo.

Asus TUF505du laptop info

I tried running it just as-is, and I got an error when starting the daemon. journalctl shows:

Apr 24 00:49:52 archlinux systemd[1]: rog-core.service: Start request repeated too quickly.
Apr 24 00:49:52 archlinux systemd[1]: rog-core.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The unit rog-core.service has entered the 'failed' state with result 'exit-code'.
Apr 24 00:49:52 archlinux systemd[1]: Failed to start ROG Core Daemon.
-- Subject: A start job for unit rog-core.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- A start job for unit rog-core.service has finished with a failure.
-- 
-- The job identifier is 5702 and the job result is failed.

lsusb doesn't show anything with an id of 0b05:*, nor even anything with AsusTek in the name. Seems like FX* models use a very different system from what's here :(. I do have the product info though, not that it would be much use:

❯ cat /sys/class/dmi/id/{product_{name,family},board_name}                        
TUF Gaming FX505DU_TUF505DU
TUF Gaming
FX505DU

Problem with rog-core service after suspend (ROG Strix G531GT)

Hi. I have issue with rog-core service after I bring back laptop from suspend.
I have ROG Strix G531GT, with Manjaro installed and 5.7.9-1 kernel version.

When i did clean install, Fn+ F5 - F12 and Fn + arrows didn't work. I installed rog-core from AUR, and it resolved most of buttons. Only two I noticed that don't work are fan speed control and turn of display. Here are my issues:

  • When I press fan speed control, in service status it says: WARN: Couldn't toggle fan mode: Custom { kind: NotFound, error: "Fan mode not available" }

  • Chaning fan mode with rog-core --fan-mode results in WARN: Custom { kind: NotFound, error: "Fan mode not available" }

  • Changing battery charge with rog-core --charge-limit 80 results in:
    WARN: Failed to open battery charge limit path: Os { code: 2, kind: NotFound, message: "No such file>
    WARN: Os { code: 2, kind: NotFound, message: "No such file or directory" }

  • My biggest problem is, when laptop goes to suspend, and turns on againg, rog-core stops working.
    Service status is ERROR: Failed to read keyboard interrupt: Io
    In journalctl it logs "usb 1-8: usbfs: process 898 (tokio-runtime-w) did not claim interface 2 before use" a few thousand times a second, and it keeps one thread to 100%. Process with pid 898 is rog-core.

Zephyrus G15 (Ga502)

G15 has problems dealing with Ubuntu as well:

  1. Overheating due to inactivity of fans in Performance mode or Turbo mode
  2. All of fn keys and RoG key are not supported (You can only use volume keys)
  3. It works unbelievably slow (for example it takes 5-6 seconds to just open Chromium)

I think the Wifi and GPU and CPU drivers don't get installed on it by default. (Mine had a really major problem not recognizing Wifi and I couldn't even open Settings (because it would freeze since there was no GPU driver) and I had to solve it by connecting LAN and turn off/on for a hundred times to install Wifi and LAN drivers).

Please add support for Strix GL504GV

Describe the bug
Asus Strix GL504GV not supported.

To Reproduce
Install the rog-core package from AUR using pacman
run rog-core -d

see this output

INFO: Version: 0.15.0
INFO: Product name: Strix GL504GV
INFO: Board name: GL504GV
thread 'main' panicked at 'Unsupported laptop, please request support at https://github.com/flukejones/rog-core', rog-core/src/laptops.rs:95:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Aborted (core dumped)

Expected behavior
GL504GV is supported and rog-core functions normally

Please provide the following:

  • Distro:
  • Kernel (uname -r):
    '5.7.14-1-MANJARO'
  • cat /sys/class/dmi/id/product_name:
    Strix GL504GV
  • cat /sys/class/dmi/id/product_family:
    Strix
  • cat /sys/class/dmi/id/board_name:
    GL504GV
  • lsusb |grep 0b05
    Bus 001 Device 004: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
    • sudo lsusb -vd 0b05:<all devices from above> > ~/laptop_info, and attach to issue.
      laptop_info.txt
  • sudo journalctl -b --unit rog-core > rog-core.log and attach to issue.
    rog-core.log
  • sudo usbhid-dump > usbhid.log and attach to issue.
    usbhid.log

Zephyrus GM501GM support

I have a Zephyrus GM501GM currently, which has a similar issue with the keyboard in Linux. I think it also has a very similar keyboard to the GX502. More than happy to help with wireshark captures and whatever else you need, if you're open to it?

Add suport for FA506IV

Hey!

Here is the output of the commands you ask

lsusb |grep 0b05
EMPTY

sudo usbhid-dump
No matching HID interfaces

cat /sys/class/dmi/id/product_name
TUF Gaming FA506IV_TUF506IV

cat /sys/class/dmi/id/product_family
TUF Gaming FA506IV

cat /sys/class/dmi/id/board_name
FA506IV

I think this output is´nt helpful. Let me know if i can run any other command.

G14 - Error: NoDevice

$ uname -a
Linux zg14 5.6.16-300.fc32.x86_64 #1 SMP Thu Jun 4 18:08:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

After building and trying to start the systemd service, it fails to start with

Jun 07 20:28:58 zg14 systemd[1]: rog-core.service: Scheduled restart job, restart counter is at 4.
Jun 07 20:28:58 zg14 systemd[1]: Stopped ROG Core Daemon.
Jun 07 20:28:58 zg14 systemd[1]: Started ROG Core Daemon.
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] Found GA401 series
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] Config loaded
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] INTERVAL: 1
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] MAX_PKT_SIZE: 64
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] SYNC: NoSync
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] TRANSFER_TYPE: Interrupt
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] ENDPOINT: 4
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] RogCore loaded
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] Setting pstate for AMD CPU
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] CPU Power: turbo: "1"
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] Reloaded fan mode: Normal
Jun 07 20:28:58 zg14 rog-core[1430]: [INFO ] Reloaded last used mode and brightness
Jun 07 20:28:58 zg14 rog-core[1430]: [ERROR] Could not get device handle: NoDevice
Jun 07 20:28:58 zg14 rog-core[1430]: Error: NoDevice
Jun 07 20:28:58 zg14 systemd[1]: rog-core.service: Main process exited, code=exited, status=1/FAILURE
Jun 07 20:28:58 zg14 systemd[1]: rog-core.service: Failed with result 'exit-code'.
Jun 07 20:28:58 zg14 systemd[1]: rog-core.service: Scheduled restart job, restart counter is at 5.
Jun 07 20:28:58 zg14 systemd[1]: Stopped ROG Core Daemon.
Jun 07 20:28:58 zg14 systemd[1]: rog-core.service: Start request repeated too quickly.
Jun 07 20:28:58 zg14 systemd[1]: rog-core.service: Failed with result 'exit-code'.
Jun 07 20:28:58 zg14 systemd[1]: Failed to start ROG Core Daemon.

I'll keep poking around, and I'm happy to provide any more info that could be useful

0.10.0 says "NoDevice" on Zephyrus G14 (GA401IV)

root@zephy /h/g/d/rog-core-0.9.9 [2]# rog-core -v
Version: 0.10.0
root@zephy /h/gree [1]# rog-core -d
[INFO ] Found GA401 series
[INFO ] Config loaded
[INFO ] INTERVAL: 1
[INFO ] MAX_PKT_SIZE: 64
[INFO ] SYNC: NoSync
[INFO ] TRANSFER_TYPE: Interrupt
[INFO ] ENDPOINT: 4
[INFO ] RogCore loaded
[WARN ] Fan mode: Fan mode not available
[INFO ] Reloaded last used mode and brightness
[ERROR] Could not get device handle: NoDevice
Error: NoDevice

Version 0.99 works fine:

root@zephy /h/g/d/r/t/release [SIGINT]# ./rog-core -v
Version: 0.9.9
root@zephy /h/g/d/r/t/release# ./rog-core -d
[INFO ] Found GA401 series
[INFO ] Config loaded
[INFO ] INTERVAL: 1
[INFO ] MAX_PKT_SIZE: 64
[INFO ] SYNC: NoSync
[INFO ] TRANSFER_TYPE: Interrupt
[INFO ] ENDPOINT: 4
[INFO ] RogCore loaded
[WARN ] Fan mode: Fan mode not available
[INFO ] Reloaded last used mode and brightness
[INFO ] Increased LED brightness to 2
[INFO ] Decreased LED brightness to 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.