Leider scheint es Probleme mit den aktuellen Treibern zu geben.
ich habe gestern versucht mein System zu aktualisieren.
Nach der Aktualisierung mit den Treibern nach Version 250816.183236 und den folgenden, blockiert der Sundtek-Treiber den Start / Neustart und das Herunterfahren.
Das gilt sowohl mit und ohne dem DVB-S/S2 Stick am Rechner, der Computer friert förmlich ein, ohne Fehlermeldung.
Ich habe durch ein downgradet auf Version 250816.183236 vorerst mein Problem behoben, wollte es jedoch an den Support weitergeben.
Zu meinem System:
Frisch aufgesetzt mit Linux Mint 22.3, Kernel 6.17.0.19-generic.
- Tvheadend 4.3-2374~g26ec161fb.
- Kodi 21.3 (21.3.0), Tvheadend HTSP Client Version 21.2.6
SkyTV Ultimate 6 2016/Q1 DVB-S/S2
So nebenbei:
Gibt es eine aktuelle Anleitung für die REMOTE-CONTROL (Fernsteuerung V3) und den aktuellen Linux Mint Versionen 22, sowie KODI 21.3
Leider funktionieren die aktuellen Anleitungen nicht mehr.
Ein Weg über ir-keytable würde alles sehr erleichtern, die IR Schnittstelle des Stick wird jedoch nicht erkannt. Somit ist der einfache Weg verschlossen, selbst wenn man mit getinput.sh den event ermittelt hat.
Ich hatte in meinem Fall bisher eine kleine Python programmiert, womit ich mein System zurechtgebogen hatte, das funktioniert leider nicht mehr, da der Stick nicht als IR Device erkannt wird, mit einem Trekstor DVB-T Stick Terres 2.0 oder internen ITE8708 CIR transceiver funktioniert es noch.
ir-control.py
#! python3
# sudo pip install pyautogui --break-system-packages
# sudo pip install evdev --break-system-packages
import evdev
import time
import struct
import pyautogui
import sys
import subprocess
# KEYBOARD_KEYS
# The following are the valid strings to pass to the press(), keyDown(), keyUp(), and hotkey() functions:
# ['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',
# ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7',
# '8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`',
# 'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
# 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
# 'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace',
# 'browserback', 'browserfavorites', 'browserforward', 'browserhome',
# 'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear',
# 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete',
# 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
# 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20',
# 'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9',
# 'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja',
# 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail',
# 'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
# 'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6',
# 'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn',
# 'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn',
# 'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator',
# 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
# 'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen',
# 'command', 'option', 'optionleft', 'optionright'
#
https://docs.python.org/3/library/struct.html#format-charactersFORMAT = 'llHHI'
EVENT_SIZE = struct.calcsize(FORMAT)
EV_KEY = 0x01
code = 0
KEY_UP = 0
KEY_DOWN = 1
KEY_AUTO = 2
# IR_Device = "ITE8708 CIR transceiver"
IR_Device = "Sundtek Remote Control"
# IR_Device = "Trekstor DVB-T Stick Terres 2.0"
def get_ir_device():
devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
for device in devices:
if (device.name == IR_Device):
print("Using device", device.path, "\n")
return device
print("No device found!")
sys.exit()
dev = get_ir_device()
with open(dev, 'rb') as infile:
# with open('/dev/input/event6', 'rb') as infile:
state = 0
while True:
event = infile.read(EVENT_SIZE)
(tv_sec, tv_usec, typ, code, value) = struct.unpack(FORMAT, event)
if 0 == state:
if EV_KEY == typ and KEY_DOWN == value:
#print('You pressed a button'),code
if code == 2:
pyautogui.hotkey('1')
if code == 3:
pyautogui.hotkey('2')
if code == 4:
pyautogui.hotkey('3')
if code == 5:
pyautogui.hotkey('4')
if code == 6:
pyautogui.hotkey('5')
if code == 7:
pyautogui.hotkey('6')
if code == 8:
pyautogui.hotkey('7')
if code == 9:
pyautogui.hotkey('8')
if code == 10:
pyautogui.hotkey('9')
if code == 11:
pyautogui.hotkey('0')
if code == 103:
pyautogui.hotkey('up')
if code == 108:
pyautogui.hotkey('down')
if code == 106:
pyautogui.hotkey('right')
if code == 105:
pyautogui.hotkey('left')
if code == 28:
pyautogui.hotkey('enter')
if code == 14:
pyautogui.hotkey('BACKSPACE')
if code == 116:
subprocess.call(['/home/ssh-shutdown/tasm_off.sh'], shell=False)
#time.sleep(20) #delay for 20 seconds
subprocess.call(['shutdown', '-h', 'now'], shell=False)
if code == 68:
pyautogui.hotkey('f10')
if code == 18:
pyautogui.hotkey('e')
if code == 66:
pyautogui.hotkey('F8')
if code == 67:
pyautogui.hotkey('F9')
if code == 170:
pyautogui.hotkey('ISO')
if code == 439:
pyautogui.hotkey('MEDIA_REPEAT')
if code == 20:
pyautogui.hotkey('t')
if code == 49:
pyautogui.hotkey('n')
if code == 17:
pyautogui.hotkey('w')
if code == 166:
pyautogui.hotkey('i')
if code == 23:
pyautogui.hotkey('i')
if code == 50:
pyautogui.hotkey('m')
if code == 1:
pyautogui.hotkey('esc')
if code == 192:
pyautogui.hotkey('PAGEUP')
if code == 104:
pyautogui.hotkey('PAGEUP')
if code == 193:
pyautogui.hotkey('PAGEDOWN')
if code == 109:
pyautogui.hotkey('PAGEDOWN')
if code == 34:
pyautogui.hotkey('g')
if code == 19:
pyautogui.hotkey('r')
if code == 33:
pyautogui.hotkey('f')
if code == 32:
pyautogui.hotkey('d')
if code == 22:
pyautogui.hotkey('u')
if code == 57:
pyautogui.hotkey(' ')
if code == 21:
pyautogui.hotkey('y')
if code == 62:
pyautogui.hotkey('1')
if code == 161:
subprocess.call(['eject'], shell=False)
if code == 439:
pyautogui.hotkey('d')
if code == 30:
pyautogui.hotkey('b')
if code == 386:
pyautogui.hotkey('h')
if code == 48:
pyautogui.hotkey('b')
if code == 37:
pyautogui.hotkey('k')
if code == 167:
pyautogui.hotkey('RECORD')
if code == 45:
pyautogui.hotkey('x')
if code == 44:
pyautogui.hotkey('z')
if code == 370:
pyautogui.hotkey('v')
if code == 47:
pyautogui.hotkey('v')
if code == 203:
pyautogui.hotkey('PROG4')
if code == 202:
pyautogui.hotkey('PROG3')
if code == 149:
pyautogui.hotkey('PROG2')
if code == 182:
pyautogui.hotkey('h')
if code == 46:
pyautogui.hotkey('c')
if code == 41:
pyautogui.hotkey('F7')
if code == 65:
pyautogui.hotkey('F7')
if code == 111:
pyautogui.hotkey('DELETE')
if code == 88:
pyautogui.hotkey('F12')
if code == 64:
pyautogui.hotkey('F6')
if code == 63:
pyautogui.hotkey('F5')
if code == 24:
pyautogui.hotkey('o')
if code == 125:
pyautogui.hotkey('KEY_LEFTMETA')
# pyautogui.hotkey('ctrl','v')
state = 1
elif 1 == state:
if EV_KEY == typ and KEY_UP == value:
# print('You released a button'),code
state = 0
Gibt es dazu eine Lösung ?