Skip to content

Latest commit

 

History

History
198 lines (129 loc) · 10.6 KB

README.de.md

File metadata and controls

198 lines (129 loc) · 10.6 KB

#Experimentelle Firmware

von Travis Goodspeed, KK4VCZ

##Vorwort Diese Seite versucht die experimentelle Firmware für das Tytera MD-380/Retevis RT-3 zu dokumentieren, die Features zu erläutern und die Installation zu erklären.

Übersetzung durch Kim - DG9VH

##Installation Nachfolgende Schritte beziehen sich ausschließlich auf die Vorgehensweise unter Linux. Auf anderen Betriebssystemen kann entsprechend eine andere Vorgehensweise notwendig werden.

###Voraussetzungen zur Installation Um das Github-Repository von Travis Goodspeed auf den eigenen Rechner zu bekommen und komfortabel Aktualisierungen einspielen zu können, ist die Installation des Programmpakets git notwendig. Ebenfalls sind zur erfolgreichen Übersetzung die Pakete gcc sowie die build-essentials wie auch ein arm-none-eabi Cross Compiler notwendig.

Ebenso sind zur Nutzung folgende Pakete erforderlich:

####Automatische Installation der benötigten Pakete

Debian Stretch:

apt-get install gcc-arm-none-eabi binutils-arm-none-eabi libusb-1.0 python-usb

Debian Jessie:

apt-get install gcc-arm-none-eabi binutils-arm-none-eabi libusb-1.0 git \
                make curl python-pip unzip
pip install pyusb -U # update PyUSB to 1.0

###Git-Repository klonen Mit dem Kommando git clone https://github.com/travisgoodspeed/md380tools.git wird in das aktuelle Verzeichnis eine aktuelle Kopie des Repositories erzeugt. Um dieses hin und wieder zu aktualisieren, braucht man im beim clone durch git angelegtem Verzeichnis nur ein git pull auszuführen.

###Berechtigungen zur Nutzung der USB-Schnittstelle Unter Linux ist es erforderlich, wenn man die Tools nicht immer mit 'sudo' als root ausführen möchte, dass die Datei 99-md380.rules im Hauptverzeichnis des Repositories nach /etc/udev/rules.d/ kopiert wird.

###Firmware übersetzen Um die Firmware zu übersetzen, führt man im obersten Verzeichnis des geklonten Repositories den Befehl

make

aus.

Möchte man nach der Übersetzung gleich die neue Firmware in das Funkgerät flashen, so schaltet man das Funkgerät mit gedrückter PTT-Taste und der oberen Funktionstaste in den Flash-Modus, schließt es mit dem Programmierkabel am Computer an und ruft den Befehl make flash auf.

Firmware mit dem Tytera Updater einspielen: Die gepatchte Firmware lässt sich auch mit dem Tytera Updater unter Windows ins Funkgerät flashen. Hierzu nimmt man einfach die ''experiment.bin'' aus dem Verzeichnis ''applet'' und spielt diese mit dem Updater ein.

##Bisher verfügbare Features ###Freischaltung des Empfangs aller Talkgroups und Private Calls Die Firmware bietet seit Anfang an die Möglichkeit, sämtliche Talkgroups eines Repeaters, also nicht nur diejenigen, die in einer RX-Grouplist aufgeführt werden, sowie alle Private Calls, egal an welche ID, zu empfangen. Diese Funktion bietet die Möglichkeit, neben der Orientierung auf fremden Repeatern auch einen Bug der original Firmware ein wenig zu umgehen: Das Ignorieren des Admit Kriteriums. Durch die Tatsache, dass nun jede Talkgroup gehört werden kann, können Kollisionen mit anderen Signalen händisch vermieden werden.

###Verbesserter Zeichensatz Ebenfalls wurde der verwendete Zeichensatz der originalen Firmware durch einen wesentlich besser lesbaren Zeichensatz ersetzt. Hierdurch erfährt das recht billig wirkende Gerät einen echten Akzeptanz-Schub (durch die Optik der Darstellung).

###Einbindung eines eigenen Einschaltlogos Um ein eigenes Einschaltlogo (Welcome-Screen) zu aktivieren, muss man zunächst auf einem Linux-Rechner das Repository clonen. Ist dies geschehen, beginnt zunächst der kreative Part: Man öffnet ein Bildbearbeitungsprogramm, welches Grafiken im PPM-Format speichern kann - zum Beispiel (https://www.gimp.org) Gimp. Mit diesem Programm erzeugt man sich eine Grafik im 16-Farben-Modus und der Auflösung 160x40 Pixel. Hier kann man sich uns seiner Kreativität dann freien Lauf lassen.

Ist der kreative Teil erledigt, speichert man, wie erwähnt, die Grafik im PPM-Format, als Beispiel jetzt mal unter dem Namen "0x80f9ca8-eigenes_logo.ppm" und öffnet diese in einem Hex-Editor, um entsprechende Kopfinformationen zu editieren.

Man ersetzt die Passage:

P6

# CREATOR: GIMP PNM Filter Version 1.1

160 40

255

durch

P6

# MD380 address: 0x80f9ca8

# MD380 checksum: -941681526

160 40

255

Einige Beispiele fertiger ppm-Dateien, die man als Einschaltlogo verwenden kann, findet man im Repository im Verzeichnis ''md380tools/patches/2.032''.

Nach den besagten Änderungen kopiert man die bearbeitete PPM-Datei in das Verzeichnis ''md380tools/patches/2.032'' und trägt die Grafikdatei in das Makefile ein, indem man folgende Zeile einfügt und die entsprechend voerher aktive Zeile mit einer # auskommentiert:

../../md380-gfx --firmware=patched.img --gfx=0x80f9ca8-eigenes_logo.ppm relocate

Ist dies erledigt, kann man im Grunde im Verzeichnis md380tools, nachdem man das Funkgerät per drücken der PTT und der oberen Menütaste beim Einschalten in den Flash-Mode geschaltet hat und das Programmierkabel an das Funkgerät wie auch an den PC angesteckt hat, per

make flash

zum einen die Firmware kompilieren und danach automatisch in das Funkgerät reinflashen.

Sollte man mit der Grafik alles richtig gemacht haben, sollte man nun beim Einschalten sein eigenes Logo zu sehen bekommen.

####Bereitstellung des Kommandozeilen-Tools md380-tool Mit dem md380-tool können verschiedene Interaktionen mit dem Funkgerät über das USB-Programmierkabel vorgenommen werden. Nachfolgend eine kleine Erläuterung der Kommando-Parameter, die hinter den Programmaufruf gesetzt werden (Beispiel: ''md380-tool calllog''):

Parameter Verwendung
calllog Ausgabe eines Logs eingehender DMR-Anrufe auf der Standard-Ausgabe
lookup 12345 Ausgabe der Namensinformationen zu einer DMR-ID (hier 12345)
dmesg Ausgabe des dmesg-Logs
dmesgtail fortlaufende Ausgabe des dmesg-Logs
c5000 Ausgabe des c5000 Basisband-Registers
findcc Sucht innerhalb einer DMR-Aussendung nach entsprechend verwendeten Color-Codes
messages Ausgabe aller eingegangenen und ausgegangenen Textnachrichten
keys Ausgabe aller Schlüssel
spiflashid Ausgabe des SPI Flash-Typs
flashdump <dateiname.bin> Ausgabe des gesamten Flash-Speichers in eine Datei <dateiname.bin>
spiflashdump Ausgabe des gesamten SPI-Flashabbildes (16 Megabyte)
coredump <dateiname.bin> Ausgabe des Kern-RAMs
hexdump <0xcafebabe> Einmalige Ausgabe eines Hexdumps einer Speicheradresse (hier <0xcafebabe>)
hexwatch Fortlaufende Ausgabe eines Hexdumps einer Speicheradresse (hier <0xcafebabe>)
readword <0xcafebabe> Ausgabe eines Speicherwortes (hier an der Adresse <0xcafebabe>)
dump <dateiname.bin> Schreib ein 1kB großes Abbild ab der angegebenen Adresse
spiflashwrite Kopiert die angegebene Datei an die angegebene Speicheradresse des SPI-Flashspeichers
wc -c < db/users.csv > data ; cat db/users.csv >> data && md380-tool spiflashwrite data 0x100000 Kopiert die User-Datenbank aus dem Repository in den SPI-Flashspeicher an die Adresse 0x100000

###Erweitertes Menü mit weiteren Funktionen Die Firmware besitzt einen neuen Menüpunkt im Menü "Utilities" namens "MD380Tools". Diese Funktionen sind größtenteils nur in der UHF-Version (70 cm-Version) der Geräte nutzbar.

Die dort aufgeführten Menüpunkte wären derzeit folgende (mit nachfolgender Beschreibung)

Menüpunkt Funktion
M. RogerBeep Schaltet den modifizierten Roger-Piep ein oder aus
Date format Hier kann zwischen der originalen Schreibweise und der deutschen Schreibweise des Datums umgeschaltet werden
UsersCSV Aktiviert/deaktiviert die im SPI-Flash einspielbare User-Datenbank (DMR-ID-Datenbank der DMR-MARC-Datenbank)
Debug Aktiviert/deaktiviert den Debug-Modus
Promiscuous Aktiviert/deaktiviert (aktuell noch nicht getestet von mir) die Monitoring-Funktion (siehe Freischaltung des Empfangs aller Talkgroups und Private Calls)
Mic bargraph Aktiviert die Modulations-Aussteuerungs-Anzeige
Edit DMR-ID Ändern der DMR-ID des Funkgerätes
Experimental Ändert bis zum nächsten Ausschalten des Gerätes das Verhalten, dass das Menü nicht geschlossen wird, wenn ein Signal empfangen wird.

###Aktivierung der User-Datenbank Wichtiger Hinweis: Diese Funktion sollte nur auf Funkgeräten mit 16 MB SPI-Flashspeicher (nach aktuellen Erkenntnissen in der Regel UHF-Geräte) ausgeführt werden, da auf 1 MB-Geräten (in der Regel VHF-Geräte) der Codeplug bei älteren Versionen des Quellcodes (vor dem 28.04.2016) überschrieben wird und ggf. das Funkgerät hierdurch zunächst nicht mehr nutzbar wird. Zuerst wechselt man dann in das Verzeichnis ''db'' und führt dort ein

make clean

und ein

make

aus, um die User-Datenbank relativ tagesaktuell zu halten (Datenquelle ist hier die DMR-MARC-DB).

Im Verzeichnis ''md380tools'' führt man dann wieder den Befehl:

wc -c < db/users.csv > data ; cat db/users.csv >> data

und danach

./md380-tool spiflashwrite data 0x100000

aus, was die User-Datenbank in das im Normalbetrieb befindliche und mit dem Programmierkabel am PC angeschlossene Funkgerät flasht.

Alternativ kann auch der Befehl

make flashdb

im Hauptverzeichnis des Repositories genutzt werden, der all diese Befehle komfortabel am Stück erledigt. Dies ist der empfohlene Weg.

Besitzt man ein Gerät mit zu kleinem SPI-Flashspeicher (siehe Hinweis oben), erhält man seit dem 28.04.2016 folgende Meldung:

SPI Flash ID: ef 40 14

W25Q80BL 1MByte

can't programm spi flash wrong flash type

Während des Flash-Vorgangs schaltet das Funkgerät in den USB-Programmiermodus - nach erfolgtem Schreiben der Daten startet das Funkgerät automatisch neu und man kann es vom Programmierkabel trennen.

Nach dem Flash-Vorgang muss im Menü des Funkgerätes die Userdatenbank wie unter Erweitertes Menü mit weiteren Funktionen beschrieben aktiviert werden.

Support

Es wurde eine neue Google-Group ins Leben gerufen, die die Tools supporten soll. Ebenso werden Fragen zur experimentellen / gepatchten Firmware für Tytera MD-380 / Retevis-RT-3 und kompatible Geräte beantwortet.

Zögert also nicht, eure Fragen dort zu stellen bzw. eure Probleme zu schildern.

URL für die Gruppe: https://groups.google.com/forum/#!forum/md380tools

Diese ist aktuell öffentlich verfügbar und Bedarf zur Nutzung keiner Registrierung, wenn man entsprechend per E-Mail diese bestückt: [email protected]