Das gibt's doch gar nicht, sogar bei Mickeysoft reicht es, wenn man sich eine Verknüpfung ins Autostart-Verzeichnis kopiert.
Dann muß es doch mit Linux auch funktionieren!
Das gibt's doch gar nicht, sogar bei Mickeysoft reicht es, wenn man sich eine Verknüpfung ins Autostart-Verzeichnis kopiert.
Dann muß es doch mit Linux auch funktionieren!
Ich würde einfach mal die Exec-Zeile von Martin28 in die vorhandene *.desktop-Datei von #54 "einpflanzen" und sehen was passiert.
Code[Desktop Entry] Type=Application Name=LXInput Autostart Comment=Tastatur und Maus mit den Einstellungen in LXInput einrichten NoDisplay=true Exec=sh -c 'xset m 20/10 10 r rate 500 33 b on; for id in $(xinput list | grep pointer | grep slave | cut -f 2 | cut -d = -f 2 ) ; do xinput --set-prop $id "libinput Accel Speed" 0.000000 2> /dev/null ; done; xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Tapping Enabled" 1' NotShowIn=GNOME;KDE;XFCE;
Habe ich gerade versucht, da tut sich aber leider nichts.
Deshalb hatte ich ja schon vermutet, daß das gar nicht das richtige Autostartverzeichnis ist.
Vielen Dank RTFM,
dann meinst du, das ist ein reines Berechtigungsproblem?
Und tatsächlich, der Besitzer der .desktop Datei war root, und nicht user, da hatte ich wohl beim erstellen nicht aufgepaßt.
Habe die .desktop Datei nochmal neu als User erstellt, das Problem leider unverändert.
Mir kommt es so vor, daß die Datei gar nicht geladen, bzw. ausgeführt wird, die Datei selbst funktioniert ja.
Ist das überhaupt das richtige Autostartverzeichnis?
xinitrc ist dann nochmal eine weitere Möglichkeit?
Wie ich gelesen habe, ist die standardmaäßig nich im Userverzeichnis vorhanden, stattdessen gilt die globale xinit unter /etc/X11/xinit/xinitrc.
Vielen Dank Martin28 ,
Die Datei habe ich erstellt, und diese läßt sich auch mit Doppelklick erfolgreich ausführen.
Leider wird diese aber auch nicht automatisch gestartet.
Der liegt bei mir unter dem selben Pfad (bei mir eben user statt pi).
Ich habe das Raspi-OS Desktop aber auf einer solchen Liste entdeckt, da ich auf der Suche nach einem brauchbaren 32-bit OS war.
Raspi-OS für den Raspi kannte ich ja schon, bei den aktuellen PCs bin ich mit Suse unterwegs.
Ich finde das Raspi-OS Desktop speziell für alte, leistungsschwache Hardware außerordentlich geeignet, es läuft auf meinem Netbook richtig flüssig, und bis auf mein kleines Problem mit dem Touchpad funktioniert alles 1A. Hardwaremäßig sind ja die echten Raspis ein Witz, man wundert sich immer wieder wie gut die als Medienplayer laufen, somit hat das OS schon die allerbesten Voraussetzungen.
Es bringt im Vergleich zu reinem Debian eine sehr gute Hardwareunterstützung, und auch eine gute Auswahl an Software mit.
Andere 32-bit Distros habe ich mir schon angesehen, die sind halt schon sehr rudimentär...
Und bei Lubuntu ist 32-bit leider Geschichte, ich finde das Raspi-OS ist ein würdiger Nachfolger.
Kannst du mir das bitte etwas genauer beschreiben, wäre ja eine gute Lösung, wenn das funktioniert.
Nein, die war schon drin, also wurde wahrscheinlich automatisch bei der Installation erzeugt.
Du könntest z.B. die /etc/xdg/lxsession/LXDE-pi/autostart editieren oder diese nach ~/.config/lxsession/LXDE-pi/autostart kopieren. Es kann natürlich sein, dass die Verzeichnisse bei Dir LXDE-user statt LXDE-pi heißen.
In diese Datei hängst Du dann am Ende die Zeile
an.
Eine zweite Variante wäre eine *.desktop-Datei zu verwenden.
Welche Datei meinst du mit "~/.config/lxsession/LXDE-pi/autostart"?
Unter "/home/user/.config/autostart" gibt es eine LXInput Autostart Datei, ist das die sog. Desktop-Datei? Hier der Inhalt, da werden Maus und Tastatur eingerichtet:
[Desktop Entry]
Type=Application
Name=LXInput Autostart
Comment=Tastatur und Maus mit den Einstellungen in LXInput einrichten
NoDisplay=true
Exec=sh -c 'xset m 20/10 10 r rate 500 33 b on; for id in $(xinput list | grep pointer | grep slave | cut -f 2 | cut -d = -f 2 ) ; do xinput --set-prop $id "libinput Accel Speed" 0.000000 2> /dev/null ; done'
NotShowIn=GNOME;KDE;XFCE;
Vielleicht kann man hier den Befehl unterbringen?
Die "/etc/xdg/lxsession/LXDE-pi/autostart" habe ich auch schon um den Eintrag "@/home/user/bin/touchpad.sh" ergänzt, das ganze dann nochmal als "/etc/xdg/lxsession/LXDE-user/autostart", und ebenfalls in der "/etc/xdg/lxsession/LXDE/autostart"
Alles anzeigenHallo @omegator,
Warum mein Vorschlag nicht funktioniert hat, weiß ich nicht, hatte das hier so ausprobiert mit den Parametern für mein Touchpad.
Nur noch mal für mein Verständnis: mit deinem Script mit dem einzigen Befehl xinput set-prop "Touchpad_Device_Name" "libinput Tapping Enabled" 1 schaltest du ja nur das "Tippen zum Klicken" ein? Kenne ja deine Hardware nicht und ich habe auch nicht dein Betriebssystem hier am laufen.
Was ich aber auch etwas sonderbar finde, heißt den Tochpad wirklich "Touchpad_Device_Name" ?? Was sagt bei dir grep -i 'using input' /var/log/Xorg.0.log und xinput list
Wenn du einen anderen Weg versuchen möchtest:
Gibt es für deinem Desktop nicht ein Einstellungsmenü für "Tippen zum Klicken? Ich erwende hier LXQT und da geht die Einstellung übers Menü --> Einstellungen --> Systemeinstellungen --> Konfigurationszentrum --> Tastatur und Maus --> Touchpad
Sonst hat @hyle ja Vorschläge für Alternativen gemacht.
Möglich wäre vielleicht auch eine Config-Datei z.b. /etc/X11/xorg.conf.d/30-touchpad.conf. Beispiel siehe hier: https://gist.github.com/fd0/d667c8b53620f44d862f und man xorg.conf, hab ich aber jetzt nicht getestet und ist vielleicht zu kompliziert.
Gruß Martin
Hallo,
das Touchpad heißt "SynPS/2 Synaptics TouchPad", das steht in meinem Script auch so drin.
Hatte hier nur zu Beginn den Befehl reinkopiert, und nicht den Inhalt aus dem Script.
Im LXDE ist die Einstellung im Menü leider nicht vorhanden.
Zuvor lief auf dem Netbook Open Suse, da hat alles ohne Probleme funktioniert.
Leider gibt es da für 32-bit nur noch Tumbleweed, so bin ich zum Raspi-OS gekomme, das ich ja schon von meinen (echten) Raspis kenne.
Ist eigentlich eine schöne schlanke Sache, und damit kann ich die alte Kiste noch eine Weile weiterlaufen lassen!
Die Lösung mit der /etc/X11/xorg.conf.d/30-touchpad.conf hatte ich zu Beginn versucht, da sind mehrere Beiträge im Netz zu finden. Hat leider gar nicht funktioniert, und die Beiträge sind z.T. auch sehr alt.
Ansonsten muß ich leider sagen, die verschiedenen Ansätze mit systemd funktionieren immer nur sporadisch, und leider nicht dauerhaft.
An dieser Stelle trotzdem erstmal vielen Dank an alle die sich hier mächtig reingekniet haben, besonders rpi444!!!
Beschreibe mal bitte etwas genauer, welchen Lösungsansatz du mit der zeiten Alternative meinst.
Alles anzeigenHallo @omegator,
ich habs so getestet als systemd --user Dienst:
Service-Datei erstellen mit nano ~/.local/share/systemd/user/touchp.service
mit folgendem Inhalt:
Code Alles anzeigen[Unit] Description=Enable Touchpad After=display-manager.service [Service] ExecStart=/usr/bin/xinput set-prop 13 303 1 Restart=on-failure RestartSec=1 [Install] WantedBy=default.target
Die set-prop Parameter mußt du deinen Parametern anpassen.
Dann den Service enablen: systemctl --user enable touchp.service und neu booten.
mit journalctl --user -eu touchp kann man prüfen, was da gelaufen ist.
sieht bei meinem Test so aus:
CodeDez 03 12:04:50 p-k systemd[534]: Started Enable Touchpad. Dez 03 12:04:50 p-k systemd[534]: touchp.service: Main process exited, code=exited, status=1/FAILURE Dez 03 12:04:50 p-k systemd[534]: touchp.service: Failed with result 'exit-code'. Dez 03 12:04:51 p-k systemd[534]: touchp.service: Scheduled restart job, restart counter is at 1. Dez 03 12:04:51 p-k systemd[534]: Stopped Enable Touchpad. Dez 03 12:04:51 p-k systemd[534]: Started Enable Touchpad.
Gruß Martin
Habe jetzt mal diese Lösung probiert, funktioniert leider auch nur einmal.
Nach einem Neustart ist sie wieder weg.
Keine Ahnung was das für ein Mist ist, vielleicht ist die systemd wirklich der falsche Ansatz...
Gibt es vielleicht Alternativen?
So, jetzt geht' weiter ich mußte vorhin leider unterbrechen.
Ich habe zuletzt die ersten beiden Befehle aus #33 ausgeführt.
Anschließend die Service-Unit manuell gestartet, was auch funktioniert hat.
Anbei jetzt die Ausgabe von dmesg I tail -n 20
Werde jetzt die [Unit] Section ergänzen
root@raspberry:/home/user# dmesg | tail -n 20
[ 21.016731] audit: type=1400 audit(1670055489.608:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=478 comm="apparmor_parser"
[ 22.372963] 8021q: 802.1Q VLAN Support v1.8
[ 22.630249] Adding 102396k swap on /var/swap. Priority:-3 extents:1 across:102396k SSFS
[ 23.022823] input: Speakup as /devices/virtual/input/input14
[ 23.023377] initialized device: /dev/synth, node (MAJOR 10, MINOR 61)
[ 23.037083] speakup 3.1.6: initialized
[ 23.037093] synth name on entry is: soft
[ 23.045753] synth probe
[ 23.054237] initialized device: /dev/softsynth, node (MAJOR 10, MINOR 60)
[ 23.054246] initialized device: /dev/softsynthu, node (MAJOR 10, MINOR 59)
[ 28.134628] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.wlan0.retrans_time - use net.ipv6.neigh.wlan0.retrans_time_ms instead
[ 29.117419] snd_hda_intel 0000:00:1b.0: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.
[ 65.857651] perf: interrupt took too long (2526 > 2500), lowering kernel.perf_event_max_sample_rate to 79000
[ 98.298262] perf: interrupt took too long (3221 > 3157), lowering kernel.perf_event_max_sample_rate to 62000
[ 138.451858] perf: interrupt took too long (4066 > 4026), lowering kernel.perf_event_max_sample_rate to 49000
[ 195.004854] perf: interrupt took too long (5116 > 5082), lowering kernel.perf_event_max_sample_rate to 39000
[ 272.946776] perf: interrupt took too long (6420 > 6395), lowering kernel.perf_event_max_sample_rate to 31000
[ 388.206336] perf: interrupt took too long (8034 > 8025), lowering kernel.perf_event_max_sample_rate to 24750
[ 609.295041] perf: interrupt took too long (10075 > 10042), lowering kernel.perf_event_max_sample_rate to 19750
[ 1303.234042] perf: interrupt took too long (12596 > 12593), lowering kernel.perf_event_max_sample_rate to 15750
root@raspberry:/home/user#
Alles anzeigen
Nach dem Restart, das Tochpad funktioniert dann auch:
root@raspberry:/home/user# systemctl restart touchp.service
root@raspberry:/home/user# dmesg | tail -n 20
[ 21.016731] audit: type=1400 audit(1670055489.608:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=478 comm="apparmor_parser"
[ 22.372963] 8021q: 802.1Q VLAN Support v1.8
[ 22.630249] Adding 102396k swap on /var/swap. Priority:-3 extents:1 across:102396k SSFS
[ 23.022823] input: Speakup as /devices/virtual/input/input14
[ 23.023377] initialized device: /dev/synth, node (MAJOR 10, MINOR 61)
[ 23.037083] speakup 3.1.6: initialized
[ 23.037093] synth name on entry is: soft
[ 23.045753] synth probe
[ 23.054237] initialized device: /dev/softsynth, node (MAJOR 10, MINOR 60)
[ 23.054246] initialized device: /dev/softsynthu, node (MAJOR 10, MINOR 59)
[ 28.134628] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.wlan0.retrans_time - use net.ipv6.neigh.wlan0.retrans_time_ms instead
[ 29.117419] snd_hda_intel 0000:00:1b.0: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.
[ 65.857651] perf: interrupt took too long (2526 > 2500), lowering kernel.perf_event_max_sample_rate to 79000
[ 98.298262] perf: interrupt took too long (3221 > 3157), lowering kernel.perf_event_max_sample_rate to 62000
[ 138.451858] perf: interrupt took too long (4066 > 4026), lowering kernel.perf_event_max_sample_rate to 49000
[ 195.004854] perf: interrupt took too long (5116 > 5082), lowering kernel.perf_event_max_sample_rate to 39000
[ 272.946776] perf: interrupt took too long (6420 > 6395), lowering kernel.perf_event_max_sample_rate to 31000
[ 388.206336] perf: interrupt took too long (8034 > 8025), lowering kernel.perf_event_max_sample_rate to 24750
[ 609.295041] perf: interrupt took too long (10075 > 10042), lowering kernel.perf_event_max_sample_rate to 19750
[ 1303.234042] perf: interrupt took too long (12596 > 12593), lowering kernel.perf_event_max_sample_rate to 15750
root@raspberry:/home/user#
Alles anzeigen
Das ergibt dann:
root@raspberry:/home/user# systemctl status touchp
● touchp.service - Enable Touchpad
Loaded: loaded (/etc/systemd/system/touchp.service; enabled; vendor preset>
Active: failed (Result: exit-code) since Sat 2022-12-03 09:18:15 CET; 2h 2>
Process: 960 ExecStart=/bin/bash /home/user/bin/touchpad.sh (code=exited, s>
Main PID: 960 (code=exited, status=1/FAILURE)
CPU: 25ms
Dez 03 09:18:14 raspberry systemd[1]: Starting Enable Touchpad...
Dez 03 09:18:15 raspberry bash[961]: Invalid MIT-MAGIC-COOKIE-1 keyUnable to co>
Dez 03 09:18:15 raspberry systemd[1]: touchp.service: Main process exited, code>
Dez 03 09:18:15 raspberry systemd[1]: touchp.service: Failed with result 'exit->
Dez 03 09:18:15 raspberry systemd[1]: Failed to start Enable Touchpad.
Alles anzeigen
und
Alles anzeigenGuten Morgen,
bei Systemd fehlt wohl eine saubere Abhängigkeit, um festzustellen, wann ein X-Server läuft, also soetwas wie After=(X-Server läuft) und Requires=(X-Server läuft) kann man wohl nicht machen. Eine Lösung wäre m.M.n. z.B mit
Restart=on-failure
RestartSec=2
.
Dann läuft der Service in einer Fehler-Restart-Schleife, bis der X-Server da ist.
Glaube auch, daß Systemd hier das falsche Werkzeug ist, um dieses Problem zu lösen,
Gruß Martin
Vielen Dank, und wo könnte man das unterbringen?
Genau, ich habe einen erneuten Neustart gemacht, und danach hat es nicht mehr funktioniert.
Habe danach mehrmals neu gestartet um zu testen, ob es vielleicht sporadisch doch wieder funktioniert, leider aber nein.
Ich habe die zusätzlichen Zeilen am am unteren Ende der [Service]-Section eingefügt, das war schon richtig?
Und "DISPLAY=:0" im Script entfernt.
Es hat dann, nachdem ich den "enable Befehl" ausgeführt habe, einmal nach dem Neustart funktioniert, danach nicht mehr.
Anscheinend vergisst das System die Service-Unit wieder.
Wie kann ich denn die [Unit]-Section noch optimieren, und wie funktioniert das mit einer timer-unit?
Ich bin da leider ein wenig auf Unterstützung angewiesen.
Hallo rpi444, hallo hyle,
vielen Dank für die Tips, die Geschichte scheint nun zu funktionieren, leider aber nicht immer, ich bilde mir ein, wenn ich das Touchpad zu früh teste, ist irgend etwas noch nicht gestartet, wovon wiederum meine Service-Unit abhängig ist.
In diesem Fall funktioniert es danach nicht, auch wenn ich länger warte, erst dann nach einem Neustart und kurzer Wartezeit wieder.
Gibt es eine Möglichkeit, daß mein Script gleichzeitig eine Meldung ausgibt, oder ein Konsolenfenster öffnet?
Nur um zu sehen, wann aktiviert wird.
Vielen Dank, das hat schon mal funktioniert!
root@raspberry:/home/user# systemctl start touchp.service
root@raspberry:/home/user# systemctl status touchp.service
● touchp.service - Enable Touchpad
Loaded: loaded (/etc/systemd/system/touchp.service; enabled; vendor preset>
Active: inactive (dead) since Fri 2022-12-02 20:00:54 CET; 3s ago
Process: 1888 ExecStart=/bin/bash /home/user/bin/touchpad.sh (code=exited, >
Main PID: 1888 (code=exited, status=0/SUCCESS)
CPU: 25ms
Dez 02 20:00:54 raspberry systemd[1]: Started Enable Touchpad.
Dez 02 20:00:54 raspberry systemd[1]: touchp.service: Succeeded.
Alles anzeigen
Jetzt muß ich noch testen, ob die Service-Unit auch selbst startet.
Edit, die Service-Unit startet nicht von selbst, auch nicht nach längerer Wartezeit.
Hier die Ausgabe:
root@raspberry:/home/user# systemctl status touchp --full --no-pager
● touchp.service - Enable Touchpad
Loaded: loaded (/etc/systemd/system/touchp.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2022-12-02 14:58:31 CET; 1h 8min ago
Process: 1917 ExecStart=/bin/bash /home/user/bin/touchpad.sh (code=exited, status=1/FAILURE)
Main PID: 1917 (code=exited, status=1/FAILURE)
CPU: 22ms
Dez 02 14:58:31 raspberry systemd[1]: Started Enable Touchpad.
Dez 02 14:58:31 raspberry bash[1918]: Unable to connect to X server
Dez 02 14:58:31 raspberry systemd[1]: touchp.service: Main process exited, code=exited, status=1/FAILURE
Dez 02 14:58:31 raspberry systemd[1]: touchp.service: Failed with result 'exit-code'.
Alles anzeigen
Nein, wahrscheinlich nicht. Du kannst ja schauen:
Ich würde die service-unit trotzdem nicht als touch benennen, wenn es keinen Bezug zu /usr/bin/touch gibt (so wie das z. B. bei ssh der Fall ist).
BTW: Dein Script hat eine sh-shebang und ausführen willst Du es mit der bash. OK, kann man machen, aber ...
Startet deine service-unit dein Script, wenn Du die deaktivierte service-unit 30 Sekunden nach dem booten _manuell_ ausführst? Wenn ja und das für dich OK ist, kannst Du die deaktivierte service-unit, auch mit einer timer-unit starten.
Hebe jetz mal "touch" in"touchp" umbenannt.
Im Script habe ich
in
umbenannt.
Leider ändert sich gar nichts, auch nach einem Neustart nicht.