OpenCBM für Linux kompilieren

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Diese Anleitung setzt die Kenntnisse folgender Seiten voraus[Bearbeiten | Quelltext bearbeiten]

Pakete[Bearbeiten | Quelltext bearbeiten]

Folgende Pakete werden benötigt:

  • build-essential (enthält Programmwerkzeuge zum kompilieren)
  • linuxdoc-tools (konvertiert LinuxDoc-SGML-Quellcode in andere Formate)
  • git (wird gebraucht um den aktuellen OpenCBM-Quellcode runter zu laden)

Die Pakete können mit folgendem Befehl über die Kommandozeile (später auch Shell genannt) installiert werden:

sudo apt-get install build-essential linuxdoc-tools git libusb-dev

Quellcodes runter laden[Bearbeiten | Quelltext bearbeiten]

cc65[Bearbeiten | Quelltext bearbeiten]

Um OpenCBM zu kompilieren, braucht man noch cc65, der auf ftp://ftp.musoftware.de/pub/uz/cc65/ zu finden ist. Wichtig ist es, die Version 2.13.2 zu benutzen. Diese kann mit dem Wget-Befehl über die Shell runter geladen werden:

wget ftp://ftp.musoftware.de/pub/uz/cc65/cc65-sources-2.13.2.tar.bz2

Die Datei befindet sich nun im home-Verzeichnis.

Quellcode-Archiv entpacken

Über die Shell entpackt man dann das tar.bz2-Archiv:

tar xzvf <Dateiname>

OpenCBM[Bearbeiten | Quelltext bearbeiten]

Den OpenCBM-Quellcode bezieht man von der SourceForge Projektseite. Dabei bieten sich an

git clone git://opencbm.git.sourceforge.net/gitroot/opencbm/opencbm

herunter zu laden.
Ein Archiv muss dann noch mittels (z.B.)

tar xvfz opencbm-0.4.2-src.zip

expandiert werden.

Quellcodes kompilieren[Bearbeiten | Quelltext bearbeiten]

cc65[Bearbeiten | Quelltext bearbeiten]

Nun wechselt man in der Shell in das Quellcode-Verzeichnis cc65 und kompiliert es mit dem Befehl:

make -f make/gcc.mak

Danach installiert man das Kompilat mit:

sudo make -f make/gcc.mak install

OpenCBM[Bearbeiten | Quelltext bearbeiten]

In das Quellcode-Verzeichnis opencbm (bzw. mit der entsprechenden Version im Namen) wechseln, welches zuvor im home-Verzeichnis des Benutzers durch den Download (und Entpacken des Archivs) angelegt wurde.

cd /home/<benutzername>/opencbm/opencbm

Dort führt man zum Kompilieren folgenden Shell-Befehl aus:

make -f LINUX/Makefile

Nun kann man OpenCBM installieren:

sudo make -f LINUX/Makefile install
sudo make -f LINUX/Makefile install-all
sudo insmod /home/<benutzername>/opencbm/opencbm/sys/linux/cbm.ko

OpenCBM konfigurieren und Kernel-Module laden[Bearbeiten | Quelltext bearbeiten]

XM1541[Bearbeiten | Quelltext bearbeiten]

XA1541[Bearbeiten | Quelltext bearbeiten]

XU1541[Bearbeiten | Quelltext bearbeiten]

Konfiguration[Bearbeiten | Quelltext bearbeiten]

Danach kopiert man die Datei 45-opencbm.rules aus dem Quellordner /opencbm/xu1541/udev mit Rootrechten nach /etc/udev/rules.d. Dazu benutzt man diesen Befehl:

cp /home/<benutzername>/opencbm/xu1541/udev/45-opencbm.rules /etc/udev/rules.d

Kernel-Modul laden[Bearbeiten | Quelltext bearbeiten]

Nun müssen noch die Kernel-Module geladen werden. Dazu gibt man folgende Befehle ein:

sudo depmod
sudo modprobe parport
sudo rmmod lp
sudo modprobe cbm

Falls bei sudo rmmod lp eine Fehlermeldung kommt, dann üblicherweise deswegen, weil dieses Modul nicht geladen war. Sie kann dann ignoriert werden.

Sonstige Hinweise[Bearbeiten | Quelltext bearbeiten]

Es sollte vermieden werden, beim XU541 das USB-Kabel an ein Frontpanel anzuschließen, da dies zu Störungen führen kann.

XUM1541[Bearbeiten | Quelltext bearbeiten]

Konfiguration[Bearbeiten | Quelltext bearbeiten]

Mit Root-Rechten im Verzeichnis /etc/udev/rules.d/ die Datei 45-opencbm.rules mit folgendem Inhalt anlegen:

SUBSYSTEM!="usb_device", ACTION!="add", GOTO="opencbm_rules_end"

# zoom floppy

SYSFS{idVendor}=="16d0", SYSFS{idProduct}=="0504", GROUP="users"

LABEL="opencbm_rules_end"

Kernel-Modul laden[Bearbeiten | Quelltext bearbeiten]

Nun müssen noch die Kernel-Module geladen werden. Dazu gibt man folgende Befehle ein:

sudo depmod
sudo modprobe parport
sudo rmmod lp
sudo modprobe cbm

OpenCBM testen und Anwendung[Bearbeiten | Quelltext bearbeiten]

Test[Bearbeiten | Quelltext bearbeiten]

Testen, ob es funktioniert, kann man mit dem Befehl:

cbmctrl detect

Grundbefehle[Bearbeiten | Quelltext bearbeiten]

cbmctrl dir 8
d64copy --transfer=auto 8 "foo.d64"
  • Datei kopieren
cbmcopy --quiet --no-progress --transfer=auto -r 8 "foo" -output="foo.prg"
  • Diskette nach BAM auslesen
d64copy -b --transfer=auto 8 "foo.d64"

Links[Bearbeiten | Quelltext bearbeiten]