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ść).

The option Enable debug syslog in the boot loader's Debug menu makes the syslog persistent. If the option Save syslog from previous session during boot is activated in the boot loader options (as it is by default), you'll find the syslog of your last session as /boot/system/var/log/previous_syslog.
If you're not able to boot to get to the previous_syslog, you have to enter the boot loader menu by holding down SHIFT (or SPACE when booting via UEFI) while booting.
In the boot loader's Debug menu you should find the entries Display syslog from previous session and Save syslog from previous session. The former displays the syslog on screen, the latter allows you to save it as a file to disk. Note that at the moment only FAT32 volumes are supported for saving the file. If you want to use a USB stick, but have plugged it in too late so that it isn't recognized yet, you can reset the machine and re-enter the boot loader menu. Note: Don't accidentally boot any operating system or the data will be lost.

index Wypis dziennika na ekran

The on-screen debug output is useful only for debugging very specific issues and is known to have (timing) issues. Don't use it, if you don't have to.
This is only relevant when Haiku fails to boot on your machine and the Debug syslog option doesn't work for some reason. Before the Haiku boot logo appears, hold SHIFT (or SPACE when booting via UEFI) to enter the boot loader menu. Select Select debug options. Near the bottom, Enable on screen debug output will be listed. (Note: The other options could be enabled in an attempt to boot Haiku. If Haiku will boot only when one or more options are activated, be sure to mention which ones.)
Finally select Return to main menu and then Continue booting.
One or more pages of text will display on the screen, only the last few lines need to be included on your ticket. There's more information on the 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.
- On screen debug output (a debug boot time option, see above).

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”.