philpax / borealis Goto Github PK
View Code? Open in Web Editor NEWAsus Aura Sync driver application for Linux
License: MIT License
Asus Aura Sync driver application for Linux
License: MIT License
The list of Aura devices is currently hardcoded. Borealis should probe the system to determine what's installed.
Currently, Borealis only allows users to set the entire system's LEDs to the same colour (specified via CLI). Ideally, more granular control would be offered, including being able to control individual controllers and LEDs.
Additionally, given that people love their RGB animations, some kind of animation or scripting interface would be good. I'm thinking Lua; I've been looking for an excuse to play with rlua...
I need to change my laptop keyboard backlight.
Here's my HW probe result:
https://linux-hardware.org/?probe=27bb2f0366
There I see my i2c_piix4 vendor is AMD and my keyboard is PS/2.
I've patched the i2c-piix4 module and here's the result of calling sudo i2cdetect -l
:
i2c-3 smbus SMBus PIIX4 adapter port 2 at 0b00 SMBus adapter
i2c-10 i2c NVIDIA i2c adapter 5 at 1:00.0 I2C adapter
i2c-1 i2c NVIDIA GPU I2C adapter I2C adapter
i2c-8 i2c dmdc I2C adapter
i2c-6 smbus SMBus PIIX4 adapter port 1 at 0b20 SMBus adapter
i2c-4 smbus SMBus PIIX4 adapter port 3 at 0b00 SMBus adapter
i2c-2 smbus SMBus PIIX4 adapter port 0 at 0b00 SMBus adapter
i2c-0 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-9 i2c NVIDIA i2c adapter 1 at 1:00.0 I2C adapter
i2c-7 i2c AMDGPU DM i2c hw bus 0 I2C adapter
i2c-5 smbus SMBus PIIX4 adapter port 4 at 0b00 SMBus adapter
I've called chmod 777
to all the SMBus PIIX4 adapters (/dev/i2c-6
, etc.).
When I run Borealis:
smbus: /sys/bus/pci/devices/0000:00:14.0
i2c-sys: /dev/i2c-2
i2c-aux: /dev/i2c-6
thread 'main' panicked at 'Can't connect to Aura MB controller. If using an AMD system, have you applied the kernel patch?: I2CError(Nix(Sys(EIO)))', src/libcore/result.rs:999:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
My kernel info:
$ uname -r
5.2.0-1-MANJARO
$ dkms status
deepin-anything, 0.1.0, 4.19.56-1-MANJARO, x86_64: installed
deepin-anything, 0.1.0, 5.2.0-1-MANJARO, x86_64: installed
i2c-piix4, 1.0, 5.2.0-1-MANJARO, x86_64: installed
It'd be good to handle the following:
I have a Zenith Extreme and borealis doesn't seem to be able to find the I2C interfaces.
smbus: /sys/bus/pci/devices/0000:00:14.0
i2c-sys: /dev/i2c-3
thread 'main' panicked at 'failed to locate auxiliary controller for MB Aura', src/libcore/option.rs:1038:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
Some more info.
$ i2cdetect -l
i2c-3 unknown SMBus PIIX4 adapter port 3 at 0b00 N/A
i2c-10 unknown NVIDIA i2c adapter 8 at 41:00.0 N/A
i2c-1 unknown SMBus PIIX4 adapter port 0 at 0b00 N/A
i2c-8 unknown NVIDIA i2c adapter 6 at 41:00.0 N/A
i2c-6 unknown NVIDIA i2c adapter 2 at 41:00.0 N/A
i2c-4 unknown SMBus PIIX4 adapter port 4 at 0b00 N/A
i2c-11 unknown NVIDIA i2c adapter 9 at 41:00.0 N/A
i2c-2 unknown SMBus PIIX4 adapter port 2 at 0b00 N/A
i2c-0 unknown Synopsys DesignWare I2C adapter N/A
i2c-9 unknown NVIDIA i2c adapter 7 at 41:00.0 N/A
i2c-7 unknown NVIDIA i2c adapter 4 at 41:00.0 N/A
i2c-5 unknown NVIDIA i2c adapter 1 at 41:00.0 N/A
[id:~/.dev/borealis] master(+2/-0) ± cargo run 120 0 120
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/borealis 120 0 120`
smbus: /sys/bus/pci/devices/0000:00:1f.4
thread 'main' panicked at 'failed to parse port: ParseIntError { kind: InvalidDigit }', src/libcore/result.rs:999:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[id:~/.dev/borealis] master(+2/-0) 101 ± RUST_BACKTRACE=1 cargo run 120 0 120
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/borealis 120 0 120`
smbus: /sys/bus/pci/devices/0000:00:1f.4
thread 'main' panicked at 'failed to parse port: ParseIntError { kind: InvalidDigit }', src/libcore/result.rs:999:5
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
1: std::sys_common::backtrace::print
2: std::panicking::default_hook::{{closure}}
3: std::panicking::default_hook
4: std::panicking::rust_panic_with_hook
5: std::panicking::continue_panic_fmt
6: rust_begin_unwind
7: core::panicking::panic_fmt
8: core::result::unwrap_failed
at /usr/src/rustc-1.36.0/src/libcore/macros.rs:18
9: core::result::Result<T,E>::expect
at /usr/src/rustc-1.36.0/src/libcore/result.rs:827
10: borealis::i2c::find_i2c_adapters
at src/i2c.rs:53
11: borealis::main
at src/main.rs:35
12: std::rt::lang_start::{{closure}}
at /usr/src/rustc-1.36.0/src/libstd/rt.rs:64
13: std::panicking::try::do_call
14: __rust_maybe_catch_panic
15: std::rt::lang_start_internal
16: std::rt::lang_start
at /usr/src/rustc-1.36.0/src/libstd/rt.rs:64
17: main
18: __libc_start_main
19: _start
[id:~/.dev/borealis] master(+2/-0) 101 ± sudo modprobe i2c-dev
[id:~/.dev/borealis] master(+2/-0) ± cargo run 120 0 120
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/borealis 120 0 120`
smbus: /sys/bus/pci/devices/0000:00:1f.4
thread 'main' panicked at 'failed to parse port: ParseIntError { kind: InvalidDigit }', src/libcore/result.rs:999:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[id:~/.dev/borealis] master(+2/-0) 101 ±
Currently, whether or not the required I2C addresses are present on the bus is almost entirely dependent on whether they have been initialised by Aura Sync on Windows prior. While it sort of works right now, it'd be preferable to actually initialise them from Borealis.
Probably not surprising but it doesn't seem to work on Gigabyte x570 motherboards.
🤷♀️ Eh... It was worth trying... I mean Aurous sounds a bit like aura... Right?
I wondered if they might be using the same controller and/or protocol, but the program never got as far as testing that, the failure was: thread 'main' panicked at 'failed to locate AMD system SMBus', src/libcore/option.rs:1188:5
i2c-dev loaded, binary run as root.
You can close this issue when you are done laughing at me for trying.
Hey,
I am running an ASUS TUF H310-Plus with Aura and I get the following error:
cargo run 127 0 127 Finished dev [unoptimized + debuginfo] target(s) in 0.02s Running
target/debug/borealis 127 0 127smbus: /sys/bus/pci/devices/0000:00:1f.4 thread 'main' panicked at 'failed to parse port: ParseIntError { kind: InvalidDigit }', src/libcore/result.rs:997:5 note: Run with
RUST_BACKTRACE=1 environment variable to display a backtrace.
Can I collect any information to help troubleshoot?
i2cdetect -l i2c-0 i2c i915 gmbus dpb I2C adapter i2c-1 i2c i915 gmbus dpc I2C adapter i2c-2 i2c i915 gmbus misc I2C adapter i2c-3 i2c i915 gmbus dpd I2C adapter i2c-4 i2c DPDDC-E I2C adapter i2c-5 smbus SMBus I801 adapter at efa0 SMBus adapter
# lspci 00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 08) 00:02.0 VGA compatible controller: Intel Corporation 8th Gen Core Processor Gaussian Mixture Model 00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10) 00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10) 00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10) 00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10) 00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #5 (rev f0) 00:1c.6 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #7 (rev f0) 00:1f.0 ISA bridge: Intel Corporation Device a303 (rev 10) 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10) 00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10) 00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10) 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10) 02:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 04)
ls /sys/bus/pci/devices 0000:00:00.0 0000:00:02.0 0000:00:14.0 0000:00:14.2 0000:00:16.0 0000:00:17.0 0000:00:1c.0 0000:00:1c.6 0000:00:1f.0 0000:00:1f.3 0000:00:1f.4 0000:00:1f.5 0000:00:1f.6 0000:02:00.0
Regards,
Hi, I downloaded this program to stop the lights from flashing on my Ubuntu box, however I keep getting this error whenever I run it.
warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
--> src/aura_error.rs:33:45
|
33 | AuraError::I2CError(ref e) => e.description(),
| ^^^^^^^^^^^
|
= note: `#[warn(deprecated)]` on by default
warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
--> src/aura_error.rs:34:44
|
34 | AuraError::IOError(ref e) => e.description(),
| ^^^^^^^^^^^
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/borealis 127 0 127`
smbus: /sys/bus/pci/devices/0000:00:1f.4
thread 'main' panicked at 'failed to locate AMD system SMBus', src/main.rs:37:19
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
% thelmgn@Cana ~/borealis i2cdetect -l 57.7s Tue 08 Dec 2020 16:33:55 UTC
i2c-3 unknown i915 gmbus dpd N/A
i2c-1 unknown i915 gmbus dpc N/A
i2c-4 unknown DPDDC-B N/A
i2c-2 unknown i915 gmbus dpb N/A
i2c-0 unknown SMBus I801 adapter at f040 N/A
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.