-
-
Save randomchars42/a13db217a49f1af25b6aac4df66f058e to your computer and use it in GitHub Desktop.
#!/bin/bash | |
path_working_dir="$HOME" | |
prefix="bookii" | |
# in diesem Verzeicnis soll die neue Bottle (=Prefix) entstehen | |
path_bottles="$path_working_dir/Bottles" | |
# in diesen Verzeichnissen liegen die benötigten Dateien | |
# - winetricks.sh (wird heruntergelade | |
# - BOOKiiSoftwareInstaller.exe (https://www.bookii.de/site/uploads/2019/03/BOOKiiSoftwareInstaller.zip) | |
# - BOOKii.exe (auf dem Stift oder [hier](blog.pixelwoelkchen.de/assets/Bookii.zip)) | |
path_lib="$path_working_dir/bookii" | |
path_bookii_installer="$path_lib/BOOKiiSoftwareInstaller.exe" | |
path_bookii_manager="$path_lib/Bookii.exe" | |
path_winetricks="$path_lib/winetricks.sh" | |
# setzt das WINEPREFIX (= Bottle) für die Dauer des Skripts | |
export WINEPREFIX="$path_bottles/$prefix" | |
# vermeidet Probleme mit dotnet, Dank an @der-martin85 | |
export WINEARCH=win32 | |
# neues Prefix erstellen und .NET installieren | |
function install_dependencies { | |
# wenn noch kein Prefix vorhanden ist | |
if [[ ! -e "$path_wine/$prefix" ]] | |
then | |
# wird es erstellt und die Konfiguration aufgerufen | |
# hier wird windows 8.1 eingestellt, Dank an @der-martin85 | |
winecfg -v win81 | |
# "Neustart" des Systems | |
wine wineboot | |
# .NET 4.6 mit Winetricks installieren | |
# ! akzeptiert automatisch die EULA ! | |
"$path_winetricks" -q dotnet46 | |
fi | |
} | |
# Winetricks bereitstellen | |
function install_winetricks { | |
if [[ ! -e "$path_winetricks" ]] | |
then | |
path="$(dirname $path_winetricks)" | |
echo "$path" | |
# erstelle das Verzeichnis falls nötig | |
[[ ! -e "$path" ]] && mkdir -p "$path" | |
# Winetricks herunterladen | |
wget -r -c -N https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O "$path_winetricks" | |
chmod +x "$path_winetricks" | |
fi | |
} | |
# startet den Updater | |
function update_bookii { | |
# checke ob das Verzeichnis existiert | |
path="$(dirname $path_bookii_installer)" | |
[[ ! -e "$path" ]] && mkdir -p "$path" | |
# lade die Datei herunter | |
[[ ! -e "$path_bookii_installer" ]] && | |
wget https://www.bookii.de/site/uploads/2019/03/BOOKiiSoftwareInstaller.zip -O "$path_bookii_installer.zip" && | |
unzip "$path_bookii_installer.zip" -d "$path" && | |
rm "$path_bookii_installer.zip" | |
wine "$path_bookii_installer" | |
} | |
# startet den Dateimanager | |
function run_bookii { | |
# checke ob das Verzeichnis existiert | |
path="$(dirname $path_bookii_manager)" | |
[[ ! -e "$path" ]] && mkdir -p "$path" | |
# lade die Datei herunter | |
[[ ! -e "$path_bookii_manager" ]] && | |
wget -r -c -N http://blog.pixelwoelkchen.de/assets/Bookii.zip -O "$path_bookii_manager.zip" && | |
unzip "$path_bookii_manager.zip" -d "$path" && | |
rm "$path_bookii_manager.zip" | |
wine "$path_bookii_manager" | |
} | |
# der erste Parameter, der diesem Skript übergeben wird bestimmt, was ausgeführt wird | |
action="$1" | |
[[ -z "$action" ]] && echo "Was soll gemacht werden (start|update|install)" && exit 1 | |
case "$action" in | |
start) | |
run_bookii | |
;; | |
update) | |
update_bookii | |
;; | |
tricks) | |
install_winetricks | |
"$path_winetricks" | |
;; | |
install) | |
install_winetricks | |
install_dependencies | |
;; | |
esac |
Zeile 26 würde ich übrigens noch durch das hier ersetzen, damit wirklich windows 8.1 eingestellt wird:
winecfg -v win81
den path_working_dir
auf $HOME setzen, dann läuft das auch ohne anpassungen bei allen.
Und wie gesagt export WINEARCH=win32
nach dem setzen des WINEPREFIX einfügen.
Hallo @der-martin85, vielen Dank für die Hinweise! Habs eingearbeitet. Läuft es bei Dir jetzt? Ich habs schon eine Weile nicht mehr getestet / nutzen müssen...
Leider noch nicht geschafft. Hab noch rumprobiert, ob eine andere dotnet Version hilft, aber bisher kein Erfolg. Wenn ich die BookiiUpdater.exe starte, bekomme ich wenigstens eine Exception angezeigt, aber was die Bedeutet, weiß ich leider auch nicht. Vermutlich hat es damit zu tun, dass das Gerät nicht richtig eingebunden ist. Auf dem Arbeitslaptop meiner Frau konnte ich sehen, dass der ja eigentlich noch ein zweites Laufwerk mit dem Programm anzeigt. Leider kann ich den Arbeitslaptop aber auch nicht verwenden, da der von der Firma so konfiguriert ist, dass nicht auf externe Geräte gespeichert werden kann.
Es ist echt schade, dass die einem solche Steine in den Weg legen. Ich mach das eigentlich auch gar nicht für mich gerade, sondern helfe in der Schulbibliothek aus. Da gibt es einen Stift und ein paar Bücher, aber nicht alle Bücher sind auf den Stift geladen. Hatte gehofft, dass es so funktioniert wie der Tiptoi, aber so werde ich das wohl jemand anderen machen lassen müssen.
Jetzt hab ichs. Ich hab das virtuelle CD ROM Laufwerk doch noch gefunden und mounten können. Mit der Bookii.exe von dem Gerät funktioniert es jetzt.
Vielen Dank dir nochmal!
P.S.: Für alle die an das gleiche Problem stoßen, ich hab eine Zusätzliche Funktion in das Script eingearbeitet:
function copy_bookii {
[[ ! -e "$path_mount" ]] && mkdir -p "$path_mount"
# checke ob das Verzeichnis existiert
path="$(dirname $path_bookii_manager)"
[[ ! -e "$path" ]] && mkdir -p "$path"
sudo mount -o ro LABEL=BOOKII_APP "$path_mount" &&
cp -uR "$path_mount"/* "$path" &&
sudo umount "$path_mount" &&
chmod 755 -R "$path"/*
}
Dafür muss der path_mount natürlich gesetzt sein. Ich habe am Anfang path_mount="$path_bottles/BOOKII_APP"
gesetzt.
Außerdem noch folgendes in die case Anweisung am Ende eingefügt:
copy) copy_bookii ;;
Dann ist die Herangehensweise quasi erst
bookii.sh install
bookii.sh copy
und dann mit bookii.sh start
Man muss einmal das Passwort eingeben, damit das CD-ROM Laufwerk gemountet werden kann. Natürlich muss der Stift auch angeschlossen sein, wenn bookii.sh copy aufgerufen wird.
Hi, danke für das Script. Ich würde noch empfehlen die WINEARCH=win32 zu setzen, da es sonst zu Problemen mit dotnet kommen kann. Bei mir hat die Firmware Aktualisierung geklappt, aber ich bekomme den Dateimanager nicht gestartet. Der Splashscreen wird kurz angezeigt, dann kommt
LOG FILE MANAGER An unhandled exception occurred: The invocation of the constructor on type 'Bookii.ViewModel.MainWindowViewModel' that matches the specified binding constraints threw an exception.
Ich benutze Ubuntu 22.10 und wine 8.5. Probiere noch ein wenig rum, ob ich es vielleicht doch zum laufen bekomme.