Seite 2 von 2

Re: Asus Xonar U1

Verfasst: Samstag 8. November 2025, 08:25
von Allfred
Hat hier jemand Lust einen Blick auf die spartanischen 20 Zeilen der .sh zu werfen und mir sagen, warum das Skript nicht läuft?

Code: Alles auswählen

#!/bin/sh

#Asus Xonar U1 does not preserve the configuration on hibernate
#We will manully unbind the usbhid driver from the device and
#bind it again on thaw, so that udev can pick up the event and spawn
#a new xonard instance

case "$1" in
        hibernate)
		#Remove any stale temporary file
		rm -f -- /tmp/asus-xonar-u1-devices
		#Unbind Xonar U1 devices and store their IDs
		for dev in /sys/bus/usb/drivers/usbhid/[0-9]*
		do
			if [ -d $dev/0003:0B05:1743.* ]
			then
				devname=`basename $dev`;
				echo "$devname" >> /tmp/asus-xonar-u1-devices
				echo "$devname" > /sys/bus/usb/drivers/usbhid/unbind
			fi
		done
                ;;
        thaw)
		#Rebind stored Xonar U1 devices
		for devname in `cat /tmp/asus-xonar-u1-devices`
		do
			echo "$devname" > /sys/bus/usb/drivers/usbhid/bind
		done
		#Remove the temporary file
		rm -f -- /tmp/asus-xonar-u1-devices
                ;;
        *) exit $NA
                ;;
esac

Re: Asus Xonar U1

Verfasst: Samstag 8. November 2025, 15:35
von Siliziumfuchs
Das steht nicht im Script, sondern vermutlich in der Fehlermeldung

Re: Asus Xonar U1

Verfasst: Samstag 8. November 2025, 16:07
von Allfred
Es gibt keine Fehlermeldung:

Code: Alles auswählen

[voll@voll-ga890gpaud3h asus-xonar-u1-utils-master]$ sh 16-asus-xonar-u1.sh
[voll@voll-ga890gpaud3h asus-xonar-u1-utils-master]$ 

Re: Asus Xonar U1

Verfasst: Samstag 8. November 2025, 16:56
von Siliziumfuchs
Also es läuft, tut nur nicht das erwartete... damit bin ich eigentlich raus. Das mit der Shell-Programmierung ist schon sehr lange her und war dann auch nicht sh, sonder bash...

Aber wegen dem

Code: Alles auswählen

case "$1" in
Muss man dem Skript beim Aufruf nicht noch einen Parameter mitgeben in dem steht was das Skript machen soll (dieser Parameter landet dann in "$1")? Wenn man nichts oder was falsches angibt, dann landet man unten beim 'exit'

Code: Alles auswählen

  *) exit $NA
Also entweder

Code: Alles auswählen

$ 16-asus-xonar-u1.sh hibernate
oder

Code: Alles auswählen

$ 16-asus-xonar-u1.sh thaw

Re: Asus Xonar U1

Verfasst: Samstag 8. November 2025, 17:17
von Allfred
"...damit bin ich eigentlich raus"
Ich war nie drin. :)
Nee, im Ernst. Ich kann sowas wirklich nur rudimentär lesen und es hat mich auch gewundert.
Bei meiner Lösungssuche fand ich auf Github diese (hoffendliche) Lösung:
https://github.com/alexp-sssup/asus-xonar-u1-utils
Leider kenne ich mich mit Github nicht aus. Hilft Dir das irgendwie weiter?

Re: Asus Xonar U1

Verfasst: Samstag 8. November 2025, 19:36
von Siliziumfuchs
Mir kann das nichts helfen, ich habe diese Technik hier nicht. Aber über das Script '16-asus-xonar-u1.sh' aus dem Link reden wir doch gerade...

Re: Asus Xonar U1

Verfasst: Sonntag 16. November 2025, 19:32
von Allfred
Es geht weiter !!
Siliziumfuchs hat geschrieben: ich habe da noch einen aktuelleren fork gefunden: https://github.com/evd0kim/asus-xonar-u1-utils
vielleicht geht's damit besser
Ich habe es im Terminal versucht:

Code: Alles auswählen

[voll@voll-ga890gpaud3h ~]$ git clone https://github.com/nan0desu/asus-xonar-u1-utils.git ~/xonar/
Klone nach '/home/voll/xonar'...
remote: Enumerating objects: 183, done.
remote: Total 183 (delta 0), reused 0 (delta 0), pack-reused 183 (from 1)
Empfange Objekte: 100% (183/183), 50.56 KiB | 1.05 MiB/s, fertig.
Löse Unterschiede auf: 100% (98/98), fertig.
[voll@voll-ga890gpaud3h ~]$ cd ~/xonar/
[voll@voll-ga890gpaud3h xonar]$ make
rm -rf *.o
rm -f xonard
rm -f xonarctl
gcc -Wall   -o xonard xonard.c
xonard.c: In Funktion »main«:
xonard.c:403:38: Warnung: Ausgabe der »%s«-Direktive könnte abgeschnitten sein, beim Schreiben von bis zu 255 Bytes in eine Region der Größe 250 [-Wformat-truncation=]
  403 |     snprintf(logMessage, 256, "NAME: %s", nameBuffer);
      |                                      ^~   ~~~~~~~~~~
xonard.c:403:5: Anmerkung: »snprintf« hat zwischen 7 und 262 Bytes in das Ziel der Größe 256 ausgegeben
  403 |     snprintf(logMessage, 256, "NAME: %s", nameBuffer);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -Wall  -o xonarctl xonarctl.c
[voll@voll-ga890gpaud3h xonar]$ sudo make install
[sudo] Passwort für voll: 
rm -rf /etc/udev/rules.d/16-asus-xonar-u1.rules
rm -rf /etc/pm/sleep.d/16-asus-xonar-u1.sh
killall -q xonard | true
rm -rf /usr/local/bin/xonard
rm -rf /usr/local/bin/xonarctl
cp -a 16-asus-xonar-u1.rules /etc/udev/rules.d/
cp -a 16-asus-xonar-u1.sh /etc/pm/sleep.d/
cp: reguläre Datei '/etc/pm/sleep.d/' kann nicht angelegt werden: Datei oder Verzeichnis nicht gefunden
make: *** [Makefile:28: install] Fehler 1
Ich habe gerade nachgeschaut, in etc gibt es keinen Ordner pm.
Siliziumfuchs hat geschrieben:eine Suche im Web sagt: powermanagement
Gibt es aber offenbar nicht mehr, weil's jetzt eine Aufgabe von systemd ist (also das Powermanagement)
Fällt jemanden im Forum Abhilfe dazu was ein?

Re: Asus Xonar U1

Verfasst: Sonntag 16. November 2025, 21:44
von gosia
Hallo Allfred,
nun ja, die Skripte in dem Link sind ja immer noch 13 Jahre alt, insofern hat sich schon vieles geändert. Ein weiteres Problem ist, dass nur diejenigen testen können, die auch so ein Gerät benutzen.
Deshalb unter ganz grossem Vorbehalt: Ich habe einfach erstmal ein Verzeichnis /etc/pm/sleep.d/ angelegt, damit der make install Vorgang fehlerfrei durchläuft. Dass Skripte /etc/pm/sleep.d/ mit systemd nicht mehr berücksichtigt werden kann man erstmal vernachlässigen, weil diese ja "nur" für den Schlaf-Modus (suspend) Bedeutung haben. Wichtiger ist, ob das Skript xonarctl in /usr/local/bin/ überhaupt funktioniert. Wenn ich es aufrufe

Code: Alles auswählen

xonarctl
kommt zumindest mal die Hilfeseite mit den möglichen Optionen:

Code: Alles auswählen

Usage: xonarctl [options]
OPTIONS:
  -h, --help			Print this message.
  -b, --blue			Set color to blue.
  -r, --red			Set color to red.
  -p, --purple			Set color to purple.
      --blue-red		Set blinking blue to red.
      --red-blue		Set blinking from red to blue.
      --purple-blue		Set color from purple to blue.
      --purple-red		Set color from purple to red.
      --disable			Disable the LEDs.
  -s, --still			Make the LED still.
  -a, --audio			Make the red LED react to audio.
  -v, --volume			Make the red LED behaviour volume dependent.
  -d, --duty-cycle <value>	Specify time spent on vs time spent off in %.
      --period <value>	Specify time spent off vs time spent on in ms (max 255).
Da kann ich mangels Gerät nichts machen, aber Du könntest schon mal etwas davon probieren, z.B. --blue oder --red, ob da eine entsprechende Reaktion erfolgt. Wenn da nichts passiert spielt IMHO der Rest auch keine Rolle mehr. Wenn aber doch, dann kannst Du probieren, die Datei 16-asus-xonar-u1.sh von Hand ins für systemd-relevante Verzeichnis /usr/lib/systemd/system-sleep/ zu kopieren.
Aber ich bin sehr skeptisch und empfehle auf jeden Fall vorher ein Backup zu machen, damit Du wieder zurück kannst.

viele Grüsse gosia

Re: Asus Xonar U1

Verfasst: Montag 17. November 2025, 07:42
von Allfred
Läuft! 8)
Seit Win7 eingestampft wurde weinte ich diesem Teil nach. :'(
Jetzt nacht es wieder Spass.
Wie sich das mit dem Schlafmodus macht, weiß ich noch nicht, werde aber berichten.

Nachtrag: Standby funktioniert, die Xonar U1 bleibt ohne Eingriffe nach dem Standby aktiv.
Problem gelöst !
Danke an alle Helfenden.