środa, 28 kwietnia 2021

Drugie życie DFL

Firma D-Link miała kiedyś w ofercie zapory sieciowe. Całkiem fajne ;-) bo oparte na oprogramowaniu firmy Clavister, która produkuje takie urządzenia pod własną marką.

Miała, bo od kilku już dobrych lat te urządzenia - mowa o serii DFL - już nie są przez D-Linka oferowane.

Ci, którzy siedzą trochę w tego typu urządzeniach, wiedzą zapewne, że platforma, na jakiej są one zbudowane, to jest najczęściej albo jakiś ARM (to głównie w tych niższych/mniejszych modelach), albo x86/x64.

Sprzęt, czyli płyta główna z komponentami zaprojektowana jest i zbudowana z przeznaczeniem do urządzeń typu Appliance - czyli najczęściej o wysokości 1U, bez wyjścia wideo (bo i po co) oraz z wieloma portami Ethernet (w końcu wieloportowy router) - ale z drugiej strony aż tak bardzo nie różni się od zwykłego PCta - i w przypadku platform opartych o architekturę x86/x64 najczęściej do pewnego stopnia zachowuje się jak pecet, czyli daje się uruchamiać przy pomocy w miarę standardowego obrazu oprogramowania (ma na pokładzie BIOS, który wyszukuje w dostępnych urządzeniach czy da się z nich uruchomić), czasem nawet pozwalając na wybór urządzenia, jak w normalnym pececie.

To oczywiście nie jest aż tak proste, bo po pierwsze takie urządzenie nie posiada portu VGA, więc nic nie widać, a po drugie może być wyposażone w specjalizowane procesory do obsługi sieci czyli takie, których normalnie się nie używa i w związku z tym nie są one oprogramowane w standardowo dostępnych paczkach oprogramowania i wymagają niedostępnych publicznie driverów i tak dalej.

Wracając do urządzeń DFL, urządzenia DFL-1660 i DFL-2560 są platformami zgodnymi z x86/x64, posiadają na pokładzie porty USB, porty SATA i port CF na kartę CompactFlash, na której normalnie rezyduje oprogramowanie Clavistera. Po odłączeniu karty CF i podłączeniu konsoli szeregowej widać zachowanie bardzo podobne do zwykłego peceta, czyli komunikat, że nie znaleziono odpowiedniego urządzenia z którego można by się uruchomić.

I teraz, istnieją projekty pfSence i OPNsense, które są bezpłatnie dostępnymi, wersjami oprogramowania opartego na FreeBSD z przeznaczeniem do stosowania jako zapory sieciowe. Firma Netgate, obecny producent pfSense sprzedaje również platformy sprzętowe bazujące na tym oprogramowaniu. Poza tym oferuje wersję CE - czyli otwartą i bez dodatkowego wsparcia technicznego, dostępną dla każdego.

Obydwie te wersje można na wyżej wspomnianych modelach DFL uruchomić. Wymaga to ściągnięcia gotowych obrazów w wersji do komunikacji via port szeregowy (tak zwana wersja Serial), nagrania w odpowiedni sposób na pamięć Flash USB a następnie uruchomienia z niej platformy. I to działa.

Dzięki temu z 8 letniej platformy sprzętowej z oprogramowaniem Clavistera, której nikt już nie wspiera i nie produkuje do niej poprawek oprogramowania, można zrobić całkiem nowoczesne urządzenie, na którym może działać cały czas rozwijane oprogramowanie.

Oczywiście z tą nowoczesnością nie należy przesadzać w takim sensie, że platforma jest jednak sprzętowo dość wiekowa, jak na dzisiejsze standardy. DFL-1660 zbudowany jest na Celeronie 440@2.00 GHz i ma na pokładzie 1GB RAM; DFL-2560 to Pentium 4@2.8GHz z 2GB RAM.
Z drugiej strony budowa jest a'la PC czyli są na płycie głównej normalne sloty na pamięci DIMM, w których można obsadzić standardowe moduły dostępne w tej chwili na Allegro za jakieś grosze.
Rozbudowa RAMu do takich 4 czy 8GB nie będzie więc problemem.
Zamiast karty CF można włożyć 2.5 calowy dysk SSD rzędu 32-64GB który powinien być wystarczający. Jest nawet do niego przewidziane zasilanie.

I na koniec otrzymujemy pudełko, które może nam posłużyć jako router/firewall jeszcze przez jakiś czas :-)

niedziela, 13 października 2019

BoxeeBox reborn... again

Dawno, dawno temu, było sobie takie urządzenie, o którym kiedyś już pisałem.
Od tamtego czasu zmieniło się niewiele, bo urządzenie jest o kolejne 5 lat starsze. Za jakąś jedną piątą ówczesnej ceny nowego Boxee'go można teraz kupić jednoukładowy komputerek w rodzaju RPi 4, który będzie dużo lepiej służyć jak media center z Kodi na pokładzie, niż 10-letni już BoxeeBox.
Więc, o ile komercyjnie urządzenie to jest już dawno historią i nikt nie bawi się w jego reanimację (takie próby były jeszcze kilka lat temu, kiedy żył projekt BOXEE+HACKS) oraz forum boxeed.in - które notabene już nie działa), to jednak w rękach użytkowników znajduje się jeszcze, jak szacuję, około tysiąca sprawnych urządzeń na całym świecie.

Architektura oprogramowania BoxeeBox wymaga do działania obecności serwera Boxee (lokalnie lub w Internecie). Niestety jakiś czas temu (rok, czy dwa lata już będzie) Samsung ostatecznie wyłączył serwery Boxee co spowodowało, że jeśli urządzenie zostało przywrócone do ustawień fabrycznych lub użytkownik nie był zalogowany, to urządzenia uruchomić się już nie dało. Ot, taki prezent na koniec.

Szczęśliwie, użytkownik cigamit powyżej wspomnianego forum, pracował nad lokalną wersją serwera Boxee. O ile pełnej wersji serwera wraz ze wszystkimi usługami nie udało się odtworzyć, to powstało przynajmniej minimum, które umożliwia utrzymanie działającego BoxeeBox - co sprowadza się do podłożenia - w miejsce oryginalnego serwera - jego kopii umożliwiającej "logowanie" się użytkownika i tym samym uruchomienie platformy.
Opisane jest to nieco na portalu Reddit.
Użytkownik tego portalu - nicholasserra - utworzył również publicznie dostępny klon takiego serwera, co każdemu posiadającemu BoxeeBox'a, umożliwia jego używanie.

Minimum, jakie trzeba zrobić, to pokazać BoxeeBox'owi inny serwer DNS. Obecnie istnieje serwer DNS o adresie 18.211.111.89. Na tymże serwerze znajdują się rekordy A wskazujące Boxee'emu adres 52.206.28.149, pod którym to z kolei pracuje sobie serwer HTTP serwujący dokument XML, który udaje serwer Boxee na tyle, na ile jest to niezbędne.
Jeśli ktoś chciałby coś takiego zrobić sobie sam, na powyższym portalu jest opis, co powinno zostać zrobione, ale dla celów dokumentacyjnych umieszczę to i tutaj.

Potrzebujemy działający serwer DNS oraz serwer HTTP.
Serwer DNS powinien rozwiązywać adresy:
  app.boxee.tv
  api.boxee.tv
  dir.boxee.tv
  s3.boxee.tv
  t.boxee.tv
  res.boxee.tv
  0.ping.boxee.tv
  1.ping.boxee.tv
  2.ping.boxee.tv
  3.ping.boxee.tv
  4.ping.boxee.tv
  5.ping.boxee.tv
  6.ping.boxee.tv
  7.ping.boxee.tv
  8.ping.boxee.tv
  9.ping.boxee.tv
  dl.boxee.tv

i wskazywać na nasz serwer HTTP. Serwer HTTP powinien zwracać dokument XML (kod został pożyczony od użytkownika nicholasserra; niestety dołączanie tagów XML nie bardzo działa, stąd będzie obrazek):


I to już pozwala na uruchomienie BoxeeBox'a... ponownie.