Compare commits

..

15 Commits

Author SHA1 Message Date
Luke D Jones 855d4dc701 Remove misc files 2020-08-28 21:04:54 +12:00
Luke D Jones 3095e181eb Merge branch 'next' of gitlab.com:asus-linux/asus-nb-ctrl into next 2020-08-28 21:02:35 +12:00
Luke D Jones ee020085f8 Fix issue with trying to find dev nodes before they are available 2020-08-28 21:02:17 +12:00
Luke D Jones b70137eec8 Bump versiona and update deps 2020-08-28 20:07:46 +12:00
Luke Jones aa4d79c6f5 Update README.md 2020-08-24 22:28:06 +00:00
Luke Jones ab8393a807 Update README.md 2020-08-24 22:10:21 +00:00
Luke D Jones b8c83a1a72 Fixes to rpm build specifically for OBS 2020-08-23 21:30:31 +12:00
Luke D Jones 8cee0e6735 Fixes to deb build specifically for OBS 2020-08-23 21:28:24 +12:00
Luke D Jones c482208d3c Try CI again for artifact 2020-08-23 15:39:19 +12:00
Luke D Jones 708712e00a Next CI try 2020-08-23 14:50:22 +12:00
Luke D Jones 25ee250542 Trial by fire of gitlab CI 2020-08-23 14:48:41 +12:00
Luke D Jones b921b68c57 Update G531GW config
Closes #3
2020-08-23 14:18:19 +12:00
Luke D Jones f0c5c3af86 Bugfixes 2020-08-13 20:39:56 +12:00
Luke D Jones 96b0f40886 Fix deadlock 2020-08-13 17:03:48 +12:00
Luke D Jones 4a5f029e53 Fix deadlocks on some awaits 2020-08-13 16:59:36 +12:00
23 changed files with 160 additions and 351 deletions
+26
View File
@@ -0,0 +1,26 @@
image: rustdocker/rust:stable
before_script:
- apt-get update -qq && apt-get install -y -qq libdbus-1-dev libclang-dev libudev-dev
stages:
- test
- build
test:
script:
- cargo check #+nightly check --features "clippy"
build:
only:
- next
script:
- make && make vendor
artifacts:
paths:
- vendor-$(grep -P 'version = "(\d.\d.\d)"' asus-nb-ctrl/Cargo.toml | cut -d'"' -f2).tar.xz
- cargo-config
variables:
GIT_SUBMODULE_STRATEGY: normal
+10
View File
@@ -6,5 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [1.0.2] - 2020-08-13
### Changed
- Bugfixes to led brightness watcher
- Bufixes to await/async tasks
## [1.0.1] - 2020-08-13
- Fix small deadlock with awaits
## [1.0.0] - 2020-08-13 ## [1.0.0] - 2020-08-13
- Major fork and refactor to use asus-hid patch for ASUS N-Key device - Major fork and refactor to use asus-hid patch for ASUS N-Key device
Generated
+50 -135
View File
@@ -2,9 +2,9 @@
# It is not intended for manual editing. # It is not intended for manual editing.
[[package]] [[package]]
name = "adler32" name = "adler32"
version = "1.1.0" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
@@ -30,7 +30,7 @@ dependencies = [
[[package]] [[package]]
name = "asus-nb-ctrl" name = "asus-nb-ctrl"
version = "1.0.0" version = "1.0.3"
dependencies = [ dependencies = [
"asus-nb", "asus-nb",
"async-trait", "async-trait",
@@ -52,9 +52,9 @@ dependencies = [
[[package]] [[package]]
name = "async-trait" name = "async-trait"
version = "0.1.36" version = "0.1.38"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a265e3abeffdce30b2e26b7a11b222fe37c6067404001b434101457d0385eb92" checksum = "6e1a4a2f97ce50c9d0282c1468816208588441492b40d813b2e0419c22c05e7f"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -72,21 +72,6 @@ dependencies = [
"winapi 0.3.9", "winapi 0.3.9",
] ]
[[package]]
name = "bit-set"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
dependencies = [
"bit-vec",
]
[[package]]
name = "bit-vec"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.2.1" version = "1.2.1"
@@ -95,18 +80,15 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]] [[package]]
name = "bytes" name = "bytes"
version = "0.5.5" version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "118cf036fbb97d0816e3c34b2d7a1e8cfc60f68fcf63d550ddbe9bd5f59c213b" checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
dependencies = [
"loom",
]
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.56" version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77c1f1d60091c1b73e2b1f4560ab419204b178e625fa945ded7b660becd2bd46" checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
@@ -136,11 +118,12 @@ dependencies = [
[[package]] [[package]]
name = "dbus-tokio" name = "dbus-tokio"
version = "0.5.1" version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "641f98f32585b8a8cc5d88c6c55a8f6cdf60740baab17c57d59b9b662c73f522" checksum = "baaf99ea9b8296ba0db293cad28c51d788e690c47ebe9974b864354b258a636a"
dependencies = [ dependencies = [
"dbus", "dbus",
"libc",
"mio", "mio",
"tokio", "tokio",
] ]
@@ -174,9 +157,9 @@ dependencies = [
[[package]] [[package]]
name = "filetime" name = "filetime"
version = "0.2.10" version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "affc17579b132fc2461adf7c575cc6e8b134ebca52c51f5411388965227dc695" checksum = "3ed85775dcc68644b5c950ac06a2b23768d3bc9390464151aaf27136998dcf9e"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
@@ -301,19 +284,6 @@ dependencies = [
"slab", "slab",
] ]
[[package]]
name = "generator"
version = "0.6.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "add72f17bb81521258fcc8a7a3245b1e184e916bfbe34f0ea89558f440df5c68"
dependencies = [
"cc",
"libc",
"log",
"rustc_version",
"winapi 0.3.9",
]
[[package]] [[package]]
name = "gumdrop" name = "gumdrop"
version = "0.8.0" version = "0.8.0"
@@ -336,9 +306,9 @@ dependencies = [
[[package]] [[package]]
name = "hermit-abi" name = "hermit-abi"
version = "0.1.14" version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909" checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
dependencies = [ dependencies = [
"libc", "libc",
] ]
@@ -395,9 +365,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.71" version = "0.2.76"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49" checksum = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3"
[[package]] [[package]]
name = "libdbus-sys" name = "libdbus-sys"
@@ -446,24 +416,13 @@ dependencies = [
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.8" version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
] ]
[[package]]
name = "loom"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ecc775857611e1df29abba5c41355cdf540e7e9d4acfdf0f355eefee82330b7"
dependencies = [
"cfg-if",
"generator",
"scoped-tls",
]
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.3.3" version = "2.3.3"
@@ -540,24 +499,24 @@ checksum = "e521b6adefa0b2c1fa5d2abdf9a5216288686fe6146249215d884c0e5ab320b0"
[[package]] [[package]]
name = "once_cell" name = "once_cell"
version = "1.4.0" version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
[[package]] [[package]]
name = "pin-project" name = "pin-project"
version = "0.4.22" version = "0.4.23"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17" checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
dependencies = [ dependencies = [
"pin-project-internal", "pin-project-internal",
] ]
[[package]] [[package]]
name = "pin-project-internal" name = "pin-project-internal"
version = "0.4.22" version = "0.4.23"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7" checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -578,15 +537,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]] [[package]]
name = "pkg-config" name = "pkg-config"
version = "0.3.17" version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
[[package]] [[package]]
name = "proc-macro-error" name = "proc-macro-error"
version = "1.0.3" version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [ dependencies = [
"proc-macro-error-attr", "proc-macro-error-attr",
"proc-macro2", "proc-macro2",
@@ -597,22 +556,20 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro-error-attr" name = "proc-macro-error-attr"
version = "1.0.3" version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn",
"syn-mid",
"version_check", "version_check",
] ]
[[package]] [[package]]
name = "proc-macro-hack" name = "proc-macro-hack"
version = "0.5.16" version = "0.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
[[package]] [[package]]
name = "proc-macro-nested" name = "proc-macro-nested"
@@ -622,9 +579,9 @@ checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.18" version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
dependencies = [ dependencies = [
"unicode-xid", "unicode-xid",
] ]
@@ -646,9 +603,9 @@ dependencies = [
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.1.56" version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]] [[package]]
name = "regex" name = "regex"
@@ -676,24 +633,14 @@ checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac"
[[package]] [[package]]
name = "rusb" name = "rusb"
version = "0.6.0" version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "884a9ee2c66cdb5ca6c5243ea91cdbba9865506792c3d175d1ad8de8bb0ea64a" checksum = "fac7576c07e31f5885d67ec09fd8509e4b730cea4266fecfe7f068f3a5d1f3b3"
dependencies = [ dependencies = [
"bit-set",
"libc", "libc",
"libusb1-sys", "libusb1-sys",
] ]
[[package]]
name = "rustc_version"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
"semver",
]
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.3" version = "1.0.3"
@@ -711,38 +658,17 @@ version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
[[package]]
name = "scoped-tls"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
[[package]]
name = "semver"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
"semver-parser",
]
[[package]]
name = "semver-parser"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.114" version = "1.0.115"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.114" version = "1.0.115"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -751,9 +677,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.56" version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@@ -779,26 +705,15 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.33" version = "1.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd" checksum = "891d8d6567fe7c7f8835a3a98af4208f3846fba258c1bc3c31d6e506239f11f9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"unicode-xid", "unicode-xid",
] ]
[[package]]
name = "syn-mid"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "synstructure" name = "synstructure"
version = "0.12.4" version = "0.12.4"
@@ -867,9 +782,9 @@ dependencies = [
[[package]] [[package]]
name = "tokio" name = "tokio"
version = "0.2.21" version = "0.2.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd"
dependencies = [ dependencies = [
"bytes", "bytes",
"fnv", "fnv",
+6 -2
View File
@@ -14,6 +14,7 @@ SRC = Cargo.toml Cargo.lock Makefile $(shell find -type f -wholename '**/src/*.r
BIN_C=asusctl BIN_C=asusctl
BIN_D=asusd BIN_D=asusd
LEDCONFIG=asusd-ledmodes.toml LEDCONFIG=asusd-ledmodes.toml
VERSION:=$(shell grep -P 'version = "(\d.\d.\d)"' asus-nb-ctrl/Cargo.toml | cut -d'"' -f2)
DEBUG ?= 0 DEBUG ?= 0
ifeq ($(DEBUG),0) ifeq ($(DEBUG),0)
@@ -56,11 +57,14 @@ vendor:
mkdir -p .cargo mkdir -p .cargo
cargo vendor | head -n -1 > .cargo/config cargo vendor | head -n -1 > .cargo/config
echo 'directory = "vendor"' >> .cargo/config echo 'directory = "vendor"' >> .cargo/config
tar pcfJ vendor.tar.xz vendor mv .cargo/config ./cargo-config
rm -rf .cargo
tar pcfJ vendor-$(VERSION).tar.xz vendor
rm -rf vendor rm -rf vendor
target/release/$(BIN_D): $(SRC) target/release/$(BIN_D): $(SRC)
ifeq ($(VENDORED),1) ifeq ($(VENDORED),1)
tar pxf vendor.tar.xz @echo "version = $(VERSION)"
tar pxf vendor-$(VERSION).tar.xz
endif endif
cargo build $(ARGS) cargo build $(ARGS)
+8 -1
View File
@@ -3,7 +3,8 @@
**NOTICE:** **NOTICE:**
This program requires the kernel patch in `./kernel-patch/` to be applied. This program requires the kernel patch in `./kernel-patch/` to be applied.
As of 04/08/2020 these have been submitted to lkml. As of 04/08/2020 these have been submitted to lkml. Alternatively you may
use the dkms module for 'hid-asus-rog` from one of the repositories [here](https://download.opensuse.org/repositories/home:/luke_nukem:/asus/).
The patch enables the following in kernel: The patch enables the following in kernel:
@@ -118,6 +119,12 @@ For editing the `/etc/asusd/asusd-ledmodes.toml`, the LED Mode numbers are as fo
## Installing ## Installing
Packaging and auto-builds are available [here](https://build.opensuse.org/package/show/home:luke_nukem:asus/asus-nb-ctrl)
Download repositories are available [here](https://download.opensuse.org/repositories/home:/luke_nukem:/asus/)
---
Run `make` then `sudo make install` then reboot. Run `make` then `sudo make install` then reboot.
The default init method is to use the udev rule, this ensures that the service is The default init method is to use the udev rule, this ensures that the service is
-70
View File
@@ -1,70 +0,0 @@
%if %{defined fedora}
%global debug_package %{nil}
%endif
# Use hardening ldflags.
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
Name: asus-nb-ctrl
Version: 1.0.0
Release: 0
Summary: Text editor for terminal
License: MPLv2
Group: Productivity/Text/Editors
URL: https://gitlab.com/asus-linux/asus-nb-ctrl
Source: %{name}-%{version}.tar.gz
# cargo vendor &&
# tar cfJ vendor.tar.xz vendor
Source1: vendor.tar.xz
BuildRequires: clang-devel
BuildRequires: cargo
BuildRequires: rust
BuildRequires: rust-std-static
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(libudev)
%description
ASUS Laptop control
%prep
%setup -q -n %name-next
%setup -q -n %name-next -D -T -a 1
mkdir .cargo
cat >.cargo/config <<EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
%build
export RUSTFLAGS="%{rustflags}"
RUST_BACKTRACE=1 cargo build --release
%install
export RUSTFLAGS="%{rustflags}"
mkdir -p "%{buildroot}%{_bindir}"
install -D -m 0755 target/release/asusd %{buildroot}%{_bindir}/asusd
install -D -m 0755 target/release/asusctl %{buildroot}%{_bindir}/asusctl
install -D -m 0644 data/asusd.rules %{buildroot}%{_udevrulesdir}/90-asusd.rules
install -D -m 0644 data/asusd.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/asusd.conf
install -D -m 0644 data/asusd.service %{buildroot}%{_unitdir}/asusd.service
install -D -m 0644 data/asusd-ledmodes.toml %{buildroot}%{_sysconfdir}/asusd/asusd-ledmodes.toml
mkdir -p "%{buildroot}%{_datadir}/licenses/%{name}"
cp LICENSE "%{buildroot}%{_datadir}/licenses/%{name}/"
mkdir -p "%{buildroot}/bin"
%files
%license LICENSE
%{_bindir}/asusd
%{_bindir}/asusctl
%{_unitdir}/asusd.service
%{_udevrulesdir}/90-asusd.rules
%{_sysconfdir}/dbus-1/system.d/asusd.conf
%{_sysconfdir}/asusd/asusd-ledmodes.toml
%changelog
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "asus-nb-ctrl" name = "asus-nb-ctrl"
version = "1.0.0" version = "1.0.3"
license = "MPL-2.0" license = "MPL-2.0"
readme = "README.md" readme = "README.md"
authors = ["Luke <luke@ljones.dev>"] authors = ["Luke <luke@ljones.dev>"]
+1 -1
View File
@@ -34,7 +34,7 @@ impl crate::Controller for CtrlCharge {
while let Some(n) = recv.recv().await { while let Some(n) = recv.recv().await {
let mut config = config.lock().await; let mut config = config.lock().await;
self.set_charge_limit(n, &mut config) self.set_charge_limit(n, &mut config)
.unwrap_or_else(|err| warn!("{:?}", err)); .unwrap_or_else(|err| warn!("charge_limit: {:?}", err));
} }
})] })]
} }
+8 -11
View File
@@ -41,22 +41,19 @@ impl crate::Controller for CtrlFanAndCPU {
tokio::spawn(async move { tokio::spawn(async move {
while let Some(mode) = recv.recv().await { while let Some(mode) = recv.recv().await {
let mut config = config1.lock().await; let mut config = config1.lock().await;
if let Ok(mut lock) = gate1.try_lock() { let mut lock = gate1.lock().await;
lock.set_fan_mode(mode, &mut config) lock.set_fan_mode(mode, &mut config)
.unwrap_or_else(|err| warn!("{:?}", err)); .unwrap_or_else(|err| warn!("{:?}", err));
}
} }
}), }),
// need to watch file path // need to watch file path
tokio::spawn(async move { tokio::spawn(async move {
loop { loop {
if let Ok(mut lock) = gate2.try_lock() { tokio::time::delay_for(std::time::Duration::from_millis(100)).await;
let mut config = config.lock().await; let mut lock = gate2.lock().await;
lock.fan_mode_check_change(&mut config) let mut config = config.lock().await;
.unwrap_or_else(|err| warn!("{:?}", err)); lock.fan_mode_check_change(&mut config)
} .unwrap_or_else(|err| warn!("fan_ctrl: {:?}", err));
tokio::time::delay_for(std::time::Duration::from_millis(500)).await;
} }
}), }),
] ]
+28 -6
View File
@@ -76,11 +76,11 @@ impl crate::Controller for CtrlKbdBacklight {
}), }),
tokio::spawn(async move { tokio::spawn(async move {
loop { loop {
tokio::time::delay_for(std::time::Duration::from_millis(100)).await;
let mut lock = gate2.lock().await; let mut lock = gate2.lock().await;
let mut config = config.lock().await; let mut config = config.lock().await;
lock.let_bright_check_change(&mut config) lock.let_bright_check_change(&mut config)
.unwrap_or_else(|err| warn!("{:?}", err)); .unwrap_or_else(|err| warn!("led_ctrl: {:?}", err));
tokio::time::delay_for(std::time::Duration::from_millis(500)).await;
} }
}), }),
] ]
@@ -132,8 +132,8 @@ impl CtrlKbdBacklight {
#[inline] #[inline]
pub fn new(id_product: &str, supported_modes: Vec<u8>) -> Result<Self, std::io::Error> { pub fn new(id_product: &str, supported_modes: Vec<u8>) -> Result<Self, std::io::Error> {
Ok(CtrlKbdBacklight { Ok(CtrlKbdBacklight {
led_node: Self::scan_led_node(id_product)?, led_node: Self::get_node_failover(id_product, Self::scan_led_node)?,
kbd_node: Self::scan_kbd_node(id_product)?, kbd_node: Self::get_node_failover(id_product, Self::scan_kbd_node)?,
// brightness node path should always be constant but this *might* change? // brightness node path should always be constant but this *might* change?
bright_node: "/sys/class/leds/asus::kbd_backlight/brightness".to_string(), bright_node: "/sys/class/leds/asus::kbd_backlight/brightness".to_string(),
supported_modes, supported_modes,
@@ -141,6 +141,28 @@ impl CtrlKbdBacklight {
}) })
} }
fn get_node_failover(id_product: &str, fun: fn(&str) -> Result<String, std::io::Error>) -> Result<String, std::io::Error> {
for n in 0..2 {
match fun(id_product) {
Ok(o) => return Ok(o),
Err(e) => {
if n > 0 {
warn!("Looking for node: {}", e.to_string());
std::thread::sleep(std::time::Duration::from_secs(1));
} else {
return Err(e);
}
}
}
}
// Shouldn't be possible to reach this...
let err = std::io::Error::new(
std::io::ErrorKind::NotFound,
"node not found",
);
Err(err)
}
fn scan_led_node(id_product: &str) -> Result<String, std::io::Error> { fn scan_led_node(id_product: &str) -> Result<String, std::io::Error> {
let mut enumerator = udev::Enumerator::new()?; let mut enumerator = udev::Enumerator::new()?;
enumerator.match_subsystem("hidraw")?; enumerator.match_subsystem("hidraw")?;
@@ -148,7 +170,7 @@ impl CtrlKbdBacklight {
for device in enumerator.scan_devices()? { for device in enumerator.scan_devices()? {
if let Some(parent) = device.parent_with_subsystem_devtype("usb", "usb_device")? { if let Some(parent) = device.parent_with_subsystem_devtype("usb", "usb_device")? {
if parent.attribute_value("idProduct").unwrap() == id_product { if parent.attribute_value("idProduct").unwrap() == id_product {
// && device.parent().unwrap().sysnum().unwrap() == 3 // && device.parent().unwrap().sysnum().unwrap() == 3
if let Some(dev_node) = device.devnode() { if let Some(dev_node) = device.devnode() {
info!("Using device at: {:?} for LED control", dev_node); info!("Using device at: {:?} for LED control", dev_node);
return Ok(dev_node.to_string_lossy().to_string()); return Ok(dev_node.to_string_lossy().to_string());
@@ -190,7 +212,7 @@ impl CtrlKbdBacklight {
let mut buf = [0u8; 1]; let mut buf = [0u8; 1];
file.read_exact(&mut buf)?; file.read_exact(&mut buf)?;
if let Some(num) = char::from(buf[0]).to_digit(10) { if let Some(num) = char::from(buf[0]).to_digit(10) {
if config.power_profile != num as u8 { if config.kbd_led_brightness != num as u8 {
config.read(); config.read();
config.kbd_led_brightness = num as u8; config.kbd_led_brightness = num as u8;
config.write(); config.write();
+7 -2
View File
@@ -4,11 +4,15 @@ use daemon::{
laptops::match_laptop, laptops::match_laptop,
}; };
use dbus::{channel::Sender, nonblock::SyncConnection, tree::Signal}; use dbus::{
channel::Sender,
nonblock::{Process, SyncConnection},
tree::Signal,
};
use dbus_tokio::connection;
use asus_nb::{DBUS_IFACE, DBUS_NAME, DBUS_PATH}; use asus_nb::{DBUS_IFACE, DBUS_NAME, DBUS_PATH};
use daemon::Controller; use daemon::Controller;
use dbus_tokio::connection;
use log::LevelFilter; use log::LevelFilter;
use log::{error, info, warn}; use log::{error, info, warn};
use std::error::Error; use std::error::Error;
@@ -161,6 +165,7 @@ pub async fn start_daemon() -> Result<(), Box<dyn Error>> {
)); ));
} }
connection.process_all();
for handle in handles { for handle in handles {
handle.await?; handle.await?;
} }
+1 -1
View File
@@ -23,7 +23,7 @@ use std::sync::Arc;
use tokio::sync::{mpsc::Receiver, Mutex}; use tokio::sync::{mpsc::Receiver, Mutex};
use tokio::task::JoinHandle; use tokio::task::JoinHandle;
pub static VERSION: &str = "1.0.0"; pub static VERSION: &str = "1.0.3";
use ::dbus::{nonblock::SyncConnection, tree::Signal}; use ::dbus::{nonblock::SyncConnection, tree::Signal};
-1
View File
@@ -18,4 +18,3 @@ impl fmt::Display for AuraError {
} }
} }
} }
+10 -10
View File
@@ -3,11 +3,6 @@ prod_family = "Zephyrus S"
board_names = ["GX502", "GX701", "G531", "GL531", "G532"] board_names = ["GX502", "GX701", "G531", "GL531", "G532"]
led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 255] led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 255]
[[led_modes]]
prod_family = "ROG Strix"
board_names = ["GX531", "G512LV", "G712LV"]
led_modes = [0, 1, 2, 3, 10, 13]
[[led_modes]] [[led_modes]]
prod_family = "Zephyrus" prod_family = "Zephyrus"
board_names = ["GM501GM", "GX531"] board_names = ["GM501GM", "GX531"]
@@ -15,14 +10,19 @@ led_modes = [0, 1, 2, 3, 10, 13]
[[led_modes]] [[led_modes]]
prod_family = "ROG Strix" prod_family = "ROG Strix"
board_names = ["G512LI", "G712LI"]
led_modes = [0, 1, 2, 3, 10]
[[led_modes]]
prod_family = "Strix Scar 3"
board_names = ["G531GW"] board_names = ["G531GW"]
led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 255] led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 255]
[[led_modes]]
prod_family = "ROG Strix"
board_names = ["GX531", "G512LV", "G712LV"]
led_modes = [0, 1, 2, 3, 10, 13]
[[led_modes]]
prod_family = "ROG Strix"
board_names = ["G512LI", "G712LI"]
led_modes = [0, 1, 2, 3, 10]
[[led_modes]] [[led_modes]]
prod_family = "Strix" prod_family = "Strix"
board_names = ["G731GV", "G731GW", "G531GV"] board_names = ["G731GV", "G731GW", "G531GV"]
+4
View File
@@ -1,8 +1,12 @@
[Unit] [Unit]
Description=ASUS Notebook Control Description=ASUS Notebook Control
StartLimitInterval=200
StartLimitBurst=2
[Service] [Service]
ExecStart=/usr/bin/asusd ExecStart=/usr/bin/asusd
Restart=on-failure Restart=on-failure
Restart=always
RestartSec=1
Type=dbus Type=dbus
BusName=org.asuslinux.Daemon BusName=org.asuslinux.Daemon
-22
View File
@@ -1,22 +0,0 @@
#!/bin/sh
set -e
case "$1" in
configure)
CONF='/etc/asusd.conf'
if [ -f $CONF ]; then
mv $CONF $CONF.save
fi
systemctl unmask asusd.service
#ROG=$(lsusb |grep 0b05 |cut -d ' ' -f 6 |cut -d ':' -f 2)
#sed -i -e "s|==/"1866/"|==/"${ROG}/"|g" /etc/udev/rules.d/99-rog-core.rules
;;
*)
;;
esac
#DEBHELPER#
exit 0
-19
View File
@@ -1,19 +0,0 @@
#!/bin/sh
set -e
case "$1" in
remove)
CONF='/etc/rogcore.conf'
if [ -f $CONF ]; then
rm -rf $CONF
fi
;;
*)
;;
esac
#DEBHELPER#
exit 0
View File
-1
View File
@@ -1 +0,0 @@
9
-39
View File
@@ -1,39 +0,0 @@
Source: asus-nb-ctrl
Section: admin
Priority: optional
Maintainer: Luke Jones <luke@ljones.dev>
Build-Depends:
debhelper (>=9),
cargo,
llvm,
libclang-dev,
libusb-1.0-0-dev,
libdbus-1-dev,
libudev-1-dev
pkg-config
Standards-Version: 4.1.1
Homepage: https://gitlab.com/asus-linux/asus-nb-ctrl
Package: asus-nb-ctrl
Architecture: amd64
Depends:
dbus,
systemd,
libusb-1.0-0,
libudev,
${misc:Depends},
${shlibs:Depends}
Description:ASUS ROG Laptop Management
Extra support for ASUS laptop models:
- GM501
- GX502
- GX531
- G512
- G712
- GX531
- G531
- GA14/GA401. You will need kernel patches
+ https://lab.retarded.farm/zappel/asus-rog-zephyrus-g14/-/tree/master/kernel_patches
- GA15/GA502/GU502 appears to have most things working
- GL703(0x1869)
- GL553/GL753
-7
View File
@@ -1,7 +0,0 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: rog-core
Source: https://github.com/flukejones/rog-core
Files: *
Copyright: Copyright 2020 Luke Jones
License: MPL-2.0
-21
View File
@@ -1,21 +0,0 @@
#!/usr/bin/make -f
export VENDORED ?= 1
CLEAN ?= 1
%:
dh $@ --with=systemd
override_dh_auto_build:
env CARGO_HOME="$$(pwd)/target/cargo" \
dh_auto_build
override_dh_auto_clean:
ifeq ($(CLEAN),1)
make clean
endif
ifeq ($(VENDORED),1)
if ! ischroot; then \
make vendor; \
fi
endif
-1
View File
@@ -1 +0,0 @@
3.0 (native)