kompilieren
Datenübertragung zwischen Ubuntu und Casio fx-9860G
Ich habe für die Schule einen grafikfähigen Taschenrechner, Casio fx-9860G. Dieser hat eine USB-Schnittstelle, so dass man darüber Programme und Spiele auf den Rechner übertragen kann. Die von Casio für die Übertragung mitgelieferte Software gibt es leider nur für Windows, sodass man sich unter Ubuntu eine andere Lösung suchen muss. In diesem Artikel möchte ich meinen Lösungsweg zur Installation der Software xfer9860 beschreiben.
Die Software befindet sich leider nicht in den Paketquellen, und es sind auch keine *.deb Pakete verfügbar. Deshalb müssen wir uns die Software selbst aus dem Quelltext kompilieren. Dazu werden verschiedene Pakete benötigt, die wir zuerst einmal installieren, dazu wechseln wir ins Terminal.
sudo apt-get install build-essential libusb-dev scons
Als nächstes laden wir uns das aktuelle Quelltextarchiv von Sourceforge.net herunter. Dann wechseln wir in das Verzeichniss in das wir das Archiv heruntergeladen haben, entpacken es und wechseln in den entsprechenden Ordner.
<br />cd Downloads<br />tar -xjf xfer9860-0.2.1.tar.bz2<br />cd xfer9860-0.2.1<br />
Dann können wir das Programm kompilieren und nach /usr/bin verschieben, damit es vom Terminal aus immer verfügbar ist.
<br />scons -Q<br />sudo cp src/xfer9860 /usr/bin/xfer<br />
Damit ist das Programm vollständig installiert. Um jedoch mit dem Rechner zu kommunizieren, würde das Programm root-Rechte benötigen. Dies umgehen wir indem wir eine entsprechende udev-Regel anlegen.
<br />echo "SUBSYSTEMS=="usb", ATTRS{idVendor}=="07cf", ATTRS{idProduct}=="6101", MODE:="666"" | sudo tee /etc/udev/rules.d/20-casio-gtr.rules<br />sudo service udev reload<br />
Damit ist das Programm vollständig installiert und sollte einsatzbereit sein. Das können wir überprüfen indem wir den Taschenrechner über USB an den Computer anschließen. Der Rechner fragt nach der Art des Anschlusses, diese bestätigen wir mit [F1] Datenübertragung. Die Verbindung wird durch folgenden Befehl geprüft.
xfer -i
Wenn hierbei keine Fehler auftreten, war die Installation erfolgreich und man kann Dateien an den Rechner übertragen, wenn man vorher den Rechner wieder in Empfangsmodus bringt.
xfer -u datei.G1A datei.G1A
32-Bit executable mit 64-Bit gcc erzeugen
Manchmal ist es erforderlich, auf einem 64-Bit System für ein 32-Bit System zu kompilieren. Das ist grundsätzlich auch ganz einfach, wenn man jedoch nicht aufpasst handelt man sich schnell neue Probleme ein.
Unter Ubuntu benötigt man neben dem obligatorischen gcc/g++ noch die entsprechenden Multilibs. Wenn diese noch nicht vorhanden sind können sie über die Paketverwaltung nachinstalliert werden.
sudo apt-get install gcc-multilib g++-multilib
Wenn alle Pakete richtig installiert sind, kann ein C oder C++ Programm einfach mit dem Parameter -m32 für 32-Bit Systeme kompiliert werden. Zum Beispiel.
gcc -m32 -o helloworld helloworld.c g++ -m32 -o helloworld helloworld.cpp
Diese Option kann auch in der jeweiligen IDE, bei mir CodeBlocks, eingetragen werden. Dabei muss man jedoch aufpassen, wenn die IDE gcc zweimal aufruft, einmal zum kompilieren und einmal zum linken, muss die -m32 Option auch beim Linker eingefügt werden, damit er 32-Bit Bibliotheken dazu linkt.