Tłumaczenie tej strony jest niekompletne. Nieukończone części wyświetlane są w języku angielskim.
Indeks
Zakładanie konta Trac
Otwieranie zgłoszenia
Błędy w aplikacjach
Błędy w serwerach
Błędy w jądrze
Tryb krokowy jądra (KDL)
Syslog
Wypis dziennika na ekran
Błędy sprzętowe/w sterownikach
Co dalej?

Zgłaszanie błędów

Nasi deweloperzy nie są w stanie przetestować każdej możliwej kombinacji sprzętu ani każdego możliwego sposobu interakcji z systemem. Z tego powodu polegamy na użytkownikach, licząc na to, że dadzą nam znać jak Haiku działa na ich komputerach. Ponieważ Haiku jest projektem dość młodym, istnieje duże prawdopodobieństwo, że natkniesz się na błędy. Dziękujemy za czas poświęcony na ich zgłoszenie. Razem możemy ulepszyć Haiku, krok po kroku.

Aby ułatwić na śledzenie problemów ważne jest przestrzeganie Etykiety systemu śledzenia błędów (ang.).

index Zakładanie konta Trac

Aby zgłosić problem, potrzebujesz konta w systemie śledzenia błędów Haiku.
Zakładając konto koniecznie podaj swój adres e-mail ponieważ jest on niezbędny do otrzymania podstawowych uprawinień modyfikacji zgłoszeń. Nie zapomnij sprawdzić katalogu ze spamem maile weryfikacyjne zwykle tam trafiają.

index Otwieranie zgłoszenia

Przed otworzeniem zgłoszenia upewnij się, że podobne jeszcze nie istnieje. Możesz do tego użyć funkcji Szukaj.
Kiedy już ustaliłeś, że Twój problem nie został wcześniej zgłoszony, ustal informacje najdokładniej jak potrafisz:

index Błędy w aplikacjach

Kiedy aplikacja ulegnie awarii, możesz włączyć Debugger, zapisać raport lub zrzut pamięci (oba na pulpicie). Pliki dołącz do zgłoszenia.

If it's not a crashing bug, you may get useful information when starting the application from Terminal. Some applications provide logging and other options when started with certain parameters; try -h or --help to see if that is the case. As example, see the different logging levels of HaikuDepot.

index Błędy w serwerach

Gdy krytyczne dla systemu serwery takie jak app server, registrar lub input server ulegają awarii, nie zobaczysz zwyczajnego okna z błędem, jak w przypadku aplikacji. Zamiast tego cały ekran zostanie wyczyszczony na biało i zostanie wystartowana tekstowa sesja Debuggera, której rezultaty pojawią się na ekranie. Prawdopodobnie nadal będziesz mieć możliwość poruszania kursorem, który nadpisze fragmenty ekranu. Wciąż działające aplikacji (takie jak ProcessController lub zegar w Deskbarze) również mogą się tak zachowywać.
Poza tym, że wszystko będzie brzydsze i mniej wygodne, obowiązują te same zasady co w przypadku błędów w aplikacjach. Co najważniejsze, uzyskaj stos wywołań (komenda bt). Może być konieczne zrobienie zdjęcia ekranu, ze względu na brak możliwości skopiowania tekstu.
W zależności od tego, co dokładnie uległo awarii, możesz spróbować zapisać raport lub zrzut pamięci na pulpicie komendami (odpowiednio) save-report i write-core, a następnie wcisnąć krótko przycisk zasilania jeden raz, aby wyłączyć komputer. Jeżeli przycisk zasilania nie działa, dostępne są również komendy shutdown i reboot.

index Błędy w jądrze

Błędy w jądrze zazwyczaj sprawiają najwięcej problemów, będąc jednocześnie najtrudniejszymi do zbadania. Są różne objawy wskazujące na błąd w jądrze lub sterowniku:

Mimo że tylko ostatni symptom wskazuje na powiązanie ze sprzętem, wszystkie pozostałe objawy też mogą być spowodowane błędem w sterowniku. Jeżeli podejrzewasz jakieś konkretne urządzenie lub sterownik o powodowanie problemów, sprawdź czy wyłączenie/usunięcie ich robi różnicę. Dla przykładu, podejrzewając WiFi poszukaj w BIOS-ie opcji wyłączenia łączności bezprzewodowej. Możesz również wyłączyć ładowanie odpowiedniego sterownika (zobacz rozdział Boot Loader).

index Tryb krokowy jądra (Kernel Debugging Land, KDL)

Jeżeli system nie wszedł do KDL, możesz to zrobić samodzielnie skrótem klawiszowym ALT SysReq D (SysReq to zazwyczaj Print).
Weź pod uwagę, że w KDL klawiatura może nie działać. Klawiatury PS/2 działają zawsze, klawiatury USB podłączone do kontrolera UHCI działają tylko, gdy KDL został wywołany z klawiatury przynajmniej raz. USB OHCI nie jest obecnie obsługiwane.

Sam KDL jest rodzajem powłoki. Można w nim wywoływać komendy zwracające informacje o stanie systemu. Poniższe są szczególnie przydatne:

bt (lub sc) Prints a back trace (aka stack crawl). If the system entered KDL on its on volition, a back trace is normally printed automatically. Enter the command if that didn't happen or part of it is obscured (e.g. when the stack trace is so long that it wrapped around) and your only way of providing the information to developers is by taking a picture of the screen.
ints Wypisuje obsłużone i nieobsłużone przerwania sprzętowe.
co (lub continue) Opuszcza tryb badania jądra i wznawia normalną pracę systemu, o ile jest to możliwe.
reboot Natychmiast restartuje system. Powoduje utratę niezapisanych danych oraz tych zapisanych, ale nie zrzuconych jeszcze na dysk.

Więcej informacji w artykule Welcome to Kernel Debugging Land (ang.).

Wyjście KDL jest kopiowane na port szeregowy (jeśli komputer jest wyposażony w taki port, a ponadto masz odpowiedni kabel i drugi komputer, możesz je przechwycić korzystając z terminala) oraz do dziennika systemu. To ostatnie nie będzie możliwe, jeżeli nie możesz wyjść z KDL. Istnieje opcja boot loadera pozwalająca przechwycić informacje z KDL mimo tego (patrz niżej).

Możesz wygenerować kody QR z wynikiem KDL, które mogą być potem odczytane na smartfonie lub podobnym urządzeniu. Zobacz wpis QR Encode your KDL Output (ang.) na blogu, aby dowiedzieć się jak korzystać z tej możliwości.

index Syslog

Jest to preferowana metoda wyciągnięcia informacji z niestartującego systemu.
Syslog (skrót od ang. system log, dziennik systemu) zawiera wartościowe informacje dotyczące tego, co działo się z systemem, włączając w to sesje KDL. Dobrą praktyką jest dołączanie tego pliku do zgłoszeń dotyczących jądra. Syslog jest zapisywany do pliku /boot/system/var/log/syslog. Ponieważ zapisywanie do pliku wymaga działającego systemu, najświeższe informacje mogą się w nim nie znaleźć, jeżeli wystąpi problem z jądrem (w szczególności przy losowych restartach lub sesjach KDL, z których nie można wyjść).

Opcja Enable debug syslog w menu bootloadera Debug menu sprawia, że syslog jest zrzucany bezpośrednio do pliku. Jeżeli opcja Save syslog from previous session during boot jest aktywowana (a domyślnie jest), syslog z poprzedniej sesji znajdziesz w pliku /boot/system/var/log/previous_syslog.
W przypadku niestartującego systemu, aby dostać się do poprzedniego syslogu wciśnij klawisz SHIFT podczas rozruchu.
W Debug menu bootloadera znajdziesz pozycje Display syslog from previous session oraz Save syslog from previous session. Pierwsza z nich wyświetla syslog na ekranie, druga pozwala zapisać dziennik do pliku. Obecnie tylko partycje FAT32 są obsługiwane. Jeśli chcesz użyć dysku USB, ale został podłączony za późno i przez to nierozpoznany, uruchom komputer ponownie i jeszcze raz wejdź do menu. Uwaga: przypadkowe uruchomienie systemu spowoduje utratę danych z dziennika.

index Wypis dziennika na ekran

Ta opcja jest przydatna do badania tylko ściśle określonych przypadków i wiadomo, że są z nią problemy. Nie używaj jej, o ile nie musisz.
Poniższe informacje mają zastosowanie tylko jeśli Haiku nie uruchamia się i opcja Debug syslog z jakiejś przyczyny nie działa. Podczas rozruchu, zanim pojawi się logo Haiku, przytrzymaj SHIFT, aby otworzyć menu bootloadera. Wybierz Select safe mode options. Na dole pojawi się opcja [ ] Enable on screen debug output. (Uwaga: inne opcje także mogą być zaznaczone. Jeśli Haiku uruchamia się tylko z określonymi kombinacjami, opisz je w zgłoszeniu).
Na koniec wybierz Return to main menu, a następnie Continue booting.
Kilka stron tekstu zostanie wyświetlone na ekranie, ale tylko kilka ostatnich linii powinno być dołączone do zgłoszenia. Więcej informacji o rozruchu systemu jest w rozdziale Boot Loader.

index Błędy sprzętowe/w sterownikach

Mając do czynienia z błędem dotyczącym sprzętu lub sterownika, do zgłoszenia powinny być załączone jako pliki wyniki następujących komend:

- listdev Szczegółowa lista sprzętu, zawierająca identyfikatory producentów i modeli, odpowiednik linuksowych lshw i lspci.
- listusb -v W przypadku problemów z USB, odpowiednik lsusb.
- open /var/log/syslog Dziennik systemu opisany wyżej. Komendą open możesz przyciąć dziennik w edytorze tekstu.
- listimage | grep drivers/ Sporządza listę wszystkich używanych sterowników.
- usb_hid_report In case of USB input devices, add the /tmp/usb_hid_report_descriptor_*.bin file.
- ints Dostępna tylko w Trybie krokowym jądra (KDL) (patrz wyżej). Wyświetla przerwania. Nie powinno być zbyt wielu współdzielonych przez różne urządzenia.
- Wypis dziennika na ekran (opcja ustawiana podczas rozruchu, zobacz wyżej).

Pierwsze cztery komendy należy wpisać w aplikacji Terminal. Dodając > output.txt po komendzie, można przekierować jej wynik z ekranu do pliku o nazwie „output.txt”, który później łatwo załączyć do zgłoszenia lub maila.

index

Po zgłoszeniu błędu, jeden z deweloperów rzuci na niego okiem i spróbuje go sklasyfikować. Pamiętaj, wszyscy jesteśmy wolontariuszami, czasami zgłoszenie może pozostać przez jakiś czas bez odpowiedzi. Dołączanie nowych informacji zazwyczaj sprawia, że błąd zostanie naprawiony szybciej, ale nie należy „podbijać” zgłoszenia nieistotnymi komentarzami.

Pamiętaj też, że zgłoszenie błędu to nie jest jednorazowy wysiłek. Po otwarciu zgłoszenia stajesz się częścią procesu jego rozwiązywania. W jego trakcie deweloperzy mogą mieć pytania. Zostań w kontakcie, aby móc na nie odpowiedzieć. Możesz uznać swoje zaangażowanie za „zakończone” dopiero gdy zgłoszenie zostanie oznaczone jako „rozwiązane”.