XBMC/Kodi: Fehler in ArtworkRotationThread [Erno-2] Name or service not known

Nach dem Hochfahren von Raspbmc erhielt ich breits in der XBMC 13-er Version sowie auch in der 14-er, nach dem Update auf Kodi, immer noch folgendes Popup mit der Fehlermeldung:

Fehler in ArtworkRotationThread
[Erno-2] Name or service not known

Weiterhin gab es immer wieder Notifications in der rechten unteren Ecke bzgl. fehlgeschlagener Serververbindungen, die aber nach einiger Zeit verschwinden.

Da man die immer wegdrücken muss und das ziemlich nervig ist, habe ich nach einer Lösung des Problems gesucht. Im Logfile, in ~/.kodi/temp/kodi.log sah das ganze so aus, was wohl nur die verschwindenen Notifications in der Ecke unten rechts beschreibt:

18:21:21 T:2903905344  NOTICE: ===== XBMB3C START =====
18:21:21 T:2903905344  NOTICE: XBMB3C -> running Python: sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)
18:21:21 T:2903905344  NOTICE: XBMB3C -> running XBMB3C: 0.9.764
18:21:21 T:2903905344  NOTICE: 14.0 Git:2014-12-24-e044d5a-dirty
18:21:21 T:2903905344  NOTICE: XBMB3C -> Platform: Linux/RPi
18:21:21 T:2903905344  NOTICE: XBMB3C -> LogLevel:  0
18:21:21 T:2903905344  NOTICE: XBMB3C 0 -> Version : 14.0 - {u'major': 14, u'tag': u'stable', u'minor': 0, u'revision': u'2014-12-24-e044d5a-dirty'}
18:21:21 T:2903905344  NOTICE: XBMB3C 1 -> XBMB3C Connection Manager Called
18:21:21 T:2903905344  NOTICE: XBMB3C 1 -> Getting Server Details from Network
18:21:21 T:2903905344   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.NameError'>
                                            Error Contents: global name 'socket' is not defined
                                            Traceback (most recent call last):
                                              File "/home/pi/.kodi/addons/plugin.video.xbmb3c/default.py", line 39, in <module>
                                                MainModule.MainEntryPoint()
                                              File "/home/pi/.kodi/addons/plugin.video.xbmb3c/resources/lib/MainModule.py", line 1621, in MainEntryPoint
                                                ConnectionManager().checkServer()
                                              File "/home/pi/.kodi/addons/plugin.video.xbmb3c/resources/lib/ConnectionManager.py", line 51, in checkServer
                                                serverInfo = self.getServerDetails()
                                              File "/home/pi/.kodi/addons/plugin.video.xbmb3c/resources/lib/ConnectionManager.py", line 117, in getServerDetails
                                                sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
                                            NameError: global name 'socket' is not defined
                                            -->End of Python script error report<--
18:21:22 T:2903905344 WARNING: CPythonInvoker(7, /home/pi/.kodi/addons/plugin.video.xbmb3c/default.py): the python script "/home/pi/.kodi/addons/plugin.video.xbmb3c/default.py" has left several classes in memory that we couldn't clean up. The classes include: N9XBMCAddon9xbmcaddon5AddonE
18:21:22 T:3038625792   ERROR: GetDirectory - Error getting plugin://plugin.video.xbmb3c/?content_type=video
18:21:22 T:3038625792   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.xbmb3c/?content_type=video) failed
18:21:22 T:2903905344  NOTICE: Thread BackgroundLoader start, auto delete: false
18:21:25 T:2903905344  NOTICE: Thread LanguageInvoker start, auto delete: false
18:21:25 T:2903905344  NOTICE: -->Python Interpreter Initialized<--

Durch ein bisschen googlen kommt man dann u.a. auf diese Seite:

http://forum.kodi.tv/showthread.php?tid=210375&pid=1853202#pid1853202

Hier wird beschrieben, dass man nur das Video Addon XBMB3C deaktivieren muss. Dazu hangelt man sich in Kodi wie folgt durch das Menü ausgehend vom Startbildschirm:

  • Optionen
  • Einstellungen
  • Addons
  • Aktivierte Addons
  • Video Addons
  • MediaBrowser
  • Deaktivieren

Man findet das Video Addon XBMB3C also unter dem Namen MediaBrowser. Nach dem Deaktivieren und einem Neustart ist die Fehlermeldung Geschichte.

Januar 5, 2015 · 2 Minuten

Weave Sync und Reg Server Setup unter Debian Lenny

Update vom 16.4.: Der Artikel ist schon einigermaßen veraltet. Daher würd ich den nicht mehr so genau nehmen. Einige Anmerkungen und für einige Probleme haben engagierte Nutzer Kommentare geschrieben.

Wer wie ich mal einen Weave Sync Server unter Debian aufsetzen will, um einen eigenen Server zu haben mit dem das neue Firefox Sync Addon synchronisiert, dem wird die folgende Anleitung helfen.

Voraussetzung für die Anleitung ist ein installierter Apache2 mit mindestens php 5.1, php-json, php-mysql und eine MySQL Installation.

Zunächst hab ich in /var/www ein neues Verzeichnis erstellt und die Server (Sync und Reg Server heruntergeladen, beides entpackt und die Ordner umbenannt:

mkdir weave &#038;&#038; cd weave
wget http://hg.mozilla.org/services/sync-server/archive/tip.tar.gz
wget http://hg.mozilla.org/services/reg-server/archive/tip.tar.gz
tar xfz tip.tar.gz
tar xfz tip.tar.gz.1
mv reg-server-828798f908a0/ reg-server
mv sync-server-55d5049f6eeb/ sync-server

Als nächstes hab ich erstmal einen neuen Vhost für den Apache angelegt und entsprechend der beiden Anleitungen (Sync und Reg) konfiguriert. Die sieht nun so aus:

<VirtualHost myserver.de:80>
        ServerName myserver.de
        Redirect / https://myserver.de
</VirtualHost>
<VirtualHost myserver.de:443>&lt;br />
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/server-cert.pem
        SSLCertificateKeyFile /etc/apache2/ssl/server-key.pem
        ServerAdmin webmaster@myserver.de
        ServerName myserver.de
        DocumentRoot /var/www/weave
        Alias /1.0      /var/www/weave/sync-server/1.0/index.php
        Alias /user/1.0 /var/www/weave/reg-server/1.0/index.php
        Alias /user/1   /var/www/weave/reg-server/1.0/index.php
        Alias /misc/1.0/captcha_html    /var/www/weave/reg-server/1.0/captcha.php
        Alias /misc/1/captcha_html      /var/www/weave/reg-server/1.0/captcha.php
        Alias /weave-registration-static        /var/www/weave/reg-server/1.0/static
        Alias /weave-password-reset             /var/www/weave/reg-server/1.0/forgot_password.php
        CustomLog /var/log/apache2/weave/access.log combined
        ErrorLog /var/log/apache2/weave/error.log
        DirectoryIndex index.php index.html index.htm
        ServerSignature Off
        <Directory "/var/www/weave/">
                Options Indexes FollowSymLinks
                AllowOverride none
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

Anschließend muss eine neue Datenbank erstellt werden. Auf dieser muss dann der folgende SQL-Code ausgeführt werden, der die Tabellen erstellt:

CREATE TABLE `collections` (
  `userid` int(11) NOT NULL,
  `collectionid` smallint(6) NOT NULL,
  `name` varchar(32) NOT NULL,
  PRIMARY KEY  (`userid`,`collectionid`),
  KEY `nameindex` (`userid`,`name`)
) ENGINE=InnoDB;
CREATE TABLE `wbo` (
  `username` int(11) NOT NULL,
  `collection` smallint(6) NOT NULL default '0',
  `id` varbinary(64) NOT NULL default '',
  `parentid` varbinary(64) default NULL,
  `predecessorid` varbinary(64) default NULL,
  `sortindex` int(11) default NULL,
  `modified` bigint(20) default NULL,
  `payload` longtext,
  `payload_size` int(11) default NULL,
  PRIMARY KEY  (`username`,`collection`,`id`),
  KEY `parentindex` (`username`,`collection`,`parentid`),
  KEY `modified` (`username`,`collection`,`modified`),
  KEY `weightindex` (`username`,`collection`,`sortindex`),
  KEY `predecessorindex` (`username`,`collection`,`predecessorid`),
  KEY `size_index` (`username`,`payload_size`)
) ENGINE=InnoDB;
create table users (
 id int(11) NOT NULL PRIMARY KEY auto_increment,
 username varchar(32),
 password_hash varbinary(128),
 email varbinary(64),
 status tinyint(4) default '1',
 alert text,
 reset varbinary(32) default null
) engine=InnoDB;

Schließlich müssen die beiden Server nur noch eingerichtet werden. Zunächst den Sync Server:

cd /var/www/weave/sync-server/1.0/
cp default_constants.php.dist default_constants.php

Anschließend wird die weave_constants.php bearbeitet. Direkt in der Zeile nach <?php werden die folgenden Zeilen eingefügt, die auf die eigenen Bedürfnisse angepasst werden müssen:

define('WEAVE_AUTH_ENGINE', 'mysql');
define('WEAVE_MYSQL_AUTH_HOST', '<db host>');
define('WEAVE_MYSQL_AUTH_DB', '<db name>');
define('WEAVE_MYSQL_AUTH_USER', '<db username>');
define('WEAVE_MYSQL_AUTH_PASS', '<db password>');
define('WEAVE_STORAGE_ENGINE', 'mysql');
define('WEAVE_MYSQL_STORE_READ_HOST', '<db host>');
define('WEAVE_MYSQL_STORE_READ_DB', '<db name>');
define('WEAVE_MYSQL_STORE_READ_USER', '<db username>');
define('WEAVE_MYSQL_STORE_READ_PASS', '<db password>');
define('WEAVE_MYSQL_STORE_WRITE_HOST', WEAVE_MYSQL_STORE_READ_HOST);
define('WEAVE_MYSQL_STORE_WRITE_DB', WEAVE_MYSQL_STORE_READ_DB);
define('WEAVE_MYSQL_STORE_WRITE_USER', WEAVE_MYSQL_STORE_READ_USER);
define('WEAVE_MYSQL_STORE_WRITE_PASS', WEAVE_MYSQL_STORE_READ_PASS);

Nachdem nun der Sync Server konfiguriert ist, muss der Reg Server noch konfiguriert werden.

cd /var/www/weave/reg-server/1.0/
cp weave_user_constants.php.dist weave_user_constants.php

Die kopierte weave_user_constants.php muss nun noch mit folgenden anzupassenden Zeilen nach dem Lizenzblock ergänzt werden:

# ***** END LICENSE BLOCK *****
define('WEAVE_AUTH_ENGINE', 'mysql');
define('WEAVE_MYSQL_AUTH_HOST', '<db host>');
define('WEAVE_MYSQL_AUTH_DB', '<db name>');
define('WEAVE_MYSQL_AUTH_USER', '<db username>');
define('WEAVE_MYSQL_AUTH_PASS', '<db password>');
define('WEAVE_SHA_SALT', '<hier einen langen, zufälligen salt eingeben; wichtig für sha256>');

Das war es eigentlich schon. Wenn ihr beim Einrichten des Plugins nun eure eigene URL https://myserver.de eingebt, solltet ihr euch einen Account erstellen können und mit dem Server synchronisieren können. Ich hatte leider noch ein Problem mit dem Sync Server.

Ich habe auf meinem Server nur die deutsche Locale installiert:

strubbl:~$ locale -a
C
de_DE.utf8
POSIX

Dadurch gab es einen Fehler. Dieser wurde in der Datei /var/www/sync-server/1.0/weave_user/mysql.php in Zeile 84 geworfen. Die Zeile 83 lautet:

if (setlocale(LC_CTYPE, "UTF8", "en_US.UTF-8") == false)

Wenn man die Locale en_US nicht installiert hat, einfach durch die ersetzen, die man hat. Bei mir ist das dann de_DE und die Zeile sieht wie folgt aus:

if (setlocale(LC_CTYPE, "UTF8", "de_DE.UTF-8") == false)

Wenn es endlich alles läuft, wird man auf die Webseite geleitet: First Run.

Richtet man einen zweiten PC mit dem Sync Account ein, wird man dann auf die Webseite geleitet: Second Run.

UPDATE

Der Bjoern hat das Tutorial vor kurzem gecheckt und einige kleine Anmerkungen gemacht. Ich hab z.Z. keinen eigenen Weave Server mehr am Laufen.

Juli 1, 2010 · 4 Minuten

SyntaxHighlighter von Alex Gorbatchev um LaTeX erweitern

Wenn man den SyntaxHighlighter von Alex Gorbatchev nutzt und diesen um LaTeX-Highlighting erweitern möchte, so muss man die Datei syntaxhighlighter.php bearbeiten. In eine leere Zeile nach Zeile 55 trägt man folgenden Code zusätzlich ein:

wp_register_script( 'syntaxhighlighter-brush-latex', plugins_url('syntaxhighlighter/syntaxhighlighter/scripts/shBrushLatex.js'), array('syntaxhighlighter-core'), $this->agshver );

In eine leere Zeile nach Zeile 116 wird folgender Code hinzugefügt:

'latex' => 'latex',

Nun lädt man noch meine LaTeX-JavaScript-Datei herunter und kopiert sie nach $BLOG_INSTALL_DIR/wp-content/plugins/syntaxhighlighter/syntaxhighlighter/scripts/.

Da ich diese Datei gerade erstellt habe, werde ich sie sicher noch um einige Schlägwörter ergänzen. Die ersten befinden sich jedoch bereits drin und Kommentare, Strings und Zahlen werden ebenfalls hervorgehoben.

Die Benutzung in Artikeln erfolgt durch die Verwendung von [plain][latex][/latex][/plain] oder [plain][tex][/tex][/plain]

August 4, 2009 · 1 Minute