BASH -Code auf Linux Mint ausführen, brauche bitte Hilfe

OP #7346227
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

Persönliche Seite #7346337
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

Gast #7346527
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

Angehängte Dateien:
#7346556
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.

OP #7346572
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

OP #7347024
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

Gast #7347138
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.
Gast #7347638
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.

Gast #7347653
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

OP #7347682
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

OP #7347694
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

Angehängte Dateien:
OP #7347717
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

Gast #7347792
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.

OP #7347806
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

OP #7348956
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren