Wer kennt es nicht? Da machen wir uns ein Backup-Image von unserer DGT Pi SD-Karte und wenn wir anschließend das Backup auf eine neue SD-Karte mittels Win 32 Disk Imager spielen wollen, bekommen wir die Meldung, dass das Image für die vorhandene Karte zu groß ist.
In meinem Beispiel habe ich ein Image einer 8 GB SD-Karte erzeugt und möchte das Image auf eine neue 8 GB SD-Karte schreiben. Theoretisch sollte das kein Problem sein, allerdings haben die Hersteller von SD-Karten unterschiedliche Ansichten, wie viele Sektoren zur Verfügung gestellt werden sollen. Hierbei kann auch die verwendete Hardware beim Erstellen eines Images eine Rolle spielen, jedoch wollen wir hier nicht allzu weit ins Detail gehen. Was nun?
Um die Sache zu lösen, müssen wir das Problem kurz beschreiben. Wir haben eine 8 GB SD-Karte, auf welcher neben dem Betriebssystem unser PicoChess läuft. Die SD-Karte ist bei Weitem noch nicht voll. Trotzdem erzeugt das Programm Win 32 Disk Imager ein 8 GB großes Image, denn bei diesem Image handelt es sich um ein komplettes Abbild der 8 GB SD-Karte und hierzu gehört auch der ungenutzte Bereich.
Mit gerade mal 2 Befehlen können wir diesen ungenutzten Bereich aus der Image-Datei entfernen. Voraussetzung hierzu ist ein laufendes Linux-System mit Shell-Zugriff. Wir kopieren unsere „zu große“ Image-Datei in unserem Home-Ordner und geben anschließend folgenden Befehl ein:
sudo fdisk -lu MeinImage.img
Anschließend bekommen wir folgende Ausgabe:
Disk MeinImage.img: 8053 MB, 8053063680 bytes 255 heads, 63 sectors/track, 979 cylinders, total 15728640 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb86a005b
Device Boot Start End Blocks Id System MeinImage.img1 8192 93813 42811 c W95 FAT32 ( LBA) MeinImage.img2 94208 7796735 3851264 83 Linux
Uns interessiert in diesem Fall die hier fett gedruckte Zahl (Sektoren). Diese kann natürlich bei euch anders sein. 🙂 Wenn wir diese Sektoren-Zahl nun mit 512 Bytes multiplizieren, erhalten wir die mit Daten beschriebene Größe der Image-Datei.
Also 7796735 * 512 = 3991928320
Dies bedeutet, dass unser 8 GB-Image eigentlich nur 3,9 GB Daten enthält. Alle Sektoren nach 7796735 sind praktisch leer und können entfernt werden. Dies machen wir mit folgendem Befehl:
Ganz wichtig!!! Die Zählung der Sektoren beginnt bereits ab 0 (Null), weshalb wir an unsere End-Sektorenzahl noch ein +1 setzen müssen.
Wurde dieser Befehl korrekt ausgeführt, ist die neue Größe der Image-Datei 3,9 GB. Kopieren wir dieses Image zurück auf unseren Windows-Rechner, können wir nun mit dem Programm Win 32 Disk Imager dieses Image problemlos auf eine 8 GB SD-Karte schreiben. Eine 4 GB-SD-Karte würde auch langen.
Hinweis:
Wenn das mit dem Schreiben des Images auf eine neue SD-Karte (8 GB) geklappt hat und man wieder die vollen 8 GB zur Verfügung haben will, müssen wir uns nach dem Hochfahren des DGT Pi per SSH mit dem DGT Pi verbinden und folgenden Befehl ausführen:
raspi-config --expand-rootfs
Nun stehen uns die vollen 8 GB der SD-Karte beim PicoChess zur Verfügung 🙂
An der Leela Chess Zero Schachengine bastelt die Schach-Community nun schon eine ganze Weile. Genauso wie der große Bruder Alpha Zero, zieht die Engine Leela Chess Zero ihre Spielstärke aus vielen „Trainings“-Partien. Diese Engine lernt das Schachspielen durch Erfahrungswerte, um es oberflächlich auszudrücken.
Dank der Arbeit von Al und Jürgen, läuft diese Engine nun auch auf dem DGT Pi / PicoChess. Hier nun eine Schritt für Schritt Anleitung, wie man diese spannende Engine auf dem DGT Pi / PicoChess zum Laufen bekommt:
Zunächst müssen wir unseren DGT Pi mit dem Internet/Intranet verbinden. Dies geht am Einfachsten, indem man den DGT Pi mit einem RJ45-Kabel (LAN-Kabel) mit dem Router verbindet. Startet man nun den DGT Pi, erhalten wir über das System-Menü an der Uhr die IP-Adresse des DGT Pi.
Nun starten wir das Programm Putty und verbinden uns mit dem DGT Pi, indem wir dessen IP-Adresse in das entsprechende Feld eintragen und „Open“ anklicken. Als Benutzernamen geben wir pi ein und als Passwort picochess.
Um die Engine zum Laufen zu bekommen, müssen wir bei unserem DGT Pi einige Sachen nachinstallieren. Da ständig neue Versionen der notwendigen Installationspakete veröffentlicht werden und ältere Pakete nicht mehr verfügbar sein können, ist es zunächst wichtig, dass wir unsere Paket-Liste im DGT Pi auf den neusten Stand bringen. Hierzu führen wir folgenden Befehl aus:
sudo apt-get update
Ist das Update durchgelaufen, können wir mit der Installation der Pakete beginnen. Bitte folgenden Code komplett kopieren und in das Putty-Shell-Fenster hineinkopieren und mit der Enter-Taste ausführen:
Der Installations-Assistent wird uns ein paarmal fragen, ob wir mit der Installation des einen oder anderen Paketes einverstanden sind, was wir natürlich bejahen. Auf Grund der Vielzahl der Pakete und der doch nicht geringen Größe, kann das Installieren durchaus 20 Minuten Zeit in Anspruch nehmen.
Wurde die Installation erfolgreich beendet, laden wir uns die von Al Scally Cooper compilierte Engine Leela Chess Zero herunter:
Nach dem Entpacken der ZIP-Datei, haben wir eine Datei namens lczero auf dem Rechner. Diese Datei müssen wir nun in den Engine-Ordner auf unserem DGT Pi kopieren. Um dies halbwegs komfortabel zu machen, verwenden wir zum Hoch- und Herunterladen von Dateien die Software FileZilla.
Wer dieses Programm noch nicht auf dem Rechner hat, sollte es spätestens jetzt installieren und starten. Oben links können wir eine Schnellverbindung zu unserem DGT Pi aufbauen, indem wir die IP-Adresse des DGT Pi eingeben, den Port 22 wählen und die bekannten Zugangsdaten Benutzer: pi Passwort: picochess verwenden.
Hat alles geklappt, befinden wir uns im rechten Teil des Fensters in unserem Home-Ordner. Wir wechseln nun in folgenden Ordner:
/opt/picochess/engines/armv7l
Nun ziehen wir die auf unserem Computer befindliche entpackte Datei lczero in diesen Ordner. Der nun folgende Schritt wird gerne vergessen. Zwar befindet sich die Datei nun im richtigen Verzeichnis, aber für das System ist es einfach nur eine Datei, mehr nicht. Da es sich bei lczero um ein Programm handelt, welches das System ausführen muss, müssen wir der Datei die entsprechende Berechtigung geben. Wir klicken hierzu im Filezilla mit der rechten Maustaste auf die Datei und wählen den Menüpunkt Dateiberechtigungen. In dem sich nun öffnenden Fenster setzen wir die Häkchen so, wie auf dem hier gezeigten Bild:
Jetzt noch mit OK bestätigen. Als nächstes müssen wir die Engine noch in unsere Engine-Liste eintragen. Hierzu klicken wir auf die im selben Ordner /opt/picochess/engines/armv7l befindliche Datei engines.ini mit der rechten Maustaste und wählen im Menü Ansehen/Bearbeiten. Die Datei sollte nun in einem Editor geöffnet sein. Wir gehen ans Ende der Datei und geben folgende Zeilen ein:
[lczero] name = lczero v0.10 small = lczero medium = lczero large = lczero 0.10 elo = 2700
Das Ganze speichern wir ab und übertragen die Datei zurück in den Ordner. Sollte FileZilla fragen, ob wir die bestehende Datei überschreiben wollen, bestätigen wir das natürlich.
Nun kommen wir zu zu dem besonderen Teil. Damit Leela Chess Zero Schach spielen kann, benötigt es „Wissen“. Dieses Wissen erhält Leela Chess Zero durch unzählig gespielte Partien und wird in sog. Weights-Dateien abgespeichert. Zum Spielen ist immer nur eine Weights-Datei notwendig. Unter folgendem Link könnt ihr euch eine große Auswahl an Weights-Dateien herunterladen:
Nach dem Herunterladen müssen wir die Datei noch in weights.txt umbenennen.
Nun gehen wir wieder zurück ins FileZilla-Fenster und wechseln auf unserem DGT Pi in den Ordner
/opt/picochess
In genau diesen Ordner müssen wir nun die Datei hineinkopieren. Manche Weights-Datei kann unter Umständen 60-100 Megabyte groß sein. Es kann mit dem Kopieren als etwas dauern.
Ist auch dieser Schritt geschafft, kommen wir zum Finale. 🙂
Wir gehen zurück ins Putty-Fenster und geben folgenden Befehl ein:
sudo reboot now
Der DGT Pi startet nun neu und wenn wir nun einen Blick in die Engine-Auswahl werfen, sehen wir, dass uns mit lczero 0.10 ab sofort die Engine Leela Chess Zero zur Verfügung steht.
WICHTIG! >>> Wenn wir nun diese Engine auswählen, kann es durchaus 15 bis 20 Sekunden dauern, bis die Rückmeldung EngineOK im Display erscheint. Also nicht die Geduld verlieren und wild auf den Knöpfen des DGT Pi herumdrücken. 😉
Eurer ersten Partie gegen diese wirklich interessante Engine kann nun starten. Eine direkte Spielstärken-Einstellung der Engine gibt es nicht. Allerdings kann man sich anhand der oben genannten Links eine für die eigene Spielstärke passende Weights-Datei herunterladen und auf diese Weise die Spielstärke heben und senken. Hierzu einfach die auf dem DGT Pi befindliche weights.txt austauschen.
Mit der offenen Schnittstelle des Chess-Link hat die Firma Millennium 2000 die richtige Richtung eingeschlagen. Wie der Geschäftsführer Thomas Karkosch mitteilt, wird die Dokumentation der Schnittstelle sowohl für professionelle Entwickler, als auch für interessierte Hobby-Programmierer zur Verfügung gestellt. Während der Erprobungsphase richtet das Unternehmen allerdings zunächst seinen Blick und seine Unterstützung bei der Verwendung der Schnittstelle auf Unternehmen, welche Interesse haben, ihre bereits bestehende Schach-Software um die Möglichkeiten des Chess-Link zu erweitern.
Das Bereitstellen einer offenen Schnittstelle bedeutet für das Unternehmen zusätzliche Support-Arbeit. Laut Herrn Karkosch will man diesen Service in Zukunft auch den Hobby-Programmierern anbieten.
Der DGT Pi bietet bereits im Auslieferungszustand eine gute Auswahl an Eröffnungsbüchern. Wie man weitere Eröffnungsbücher generiert und diese in im DGT Pi verfügbar macht, möchte ich in diesem Beitrag zeigen.
Bevor wir beginnen, benötigen wir ein paar und Dateien. Ich habe diese in ein ZIP gepackt, um euch die Suche zu ersparen. Dieses Zip einfach in einen Ordner entpacken und in diesen Ordner wechseln:
Selbstverständlich sollte sich unser DGT Pi zumindest im Intranet befinden, sodass wir darauf problemlos über SSH zugreifen können.
Unsere neuen Eröffnungsbücher werden aus Partien generiert, welche in PGN-Dateien gespeichert sind. Nehmen wir in unserem Beispiel einfach mal an, dass wir ein Buch aus Partien generieren möchten, welche ausschließlich von Spielern über 2500 ELO gespielt wurden. Sowohl auf der schwarzen Seite, als auch auf der Seite von Weiß. Woher bekommt man nun die Partien?
Ich habe vor langer Zeit einen TWIC-Downloader programmiert, mit welchem man sich jede Woche die neusten Partien herunterladen kann. Auch ältere Ausgaben kann man mit diesem Programm herunterladen und in einer PGN-Datei zusammenführen:
Hat man sich nun eine sog. Referenzdatenbank im PGN-Format erstellt, kann es mit dem Selektieren losgehen. Ich persönlich verwende hierzu das Programm Chessbase 14, aber auch kostenlose Datenbankprogramme wie etwa SCID, können verwendet werden. In meinem Beispiel beziehe ich mich aber ausschließlich auf Chessbase 14.
Wir öffnen also unsere PGN-Datei und sehen eine Vielzahl von Partien.
Wir benötigen nun sowohl für Schwarz, als auch für Weiß, eine separate PGN-Datei. Wir legen als zwei neue Datenbanken an und nennen Sie einmal BigBook_w.pgn und einmal BigBook_b.pgn
Jetzt beginnen wir mit dem Sortieren. Gehen wir zurück in unser Fenster mit den vielen Partien der Referenzdatenbank, klicken wir auf Liste filtern. Es öffnet sich ein entsprechender Dialog. Wir wählen aus, dass alle Partien von Weiß gewonnen sein müssen und alle Spieler mindestens 2500 ELO auf dem Konto haben müssen.
Klicken wir nun auf OK, werden die Partien entsprechend unseren Vorgaben gefiltert. Ist der Vorgang abgeschlossen, markieren wir alle gefilterten Partien mit der Tastenkombination Strg+a und legen Sie mit der Tastenkombination Strg+c in unseren Zwischenspeicher. Jetzt wechseln wir in unsere zuvor angelegte und noch leere Datenbank BigBook_w.pgn und legen die Partien aus dem Zwischenspeicher mit der Tastenkombination Strg+v dort hinein. Danach können wir dieses Partienfenster schließen und gehen zurück zu unserer Referenzdatenbank.
Hier wählen wir erneut Liste Filtern und ändern den Parameter Ergebnis nun auf 0-1. Das bedeutet, dass wir diesmal alle Partien möchten, in welchen beide Spieler mindestens 2500 ELO haben und Schwarz gewonnen hat. Wir prüfen noch schnell, ob beim ELO-Parameter auch die Option beide gewählt wurde und klicken auf OK.
Das Ergebnis legen wir wie oben beschrieben wieder in den Zwischenspeicher, öffnen unsere leere Datenbank BigBook_b.pgn und legen die Partien aus dem Zwischenspeicher dort hinwein.
Jetzt können wir unser Schachprogramm (Chessbase 14) schließen. Zuvor sollten wir uns allerdings noch merken, in welchem Ordner diese beiden von uns neu angelegten PGN-Datein sich befinden. Sobald das Schachprogramm geschlossen wurde, gehen wir in das Verzeichnis in welchem die beiden PGN-Daten liegen und kopieren diese beiden Dateien in unseren Ordner, in welchem die Programme die wir zuvor herunterladen haben liegen.
In dem selben Ordner liegt eine Datei namens: makebook.bat
Diese Datei bitte noch nicht starten, sondern mit der rechten Maustaste anklicken und mit einem Texteditor öffnen. Wir sehen folgenden Inhalt:
Was hier etwas verwirrend aussieht, lässt sich relativ leicht entschlüsseln. In der ersten Zeile rufen wir mit dem Programm pgn-extract unsere PGN-Datei für Weiß auf und lassen diese Bereinigen. Also alles was an unnötigen Kommentaren in den Partien drin steht, wird gelöscht. Das Ergebnis wird in einer PGN-Datei namens clean-SGM_white.pgn gespeichert. In der zweiten Zeile wird aus dieser PGN-Datei ein Eröffnungsbuch generiert, in welchem nur die weißen Züge gespeichert werden mit einer Tiefe von maximal 16 Halbzügen bei mindestens 50 Partien. In der dritten Zeile wird ein weiteres Eröffnungsbuch angelegt, in welchem allerdings eine Tiefe von maximal 60 Halbzügen bei mindestens 5 Partien vorhanden ist. In der vierten Zeile werden diese beiden Eröffnungsbücher miteinander verbunden. Dies gibt uns ein relativ gutes Buch, dass recht breit angelegt ist, aber nicht zu sehr in die Tiefe geht.
Das Gleiche geschieht auch mit unserem schwarzen Buch in den Zeilen 6 bis 9.
In Zeile 11 werden nun diese beiden Bücher (eins für Weiß und eins für Schwarz) zusammengeführt und unter dem Namen r-bigbook.bin gespeichert.
Der gesamte Vorgang kann bei großen Eröffnungsbüchern durchaus eine Weile dauern. Wenn alles erledigt ist, schauen wir in unseren Ordner mit den Programmen. Dort finden wir recht viele neue Dateien. Uns interessiert allerdings nur die Datei r-bigbook.bin
Es handelt sich um das Ergebnis unserer mühevollen Arbeit. Diese Datei muss nun auf unseren DGT Pi hochgeladen werden. Hierzu verbinden wir uns mit dem Programm Filezilla (andere FTP-Programme mit SSH-Option funzen ebenfalls) mit dem DGT Pi. Also oben IP Adresse des DGT Pi eingeben und Benutzer: pi und Passwort: picochess verwenden. Nachdem wir verbunden sind, gehen wir in den Ordner /opt/picochess/books
Nun ziehen wir die Datei r-bigbook.bin mit der Maus direkt in diesen Ordner. Das sollte nun etwa so aussehen:
In diesem Ordner liegt auch eine Datei namens books.ini – Diese müssen wir nun noch anpassen. Hierzu öffnen wir die Datei mit einem Texteditor und sehen etwas weiter unten folgenden Inhalt:
...
[o-pro.bin] small = pro medium = Pro large = Pro
[p-gm2001.bin] small = gm2001 medium = GM 2001 large = GM 2001
[q-sgm.bin] small = SGM medium = Super GM large = Super GM
Diesen Inhalt erweitern wir um folgende Zeilen:
[r-bigbook.bin] small = BigBook medium = Big Book large = Big Book
Wir speichern es ab und starten unseren DGT Pi neu. Wenn wir nun über das Menü des DGT Pi in die Buchauswahl gehen, finden wir unser neues Buch und können es auswählen und eine Partie starten:
Auf die oben beschriebene Weiße lassen sich alle möglichen Arten von Eröffnungsbüchern generieren. Beispielsweise arbeite ich mich seit einiger Zeit in das London System ein. Zu Trainingszwecken habe ich ein London-Buch generiert, welches auf dem aktuellen Stand der Theorie ist. Ein absolut tolles Trainingswerkzeug!
Selbstverständlich lassen sich auch Spieler-Charaktere als Eröffnungsbuch generieren. So kann man beispielsweise alle Partien von Magnus Carlsen mit Weiß und Schwarz als Eröffnungsbuch zusammenführen und kann praktisch gegen das Eröffnungsrepertoire von Magnus Carlsen spielen. 🙂
Diese kleine Anleitung kann natürlich nicht alle Möglichkeiten aufzeigen, welche beim Generieren von Eröffnungsbüchern vorhanden sind. Aber ich glaube es ist ein guter Einstieg und wer sich näher mit den einzelnen Funktionen beschäftigt, kann seiner Fantasie freien Lauf lassen.
Mit dem ChessGenius Exclusive Chess Link erhält der ChessGenius Exclusive nun endlich die schmerzlich vermisste Bluetooth-Schnittstelle, mit welcher eine Anbindung an Android, iOS und Windows-Systeme möglich ist. Die offene Schnittstelle ermöglicht jedem Programmierer die Einbindung in eigene Projekte. Ein sehr begrüßenswerter und logischer Schritt, nachdem die hauseigenen „Programmierer“ der Firma Millennium nicht gerade durch Usability in ihren Anwendungen glänzten. 😉
Geliefert wird dieses Modul mit einer kostenlosen Android-App inklusive dem Programm HIARCS, mit welcher man dann auch schon direkt loslegen kann. Beworben wird das bekannte Schachprogramm von Mark Uniacke mit den Worten „…gilt als eine der spielstärksten Schach-Engines der Welt…„. Wie schon beim ChessGenius Exclusive, ist man sich bei der Werbeabteilung für keine Übertreibung zu schade. 🙂 – Natürlich ist HIARCS ein starkes Schachprogramm, jedoch kommt es im Bezug auf die Spielstärke an viele kostenlose Engines, wie beispielsweise Stockfish, nicht heran. Das muss es aber auch nicht. HIARCS bietet einen wunderschönen Spielstil, welcher für abwechslungsreiche Partien sorgt und immer wieder mit spektakulären Opfern um die Ecke kommt.
Genau damit hätte die „Werbeabteilung“ von Millennium punkten können. Schnelle Autos gibt es wie Sand am Meer, aber gutes Fahrgefühl haben nur Wenige.
Selbstverständlich werden wir auch dieses Produkt aus dem Hause Millennium wieder auf den Prüfstand stellen und einen Produkttest in unserem YouTube-Kanal veröffentlichen. Bezüglich des Preises bin ich allerdings schon jetzt der Meinung, dass die unverbindliche Preisempfehlung des Herstellers in Höhe von 99,-€ durchaus in Ordnung geht. Als kleines Schmankerl für unsere Kunden, gibt es das Modul bei uns für kurze Zeit zum Einführungspreis von 79,-€ unter:
Mit dem DGT Schachcomputer entwickelt der niederländische Marktführer aktuell einen wohl einzigartigen Schachcomputer. Einen offiziellen Namen hat das Gerät noch nicht, aber auf der Spielwarenmesse in Nürnberg konnten wir einen ersten Prototypen begutachten.
Mit dem DGT Pi konnten die Entwickler schon Einiges an Erfahrung sammeln. Angeschlossen an ein DGT-Brett, bietet dieses Gerät alles, was das Schachcomputerherz sich wünscht. Fehlende Feld-LEDs kann man hier durchaus verschmerzen.
Feld-LEDs wird der Ende Sommer kommende DGT Schachcomputer aber auf jeden Fall haben und hier zeigt sich sehr schön, dass die Firma DGT immer wieder sehr elegante Lösungen präsentiert. Unterhalb der einzelnen Felder sind LED-Leuchtringe angebracht, welche bei Aktivierung durch die einzelnen Felder hindurch leuchten. Das sieht schon sehr futuristisch aus.
Neue Wege ist man auch beim Display gegangen. Wurde hier bei der Konkurrenz bisher immer auf LCD-Displays gesetzt, nutzt DGT die neuste E-Ink-Technik, wie man sie von E-Book-Reader wie beispielsweise dem Kindle kennt. Das hat nicht nur stromsparenden Vorteil, sondern bietet auch die Möglichkeit, den Schachcomputer bei hellstem Sonnenschein im Freien zu verwenden. Alle Informationen lassen sich problemlos vom Display ablesen. Gut vorstellbar, dass über dieses Display auch Schachaufgaben und sonstiges Training verfügbar sein wird.
Bezüglich des eingesetzten Schachprogramms wird es wohl 3 verschiedene Spiel-Modi geben. Eine echte Neuerung ist die Idee, dass der Schachcomputer im ersten Modus im Schnitt mehr Partien gegen seinen menschlichen Gegner verlieren wird, als gewinnen. Der Schachcomputer passt sich hierbei sehr intelligent Partie für Partie an die Spielstärke des Gegners an. Auf jeden Fall gerade für ungeübte Schachspieler eine sehr motivierende Idee. Im zweiten Modus geht es dann etwas mehr zur Sache und erfahrene Vereinsspieler werden hier einen optimalen Sparringspartner haben. Im dritten Modus wird das Können des Schachprogramms dann komplett ausgereizt.
Auf eine direkte Figurenerkennung wie man sie von DGT Brettern kennt, wird allerdings verzichtet. DGT stellt aber auch hier eine innovative Neuerung vor. Der Schachcomputer reagiert auf Figuren, welche Metall beinhalten. Üblich war bisher, dass Figuren einen Magneten im Sockel haben und der Schachcomputer auf diese Magneten reagierte. Beim DGT Schachcomputer reichen normal gewichtete Figuren aus, damit diese erkannt werden. Mit dieser Technik ist es möglich, jeden beliebigen Satz gewichteter Figuren für das Spielen zu verwenden. Eine tolle Sache!
Sobald uns ein erstes Testgerät vorliegt, werden wir den neuen Schachcomputer selbstverständlich auf Herz und Nieren Testen und einen Produkttest auf unserem YouTube-Kanal bereitstellen. 🙂