HowTo: FreeDB aktualisieren

Von Usern entwickelte Hard- und Software-AddOns. Nutzung auf eigenes Risiko!

gigi
Moderator
Beiträge: 2436
Registriert: 27.01.2005 21:11

HowTo: FreeDB aktualisieren

Beitrag von gigi »

Update 23.12.05: Habe die Anleitung mit fertigem Image zum besseren wiederfinden auch hier untergebracht.

Update 14.12.05: Die späteren Korrekturen aus dem Thread sind in diesem Howto bereits eingearbeitet.

Nachdem meine Versuche mit der Original Unix-FreeDB auf dem Hifidelio zwar einerseits erfolgreich waren, andererseits aber lästig (4 Tage fürs November-Komplett-Archiv auspacken, mehr als 2 Stunden fürs Dezember-Update auspacken, Platzbedarf 7,5GB!) bin ich nach neuerlicher Nachfrage draufgekommen, dass die Windows-Version der Datenbank vielleicht geeigneter ist. Was soll ich sagen? Sie ist es! Sie benötigt nur ca. 40 Minuten zum auspacken auf dem Hifidelio und der Platzbedarf ist mit knapp 2GB auch noch moderat.

Das Hauptproblem und alle Folgeprobleme (Squashfs, ...) der Original-FreeDB liegt in der schieren Anzahl (mehrere 100.000) de Files, die in einem einzigen Directory liegen. Die Windows-Version der gleichen FreeDB vermeidet diesen Nachteil.
Das Problem bei der Windows-Version der FreeDB ist dagegen: Da Daten für viele CDs in einer Datei gespeichert sind, lassen sich keine Updates einspielen. Es muss also jedesmal die komplette FreeDB ausgepackt werden, wenn man ein Update haben will. Das ist aber immer noch besser als gar kein Update!

Und hier ist das HowTo:

Fall 1: Wir machen alles selbst

Zu www.freedb.org gehen, die aktuelle Datenbank im Windows-Format (freedb-win-YYYYMMDD.tar.bz2) runterladen und in den Import Ordner des Hifidelio kopieren.
Den FreeDB-Server für den Hifidelio, der das Windows-Format versteht, hier runterladen: cddbd-1.5.1PL2.tgz und ins import Verzeichnis kopieren.

1. Die Datenbank wie folgt auspacken und installieren:

Code: Alles auswählen

mkdir /audio/freedb
tar jxvf /audio/import/freedb-win-YYYYMMDD.tar.bz2 -C /audio/freedb
echo YYYYMMDD > /audio/freedb/DATE
2. Den neuen Server ins import-Verzeichnis kopieren und "installieren":
Der Original-Server wird dabei als cddbd2 gerettet, da er nach wie vor das Unix-Format verwendet und für selbst editierte CDs zuständig ist:

Code: Alles auswählen

rm /opt/cddbd/cddbd2
mv /opt/cddbd/cddbd /opt/cddbd/cddbd2
tar zxvf /audio/import/cddbd-1.5.1PL2.tgz -C /opt/cddbd/
3. Die neue FreeDB "aktiv" schalten:

Code: Alles auswählen

umount /data/freedb
rmdir /data/freedb
ln -s /audio/freedb /data/freedb
4. /etc/fstab anpassen:
Zuletzt noch in der Datei /etc/fstab den mountpoint der Original freedb mit einem # auskommentieren:

Code: Alles auswählen

/dev/hda5	/	ext3	defaults	0 1
/dev/hda6	/data	ext3	defaults	0 2
/dev/hda4	/freedb	ext3	defaults	0 2
/dev/hda7	/audio	ext3	defaults	0 2
#/freedb/freedb.img	/data/freedb	squashfs	defaults,loop,ro	0 0
none	/proc	proc	defaults	0 0
Wer mit vi oder joe nicht umgehen kann, kopiert /etc/fstab nach /audio/import und editiert die Datei halt unter Windows:

Code: Alles auswählen

cp /etc/fstab /audio/import
[editieren]
cp /audio/import /etc/fstab
Und wer Spaß an regulären Ausdrücken hat (das ist nichts Unanständiges ;-) ), der macht das so:

Code: Alles auswählen

perl -i -p -e 's/^\/freedb/#\/freedb/' /etc/fstab
5. Datenbank einträge korrigieren und fuzzy-Index erstellen
Was dann noch fehlt ist ein fuzzy-Index, der es erlaubt, bei ungenauen Treffern (z.B. gebrannten CDs) trotzdem den richtigen Eintrag zu finden.
Zudem hat die freedb vom Dezember einen Fehler, nämlich doppelte Einträge (zwei #FILENAME Einträge direkt untereinander).
Diese lassen sich mit einem perl-script entfernen.

Code: Alles auswählen

perl -i -p -e 'undef $/; s/#FILENAME=[0-9a-fA-F]{8}\n#FILENAME/#FILENAME/g' `find /audio/freedb/ -name "??to??"`
swapon /dev/hda3
/opt/cddbd/cddbd -fd
Das perl-script braucht 20 Minuten, die Erstellung des fuzzy-Index dauert knapp 5 Stunden, also am Besten über Nacht laufen lassen.

Viel Spaß mit der aktuellen FreeDB!

Kleine Ergänzung:
Nach einem Software-Update von Hermstedt sind nur die Schritte 2, 3 und 4 erneut auszuführen.
Hat man die Prozedur einmal komplett gemacht und möchte man die freedb des nächsten Monats einspielen, so sind "nur" die Schritte 1 und 5 nötig.

Fall 2: Wir nehmen ein fertiges freedb-Image

1. Aktuelles freedb-Image für den Hifidelio herunterladen
Derzeit nur per eDonkey/eMule-Netzwerk:
ed2k://|file|hf_free_db_20051201.img|662757376|177AB5FED06246B2176D4A986EDEBA46|h=SFTYFNSEPTE7UNQFNTH2O7HBWOJADHVF|/
Fertiges File nach freedb.img umbenennen und in den Import-Ordner kopieren.

2. Notwendige Dateien
Neuen cddbd hier herunterladen und in Import-Ordner kopieren.
Installationsscript hier herunterladen und in Import-Ordner kopieren.

3. Installieren
Per telnet mit dem Hifidelio verbinden und folgende Kommandos ausführen:

Code: Alles auswählen

chmod 755 /audio/import/mod_freedb.sh
/audio/import/mod_freedb.sh
Dabei sollten dann folgende Ausgaben erscheinen:

Code: Alles auswählen

Installing new cddbd for freedb-windows-format...
Installing new freedb.img. This will take approx. 2 minutes.
New freedb.img installed successfully. Have Fun!
Das war's auch schon. Zur Überprüfung im Hifidelio-Menü unter Einstellungen->CD Datenbank->Online Zugriff aussschalten und neue CD einlegen. Der Hifidelio sollte sie erkennen. Im Hauptmenü unter Info sollte das Datum der gerade installierten freedb erscheinen.
Zuletzt geändert von gigi am 23.12.2005 23:39, insgesamt 11-mal geändert.
fred
Beiträge: 142
Registriert: 20.09.2005 09:26
Wohnort: NL

Beitrag von fred »

Hi

Did the whole exercise on a just completely refreshed system (recovery disk) and followed exactly 'the instructions' as described above.

Everything went very well (as far as I could see.. :shock: ), didn't see any errors anyway.
Extracting the freedb took about two hours. after activating the new freedb I did a reboot and started the /opt/cddbd/cddbd -fd option for creating the 'fussy index'

This was less succesfull however. This is (partly) what the verbose listing shows:
Generating the fuzzy matching hash file.
Scanning /data/cddb/data.
.......................................................................Warning:
invalid DB file: /data/cddb/data/cetoce: unexpected end on line 4223 (0 within t
he record)
...............Warning: invalid DB file: /data/cddb/data/02to02: unexpected end
on line 13306 (0 within the record)
.......................................................Warning: invalid DB file:
/data/cddb/data/2ato2a: unexpected end on line 60 (0 within the record)
.................Warning: invalid DB file: /data/cddb/data/81to81: unexpected en
d on line 4221 (0 within the record)
..Warning: invalid DB file: /data/cddb/data/83to83: unexpected end on line 1237
(0 within the record)
...........................................
Scanning /data/cddb/folk.
.............Warning: invalid DB file: /data/cddb/folk/b0tob0: unexpected end on
line 44437 (0 within the record)
etc.etc
and ends with something like

.....Warning: invalid DB file: /data/cddb/rock/e7toe7: unexpected end on line 56
729 (0 within the record)
..Warning: invalid DB file: /data/cddb/rock/e8toe8: unexpected end on line 42942
(0 within the record)
.Warning: invalid DB file: /data/cddb/rock/adtoad: unexpected end on line 133564
(0 within the record)
...................Warning: invalid DB file: /data/cddb/rock/bftobf: unexpected
end on line 5070 (0 within the record)
........Killed

1/ does anybody has a suggestion about this. is the freedb database probably not consistant\corrupted or reliable?

2/ how can I check what the hifidelio is actual using now and if it's succesfull

3/ does somebody has detailled info for me howto to go back, without using the recovery disk 8) , in case I have to...


fred
gigi
Moderator
Beiträge: 2436
Registriert: 27.01.2005 21:11

Beitrag von gigi »

Hallo Fred,

da Du Deutsch offensichtlich sehr gut verstehst, antworte ich mal auf deutsch.
Erst mal freut es mich, dass Du es gewagt hast, meiner Anleitung zu folgen und dass es soweit funktioniert hat.

Deine 2 Probleme habe ich heute auch erlebt.
Das erste habe ich eben hier beschrieben: viewtopic.php?t=1342&start=15
Es gibt Datenbank-Einträge, die der Server nicht versteht.
Es gibt zwei Möglichkeiten, das Problem zu beheben: Die Datenbank-Einträge korrigieren (Shellscript/sed-Profi gesucht!) oder den Server fehlertoleranter machen (Leidensfähiger C-Hacker gesucht!).
Vorerst funktioniert es aber auch so.

Update 14.12.05: Ein perl-Script zum beheben der Datenbank-Fehler ist jetzt im Howto bereits eingearbeitet.

Dein 2. Problem (....killed): Der Speicher auf dem HF geht beim Indexerstellen aus. Vorher ein einfaches

Code: Alles auswählen

swapon /dev/hda3
wie ich es oben inzwischen ergänzt habe, hilft.

Im nächsten Artikel beschreibe ich (heute noch), wie man das ganz wieder in ein SquashFS-Filesystem einpacken kann. Dann passt die neue FreeDB nämlich dahin, wo die alte steht und nimmt keine 2GB zusätzlichen Platz mehr weg.
Zuletzt geändert von gigi am 14.12.2005 20:49, insgesamt 2-mal geändert.
gigi
Moderator
Beiträge: 2436
Registriert: 27.01.2005 21:11

Beitrag von gigi »

Die mit obiger Anleitung erstellte neue FreeDB, die in /audio/freedb liegt,
lässt sich mit mkquashfs wieder eindampfen.
Vorgehen wie folgt:
mksquashfs auspacken:

Code: Alles auswählen

cd /audio/import
tar zxvf mksquashfs.tgz
Update 14.12.05:
Dafür sorgen, dass der fuzzy-Index (falls erzeugt) mit ins squashfs-Image kommt:

Code: Alles auswählen

mv /data/cddbd/server/fuzzy_index /audio/freedb/
ln -s /audio/freedb/fuzzy_index /data/cddbd/server/fuzzy_index
SquashFS-Image erzeugen:

Code: Alles auswählen

cd /audio
/audio/import/mksquashfs freedb/ freedb.img -be
Zeitbedarf etwa 1 Stunde, dann liegt das fertige freedb.img da und kann wie folgt eingebunden werden:

Code: Alles auswählen

umount /data/freedb
rm /freedb/freedb.img
cp /audio/freedb.img /freedb/
mount /data/freedb
Die oben beschriebene Änderungen (FreeDB aktiv schalten, /etc/fstab editieren) sind dann natürlich nicht nötig.
Zuletzt geändert von gigi am 14.12.2005 20:42, insgesamt 2-mal geändert.
gigi
Moderator
Beiträge: 2436
Registriert: 27.01.2005 21:11

Beitrag von gigi »

Die 2 Fragen habe ich übersehen:
fred hat geschrieben:2/ how can I check what the hifidelio is actual using now and if it's succesfull
Unter "Information" im Menü wird auch das Datum der Freedb angezeigt.
Erfolgreich war es, wenn eine aktuelle CD aus 2005 angezeigt wird.
3/ does somebody has detailled info for me howto to go back, without using the recovery disk 8) , in case I have to...

Code: Alles auswählen

cp /opt/cddbd/cddbd2 /opt/cddbd/cddbd 
  [bzw. cp /opt/cddbd/cddbd.orig /opt/cddbd/cddbd bei meiner ersten Anleitung]
rm /audio/freedb
mkdir /audio/freedb
[-> Original /etc/fstab (ohne Kommentarzeichen) wieder einspielen oder nochmal editieren]
fred
Beiträge: 142
Registriert: 20.09.2005 09:26
Wohnort: NL

Beitrag von fred »

German response is no problem for me, (most of the time :) ) writing is however.. :(

this help will probably get me on the road again! Unfortunately I'll have to wait until tomorrow before I can do something and give response how it turned out.
I've experienced that freedb actions take a little while..

thanks for your quick reply!
fred
gigi
Moderator
Beiträge: 2436
Registriert: 27.01.2005 21:11

Beitrag von gigi »

fred hat geschrieben:I've experienced that freedb actions take a little while..
Das sollte nicht sein. Hast Du den Online-Zugriff ausgeschaltet? Wenn der noch eingeschaltet ist, aber keine Internet-Verbindung zustandekommt, gibt es relativ große Timeouts.
Am besten verfolgen was der Fidel macht, kannst Du, in dem Du Debugging einschaltest: touch /DEBUG
Alle Aktionen des Fidel landen dann in der Datei /tmp/Fidelio.log
lanale
Beiträge: 36
Registriert: 23.03.2005 16:48
Wohnort: Greifswald

Beitrag von lanale »

Hi,

ich habe jetzt, dank obiger Anleitung, auch eine neue FreeDB auf meinem
Hifidelio. Allerdings ungepackt, d.h. mksquashfs habe ich noch nicht
ausprobiert und den Fuzzy-Index habe ich auch noch nicht erstellt.

Ich habe jetzt folgende Idee:

Wenn jemand kurz erklärt, wie man daraus eine Update-CD macht, dann
könnte der eine oder andere hilfsbereite Hifidelio-User (mich eingeschlossen)
ein paar CDs brennen und zum Selbstkostenpreis an andere User verschicken,
die sich eine solche Operation nicht selbst zutrauen.

Was haltet ihr davon?

lanale
gigi
Moderator
Beiträge: 2436
Registriert: 27.01.2005 21:11

Beitrag von gigi »

Was haltet ihr davon?
Prinzipiell eine gute Idee. Aus Platzgründen sollte das dann aber nach dem mksquashfs geschehen ;-)

Ich sehe 2 Möglichkeiten:
1.
Nur das fertige freedb.img, cddbd und ein Minimalscript auf eine CD packen (oder zum Download anbieten, falls jemand soviel freien Traffic übrig hat)
In diesem Fall müssen die Schritte

Code: Alles auswählen

- Dateien von CD in Import-Ordner kopieren
- per telnet auf HF einloggen
chmod 755 /audio/import/install_freedb.sh
./install_freedb.sh
noch von Hand ausgeführt werden. Ich denke, das wäre auch noch akzeptabel.

2.
Ein komplettes Mod-Image: Im Prinzip das gleiche wie 1., nur dass eben von CD gebootet wird und das Script automatisch ausgeführt wird.
Zur Erstellung des Images: Basis ist das modImage von dksoft. In rc.local wird dann zusätzlich install_freedb.sh ausgeführt.
Dieses Image muss dann entweder mit UltraISO oder etwas ähnlichem erstellt werden, dabei ist allerdings eine Vollversion vonnöten, die ich nicht habe. Oder man erstellt das Image mit dem HF selbst (mkisofs). Damit habe ich mich aber noch nicht beschäftigt.

Letzte Anmerkung:
Die FreeDB in der Win-Version ist ja wie gesagt noch nicht perfekt, da fehlerhafte Einträge (leicht sichtbar z.B. beim Erstellen des fuzzy-Index). Bevor man sich also die Mühe macht, ein Image zu erstellen, sollte "jemand" erstmal das in Ordnung bringen.
Musikuss
Godfather of Hifidelio
Beiträge: 2040
Registriert: 03.02.2005 12:45
Wohnort: Rheinhessen

Beitrag von Musikuss »

Coole Idee, lanale, wie wäre es mit 12,25 € inkl. Porto für eine hübsch bedruckte DVD (auf eine CD passt die freedb als Bootdisk nämlich nicht mehr), die auch gleich als aktuelle Recovery-Disk funktioniert?

Im Januar kommt die nächste... ;)

Edit: Ich mach die Signatur mal aus ;)
gigi
Moderator
Beiträge: 2436
Registriert: 27.01.2005 21:11

Beitrag von gigi »

Musikuss hat geschrieben:Coole Idee, lanale, wie wäre es mit 12,25 € inkl. Porto für eine hübsch bedruckte DVD (auf eine CD passt die freedb als Bootdisk nämlich nicht mehr), die auch gleich als aktuelle Recovery-Disk funktioniert?
Im Januar kommt die nächste... ;)
Der Preis klingt schon ziemlich fair. Muss ich also, um die zu bekommen, ein Abo abschliesssen und dieses sofort nach Erhalt der ersten DVD wieder kündigen? Oder wie ist denn die aktuelle Mindestvertragslaufzeit?
Musikuss
Godfather of Hifidelio
Beiträge: 2040
Registriert: 03.02.2005 12:45
Wohnort: Rheinhessen

Beitrag von Musikuss »

gigi hat geschrieben:Der Preis klingt schon ziemlich fair. Muss ich also, um die zu bekommen, ein Abo abschliesssen und dieses sofort nach Erhalt der ersten DVD wieder kündigen? Oder wie ist denn die aktuelle Mindestvertragslaufzeit?
Ich war in der Tat so frei und habe den Abo-Preis durch die Anzahl der Disks geteilt, die man dafür erhält. Soweit ich aber weiß, geht das nur jahresweise.

Ich konnte auch noch nie verstehen, warum das als teuer oder gar "überteuert" bezeichnet wird. Ich glaube nämlich nicht, dass wir damit Gewinn machen, dafür ist die ganze Sache zuviel Theater.

Natürlich kann ich hingegen schon verstehen, wenn jemand einfach keine 49 Euro ausgeben will, egal ob der Preis fair ist oder nicht.
Verallgemeinerungen sind generell schlecht.
gigi
Moderator
Beiträge: 2436
Registriert: 27.01.2005 21:11

Beitrag von gigi »

Musikuss hat geschrieben:Ich konnte auch noch nie verstehen, warum das als teuer oder gar "überteuert" bezeichnet wird.
Es muss natürlich jeder für sich selbst entscheiden, was einem zu teuer ist.
Wenn ich es nicht selbst updaten könnte, würde ich für mich mal sagen: 15 oder 20 Euro für so eine Update-DVD nach einem vollen Jahr würde ich ohne groß zu überlegen springen lassen. De fakto kostet mich es aber 49 Euro - und jedes Vierteljahr brauche ich halt definitiv kein Update.

Wo wir beim Thema sind, einen Gruß an die Marketing-Abteilung:
Irgendjemand (halsband?) hat vor kurzem nebenbei erzählt, dass das Abo dieses Jahr kostenfrei erfolgte, als "Wiedergutmachung" für die diversen Update- und Software-Probleme. Ein ganz hervorragender Zug von euch, leider bekommt so etwas keiner mit, der das Abo nicht hatte.
Und wenn ihr euch schon entschieden habt, das Abo dieses Jahr faktisch zu verschenken, dann könntet ihr jetzt das aktuelle Image auch zum Download freigeben. *Das* wäre Marketing! Die SW-Probleme hatten nämlich nicht nur Abo-CD-Empfänger, sondern alle Hifidelio-Besitzer.
Und bevor jetzt wieder was von Traffic-Kosten kommt: Ich wette, hier im Forum findet sich eine Lösung.
Benutzeravatar
Halsband
Moderator
Beiträge: 1062
Registriert: 03.04.2005 07:40
Wohnort: Kasel bei Trier
Kontaktdaten:

Beitrag von Halsband »

gigi hat geschrieben:wenn ihr euch schon entschieden habt, das Abo dieses Jahr faktisch zu verschenken, dann könntet ihr jetzt das aktuelle Image auch zum Download freigeben...Die SW-Probleme hatten nämlich nicht nur Abo-CD-Empfänger, sondern alle Hifidelio-Besitzer
OK: Freie freedB-Updates für alle HF-User ! Einverstanden...da bin ich ganz bei Dir, Gigi - will ich auch !
Das das "Abo 2005" unberechnet bleiben soll, ist aber verständlich: Es war nähmlich bis jetzt keins: Erst kam monatelang garnichts, dann kam (Juli ?) eine Update-CD, die den Fiedel komplett zerschossen hat (Recovery notwendig) ... usw. ... dann kam wieder bis Oktober nichts Neues ... unterm Strich konnten die ABOs bis Oktober auch NUR die erste Ursprungs-freedB nutzen. Also im Prinzip ähnlich chaotisch wie es einigen Leuten auch mit der SW 2.0 ging. NUR: Dafür auch noch zusätzlich 49 Euronen (bzw. einem gedanklichen Hunni) zu kassieren, wäre doch nicht haltbar gewesen ... da ist schon ein kleiner Unterschied.
Trotzdem: Was toll für Leute ohne Netzzugang wäre: Ein Einzelabruf einer aktuellen freedB und/oder aktuellen Software-CD zu einem moderaten Preis ... dann wären auch z.B. 19,95 € als Einzelauftrag m.E. OK.

Gruss Dirk
... zur Zeit tatsächlich ohne echte Wünsche ... d.h. wann sollte der ST-64 kommen ?!
Musikuss
Godfather of Hifidelio
Beiträge: 2040
Registriert: 03.02.2005 12:45
Wohnort: Rheinhessen

Beitrag von Musikuss »

gigi hat geschrieben:Wenn ich es nicht selbst updaten könnte, würde ich für mich mal sagen: 15 oder 20 Euro für so eine Update-DVD nach einem vollen Jahr würde ich ohne groß zu überlegen springen lassen. De fakto kostet mich es aber 49 Euro - und jedes Vierteljahr brauche ich halt definitiv kein Update.
Ich kann das ja mal ansprechen.
Wo wir beim Thema sind, einen Gruß an die Marketing-Abteilung:
Irgendjemand (halsband?) hat vor kurzem nebenbei erzählt, dass das Abo dieses Jahr kostenfrei erfolgte, als "Wiedergutmachung" für die diversen Update- und Software-Probleme. Ein ganz hervorragender Zug von euch, leider bekommt so etwas keiner mit, der das Abo nicht hatte.
Soweit ich weiß, wurde die Juni-CD (nur die) nicht berechnet, da die freedb nicht funktioniert hat (wegen der squashfs-Probleme, die nicht gleich aufgefallen sind). Und die hatte definitiv NICHT jeder, sondern eben nur die Abo-Kunden.

Falls noch mehr umsonst war, hat mir das niemand gesagt. Werde mich mal erkundigen, ob das stimmt und was der Hintergrund ist.
Verallgemeinerungen sind generell schlecht.
Antworten