W ten weekend się udało (-:
Poniżej opiszę jak podłączyć Amigę do internetu kombinacją ESP8266 i SLIP. Tak jak wspominałem, rozwiązanie ma swoje wady – przede wszystkim szybkość, ale ma zasadniczą zaletę: po wstępnym ustawieniu, Ami z ESP działa w pełni samodzielnie.
Jak znajdę kolejny wolny weekend, spróbuję dopiąć do tego ATMegę z plip2slip i powinniśmy dostać bieda-plipboksa z WiFi.
Ale do rzeczy.
Co będzie nam potrzebne:
• Oczywiście moduł ESP8266, wystarczy ESP-01
• Zasiacz 3,3V. Ja użyłem zaslania z USB i stabilizatora LD33V3
• Płytka stykowa, przewody połączeniowe, dwa rezystory 1 KΩ i (opcjonalnie) tact-switch
• Adapter USB-UART
• MAX3232, np. w postaci gotowego modułu (dostępny w cenie gruzu na popularnym serwisie aukcyjnym) plus adapter DB9 - DB25. Ja miałem akurat pod ręką hata do Raspberry Pi, który jest niepotrzebnie duży, ale robi co do niego należy.
• Preferowanie komputer z Linuksem (tylko do konfiguracji!). Najprawdopodobniej na Windowsie będzie dało się z pewnymi modyfikacjami powtórzyć wszystkie kroki, ale nie jestem tego w stanie zagwarantować, bo szczerze mówiąc, jestem mało biegły w tym OS-ie.
• Amiga z zainstalowanym stosem TCP. Poniżej opisuję jak skonfigurować Roadshow, ale jestem pewien, że da się to zrobić też pod AmiTCP, czy Miami.
• Coś do przeniesienia plików na Amigę, zanim podłączymy ją do internetu
Tak jak wcześniej wspominałem, gotowe moduły ESP, które podlinkowali wyżej Koledzy prawdopodobnie będą używalne w poniższym setupie i trzeba będzie je tylko przeflashować i odpowiednio skonfigurować.
Wgrywanie firmware dla ESP
1. Podłączamy ESP i adapter USB-UART do płytki systemowej. Ja skorzystałem z
tego opisu.
Uwaga 1: autor ww. opisu wspomina o zewnętrznym zasilaniu, bo ESP zużywa sporo mocy. Większość adapterów USB-UART nie dostarcza wystarczającego prądu przy napięciu 3,3V, więc zewnętrzne zasilanie jest konieczne.
Uwaga 2: Zamiast używać tact switcha między GPIO0 i masą, wygodnie będzie po prostu zewrzeć pin przewodem, a po skończonym flashowaniu odpiąć go. Z kolei reset zdecydowanie wygodniej używa się z tact-switchem.
2. Na maszynie z Linuksem instalujemy esptool i net-tools
3. Pobieramy i rozpakowujemy firmware z
Githuba
4. Przełączamy moduł ESP w tryb flashowania
• Upewniamy się, że GPIO0 jest zwarty do masy
• Wciskamy reset
5. Wgrywamy firmware.
• Przechodzimy do katalogu z binarkami firmware:
cd esp_slip_router-master/firmware
• Dla świętego spokoju warto najpierw wyzerować flash ESP. Zdarza się, że pozostałości z poprzedniego firmware doprowadzają do niedeterministycznego zachowania modułu:
esptool.py --port /dev/ttyUSB0 erase_flash
(oczywiście /dev/ttyUSB0 zastępujemy ścieżką odpowiednią dla naszego adaptera USB-UART)
• Wgrywamy właściwy firmware:
esptool.py --port /dev/ttyUSB0 write_flash -fs detect 0x00000 0x00000.bin 0x10000 0x10000.bin
6. Po skończonym flashowaniu wypinamy przewód zwierający GPIO0 z masą i wciskamy reset na naszej płytce stykowej
Konfiguracja modułu
Teoretycznie dałoby się skonfigurować moduł już z poziomu Amigi. Problem jest taki, że domyślny baudrate ustawiony jest na 115200 i nie ma szans, żeby wbudowany port szeregowy zadziałał z taką prędkością.
Alternatywnie możemy przekompilować obraz firmware z innymi domyślnymi wartościami, ale nie miałem czasu, żeby się w to bawić. I tak opisanie tego zajęło mi więcej niż myślałem.
Skonfigurujemy zatem moduł z poziomu Linuksa.
1. Włączamy interfejs SLIP-a:
slattach -L -p slip -s 115200 /dev/ttyUSB0
2. Nadajemy IP interfejsowi SLIP i łączymy się przez telnet do konsoli modułu:
ifconfig sl0 192.168.240.2 pointopoint 192.168.240.1 up mtu 1500
telnet 192.168.240.1 7777
3. Ustawiamy klienta WiFI i baudrate
CMD>set ssid SSID_MOJEJ_SIECI
SSID set
CMD>set password haslo-mojej-sieci
Password set
CMD>set use_ap 0
Using STA interface
CMD>set bitrate 57600
Bitrate will be 57600 after save & reset.
CMD>save
Config saved
I tu uwaga: 57600 baudów to maksimum, jakie mogłem wyciągnąć na A600 z Furią. Powyżej tego komunikacja po prostu nie działała. Przypuszczam, że dałoby się wydusić więcej używając sprzętowej kontroli przepływu (RTS/CTS), ale to ciągnie za sobą wymianę modułu ESP-01 na taki z dodatkowymi GPIO, przekompilowanie firmware, etc. Wolę więc poświęcić ten czas na ustawienie magplipa. Dla gołej Amigi z 68000 zaczynałbym od 9600 baudów i ewentualnie szedł w górę.
Uwaga 2: Bezpieczniej jest trzymać się standardowych wartości baudrate typu 9600, 19200, 38400, 57600. Jeśli ustawimy coś, czego nie obsłuży ESP lub moduł UART, będziemy musieli ponownie flashować urządzenie, bo obecna wersja firmware nie ma opcji sprzętowego resetu ustawień.
4. Jeśli wszystko poszło w porządku, maszyna z Linuksem nie będzie nam potrzebna.
Konfiguracja Amigi
1. Pobieramy cslip.device z
Aminetu i kopiujemy go do DEVS:Networks
2. Tworzymy konfigurację interfejsu:
• Przechodzimy do SYS:Storage/NetInterfaces, kopiujemy któryś plik (potrzebujemy tylko ikonkę), przemianowujemy go na SLIP i zmieniamy jego zawartość na następującą:
# Configuration for SLIP connection.
device=cslip.device
unit=0
pointtopoint=yes
address=192.168.240.2
destination=192.168.240.1
mtu=1500
requiresinitdelay=no
Uwaga: jeśli chcemy, aby SLIP łączył się automatycznie, przenosimy plik SYS:Storage/NetInterfaces/SLIP do DEVS:NetInterfaces. Ja zostawiłem go w Storage i dwuklikam ikonkę, kiedy chcę się podłączyć do sieci.
• Tworzymy plik ENVARC:Sana2/slip0.config i wpisujemy następującą zawartość:
serial.device 0 57600 192.168.240.2
Jeszcze raz zwracam uwagę na baudrate!
• W DEVS:Internet/Routes dodajemy:
default 192.168.240.1
• W DEVS:Internet/name_resolution dodajemy swój ulubiony serwer DNS:
nameserver 8.8.8.8
Uwaga: oczywiście nic nie stoi na przeszkodzie, żeby wpisać dowolny inny DNS, np. z naszego domowego routera - z pewnością nieco przyspieszy to rozwiązywanie nazw hostów
Podłączamy
1. Wpinamy moduł MAX3232 w miejsce konwertera USB-UART, nie zapominając o podpięciu do niego zasilania 3,3V.
Tutaj uwaga: według konwencji standardowo terminal RS-232 ma gniazdo męskie, a modem – żeńskie. Zatem teoretycznie, jeśli nasz adapter ma gniazdo męskie, powinniśmy użyć krosowanego kabla do podłączenia go z Amigą. Ale w praktyce jest różnie i warto się upewnić, czy TX modemu prowadzi w linii prostej do RX Amigi i odwrotnie. Ja zwykle jestem leniwy i po prostu odpalam NCOMMa i patrzę, czy cokolwiek pojawia się na konsoli. Jeśli nie - zamieniam TX i RX i sprawdzam jeszcze raz.
2. Odpalamy SYS:Storage/NetInterfaces/SLIP (jeśli nie przenosiliśmy go ze Storage do Devs)
3. Sprawdzamy czy wszystko działa, np. wpisując w shellu
ping ppa.pl
4. Cieszymy się koszmarnie powolnym, ale działającym bezprzedowowym internetem na Amidze!
Poza zamieszczonymi w tekście odnośnikami opierałem się o:
• Dokumentację Roadshow
•
Skrypt instalacyjny napisany przez Terriblefire (zmodyfikowałem go nieco, żeby zgadzał się routing)
• Bloga
Lallafa
• Własne doświadczenia (-;
Ostatnia aktualizacja: 26.04.2021 12:41:49 przez btr