kategoria: Stacje dyskietek
[#1] DrawBridge pod Linuksem
Czy ktoś z szanownego gremium byłby zainteresowany samouczkiem (zwanym w lengłidżu tutorialem) jak okiełznać interfejs DrawBridge pod Ubuntu Linux?
Przeszedłem tę nieco wyboistą ścieżkę i mógłbym wytworzyć małą instrukcję o ile znajdzie się jakiś śmiałek aby z niej skorzystać
2
[#2] Re: DrawBridge pod Linuksem

@valdi74, post #1

Od przybytku głowa nie boli. Jeśli masz chęci, to działaj. Skoro lata pod Ubuntu, to i pod Mintem do wykorzystania.
[#3] Re: DrawBridge pod Linuksem

@valdi74, post #1

Dawaj, dawaj..
Nie używam Linuxa, ale z chęcią poczytam jak bardzo wyboista jest ścieżka, żeby to okiełznać

ps.
Ciekawy jestem co byłoby potrzebne zeby to obsłużyć pod Morphosem, OS4, czy nawet pod systemem na m68k gdy posiada on USB?
[#4] Re: DrawBridge pod Linuksem

@Norbert, post #3

Skoro lata pod Ubuntu, to i pod Mintem do wykorzystania.

Na 99% powinien działać pod wszystkimi, które mają tatusia Debiana. Być może trzeba będzie jakiś pakiet doinstalować jak poprosi.

Ciekawy jestem co byłoby potrzebne zeby to obsłużyć pod Morphosem, OS4, czy nawet pod systemem na m68k gdy posiada on USB?

Nie znam się na Morphosie i reszcie ale jeśli umieją rozmawiać ze stacją widzianą jako "USB serial", to jest szansa. Czytałem, że UAE widzi DrawBridge ale jeszcze nie testowałem.

Od przybytku głowa nie boli. Jeśli masz chęci, to działaj.

Dawaj, dawaj..
Nie używam Linuxa, ale z chęcią poczytam jak bardzo wyboista jest ścieżka, żeby to okiełznać

Zachęcony przez społeczeństwo działam...
3
[#5] Re: DrawBridge pod Linuksem

@Norbert, post #3

Poradnik: Jak odczytać dyski Amigi na współczesnym komputerze pod systemem Ubuntu Linux za pomocą interfejsu DrawBridge oraz klasycznej stacji dysków z PC

Ponieważ niektórzy nie lubią iść na łatwiznę a niektórym po prostu jedyny słuszny system od Billa jest obcy ideowo (jak autorowi), pojawiła się potrzeba okiełznania interfejsu DrawBridge po systemem Linux. Konkretnie Ubuntu. Jeszcze konkretniej to Ubuntu 24.04.2 LTS. Poradnik powinien działać ze wszystkimi z rodziny debianowej i pewnie też z innymi po odpowiedniej modyfikacji komend instalujących pakiety. Zaznaczę, że jest to rozwiązanie mocno niszowe i dlatego wymaga niestandardowych działań w systemie. Chcę powiedzieć, że Linuks nie jest taki straszny w codziennym użytkowaniu, wręcz przeciwnie
Tyle tytułem wstępu. Pora przygotować suchy prowiant, coś do picia oraz środki na uspokojenie. Potem szable w dłoń i działamy!

0. O DrawBridge słów kilka.

DrawBridge to jeden z interfejsów, które pozwalają na podłączenie klasycznej stacji dysków z PC do portu USB współczesnego komputera i oczytanie/zapisywanie dysków Amigowych.
Jego zaletą jest w pełni otwarta konstrukcja oraz niska cena. Można kupić gotowca lub zbudować samemu.
Do budowy (w wersji minimum) potrzebne są:
- stacja dysków FDD 1,44 3,5"
- Arduino UNO / Pro Mini / Nano, jeśli z wbudowanym interfejsem szeregowym, to koniecznie FT232RL/FTDI a nie CH340,
- jeśli Arduino interfejsu nie posiada to: adapter USB koniecznie na układzie FT232RL FTDI i koniecznie z wyprowadzonym sygnałem CTS,
- wiązka przewodów o wdzięcznej nazwie Dupont FtoF (2 x żeński).
- zasilanie +5V do stacji dysków, które w większość przypadków można pociągnąć z USB lub dowolnej ładowarki na USB
Można oczywiście to wszystko zrobić porządnie na płytce drukowanej z gniazdem FDD i taśmą do napędu, jeśli się ma cierpliwość. Autorowi jej zabrakło

I tu uwaga: wbrew pozorom opcja Arduino + zewnętrzny interfejs jest prostsza (i tańsza o $1 szeroki uśmiech) niż Arduino z wbudowanym interfejsem.
Ta druga opcja wymaga lutowania do baaardzo cienkiej nóżki układu FT232. Autor oczywiście poszedł tą ambitną ścieżką, czego później żałował

Przykładowe koszty elementów w I kwartale 2025 (ceny w $ są od majfrendów):
- stacja dysków FDD 1,44 3,5": można wypruć z cudem ocalonego starego PC lub nabyć w drodze kupna na znanym portalu aukcyjnym za około 50 zł
- Nano V3.0 3.0 z FT232 Chip ATmega328: $5.41
- Pro Mini 5V 16Mhz ATMEGA328 ATMEGA328P-AU Development board: $3.31
- FT232RL FTDI USB 3.3V 5.5V to TTL Serial Adapter Module for Arduino: $0.84
- Dupont FtoF: $0.99

Instrukcje jak tę całą menażerię złożyć "do kupy" i zaprogramować są dość dobrze opisane na stronie autora projektu.
Polecam wykonać połączenia w wersji "Plus".

Całość po nieudolnym złożeniu wygląda tak:


1. Podłączamy DrawBridge do komputera.

Jeśli kupiliśmy gotowca albo złożyliśmy interfejs samemu (i po złożeniu w ofierze w tej intencji odpowiedniej liczby dziewic zadziałał), możemy go podłączyć do portu USB.
Po podłączeniu powinien napaskudzić w logu systemowym i zameldować się jako urządzenie ttyUSB<nn> w katalogu /dev/, co podstępnie zweryfikujemy komendą:
$ sudo dmesg | grep ttyUSB
[ 4062.226207] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0

Widać, że urządzenie otrzymało nazwę ttyUSB0 i będzie widoczne jako /dev/ttyUSB0. W dalszej części będę się posługiwał tą ścieżką.

Sprawdzamy czy nasz użytkownik jest w grupie "dialout" i tym samym będzie miał uprawnienia do ww. urządzenia:
groups

Jeśli w wyniku nie ma grupy "dialout", należy się do niej bezczelnie dodać poleceniem:
sudo usermod  -a -G dialout $(whoami)

oraz przelogować się w systemie (najpewniej zrobić restart).

2. Instalujemy oprogramowanie do odczytu/zapisu dyskietek.

Autor projektu DrawBridge daje dwie możliwości, jeśli chodzi o dobranie się do interfejsu pod Linuksem:
- złą: poprzez uruchomienie oprogramowania pod wine
- złą: "natywnie" pod X11-Basic

Autor zdecydował się (niechętnie) na wine, ponieważ ostatni raz używał języka Basic w roku 1990 w celu sprawdzenia czy jego nowa A500 umie w ogóle jakiś jego program wykonać i nie miał ochoty pisać kolejnej instrukcji "jak zainstalować X11-Basic"

Instalujemy zatem (niechętnie) wine:
$ sudo apt install wine

i uruchamiamy cokolwiek (np. regedit) aby utworzyć struktury w katalogu domowym:
$ wine regedit

Po tym nasz interfejs powinien już zostać przypisany do portu COM w katalogu specjalnym wine. Możemy sprawdzić który port COM został wybrany:
$ ls -l ~/.wine/dosdevices/ | grep ttyUSB
lrwxrwxrwx 1 valdi valdi 12 lut 28 20:03 com34 -> /dev/ttyUSB0

W powyższym przykładzie wine wybrało port COM34.

Pobieramy ze strony producenta gotowca w pliku .zip i rozpakowujemy go w naszym katalogu domowym (np. w ~/DrawBridge/).

Ustalamy w zmiennej nazwę katalogu z rozpakowanym gotowcem:
$ soft_dir=~/"DrawBridge"

sprawdzamy czy oprogramowanie potrafi skomunikować się z interfejsem i odczytać konfigurację:
$ wine "${soft_dir}/DrawBridge.exe" COM34 SETTINGS

i konfigurujemy interfejs włączając opcję "Plus":
$ wine "${soft_dir}/DrawBridge.exe" COM34 SETTINGS SET PLUS 1


3. Odczytu dyskietki nadszedł czas.

Wybieramy katalog roboczy w którym będą powstawać nasze obrazy dysków i przypisujemy do zmiennej:
$ work_dir=/tmp/disk_images
$ mkdir -p "${work_dir}"
$ cd "${work_dir}"


Ustawmy zmienną "disk_name" na nazwę dysku, który będziemy zgrywać:
$ disk_name="WypozyczalniaVideo"


Zgrywamy dyskietkę do formatu SCP, który umożliwi sprawdzenie jaką jakość ma nasz obraz:
$ wine "${soft_dir}/DrawBridge.exe" COM34 "${disk_name}.scp" READ


4. Chcemy to zrobić dobrze, czyli jak sprawdzić jakość obrazu.

W tym celu użyjemy narzędzia kryoflux (pod Win działa również).
Najpierw jednak musimy przygotować mu dane, czyli pociąć plik SCP na ścieżki w formacie RAW
Pobieramy narzędzie, które to umie:
$ git clone https://github.com/jfdelnero/HxCFloppyEmulator

...i kompilujemy:
$ cd "${work_dir}/HxCFloppyEmulator/HxCFloppyEmulator_cmdline/build"
$ LANG=en_US make


Tworzymy podkatalog roboczy i ustawiamy ścieżki:
$ mkdir -p "${work_dir}/${disk_name}"
$ cd "${work_dir}/${disk_name}"
$ PATH="$PATH:${work_dir}/HxCFloppyEmulator/HxCFloppyEmulator_cmdline/build"


Sprawdzamy czy nasze narzędzie potrafi odczytać informacje z pliku SCP:
$ LD_LIBRARY_PATH="${work_dir}/HxCFloppyEmulator/HxCFloppyEmulator_cmdline/build" hxcfe -finput:"${work_dir}/${disk_name}.scp" -infos

I wreszcie brutalnie tniemy nasz SCP na ścieżki RAW:
$ LD_LIBRARY_PATH="${work_dir}/HxCFloppyEmulator/HxCFloppyEmulator_cmdline/build" hxcfe -finput:"${work_dir}/${disk_name}.scp" -conv:KRYOFLUXSTREAM


Dla chętnych "na szóstkę" można pokompilować sobie pozostałe narzędzia pakietu:
$ cd "${work_dir}/HxCFloppyEmulator/libhxcadaptor/build"
$ LANG=en_US make

$ cd "${work_dir}/HxCFloppyEmulator/libhxcfe/build"
$ LANG=en_US make

$ cd "${work_dir}/HxCFloppyEmulator/libusbhxcfe/build"
$ LANG=en_US make

$ cd "${work_dir}/HxCFloppyEmulator/HxCFloppyEmulator_software/build"
$ LANG=en_US make all


Pora zainstalować właściwe narzędzie do sprawdzania jakości obrazu.
Wybieramy katalog do którego pobierzemy kryoflux:
$ kryoflux_dir="${soft_dir}/kryoflux"
$ mkdir -p "${kryoflux_dir}"

i pobieramy ze strony autora wersję Linux. Następnie rozpakowujemy w katalogu w którym pobraliśmy.
W momencie pisania tego poradnika najnowszą była wersja 3.5.0.
Instalujemy pakiet:
$ sudo apt install "${kryoflux_dir}/Linux_Release3.50/dtc/arm64/kryoflux-dtc_3.5.0_arm64.deb"


Możemy już przystąpić do tworzenia właściwego pliku ADF:
$ dtc -l15 -f"${work_dir}/${disk_name}.adf" -i5 -m1 -f"${work_dir}/${disk_name}/${disk_name}_scp" -i0 -e83

Obserwujemy komunikaty, które przy każdej ścieżce powiedzą nam czy została poprawnie odczytana.

Jeśli ktoś lubi okienkowe narzędzia i ładne kolory, to może skorzystać z aplikacji w JAVA:
$ java -jar "${kryoflux_dir}/Linux_Release3.50/dtc/kryoflux-ui.jar"


5. Koniec

Gratuluję determinacji, jeśli dotarłeś do końca!
Zaznaczę tylko, że większość tych mrożących krew w żyłach męczarni miała na celu stworzenie poprawnego obrazu z pełną kontrolą błędów. Jeśli chcesz tylko podpiąć dysk do UAE i tam bawić się dalej, to wystarczy punkt 1.
To wersja 0.5 alfa poradnika. Jestem otwarty na konstruktywną krytykę. Gdyby coś nie działało dawajcie znać, mogłem o czymś zapomnieć.

Chciałbym na koniec podziękować koledze rygar997 za zmotywowanie do zrobienia interfejsu i uświadomienie, żeby nie zgrywać dyskietek od razu do formatu ADF, gdyż jest do d.., to znaczy nie nadaje się zbytnio ze względu na brak kontroli nad błędami

PS Podziękowania również dla mojej żony, która poszła "z koleżankami na likierek" i tym samym umożliwiła mi zmarnowanie 3 godzin życia na ten poradnik
5
[#6] Re: DrawBridge pod Linuksem

@valdi74, post #5

Warto byłoby to przerobić na artykuł i umieścić w stosownym dziale.
4
[#7] Re: DrawBridge pod Linuksem

@wali7, post #6

Nie widzę przeszkód.
1
[#8] Re: DrawBridge pod Linuksem

@valdi74, post #7

Napisz do mailmana: https://www.ppa.pl/uzytkownicy/87
[#9] Re: DrawBridge pod Linuksem

@valdi74, post #5

WOW....mega tutorial. Jak zwykle okazuje się, że wszystko da się "łatwo" zrobić pod Linuxem

Odnośnie zgrywania danych do SCP zamiast do ADF jest jeszcze jedne ważny powód. Format SCP jest to wykonanie obrazu dysku w bardzo wysokiej rozdzielczości, wyższej nawet od tej, którą oferuje KryoFlux, a co za tym idzie robiony jest kompletny obraz dysku wraz z zabezpieczeniem jeśli występuje.
Dla zainteresowanych zostawiam link do ciekawego wątku na ten temat:
https://www.lemon64.com/forum/viewtopic.php?t=56338
1
[#10] Re: DrawBridge pod Linuksem

@valdi74, post #5

W źródłach na githubie jest wersja pod "konsolę" którą według autora powinna się kompilować dla linuksa i nie wymagać wine. Próbowałeś jej?

https://github.com/RobSmithDev/ArduinoFloppyDiskReader/blob/master/ArduinoFloppyReader/ArduinoFloppyReader/readme.txt
[#11] Re: DrawBridge pod Linuksem

@jarokuczi, post #10

Faktycznie! Nie znalazłem tego Sprawdziłem na szybko - kompiluje się i działa. Czyli pozbywamy się wine.
Dzięki!
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem