Leserartikel HTPC How-To (Linux XBMC + LiveTV Intel ink HD Beschl.)

ich finde allerdings auch irgendwie keinen Fehler.

Du kannst ja mal meine lircmap/keymap aus dem Anhang testen. Als Fernbedienung nutze ich ne harmony ultimate und als Gerät nehme ich dort MCE Remote

Anhang anzeigen remote.zip
 
habs jetzt mal so versucht:
Lircmap:
Code:
<lircmap>
<remote device="devinput">
<f12>KEY_NUMERIC_STAR</f12>
</remote>
</lircmap>
Keyboard.xml:
Code:
<keymap>
  <global>
    <remote>
      <f12>XBMC.ShutDown()</f12>
    </remote>
  </global>
</keymap>
log:
Code:
07:39:13 T:139870078166912  NOTICE: No Joystick name specified, loading default map
07:39:13 T:139870078166912  NOTICE: Previous line repeats 35 times.
07:39:13 T:139870078166912   ERROR: Remote Translator: Can't find button f12
(hat denn die zweite linie im log was damit zu tun?
Gruß
Ergänzung ()

Nafi schrieb:
ich finde allerdings auch irgendwie keinen Fehler.

Du kannst ja mal meine lircmap/keymap aus dem Anhang testen. Als Fernbedienung nutze ich ne harmony ultimate und als Gerät nehme ich dort MCE Remote

Anhang anzeigen 421735
unverändert. habe in der lircmap nur KEY_NUMERIC_STAR von "star" auf "f12" umgeändert und dann schon den Fehler im log.
 
Nach langem überlegen hab ich nun den Fehler gefunden.
das liegt daran, dass es keinen xbmc Button namens f12 gibt. Wenn du die Fernbedienung allerdings als MCE Keyboard konfigurierst, müsste es dort auch f12 geben.

Hier eine Liste mit verfügbaren Buttons. Jeweils in strButton.Equals("XXXXXXX") ist der Buttonname. Nur diese Strings darfst du in der lircmap verwenden. Möchtest du nun auf die Star taste f12 legen(warum auch immer), musst du dies in der keymap machen. nicht in der lircmap!
if (strButton.Equals("left")) buttonCode = XINPUT_IR_REMOTE_LEFT;
else if (strButton.Equals("right")) buttonCode = XINPUT_IR_REMOTE_RIGHT;
else if (strButton.Equals("up")) buttonCode = XINPUT_IR_REMOTE_UP;
else if (strButton.Equals("down")) buttonCode = XINPUT_IR_REMOTE_DOWN;
else if (strButton.Equals("select")) buttonCode = XINPUT_IR_REMOTE_SELECT;
else if (strButton.Equals("back")) buttonCode = XINPUT_IR_REMOTE_BACK;
else if (strButton.Equals("menu")) buttonCode = XINPUT_IR_REMOTE_MENU;
else if (strButton.Equals("info")) buttonCode = XINPUT_IR_REMOTE_INFO;
else if (strButton.Equals("display")) buttonCode = XINPUT_IR_REMOTE_DISPLAY;
else if (strButton.Equals("title")) buttonCode = XINPUT_IR_REMOTE_TITLE;
else if (strButton.Equals("play")) buttonCode = XINPUT_IR_REMOTE_PLAY;
else if (strButton.Equals("pause")) buttonCode = XINPUT_IR_REMOTE_PAUSE;
else if (strButton.Equals("reverse")) buttonCode = XINPUT_IR_REMOTE_REVERSE;
else if (strButton.Equals("forward")) buttonCode = XINPUT_IR_REMOTE_FORWARD;
else if (strButton.Equals("skipplus")) buttonCode = XINPUT_IR_REMOTE_SKIP_PLUS;
else if (strButton.Equals("skipminus")) buttonCode = XINPUT_IR_REMOTE_SKIP_MINUS;
else if (strButton.Equals("stop")) buttonCode = XINPUT_IR_REMOTE_STOP;
else if (strButton.Equals("zero")) buttonCode = XINPUT_IR_REMOTE_0;
else if (strButton.Equals("one")) buttonCode = XINPUT_IR_REMOTE_1;
else if (strButton.Equals("two")) buttonCode = XINPUT_IR_REMOTE_2;
else if (strButton.Equals("three")) buttonCode = XINPUT_IR_REMOTE_3;
else if (strButton.Equals("four")) buttonCode = XINPUT_IR_REMOTE_4;
else if (strButton.Equals("five")) buttonCode = XINPUT_IR_REMOTE_5;
else if (strButton.Equals("six")) buttonCode = XINPUT_IR_REMOTE_6;
else if (strButton.Equals("seven")) buttonCode = XINPUT_IR_REMOTE_7;
else if (strButton.Equals("eight")) buttonCode = XINPUT_IR_REMOTE_8;
else if (strButton.Equals("nine")) buttonCode = XINPUT_IR_REMOTE_9;
// additional keys from the media center extender for xbox remote
else if (strButton.Equals("power")) buttonCode = XINPUT_IR_REMOTE_POWER;
else if (strButton.Equals("mytv")) buttonCode = XINPUT_IR_REMOTE_MY_TV;
else if (strButton.Equals("mymusic")) buttonCode = XINPUT_IR_REMOTE_MY_MUSIC;
else if (strButton.Equals("mypictures")) buttonCode = XINPUT_IR_REMOTE_MY_PICTURES;
else if (strButton.Equals("myvideo")) buttonCode = XINPUT_IR_REMOTE_MY_VIDEOS;
else if (strButton.Equals("record")) buttonCode = XINPUT_IR_REMOTE_RECORD;
else if (strButton.Equals("start")) buttonCode = XINPUT_IR_REMOTE_START;
else if (strButton.Equals("volumeplus")) buttonCode = XINPUT_IR_REMOTE_VOLUME_PLUS;
else if (strButton.Equals("volumeminus")) buttonCode = XINPUT_IR_REMOTE_VOLUME_MINUS;
else if (strButton.Equals("channelplus")) buttonCode = XINPUT_IR_REMOTE_CHANNEL_PLUS;
else if (strButton.Equals("channelminus")) buttonCode = XINPUT_IR_REMOTE_CHANNEL_MINUS;
else if (strButton.Equals("pageplus")) buttonCode = XINPUT_IR_REMOTE_CHANNEL_PLUS;
else if (strButton.Equals("pageminus")) buttonCode = XINPUT_IR_REMOTE_CHANNEL_MINUS;
else if (strButton.Equals("mute")) buttonCode = XINPUT_IR_REMOTE_MUTE;
else if (strButton.Equals("recordedtv")) buttonCode = XINPUT_IR_REMOTE_RECORDED_TV;
else if (strButton.Equals("guide")) buttonCode = XINPUT_IR_REMOTE_GUIDE;
else if (strButton.Equals("livetv")) buttonCode = XINPUT_IR_REMOTE_LIVE_TV;
else if (strButton.Equals("liveradio")) buttonCode = XINPUT_IR_REMOTE_LIVE_RADIO;
else if (strButton.Equals("epgsearch")) buttonCode = XINPUT_IR_REMOTE_EPG_SEARCH;
else if (strButton.Equals("star")) buttonCode = XINPUT_IR_REMOTE_STAR;
else if (strButton.Equals("hash")) buttonCode = XINPUT_IR_REMOTE_HASH;
else if (strButton.Equals("clear")) buttonCode = XINPUT_IR_REMOTE_CLEAR;
else if (strButton.Equals("enter")) buttonCode = XINPUT_IR_REMOTE_ENTER;
else if (strButton.Equals("xbox")) buttonCode = XINPUT_IR_REMOTE_DISPLAY; // same as display
else if (strButton.Equals("playlist")) buttonCode = XINPUT_IR_REMOTE_PLAYLIST;
else if (strButton.Equals("guide")) buttonCode = XINPUT_IR_REMOTE_GUIDE;
else if (strButton.Equals("teletext")) buttonCode = XINPUT_IR_REMOTE_TELETEXT;
else if (strButton.Equals("red")) buttonCode = XINPUT_IR_REMOTE_RED;
else if (strButton.Equals("green")) buttonCode = XINPUT_IR_REMOTE_GREEN;
else if (strButton.Equals("yellow")) buttonCode = XINPUT_IR_REMOTE_YELLOW;
else if (strButton.Equals("blue")) buttonCode = XINPUT_IR_REMOTE_BLUE;
else if (strButton.Equals("subtitle")) buttonCode = XINPUT_IR_REMOTE_SUBTITLE;
else if (strButton.Equals("language")) buttonCode = XINPUT_IR_REMOTE_LANGUAGE;
else CLog::Log(LOGERROR, "Remote Translator: Can't find button %s", strButton.c_str());
return buttonCode;
}
 
Zuletzt bearbeitet:
mir ist eigtl. wurst wie die Taste heißt =)
Danke für den Tip, werds mal mit den verfügbaren Strings in der Lircmap versuchen!
 
Hat wer Erfahrung mit OpenElec und Dualboot? Ich überlege gerade nebenbei noch SteamOS zu betreiben.
Hätte ja schon was, gerade in Kombination mit In-House-Streaming :-).

Gruß

Ride
 
Nafi schrieb:
Nach langem überlegen hab ich nun den Fehler gefunden.
das liegt daran, dass es keinen xbmc Button namens f12 gibt. Wenn du die Fernbedienung allerdings als MCE Keyboard konfigurierst, müsste es dort auch f12 geben.

Hier eine Liste mit verfügbaren Buttons. Jeweils in strButton.Equals("XXXXXXX") ist der Buttonname. Nur diese Strings darfst du in der lircmap verwenden. Möchtest du nun auf die Star taste f12 legen(warum auch immer), musst du dies in der keymap machen. nicht in der lircmap!
if (strButton.Equals("left")) buttonCode = XINPUT_IR_REMOTE_LEFT;
else if (strButton.Equals("right")) buttonCode = XINPUT_IR_REMOTE_RIGHT;
else if (strButton.Equals("up")) buttonCode = XINPUT_IR_REMOTE_UP;
else if (strButton.Equals("down")) buttonCode = XINPUT_IR_REMOTE_DOWN;
else if (strButton.Equals("select")) buttonCode = XINPUT_IR_REMOTE_SELECT;
else if (strButton.Equals("back")) buttonCode = XINPUT_IR_REMOTE_BACK;
else if (strButton.Equals("menu")) buttonCode = XINPUT_IR_REMOTE_MENU;
else if (strButton.Equals("info")) buttonCode = XINPUT_IR_REMOTE_INFO;
else if (strButton.Equals("display")) buttonCode = XINPUT_IR_REMOTE_DISPLAY;
else if (strButton.Equals("title")) buttonCode = XINPUT_IR_REMOTE_TITLE;
else if (strButton.Equals("play")) buttonCode = XINPUT_IR_REMOTE_PLAY;
else if (strButton.Equals("pause")) buttonCode = XINPUT_IR_REMOTE_PAUSE;
else if (strButton.Equals("reverse")) buttonCode = XINPUT_IR_REMOTE_REVERSE;
else if (strButton.Equals("forward")) buttonCode = XINPUT_IR_REMOTE_FORWARD;
else if (strButton.Equals("skipplus")) buttonCode = XINPUT_IR_REMOTE_SKIP_PLUS;
else if (strButton.Equals("skipminus")) buttonCode = XINPUT_IR_REMOTE_SKIP_MINUS;
else if (strButton.Equals("stop")) buttonCode = XINPUT_IR_REMOTE_STOP;
else if (strButton.Equals("zero")) buttonCode = XINPUT_IR_REMOTE_0;
else if (strButton.Equals("one")) buttonCode = XINPUT_IR_REMOTE_1;
else if (strButton.Equals("two")) buttonCode = XINPUT_IR_REMOTE_2;
else if (strButton.Equals("three")) buttonCode = XINPUT_IR_REMOTE_3;
else if (strButton.Equals("four")) buttonCode = XINPUT_IR_REMOTE_4;
else if (strButton.Equals("five")) buttonCode = XINPUT_IR_REMOTE_5;
else if (strButton.Equals("six")) buttonCode = XINPUT_IR_REMOTE_6;
else if (strButton.Equals("seven")) buttonCode = XINPUT_IR_REMOTE_7;
else if (strButton.Equals("eight")) buttonCode = XINPUT_IR_REMOTE_8;
else if (strButton.Equals("nine")) buttonCode = XINPUT_IR_REMOTE_9;
// additional keys from the media center extender for xbox remote
else if (strButton.Equals("power")) buttonCode = XINPUT_IR_REMOTE_POWER;
else if (strButton.Equals("mytv")) buttonCode = XINPUT_IR_REMOTE_MY_TV;
else if (strButton.Equals("mymusic")) buttonCode = XINPUT_IR_REMOTE_MY_MUSIC;
else if (strButton.Equals("mypictures")) buttonCode = XINPUT_IR_REMOTE_MY_PICTURES;
else if (strButton.Equals("myvideo")) buttonCode = XINPUT_IR_REMOTE_MY_VIDEOS;
else if (strButton.Equals("record")) buttonCode = XINPUT_IR_REMOTE_RECORD;
else if (strButton.Equals("start")) buttonCode = XINPUT_IR_REMOTE_START;
else if (strButton.Equals("volumeplus")) buttonCode = XINPUT_IR_REMOTE_VOLUME_PLUS;
else if (strButton.Equals("volumeminus")) buttonCode = XINPUT_IR_REMOTE_VOLUME_MINUS;
else if (strButton.Equals("channelplus")) buttonCode = XINPUT_IR_REMOTE_CHANNEL_PLUS;
else if (strButton.Equals("channelminus")) buttonCode = XINPUT_IR_REMOTE_CHANNEL_MINUS;
else if (strButton.Equals("pageplus")) buttonCode = XINPUT_IR_REMOTE_CHANNEL_PLUS;
else if (strButton.Equals("pageminus")) buttonCode = XINPUT_IR_REMOTE_CHANNEL_MINUS;
else if (strButton.Equals("mute")) buttonCode = XINPUT_IR_REMOTE_MUTE;
else if (strButton.Equals("recordedtv")) buttonCode = XINPUT_IR_REMOTE_RECORDED_TV;
else if (strButton.Equals("guide")) buttonCode = XINPUT_IR_REMOTE_GUIDE;
else if (strButton.Equals("livetv")) buttonCode = XINPUT_IR_REMOTE_LIVE_TV;
else if (strButton.Equals("liveradio")) buttonCode = XINPUT_IR_REMOTE_LIVE_RADIO;
else if (strButton.Equals("epgsearch")) buttonCode = XINPUT_IR_REMOTE_EPG_SEARCH;
else if (strButton.Equals("star")) buttonCode = XINPUT_IR_REMOTE_STAR;
else if (strButton.Equals("hash")) buttonCode = XINPUT_IR_REMOTE_HASH;
else if (strButton.Equals("clear")) buttonCode = XINPUT_IR_REMOTE_CLEAR;
else if (strButton.Equals("enter")) buttonCode = XINPUT_IR_REMOTE_ENTER;
else if (strButton.Equals("xbox")) buttonCode = XINPUT_IR_REMOTE_DISPLAY; // same as display
else if (strButton.Equals("playlist")) buttonCode = XINPUT_IR_REMOTE_PLAYLIST;
else if (strButton.Equals("guide")) buttonCode = XINPUT_IR_REMOTE_GUIDE;
else if (strButton.Equals("teletext")) buttonCode = XINPUT_IR_REMOTE_TELETEXT;
else if (strButton.Equals("red")) buttonCode = XINPUT_IR_REMOTE_RED;
else if (strButton.Equals("green")) buttonCode = XINPUT_IR_REMOTE_GREEN;
else if (strButton.Equals("yellow")) buttonCode = XINPUT_IR_REMOTE_YELLOW;
else if (strButton.Equals("blue")) buttonCode = XINPUT_IR_REMOTE_BLUE;
else if (strButton.Equals("subtitle")) buttonCode = XINPUT_IR_REMOTE_SUBTITLE;
else if (strButton.Equals("language")) buttonCode = XINPUT_IR_REMOTE_LANGUAGE;
else CLog::Log(LOGERROR, "Remote Translator: Can't find button %s", strButton.c_str());
return buttonCode;
}
der tip war gold wert, funktioniert jetzt einwandfrei!
Gruß
 
Weis wer ob das eine gute Idee wäre als HTPC mit bisschen mehr Leistung als nötig (zusätzlich als snes, wii Ersatz) + ob man das passiv kühlen kann?

edit- link vergessen
QC5000-ITX
 
Zuletzt bearbeitet:
Hi Leute,
mich plagt leider seit längerem auch ein Problem, was sich nicht lösen lassen will.

Dabei geht es um die LiveTV Funktion.
Backend: VDR
Schnittstelle: VNSI

Problem 1:
Nach ich openelec hochfahre, stürzt die gui mehrmals beim Laden der channels ab bzw. startet einfach neu.
Erst wenn die EPG-Daten gelesen werden, geht es stabil weiter.

Problem 2:
LiveTV bildet nach ca. 15-17 Minuten Artefakte und stockt. Ein kurzes hin und her schalten löst das problem für weitere ~15 minuten.
Es scheint, als würde vdr irgendwie keinen korrekten datenstrom mehr liefern:
CDVDMessageQueue(audio)::Get - asked for new data packet, with nothing available

Tuner ist eine DVB-s2 usb box
dvbsky s960


Der gesamte Log, debug
Log: http://pastebin.com/3yvn9NxA
 
DDD schrieb:
HDDs kommen keine rein und das NT ist dann auch passiv?
supie wenn man vergisst den Link mit rein zu packen :freak:

Der Plan wäre ein kleines Gehäuse + Externen DC Netzteil + Passiv Kühlen des Boards (evtl größerer Kühler drauf)

QC5000-ITX
Ergänzung ()

mac321 schrieb:
mich plagt leider seit längerem auch ein Problem, was sich nicht lösen lassen will.

Also die DVBSky 960 müsste laufen (lief bei mir auch mehr oder weniger problemlos). Als erstes würde ich mal die Kanalliste zusammenkürzen auf das notwendige und bei vdr optionen das autoscannen nach neuen Frequenzen abschalten. Weil "scheinbar" hat VDR oder XBMC teilweise ein Problem mit zu großen Listen. Bei mir gab es da auch immer mal wieder Ruckler etc.

VDR Addon deaktivieren

Setup.conf unter /storage/.xbmc/userdata/addon_data/service.multimedia.vdr-addon/config/ anpassen von

UpdateChannels =3 (3 wäre gut wenn du selber dich um die Senderliste kümmerst)

Einstellungen -> DVB -> Kanäle aktualisieren :
* 0 kein Update
* 1 Update der Kanal-Namen
* 2 Update der PIDs
* 3 Update von Kanal-Namen und PIDs
* 4 Update von Kanal-Namen, PIDs und neu gefundenen Kanälen
* 5 Update von Kanal-Namen, PIDs sowie neu gefundenen Kanälen und Transpondern (Standard)

Dann alles rauslöschen (channels.conf) was man nicht braucht bzw via Channelpedia sich selber zusammenbauen. Danach Unter Live-TV Einstellungen Datenbank zurücksetzen (epg auch) , neustarten , vdr addon aktivieren, neustart -> sollten nur noch die Programme aus der channels.conf drin sein !

Dann ist erstmal ein Problemherd eingedämmt. (evtl mal gucken ob die 960 sehr warm wird).
Ergänzung ()

Ich hab paar OpenElec 4.2 Nigthlies gebaut die XBMC Gotham 13.2 (massig backports von XBMC 14) drin haben und Kernel 3.15.1.
Als normalsterblicher kann man die CrazyCats build nehmen, da sollte auch mit den normalen DVB Karten alles problemlos laufen.
 
Zuletzt bearbeitet:
CvH schrieb:
Der Plan wäre ein kleines Gehäuse + Externen DC Netzteil + Passiv Kühlen des Boards (evtl größerer Kühler drauf)
QC5000-ITX

Kommt denke ich aufs Gehäuse an, es gibt ja kleine und kleine und kleine luftige und kleine die überall zu sind.
Ich würde da aber trotzdem einen leisen Lüfter hinsetzen irgendwo, der DC Platine tut das sicherlich auch gut wenn sie mal ein bisschen Luft abbekommt.
Denkst du der A4 läuft gut unter OpenElec? Du hattest doch mal Intel Baytrail gehabt, bist du damit nicht zufrieden?
 
DDD schrieb:
Denkst du der A4 läuft gut unter OpenElec? Du hattest doch mal Intel Baytrail gehabt, bist du damit nicht zufrieden?

Der J1900 läuft super, auch bei 30° im Raum kein Problem mit wärme oder so, komplett passiv ist schon toll :)
(Madi kommt ja evtl auch mal irgendwann irgendwie, nötig ist es bei normalen Sitzabstand trotzdem nicht)

Ich brauche einen Ersatz für meinen HTPC da ich alles hinter den TV bauen möchte + mein derzeitige Mainboard scheinbar die Mücke macht.
Da der J1900 ja von der Grafikleistung nicht so berauschend ist und ich doch gerne meinen Wii Emulator/SNES/evtl mehr auf dem PC weiter haben will bleibt da nicht so viel übrig (bei möglichst passiv/nahezu passiv). Der A4-5000 sollte ja bei XBMC problemlos laufen bei Upscaling und so ?
 
Zuletzt bearbeitet:
@ CvH: Wer braucht schon madi wenn man yadi hat :) Nee, HW DI wäre schon mal gut, aber solange es mit dem Yadif auch klappt, reichts ja erstmal.
Keine Ahnung wie die AMD Treiber und der A4 so sind, manchmal liest man viel positives von OSS, dann wieder von Problemen. Vom Gefühl her würde ich sagen Intel Treiber sind da aktuell ein bisschen besser was Bugs angeht. Warum muss es denn unbedingt passiv sein? Und wie dick darf das Gehäuse denn sein?
 
Zurück
Oben