Port szeregowy
Port szeregowy to prosty mechanizm komunikacji niskiego poziomu między komputerami.
Zalety:
- prosta konfiguracja raz (jeśli masz sprzęt)
- niezawodne, ponieważ transmisja danych zależy tylko od prostych interfejsów API i jądra, na które panika ma mniejszy wpływ niż na podsystem TCP / IP.
Wady:
- większość współczesnych laptopów nie ma już portu szeregowego (narażonego?), aby zaoszczędzić miejsce. Ale komputery stacjonarne i maszyny wirtualne nadal działają.
- potrzebujesz także drugiego komputera z portem szeregowym, aby odbierać dane, ale dotyczy to w zasadzie wszystkich wbudowanych płyt programistycznych, takich jak Raspberry Pi.
- ograniczona przez długość kabla szeregowego warstwy fizycznej, w przeciwieństwie do sieci TCP / IP, które są nieograniczone. Można to jednak obejść za pomocą urządzenia, które łączy interfejs szeregowy z TCP / IP. Ale są urządzenia, które konwertują między nimi.
Port szeregowy wygląda następująco:
a na RPI jest dostępny przez GPIO.
Następnie, jeśli masz wymagany sprzęt, połącz z drugiego komputera z komputerem głównym za pomocą:
screen /dev/ttyS0 115200
To faktycznie daje ci powłokę.
Następnie na głównym komputerze rozpocznij operację paniki.
Kiedy dochodzi do paniki, zrzut paniki jest przesyłany strumieniowo do drugiej maszyny i można to wszystko zobaczyć, przewijając w górę terminal.
Inne metody
Istnieją również inne metody, które pokonują wspomniane wyżej ograniczenia sprzętowe, kosztem większej złożoności i mniejszej niezawodności. Godne uwagi metody:
- netdump: przesyła transmisję paniki przez TCP / IP. Polega na tym, że podsystem TCP / IP nie jest uszkodzony.
- kdump: wydaje się być podstawowym mechanizmem linux-crashdump wspomnianym na stronie : https://askubuntu.com/a/104793/52975 Uruchamia drugie jądro Linuksa w celu zbadania uszkodzonego jądra. Co może pójść nie tak?! :-)
Zobacz także tę świetną odpowiedź: https://unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
Krok debugowania
Ostatecznie uzyskanie danych wyjściowych z paniki wymaga działania niektórych funkcji jądra, a każda funkcja jądra może zostać uszkodzona przez panikę.
Ale kto potrzebuje paniki, jeśli możesz używać GDB w jądrze? Jeśli jesteś hardcorowy, spójrz na:
Każdy problem spada, gdy masz pełną widoczność (i wystarczająco dużo czasu!).