Forum: Compiler & IDEs BASH -Code auf Linux Mint ausführen, brauche bitte Hilfe


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Petersen P. (dd7lp)


Lesenswert?

Guten Tag, ich bin vom Hobby her nicht nur Elektroniker und Funkamateur, 
sondern auch noch mit der Musik verbandelt. Ich benutze ein Roland FR4X 
V-Akkordeon, voll elektronisch und habe dafür diverse Userprogramms, 
etliche auch selbst erstellt. Die Daten werden in einem Containerformat 
via USB oder Stick auf dem PC abgelegt. Wenn ich diese Files allerdings 
bearbeiten will, ist das ein mühselige frickelige Art, mit vielen 
Tastendrücken am Bedienfeld des Instrumentes. Als Software ist mir nur 
ein Editor von Roland bekannt, in Java erstellt und nicht besonders 
komfortabel. Ich habe 2 Bash Scriptdateien aufgetan, mit denen man die 
Userprogramms als Container wieder in die einzelnen Häppchen zerlegen 
kann, toll, nur ich kann da nicht viel mit anfangen, da ich kein Linux 
Programmierer bin. Es ist mir gelungen, unter Linux MINT, die Dateien 
zur Ausführung zu bringen, allerdings mit Abbruch und vielen 
Fehlermeldungen. Wäre irgendjemand hie im Forum bereit sich mal mit mir 
zu unterhalten, wie ich das löse und ob da mal jemand auf den Script 
schaut, das wäre sehr hilfreich und würde mich schon mal ein wenig nach 
vorne bringen. Bin im Übrigen ein alter IT-Techniker, aber schon im 
Ruhestand. Würde mich freuen, wenn sich jemand meldet Gruß Christian aus 
der Nähe Husum Nordsee

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Hallo Christian,

vielleicht wäre es hilfreich zu wissen, um was für Dateien vom Akkordeon 
es sich handelt, möglicherweise sogar midi? Dann würde es nämlich noch 
viele alternative Bearbeitungsmöglichkeiten geben. Da diese Dateien ja 
dir gehören, könntest du sie ja gegebenenfalls hier einstellen.

Zu den "aufgetanen" bash-scripten: hier hängt es von den Bedingungen des 
Urhebers ab, ob du sie hier einstellen oder verlinken kannst, wenn sie 
frei im Netz stehen, dürfte Letzteres wohl kein Problem sein.

vG vom ingo

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Ingo, es sind keine Midi-Dateien, da gibt es sehr viel.
Es geht um die Programmierung von einem Roland FR4X einem sog. 
V-Akkordeon.
Das Ding klinkt wie ein normales Akkordeon, kann aber auch Saxofon oder 
Synty -klänge bringen. Es gibt nur eine Software von Roland selbst, um 
das Ding via USB zu programmieren, das ist in Java geschrieben und ist 
nicht besonders effektiv. Die Programmzeile in der gepackten Version 
sind von einem amerikanischen Funkamateur schon vor einigen Jahren 
erstellt worden und sollen der Aufschlüsselung der Programm-Container 
für das Akkordeon dienen, damit erspart man sich viel Tipperei, das ist 
alles, aber ich bin nicht in der Lage die 2 Dateien mit der Endung *.SH 
ans Laufen zu bekommen, vielleicht weißt du ja wie es gehen könnte. Ich 
habe in der Zip-Datei eine lange Readme mit hereingelegt, damit man 
weiss worum es geht. Ich bin dankbar fü jede Hilfe diesbezüglich Gruß 
Christian

von Mark S. (voltwide)


Lesenswert?

Um ein bashscript xyz.sh auf der Linux cli auszuführen, muss dieses 
ausführbar sein. Das ist es zunächst vermutlich nicht. Ändere das mal 
indem du in das betreffende Unterverzeichnis wechselst und dann mittels
$ chmod a+x *sh
die Ausführungrechte für alle dortigen *.sh-Dateien setzt.

: Bearbeitet durch User
von Petersen P. (dd7lp)


Lesenswert?

Danke für die Rückmeldung, das ist schon geschehen, wenn ich auch so gut 
wie keine Ahnung von Linux habe, hab ich es aber doch zu Recht bekommen 
die Datei zu starten. Es erfolgt schon nach Bruchteilen von Sekunden ein 
Abbruch mit einem Haufen Fehlermeldungen, die ich nicht einordnen kann, 
aber die SH-Script Datei hat ein neues Verzeichnis angelegt, mit Uhrzeit 
und Datum.
Nun, vielleicht kann es ja mal einer probieren, der Linux auf seinem 
Rechner hat, alle erforderliche Dateien, so viel wie ich weiß sind in 
der ZIP-gepackten Datei enthalten
Gruß Christian

von Mark S. (voltwide)


Lesenswert?

Habs mal bei meinem LMDE ausprobiert. Die erste Fehlermeldung lautet
./FR_extract_sets_from_set_all.sh: Zeile 74: xmllint: Kommando nicht 
gefunden.
Ein Programm namens xmllint wird benötigt.
Dieses ist aus meinen Paketquellen nicht verfügbar.
Guxtu:
https://www.baeldung.com/linux/xmllint

: Bearbeitet durch User
von Mark S. (voltwide)


Lesenswert?

jetzt versucht das Programm die XML-datei zu parsen, was zu 
Parser-Fehlern führt. Da kann ich Dir nun leider nicht weiterhelfen.

: Bearbeitet durch User
von Petersen P. (dd7lp)


Lesenswert?

Ich hatte vor ca. 2 Wochen Kontakt mit dem Programmierer der Datei, 
einem Funkamateur aus den USA, der teilte mir mit, dass diese Bash - 
Datei bei ihm unter einem Unix System ausgeführt wurde, es sollte gleich 
sein mit Ubuntu Linux Ich habe für Linux MINT einige Dateien für Ubuntu 
hinzugeladen, bekam es aber mangels meines Wissens bz. Linux nicht am 
Laufen. Was da eigentlich abgearbeitet wird, sieht in dem 
Unterverzeichnis der *.SH-Dateien, vielleicht kann sich das ja mal einer 
ansehen. Mir würde es jedenfalls ein ordentliches Stück weiterhelfen bei 
der Dateizerlegung vom Roland Akkordeon MFG Christian

von Thomas W. (Gast)


Lesenswert?

Moin, -

ich habe eine aktuelle Debian-Maschine aufgesetzt, xmllint und strings 
installiert. Dann all_set.FR4 in ALL_SET.FR4 umgenannt.
1
BASH_VERSION='5.1.4(1)-release'

Einmal ausprobieren:
1
tom@xml:/tmp/abc/prg$ ./FR_extract_sets_from_set_all.sh
2
-:2: parser error : Start tag expected, '<' not found
3
^
4
-:2: parser error : Start tag expected, '<' not found
5
^
und weiter im Text:
1
 VR pieces, each  bytes, starting at position
2
 NEGP pieces, each  bytes, starting at position
3
 EGP pieces, each  bytes, starting at position
4
 VTW_PRESET pieces, each  bytes, starting at position
5
 sets, each  bytes, starting at position
6
7
./FR_extract_sets_from_set_all.sh: line 106: let: size=VR * : syntax error: operand expected (error token is "* ")

sehr viele Syntax-Errors. So Trivial ist es nicht.

Gruesse

Th.

Beitrag #7347203 wurde von einem Moderator gelöscht.
von Mark S. (voltwide)


Lesenswert?

Genauso war das auch bei mir heraus gekommen.

von Thomas W. (Gast)


Lesenswert?

Mark S. schrieb:
> Genauso war das auch bei mir heraus gekommen.

Und ich hatte noch gesehen, dass in dem FR_extract_sets_from_set_all.sh 
ein magic-string definiert war, vielleicht versionsabhaengig.

line 22:
1
SET_BINARY_HEADER="\\xEF\\xBB\\xBF\\x00\\x00\\x03\\x28"

Leider passt dieser Header nicht zu set_all.FR4:
1
tom@xml:/tmp/abc/prg$ od -A x -t x1z -v SET_ALL.FR4 | more
2
000000 ef bb bf 00 00 08 2f 3c 3f 78 6d 6c 20 76 65 72  >....../<?xml ver<

Ohne Doku und/oder massiver Zusammenarbeit mit dem TE wird das 
schwierig, da ich noch nicht mal das Ziel sehe.

Gruesse

Th.

von Bastler (Gast)


Lesenswert?

Problem ist wohl das cut in Verbindung mit strings.
1
XML_MATCH_POS=`strings -a -t d $ALL_SET | grep '<?xml' | cut -d ' ' -f 1`
2
XML_MATCH_STR=`strings -a -t d $ALL_SET | grep '<?xml' | cut -d ' ' -f 2`
3
# Since there may be a printable character in front of the <?xml, we have to handle that
4
XML_SUBPOS=`awk -v a="$XML_MATCH_STR" -v b="<?xml" 'BEGIN{print index(a,b)}'`
5
let XML_START="$XML_MATCH_POS + $XML_SUBPOS - 1"
6
7
XML_END=`strings -a -t d $ALL_SET | grep '</Roland_Fr>' | cut -d ' ' -f 1`

strings liefert Leerzeichen vor den Zahlen, die beim cut nicht 
berücksichtigt werden, mit etwas awk geht es wohl
1
XML_MATCH_POS=`strings -a -t d $ALL_SET | grep '<?xml' | awk '{print $1}'`
2
XML_MATCH_STR=`strings -a -t d $ALL_SET | grep '<?xml' | awk '{print $2}'`
3
# Since there may be a printable character in front of the <?xml, we have to handle that
4
XML_SUBPOS=`awk -v a="$XML_MATCH_STR" -v b="<?xml" 'BEGIN{print index(a,b)}'`
5
let XML_START="$XML_MATCH_POS + $XML_SUBPOS - 1"
6
7
XML_END=`strings -a -t d $ALL_SET | grep '</Roland_Fr>' |awk '{print $1}'`

73

von Petersen P. (dd7lp)


Lesenswert?

Die Erklärung zu dem File liegt im Verzeichnis  bei den beiden Bach 
Script Dateien. Dort liegt eine TXT Datei mit der Erklärung.und die 
bytefolge am Anfang ist ab dem 5 oder 6 Byte unterschiedlich, damit wird 
die Art der Datei unterschieden, steht auch in der TXT Datei, kann es 
sein, das die Routine deswegen nicht läuft, weil der Ursprung im Unix 
Script liegt. Angeblich soll das unter ununterbrochen laufen, aber da 
fehlt mir jegliche Erfahrung in den unterschiedlichen linuxversionen 
Gruß Christian

von Petersen P. (dd7lp)


Angehängte Dateien:

Lesenswert?

Die Erklärung zu dem File liegt im Verzeichnis  bei den beiden Bach 
Script Dateien. Dort liegt eine TXT Datei mit der Erklärung.und die 
bytefolge am Anfang ist ab dem 5 oder 6 Byte unterschiedlich, damit wird 
die Art der Datei unterschieden, steht auch in der TXT Datei, kann es 
sein, das die Routine deswegen nicht läuft, weil der Ursprung im Unix 
Script liegt. Angeblich soll das unter ununterbrochen laufen, aber da 
fehlt mir jegliche Erfahrung in den unterschiedlichen linuxversionen 
Gruß Christian..--

ich habe die Txt datei noch einmal beigefügt

von Petersen P. (dd7lp)


Lesenswert?

Ich bedanke mich einfach schon mal bei den Leuten, die mein Problem 
schon mal aufgegriffen haben. Danke schön Christian.....

von Bastler (Gast)


Angehängte Dateien:

Lesenswert?

Habe beide Skripte mal angepasst und es laufen lassen, Ergebnis ist im 
Anhang. Sieht für mich passend aus.
Angepasste Skript sind mit enthalten.

von Petersen P. (dd7lp)


Lesenswert?

Heureka......
ist ja super, wenn ich jetzt noch erfahre, wie ich die Dateien unter 
welchem Linux ausführen muss, bin ich richtig happy.
Für mich ist es nämliche immer große Muhe jedes mal, wenn ich *.FR4 
Dateien oder UPA-Dateien von Hand am Instrument zerlegen muss.
Kann ich die Dateien, die du angepasst hast unter Linux MINT ausführen 
??
oder wie geht das ???
weitere Frage wäre gibt es auch die Möglichkeit die Datei irgendwie zu 
übersetzen oder ähnlich um so eine Script Datei auch unter Windows 
laufen zu lassen? Lieber Gast, lasse dich drücken und danke schon mal 
für deine Hilfe
das gilt natürlich auch für die anderen freundlichen Helfer hier
Gruß Christian aus der Nähe von Husum

von Bastler (Gast)


Lesenswert?

Es sollte auf fast jedem Linux laufen, wie weiter oben schon von anderen 
geschrieben, sind ein paar Dinge wichtig.

Aufführungrechte setzen chmod u+x skriptname
Pakete mit xmllint und strings müssen installiert sein, manche Linuxe 
installieren es automatisch mit, bei anderen muss man ggf. etwas suchen.

Linux Mint kann ich nichts sagen, hatte hier Debian, strings ist im 
binutils Paket, xmllint im libxml2-utils

Die Quelldateien hatte ich noch umbenannt, damit die beiden Skripte sie 
fressen.
So ohne weiteres wird man es nicht unter Windows zum laufen bekommen, 
würde mal sagen, neu programmieren in Powershell o.ä. alternativ die 
Linuxshell, die bei Windows nun mitgeliefert wird, aber da bin ich raus.

in dem einen Skript aus der 7z von mir ist noch etwas Debug, set -x 
macht das Skript sehr gesprächig und bei read a halten es an, bis enter 
gedrückt wird.
Das kann beides raus.

von Thomas W. (Gast)


Lesenswert?

Well done.

Th.

von Petersen P. (dd7lp)


Lesenswert?

Hallo "Bastler", ich danke dir für deine Bemühungen, ich will mal sehen, 
ob ich das irgendwie auf die Reihe bekomme und melde mich hier auf jeden 
Fall noch mal zurück. Linux ist nun mal nicht meine Welt und ich müsste 
dort wahrscheinlich erst mal tief einsteigen.  Kann man dich irgendwie 
per PN-Mail erreichen ?? bei mir ist das kein Problem unter meinem 
AFU-Call dd7lp findet man mich überall Gruß Christian

von Petersen P. (dd7lp)


Lesenswert?

Hallo, "Bastler" und ich melde mich noch einmal bei dir. Ich habe den 
von dir geänderten Script auch auf meinem Notebook unter Linux MINT zum 
Laufen gebracht. Ich habe dort noch die Bibliotheken geladen und im 
Script noch ein wenig geändert, sodass die Ausgabe im erstellten 
Verzeichnis jetzt stimmig ist. Dafür, dass ich keine Ahnung von dem 
"Zeug" habe, freue ich mich zumindest, dass es einigermaßen läuft. Es 
ist zwar noch nicht so komplett, wie ich es haben möchte, aber ich kann 
damit arbeiten. Die erstellten Dateien in den Verzeichnissen tragen 
jetzt alle Nummern und ich muss mal sehen, wie ich den die Namen aus 
einer Tabelle zuweise. Jedenfalls schon allemal besser als zig-hundert 
mal die kleinen Tasten am Instrument zu tippen. Danke noch einmal für 
deine Bemühung gestern, das hat mich schon mal ein ganzes Stück vorn´an 
gebracht. Gruß aus der Nähe von Husum
Christian dd7lp

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.