Anzeige:
Ergebnis 1 bis 5 von 5

Thema: [HOW-TO] Musik fernsteuern über ein WLAN mit einem Palm [Ubuntu 6.06 LTS]

  1. #1
    Registrierter Benutzer
    Registriert seit
    Feb 2007
    Beiträge
    103

    [HOW-TO] Musik fernsteuern über ein WLAN mit einem Palm [Ubuntu 6.06 LTS]

    Giantdisc - Musik fernsteuern über ein WLAN mit einem Palm

    Erstmal die Voraussetzungen für mein Vorhaben:

    1. WLAN Router
    2. WLAN-fähiger Palm (z.B. einen TX)
    3. Eine Soundkarte und Boxen am Server
    4. Genug Speicherplatz für Musik auf dem Server
    5. Sämtliche Musikdateien sollten 100% richtig getaggt sein
    6. Die Files müssen in MP3, OGG und/oder FLAC vorhanden sein

    (GD funktioniert auch über rs232, bluetooth, gsm,
    aber ich werde nur die WLAN Variante beschreiben!)

    Was uns genau erwartet? Hier eine Vorschau der Palm Software!

    http://www.dachboden-wg.de/ftp/pics/fish/gd/gd1.gif

    Folgendes Konzept steckt dahinter:

    http://www.dachboden-wg.de/ftp/pics/...ma-concept.gif

    Auf dem Server wird ein Set von Skripten laufen, um MP3/OGG/FLAC abzuspielen, vom Palm aus wird das ganze bedient. Ein PC zur Steuerung ist nicht mehr nötig, die Musik lässt sich bequem über das Palm Interface abspielen.

    Giantdisc wurde von Rolf Brugger von der Uni Fribourg entwickelt - Qualitätsware aus der Schweiz also!

    Die offizielle Homepage mit Forum findet sich hier: http://www.giantdisc.org/

    Also, los gehts!

    Wir öffnen die /etc/apt/sources.list mit Nano und ändern folgende Zeile ab:

    Code:
    deb http://ch.archive.ubuntu.com/ubuntu/ dapper universe
    deb-src http://ch.archive.ubuntu.com/ubuntu/ dapper universe
    Daraus wird neu:

    Code:
    deb http://ch.archive.ubuntu.com/ubuntu/ dapper universe multiverse
    deb-src http://ch.archive.ubuntu.com/ubuntu/ dapper universe multiverse
    Speichern, dann ein sudo apt-get update um die Softwarequellen zu aktualisieren!

    Nun installieren wir die noch fehlenden Pakete für GD:

    Code:
    sudo apt-get update
    Code:
    sudo apt-get install perl mysql-client mysql-server libcddb-get-perl cdtool netpbm mp3info madplay libid3-3.8.3-dev libid3tag0-dev lame
    Code:
    sudo apt-get install mp3info aumix id3 libdbd-mysql-perl mpg321 make cdparanoia pilot-link flac libtag1c2a libtag1-dev mplayer-nogui mpg123
    (eventuelle Abhängigkeitsprüfungen bejahen!)

    Ein paar der obigen DEBs sind allerdings optional, mehr dazu hier:

    http://giantdisc.org/man/man.php#Req..._Prerequisites

    Entscheidet selbst, was ihr davon nutzen wollt und was nicht!

    Nun gebären wir einen neuen Benutzer namens "music" mit entsprechendem Home-Verzeichnis:

    Code:
    fish@fishbox:~$ sudo adduser music
    Adding user `music'...
    Adding new group `music' (1001).
    Adding new user `music' (1001) with group `music'.
    The home directory `/home/music' already exists.  Not copying from `/etc/skel'
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    Changing the user information for music
    Enter the new value, or press ENTER for the default
            Full Name []:
            Room Number []:
            Work Phone []:
            Home Phone []:
            Other []:
    Is the information correct? [y/N] y
    (Passwort nach Wahl, bei den Abfragen einfach ENTER drücken!)

    Code:
    fish@fishbox:/home$ cd /home/; ls
    fish  music
    Der neue Benutzer "music" wurde also korrekt erstellt, sehr schön.

    Jetzt ändern wir die Rechte für einige "devices" und machen sie so world-readable:

    Code:
    fish@fishbox:/$ sudo chmod 777 /dev/dsp
    fish@fishbox:/$ sudo chmod 777 /dev/ttyS*
    fish@fishbox:/$ sudo chmod 777 /dev/rtc
    fish@fishbox:/$ sudo chmod 777 /dev/mixer
    fish@fishbox:/$ sudo chmod 777 /dev/null
    fish@fishbox:/$ sudo chmod 777 /dev/hdc
    Der letzte Wert ist unser CD-ROM - es könnte bei euch woanders gemountet sein.

    Nachprüfen könnt ihr das, indem ihr die fstab ausliest:

    Code:
    fish@fishbox:/$ cat /etc/fstab | grep cdrom
    /dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
    Jetzt öffnen wir die /etc/environment...

    Code:
    fish@fishbox:~$ sudo nano /etc/environment
    ...und ändern folgende Zeile:

    Code:
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
    Sie soll neu wie folgt aussehen:

    Code:
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/home/music/bin"
    Mehr zur bash und ihren Konfigurationsdateien gibts hier:

    http://www.bin-bash.de/
    https://wiki.ubuntu.com/environment_variables
    http://debiananwenderhandbuch.de/bashfunktionen.html

    Wir loggen uns mit "su music" als Benutzer "music" ein und holen uns die aktuelle GD:

    Code:
    music@fishbox:~$ wget http://www.giantdisc.org/download/basicpkg/beta/GiantDisc_1.41-5.tar.gz
    --12:09:18--  http://www.giantdisc.org/download/basicpkg/beta/GiantDisc_1.41-5.tar.gz
               => `GiantDisc_1.41-5.tar.gz'
    Resolving www.giantdisc.org... 217.26.52.30
    Connecting to www.giantdisc.org|217.26.52.30|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 405,159 (396K) [application/x-tar]
    
    100%[=====================================================================>] 405,159      582.55K/s
    
    12:09:19 (580.69 KB/s) - `GiantDisc_1.41-5.tar.gz' saved [405159/405159]
    (momentan ist das die 1.41-5 - prüft auf giantdisc.org, ob es eventuell eine neuere Version gibt!)

    Wir entpacken das ganze und wechseln ins neu erstellte Verzeichnis:

    Code:
    music@fishbox:~$ tar zxvf GiantDisc_1.41-5.tar.gz
    GiantDisc_1.41-5/
    GiantDisc_1.41-5/bin/
    GiantDisc_1.41-5/bin/gddb.pm
    GiantDisc_1.41-5/bin/gdgentools.pm
    GiantDisc_1.41-5/bin/gdio.pm
    GiantDisc_1.41-5/bin/gdparams.pm
    GiantDisc_1.41-5/bin/gdserv.pm
    GiantDisc_1.41-5/bin/gdsoundcard.pm
    GiantDisc_1.41-5/bin/gdupdate.pm
    GiantDisc_1.41-5/bin/rememberprompt.pm
    GiantDisc_1.41-5/bin/gdbooklet.pl
    GiantDisc_1.41-5/bin/gdcompr.pl
    GiantDisc_1.41-5/bin/gdd-listener.pl
    GiantDisc_1.41-5/bin/gdd.pl
    GiantDisc_1.41-5/bin/gdexportdb.pl
    GiantDisc_1.41-5/bin/gdgetmdir.pl
    GiantDisc_1.41-5/bin/gdimportcdi.pl
    GiantDisc_1.41-5/bin/gdimportlyr.pl
    GiantDisc_1.41-5/bin/gdimport.pl
    GiantDisc_1.41-5/bin/gdimporttri.pl
    GiantDisc_1.41-5/bin/gdinfo.pl
    GiantDisc_1.41-5/bin/gd-maintenance.pl
    GiantDisc_1.41-5/bin/gdmakelinks.pl
    GiantDisc_1.41-5/bin/gdplaycd.pl
    GiantDisc_1.41-5/bin/gdplayd2.pl
    GiantDisc_1.41-5/bin/gdplayd.pl
    GiantDisc_1.41-5/bin/gdplaytimefilter.pl
    GiantDisc_1.41-5/bin/gdplaytmsim.pl
    GiantDisc_1.41-5/bin/gdrefresh.pl
    GiantDisc_1.41-5/bin/gdripcd.pl
    GiantDisc_1.41-5/bin/gdsleep.pl
    GiantDisc_1.41-5/bin/gdstream.pl
    GiantDisc_1.41-5/bin/gdsync.pl
    GiantDisc_1.41-5/bin/gdtranscode.pl
    GiantDisc_1.41-5/bin/gdupdatedb.pl
    GiantDisc_1.41-5/bin/gdupload2player.pl
    GiantDisc_1.41-5/bin/jpgvsplit.pl
    GiantDisc_1.41-5/bin/protodoc.pl
    GiantDisc_1.41-5/bin/gdarchive.sh
    GiantDisc_1.41-5/bin/gdburn.sh
    GiantDisc_1.41-5/bin/gddstart.sh
    GiantDisc_1.41-5/bin/gdd-wrapper.sh
    GiantDisc_1.41-5/bin/gif2jpg.sh
    GiantDisc_1.41-5/bin/gdplaytimefilter
    GiantDisc_1.41-5/bin/gdmp3cutter
    GiantDisc_1.41-5/bin/cronfile-1per-d
    GiantDisc_1.41-5/bin/cronfile-1per-h
    GiantDisc_1.41-5/bin/cronfile-1per-m
    GiantDisc_1.41-5/bin/playtimefilter/
    GiantDisc_1.41-5/bin/playtimefilter/tmp.txt
    GiantDisc_1.41-5/bin/playtimefilter/gdplaytimefilter.c
    GiantDisc_1.41-5/bin/playtimefilter/gdplaytimefilter.c.bak
    GiantDisc_1.41-5/bin/playtimefilter/gdplaytimefilter
    GiantDisc_1.41-5/bin/playtimefilter/gdplaytimefilter.o
    GiantDisc_1.41-5/bin/playtimefilter/Makefile
    GiantDisc_1.41-5/bin/mp3cutter/
    GiantDisc_1.41-5/bin/mp3cutter/gdmp3cutter
    GiantDisc_1.41-5/bin/mp3cutter/Makefile
    GiantDisc_1.41-5/bin/mp3cutter/gdmp3cutter.c
    GiantDisc_1.41-5/database/
    GiantDisc_1.41-5/database/createdb.mysql
    GiantDisc_1.41-5/database/createtables.mysql
    GiantDisc_1.41-5/database/createtables-old.mysql
    GiantDisc_1.41-5/database/readalbums.mysql
    GiantDisc_1.41-5/database/readgenres.mysql
    GiantDisc_1.41-5/database/readlanguages.mysql
    GiantDisc_1.41-5/database/readmusictypes.mysql
    GiantDisc_1.41-5/database/readsources.mysql
    GiantDisc_1.41-5/database/readtracks.mysql
    GiantDisc_1.41-5/database/make-db.sh
    GiantDisc_1.41-5/database/make-tables-oldmysql.sh
    GiantDisc_1.41-5/database/make-tables.sh
    GiantDisc_1.41-5/PalmClient/
    GiantDisc_1.41-5/PalmClient/gd-palmos3.prc
    GiantDisc_1.41-5/PalmClient/gd.prc
    GiantDisc_1.41-5/PalmClient/JpegLib.prc
    GiantDisc_1.41-5/PalmClient/pnoJpegLib.prc
    GiantDisc_1.41-5/public_html/
    GiantDisc_1.41-5/public_html/webint/
    GiantDisc_1.41-5/public_html/webint/img/
    GiantDisc_1.41-5/README
    GiantDisc_1.41-5/Install.sh
    GiantDisc_1.41-5/.gdconfig
    Das Installationsskript wird ausgeführt:

    Code:
    music@fishbox:~/GiantDisc_1.41-5$ ./Install.sh
    
    GiantDisc installation/update script
    
    user 'music' exists. OK
    create directory /home/music/00
    create directory /home/music/01
    create directory /home/music/02
    create directory /home/music/tmp
    create directory /home/music/inbox
    create directory /home/music/inbox/albums
    create directory /home/music/outbox
    create directory /home/music/browse
    create directory /home/music/bin
    copy its content ...
    create directory /home/music/PalmClient
    copy its content ...
    create directory /home/music/database
    copy its content ...
    cp: cannot stat `database/genres.txt': No such file or directory
    cp: cannot stat `database/languages.txt': No such file or directory
    cp: cannot stat `database/musictypes.txt': No such file or directory
    cp: cannot stat `database/sources.txt': No such file or directory
    cp: omitting directory `bin'
    cp: omitting directory `public_html'
    
    Installation complete, all files are copied
    Leider scheint die aktuellste GD einen kleinen Bug zu haben, wir holen uns also die Vorgängerversion:

    Code:
    music@fishbox:~$ wget wget http://www.giantdisc.org/download/basicpkg/beta/GiantDisc_1.41-4.tar.gz
    Auch diese wird entpackt:

    Code:
    music@fishbox:~$ tar xvzf GiantDisc_1.41-4.tar.gz
    Jetzt öffnen wir MC (Midnight Commander) und kopieren die Dateien genres.txt, languages.txt, musictypes.txt und sources.txt aus dem Verzeichnis /home/music/GiantDisc_1.41-4/database mit F5 nach /home/music/database!

    Bevor wir unsere Musik einlesen, müssen wir mit den Skripts make-db und make-tables eine Datenbank erstellen.

    Wir wechseln zurück zum User fish mit "su fish" und führen folgendes aus:

    Code:
    fish@fishbox:/home/music/database$ sudo sh make-db.sh
    creating db
    fish@fishbox:/home/music/database$ sudo sh make-tables.sh
    creating tables
    reading genres
    reading languages
    reading musictypes
    reading sources
    Jetzt ein "su music" und dann starten wir den GiantDisc Server:

    Code:
    music@fishbox:~/bin$ perl gdd.pl --commode2
    GiantDisc Server version 1.41-5
    Unknown option: commode2
    ### Init serial port /dev/ttyS1 at 19200 bps
    Open database connection
    DBI connect('GiantDisc:fishbox','music',...) failed: Can't connect to MySQL server on 'fishbox' (111) at /home/music/bin/gdserv.pm line 91
    unable to connect to GiantDisc db at /home/music/bin/gdserv.pm line 91.
    ### close database connection
    io modul finished
    Obige Fehlermeldung wird wie folgt umgangen:

    Code:
    nano /home/music/.gdconfig
    Dort kommentieren wir die Zeile "dbhost = localhost" aus.
    Bei der Gelegenheit setzen wir den Wert "commmode" auch gleich noch auf 2!

    Wir versuchen es nochmals:

    Code:
    music@fishbox:~/bin$ perl gdd.pl
    GiantDisc Server version 1.41-5
    Open socket on localhost at port 26468 as server (mode 2 - generic)
    Open database connection
    
      Update to database structure version 1.41 required
      please run command 'gdupdatedb.pl'
    
    ### close database connection
    io modul finished
    Offensichtlich ist ein Update nötig:

    Code:
    music@fishbox:~/bin$ perl gdupdatedb.pl -h localhost
    ### open database connection to
    Check update to version 1.11
    Check update to version 1.12
    Check update to version 1.14
    Check update to version 1.31
    Set table 'playerstate' to type HEAP
    Check update to version 1.32
    Check update to version 1.33
    Check update to version 1.34
    Check update to version 1.41
    Update table playlist to version 1.41
    add column modified
    add column length
    Change type of album.modified from DATE to DATETIME
    Change type of tracks.modified from DATE to DATETIME
    ### close database connection
    Nun gehen wir in die /home/music/.gdconfig und prüfen, ob folgende Werte richtig gesetzt sind:

    Code:
    dbhost = localhost
    tcpiphost = 192.168.0.175
    tcpipport = 26468
    Jetzt wird der GD-Server nochmals gestartet:

    Code:
    music@fishbox:~/bin$ perl gdd.pl
    GiantDisc Server version 1.41-5
    Open socket on localhost at port 26468 as server (mode 2 - generic)
    Open database connection
    ID of this instance of gdd (playerid): 0
    sh: gdrefresh.pl: command not found
    Giant Disc Server started
    connection open? ... no
    Server accepting socket ...
    Bingo!

    So weit, so gut - natürlich muss aber noch der Palm Client installiert werden, er findet sich hier:

    Code:
    fish@fishbox:/home/music$ cd PalmClient/
    fish@fishbox:/home/music/PalmClient$ ls
    gd-palmos3.prc  gd.prc  JpegLib.prc  pnoJpegLib.prc
    Ich habe diese Dateien in den eingerichteten NFS-Share verfrachtet (siehe Kapitel 5) und dann mit Kubuntu Feisty auf meinen Palm installiert. Natürlich könnt ihr das auch auf Windows per Hotsync oder auf der Kommandozeile erledigen.

    Das Palm Programm wird geöffnet, die Verbindung mit einem Klick auf "New" konfiguriert:

    Name: fishbox (oder was anderes, egal)
    ID: 0
    Communication Mode: TCP/IP generic
    Host: 192.168.0.175
    Port: 26468
    (gegebenfalls den Port in der Firewall für den Palm öffnen)

    Bei "default connection" ein Häkchen setzen, dann ein Klick auf Save!

    Wie wählen nun die Verbindung aus und versuchen uns mit "connect" einzuloggen.

    Falls dies geklappt hat, sieht man auf der Konsole eine Bestätigung.

    Jetzt haben wir es fast geschafft, aber unsere Files müssen noch importiert werden!

    Das Palm Programm und der Server Prozess wird nochmals beendet.

    In dem Verzeichnis mit unserer Musik führen wir nun folgenden Befehl aus:

    Code:
    music@fishbox:/media/stoked/Possessedby/Audio$ find . -type d -print -exec /home/music/bin/gdimport.pl -l {} \;
    Dabei verwenden wir die Option -l, damit die Dateien in /home/music nur gelinkt, nicht aber dort hin kopiert werden.

    Jetzt ist es vollbracht - wir starten den Server erneut, öffnen GD auf dem Palm und spielen den ersten Track ab!

    Nun sollte man eigentlich alle eingelesenen Files direkt über den Palm abspielen können. Da GiantDisc noch viele weitere Features mit sich bringt (Last.fm, CDs rippen, Server runterfahren, Replaygain, etc.) lohnt sich auf jeden Fall auch ein Blick in die Dokumentation und auf giantdisc.org. Eventuell werde ich später noch auf einige dieser Möglichkeiten eingehen.

    Zum Schluss möchte ich mich noch besonders bei Rolf, Teardrainer und Nonos bedanken für die super Hilfe im GiantDisc Forum - Jungs, ohne euch wäre dieses HOW-TO nie zu Stande gekommen!

    Originaldokument: *click*

    (von mir geschrieben)

    Très cordialement,
    fish

    Geändert von hehehe (12.04.07 um 21:15 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    Feb 2007
    Beiträge
    103
    Anhang 1 - GiantDisc und Last.fm

    Auch GiantDisc würden wir gerne zum scrobblen bringen.

    Zuerst müssen wir zwei Abhängigkeiten installieren:

    Code:
    fish@fishbox:~/sources$ sudo apt-get install libconfig-inifiles-perl libwww-perl
    (Abhängigkeitsprüfung bejahen!)

    Jetzt noch folgende Befehle ausführen:

    Code:
    fish@fishbox:~/sources$ wget http://cpan.calvin.edu/pub/CPAN/modules/by-module/Audio/Audio-Scrobbler-0.01.tar.gz
    Code:
    fish@fishbox:~/sources$ tar zxvf Audio-Scrobbler-0.01.tar.gz
    Code:
    fish@fishbox:/home/music/sources/Audio-Scrobbler-0.01$ sudo perl Makefile.PL
    Code:
    fish@fishbox:/home/music/sources/Audio-Scrobbler-0.01$ sudo make
    Code:
    fish@fishbox:/home/music/sources/Audio-Scrobbler-0.01$ sudo make test
    Kommt folgende Meldung, haben wir Erfolg:

    Code:
    All tests successful.
    Jetzt noch:

    Code:
    fish@fishbox:/home/music/sources/Audio-Scrobbler-0.01$ sudo checkinstall
    (das Paket "checkinstall" muss dafür installiert sein!)

    Code:
    fish@fishbox:/home/music/sources/Audio-Scrobbler-0.01$ sudo dpkg -i audio-scrobbler_0.01-1_i386.deb
    Die Einstellung dazu findet sich in der /home/music/.gdconfig, es sollte in etwa so aussehen:

    Code:
    ######## AudioScrobbler Settings
    #
    # Support for AudioScrobber is enabled here.
    # AudioScrobbler support requires the Perl Audio::Scrobbler mo$
    # and an account with www.last.fm.
    #
    # Uncomment and correct the following settings to enable.
    #
    # Settings:
    #
    # To enable, comment the following line and uncomment out the $
    #useaudioscrobbler = 0
    useaudioscrobbler = 1
    scrobbler_user = deinbenutzername
    scrobbler_pass = deinpasswort
    Abspeichern, Server neu starten, scrobblen!

    Anhang 2 - GiantDisc automatisch beim booten starten lassen

    Wer GD sofort "ready" haben will nach dem aufstarten des PCs, editiert folgende Datei:

    Code:
    fish@fishbox:~$ sudo nano /etc/rc.local
    Code:
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runleve$
    # Make sure that the script will "exit 0" on success or any ot$
    # value on error.
    #
    # In order to enable or disable this script just change the ex$
    # bits.
    #
    # By default this script does nothing.
    
    chmod 777 /dev/dsp
    chmod 777 /dev/mixer
    chmod 777 /dev/rtc
    su --command="/home/music/bin/gdd-wrapper.sh" music&
    exit 0
    Abspeichern, fertig!

  3. #3
    Registrierter Benutzer
    Registriert seit
    Mar 2006
    Ort
    Hannover
    Beiträge
    240
    sowas ähnliches hatte einer bei meinem praktikum damals auch. er hatte diesen pc an seine stereoanlage angeschlossen, lief mit dem palm durchs haus und konnte damit seine musik steuern. echt nice!

  4. #4
    Registrierter Benutzer
    Registriert seit
    Feb 2007
    Beiträge
    103
    Hallo,

    Danke für das Feeback!

    Es ist tatsächlich "echt nice" - mich überrascht vorallem die sehr schnelle Suche. Na gut, meine DB ist mit nur ca. 200 Alben noch relativ klein. Trotzdem hätte ich erwartet, dass ein Palm übers WLAN mit den mysql-queries mehr Mühe hat. Aber nix da, das geht unglaublich schnell. Suchbegriff rein, Ergebnis da!

    Über Palm OS kann man ja denken was man will, aber ich find das ganze Klasse!

  5. #5
    Registrierter Benutzer
    Registriert seit
    Feb 2007
    Beiträge
    103
    Hier noch einen ersten Erfahrungsbericht zu GD!

Ähnliche Themen

  1. WLAN wird nicht erkannt, Hilfe erwünscht,Suse 10.2
    Von Christof_M im Forum Anbindung an die Aussenwelt
    Antworten: 3
    Letzter Beitrag: 28.03.07, 19:03
  2. [HOW TO] Battlefield 2 Linux Server!
    Von Sh0ck im Forum Dedizierte Spiele Server
    Antworten: 16
    Letzter Beitrag: 19.06.05, 23:08
  3. iptables problem in sehr komischem netzwerk
    Von Nebukadneza im Forum Router und Netzaufbau
    Antworten: 4
    Letzter Beitrag: 08.06.04, 20:55
  4. Linux vom Palm aus fernsteuern?
    Von paumus im Forum Mobiles Linux, Notebook, PDA
    Antworten: 2
    Letzter Beitrag: 09.03.03, 19:03
  5. Palm 505 per USB unter SuSE 8
    Von Oldtimer im Forum stationäre Hardware
    Antworten: 2
    Letzter Beitrag: 09.02.03, 17:39

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •