Budujemy serwer dostępowy RS-232 !

Widok na podpisane kable konsolowe

W zawodzie „sieciowca” często wykorzystujemy port COM (RS-232) do zarządzania różnymi urządzeniami – switch’ami, router’ami, fiewall’ami etc. Co zrobić jeżeli potrzebujemy takiego dostępu zdalnie np. do wynajętego rack’a ? Na rynku jest wielu producentów oferujących swoje rozwiązania np. PERLE, AVOCENT, MOXA. Są to urządzenia wyposażone najczęściej w 16, 32, 48 portów rs-232, zdublowane zasilacze lub dwie karty sieciowe, niestety za które trzeba odpowiednio zapłacić. Jeżeli nie potrzebujemy, aż tylu portów lub innych opcji znajdujących zastosowanie w komercyjnym użyciu, możemy pokusić się o budowę własnego serwera, za pomocą którego uzyskamy dostęp do naszych urządzeń. A więc do dzieła!

Co będzie potrzebne ?

  • Komputer klasy PC, wyposażony w odpowiednią ilość złączy PCI oraz USB. Przyda się również obudowa midi tower ATX, tak, aby pomieścić śledzie z portami COM.
  • kontroler UNITEK PCI6S – 6x RS232 (COM) lub
  • Adapter/Przejściówka USB RS-232 (na popularnym serwisie aukcyjnym od 5zł)
  • RJ45 DB9 console cable lub
  • Adapter DB9-RJ45 + Rj45 to RJ45 console cable
  • Urządzenie za pomocą, którego przeprowadzimy test połączeń.

Platforma testowa

  • Hewlett-Packard HP Compaq 8000 Elite compaq
  • 2 x kontroler UNITEK PCI6S – 6x RS232 (COM) Kontroler UNITEK PCI6S – 6x RS232 (COM)
  • 8 x Adapter/Przejściówka USB RS-232 Przejsciowka USB to RS-232
  • 15 x RJ45 DB9 console cable
    Console cable
  • 6 x Adapter DB9-RJ45
    Adapter DB9 to RJ45
  • 6 x Rj45 to RJ45 console cable
    RJ45 to RJ45 console cable
  • Switch Cisco Catalyst 2960CG-8TC-L
    Switch Cisco Catalyst 2960CG-8TC-L

Powyższa konfiguracja finalnie odda do dyspozycji 21 portów COM ( 1 x wbudowany na płycie, 12 x Unitek, 8x przejściówka USB)

Krok po kroku

  1. Instalujemy w stacji kontrolery unitek’a oraz podpinamy wszystkie przejściówki USB RS-232.
    Instalacja kontrolerów Unitek RS-232
  2. Instalujemy dystrybucję systemu Linux, najlepiej taką, która posiada wbudowane sterowniki do kontrolerów Unitek’a np. Linux Mint w wersji jak niżej.
    Minicom setup 2015-04-16 22_18_06
  3. Następnie trzeba zainstalować paczkę do obsługi portu szeregowego COM ( sudo apt-get install minicom ).
    Minicom setup 2015-04-16 22_19_42
  4. Wyświetlamy ( dmesg | grep tty ) dostępne w systemie porty COM. W tym miejscu najlepiej zapisać wszystkie ttySXX oraz ttyUSBXX, ponieważ te informacje będą potrzebne do konfiguracji paczki minicom.
    Minicom setup 2015-04-16 22_35_40
  5. Wchodzimy do konfiguracji minicom’a ( sudo minicom -s )
    Minicom setup 2015-04-16 22_36_24
  6. Przechodzimy do opcji „Serial port setup” i klikamy Enter
    Minicom setup 2015-04-16 22_39_54
  7. Zmiana poszczególnych opcji polega na naciśnięciu odpowiedniej literki. Pierwsze co należy zmienić to „Serial Device” na pierwsze urządzenie COM (wcześniej zapisywaliśmy listę wyświetloną przez dmesg). Następnie „E – Bps/Par/Bits” dla urządzeń Cisco oraz Juniper ustawić na 9600 8N1. Po dokonaniu odpowiednich zmian, zatwierdzamy Enterem.
    Minicom setup 2015-04-16 22_45_14
  8. Jeżeli chcemy zmienić dodatkowe opcje np. kolor tekstu konsoli to można tego dokonać w „Screen and keybord”. Ja zmieniłem opcje „G – Foreground color (term)” na Yellow oraz „K – History Buffer Size” na 5000 (Max). Zmiany zatwierdzamy Enterem.
    Minicom setup 2015-04-16 22_47_51
  9. Zapisujemy zmiany jako domyślną konfigurację.
    Minicom setup 2015-04-16 22_48_32
  10. Teraz wchodzimy w opcję „Save setup as” i podajemy nazwę po której będziemy się odwoływać do portu COM. Ja wybrałem trywialną nazwę comX, gdzie X to kolejne numery od 0 wzwyż – w tym kroku com0.
    Minicom setup 2015-04-16 22_50_36
  11. Wchodzimy ponownie w opcję „Serial port Setup” i zmieniamy „A – Serial Device” na następne urządzenie portu szeregowego, w moim przypadku „/dev/ttyS4”. Zmiany zatwierdzam Enterem.
    Minicom setup 2015-04-16 22_51_57
  12. Powtarzam krok 10, oczywiście zmieniając nazwę na com1.
    Minicom setup 2015-04-16 22_53_17
  13. Krok 11 oraz 12 powtarzamy dla wszystkich urządzeń portu szeregowego (ttySXX, USBXX) zmieniając za każdym razem nazwę pliku comX na kolejną liczbę.
  14. Pliki z konfiguracją parametrów minicom’a zapisywane są w ścieżce „/etc/minicom
    Minicom setup 2015-04-16 23_03_01
  15. Po zapisaniu wszystkich plików wychodzimy z konfiguracji minicoma
    Minicom setup 2015-04-16 23_03_18
  16. Podpinamy kabel konsolowy do naszego testowego urządzenia (najlepiej zacząć od kabla podpiętego do portu COM na płycie głównej, ponieważ najczęściej będzie to urządzenie /dev/ttyS0, czyli nasz profil com0), uruchamiamy terminal (ctrl + t) i wydajemy polecenie „minicom com0„. Niestety jako zwrotkę otrzymamy komunikat „… Permission denied„, ponieważ obecnie zalogowany użytkownik nie jest członkiem systemowej grupy dialout.
    Minicom setup 2015-04-16 23_03_39
  17. Jeżeli zainstalowaliśmy system z interfejsem użytkownika to przechodzimy do „Menu -> Administration -> Users and Groups”
    Minicom setup 2015-04-16 23_05_01_1
  18. Klikamy w miejscu, w którym znajduje się lista grup do których należy użytkownik
    Minicom setup 2015-04-16 23_08_46_1
  19. Zaznaczamy grupę „dialout” i klikamy OK. Ponownie powinna zostać wyświetlona formatka użytkownika, ale tym razem na liście grup, do których należy użytkownik  będzie również dialout.
  20. Otwieramy terminal i ponownie próbujemy wydać komendę „minicom com0”, tym razem z pozytywnym skutkiem.
    Minicom setup 2015-04-16 23_15_42
  21. Niestety kolor czcionki daleki jest od tego, który my ustawiliśmy w opcjach „Screen and keybord”. Musimy powrócić do konsoli nacisnąć kombinację „ctrl + a”, puścić i szybko nacisnąć „x” (w moim przypadku sukces nastąpił za 3 razem) oraz ponownie uruchomić minicoma, tym razem z opcją „-c on”
    Minicom setup 2015-04-16 23_20_15
  22. Tym razem kolor czcionki powinien być żółty/pomarańczowy.
    Minicom setup 2015-04-16 23_20_29
  23. Oznaczamy kabel, który mamy podpięty do testowego urządzenia nazwą profilu tj. com0
  24. Podpinamy kolejny kabel, uruchamiamy po kolei minicom z następnymi profilami com1, com2, com3 etc. W przypadku gdy otrzymamy prompt od urządzenia, profil jest właściwy i należy opisać kabel właściwą nazwą.
  25. Finał
    DSC_0899

Tips and Tricks

  • Łącząc się po SSH nie mogę rozszerzyć okna, czy jest na to rada ?
    Tak, do komendy „minicom -c on comX” należy dodać „TERM=linux„. Całość powinna wyglądać tak „TERM=linux minicom -c on comX
  • Dostaję komunikat „Device /dev/ttySXX is locked.” dlaczego ?

    Jeżeli sesja minicom’a zostanie niepoprawnie zamknięta, niestety będzie wisieć w nieskończoność. Jedyna rada w takiej sytuacji to wyświetlenie procesów ” ps aux | grep minicom ” odczytanie nr procesu i jego zabicie ” kill Nr_Procesu „.

  • Czy można skrócić uruchamianie minicoma bedąc zalogowanym po ssh np. zamiast „TERM=linux minicom -c on comX” do „comX

    Tak, należy utworzyć puste pliki o nazwach odpowiadającym profilom minicom’a (w moim przypadku musiałem utworzyć dwadzieścia plików o nazwach com0 – com20). W każdym pliku wpisujemy
    Skrypt_bash
    zmieniając profil minicom zgodny z nazwą pliku i zapisujemy plik. Nadajemy plikom atrybut wykonywalności „chmod -x comX” i przenosimy wszystkie pliki do /usr/local/bin”. Teraz wystarczy tylko wpisać comX i możemy zarządzać odpowiednią konsolą.

Galeria

Życzę miłego labowania !

 

 

Brak komentarzy

Dodaj komentarz