Hakemisto
Trac-tilin saaminen
Vikailmoituksen luominen
Sovellusviat
Palvelinviat
Käyttöjärjestelmäydinviat
Käyttöjärjestelmäytimen vianjäljitysalue - KDL
Järjestelmäloki
Vikajäljitystulostus näytölle
Laitteisto-/ajuriviat
Mitä seuraavaksi?

Vikojen ilmoittaminen

Koska kehittäjämme eivät pysty testaamaan jokaista laitteistoyhdistelmää, eikä jokaista erilaista käyttöjärjestelmän vuorovaikutusta, luotamme käyttäjien antavan meille palautetta siitä, kuinka asiat toimivat heidän laitteissaan. Koska Haiku on aika nuori, on hyvin todennäköistä, että käyttäjä kohtaa vikoja. Kiitämme siitä ajasta, jota käytät niistä ilmoittamiseen. Yhdessä voimme parantaa Haikua pala palalta.

Vianjäljityksen pitämiseksi tehokkaana on olennaista noudattaa Vianjäljitysetikettiä.

index Trac-tiilin saaminen

Jos luot vikalipun, sinulla on oltava tili Haikun vikajäljittäjässä.
Luotaessa uutta tiliä muista tarjota sähköpostiosoitteesi, koska se on välttämätön lipun muokkausoikeuksien saamiseksi. Tarkista varmuuden vuoksi roskapostikansiosi pian jälkeenpäin, koska kaikki tärkeät vahvistussähköpostiviestit usein päättyvät sinne.

index Vikailmoituksen luominen

Varmista ennen vian ilmoittamista, että vastaavaa vikailmoitusta ei ole jo olemassa. Voit käyttää myös etsi-toimintoa tähän.
Varmista sen jälkeen kun olet esitellyt ainutlaatuisen vian, että tietosi ovat niin tarkkoja kuin mahdollista:

index Sovellusviat

Kun sovellus kaatuu, voit joko tallentaa ilmoituksen tai kirjoittaa ydintiedoston (molemmat tallentuvat Työpöydälle), jonka voit liittää vikailmoitukseen, tai voit kutsua Vianjäljittäjän.

Jos kyseessä ei ole kaatumisvika, saatat saada lisätietoja käynnistämällä sovelluksen Pääteikkunassa. Jotkut sovellukset tarjoavat lokitiedostoja ja muita valitsimia, kun käynnistät ne tietyillä parametreilla; kokeile -h or --help nähdäksesi, jos näin on laita. Esimerkkinä, katso HaikuDepot-sovelluksen eri lokitiedostotasoja.

index Palvelinviat

Kun elintärkeät palvelimet, kuten app-, registrar- tai input-palvelin kaatuvat, et näe tavallista kaatumishälytystä. Sen sijaan koko näyttö muuttuu valkoiseksi ja gdb-istunto käynnistyy tekstitilassa ja vianjäljittimen tuloste ilmaantuu suoraan näytölle. Todennäköisesti pystyt yhä liikuttamaan hiiren kohdistinta, mikä ylikirjoittaa valkoisen ja gdb-tulosteen näytöllä. Yhä vielä toimivat sovellukset (kuten Prosessivalvonta tai Työpöytäpalkin kello) saattavat myös kirjoittaa vikajäljittimen tulosteen päälle näytölle.
Paitsi että kaikki on rumempaa ja epämukavampaa, sama koskee myös sovellusvikoja. Tärkeintä on hankkia paluujälki (bt-komento). Sinun on ehkä otettava valokuva näytöstä digitaalikameralla, koska et voi kopioida tekstiä mihinkään.
Riippuen siitä mikä kaatui voit yrittää tallentaa kaatumisilmoituksen Työpöydälle save-report-komentorivisovelluksella tai ydintiedoston write-core-komentorivisovelluksella ja painaa virtapainiketta kerran, mikä yrittää sulkea järjestelmän siististi. Jos virtapainike ei toimi, niin on myös olemassa shutdown- ja reboot-komentorivisovellukset.

index Käyttöjärjestelmäydinviat

Käyttöjärjestelmäydinviat ovat tavallisesti vaikutuksiltaan vakavimmat ja samanaikaisesti niiden vikajäljittäminen on vaikeinta. Käyttöjärjestelmäytimeen tai ajuriin osoittavat selvimmin seuraavat oireet:

Huomaa että vaikka ainoastaan viimeinen kohta tuntuu viittaavan laittoistovikaan, kaikki muutkin oireet voivat johtua myös viasta laitteistoajurissa. Jos sinulla on epäilyjä, että mikä laitteiston osa tai vastaava ajuri aiheuttaa pulmia, tarkista, että eroaako tilanne, jos poistat tai otat pois käytöstä laitteen tai ajurin. Esimerkiksi jos epäilet Wifi-verkkoa, saatat huomata, että BIOS-asetuksissa voidaan ottaa se pois käytöstä. Tai jos ei, niin voisit merkata vastuullisen Wifi-ajurin mustalle listalle Haiku-asennuksestasi (katso Käynnistyslataaja).

index Käyttöjärjestelmäytimen vianjäljitysalue - KDL

Jos järjestelmä ei ole siirtynyt KDL-tilaan itsestään, voit tehdä sen tarkoituksellisesti pikanäppäimillä ALT SysReq D (SysReq-näppäin on normaalisti Print-näppäin).
Huomaa, että KDL-tilassa näppäimistösi ei ehkä toimi. PS/2-näppäimistöt toimivat aina, USB-näppäimistöjen kohdalla se riippuu USB-ohjaimen (UCHI/ECHI) tyypistä. Yleensä näppäimistöt olisi liitettävä suoraan porttiin, ei minkään keskittimen (hub) kautta. Joissakin tilanteissa näppäimistöt toimivat vain jos KDL-tilaan on siirrytty pikanäppäinten avulla vähintään kerran. USB OHCI-näppäimistöä ei tällä hetkellä tueta.

KDL itse on erään tyyppinen komentotulkki. Käyttäjä voi suorittaa komentoja, jotka tulostavat tietoja järjestelmästä. Seuraavat komennot saattavat olla kiinnostavia:

bt (eli sc) Tulostaa paluujäljen (eli pinoryöminnän). Jos järjestelmä siirtyy KDL-tilaan omasta tahdostaan, paluujälki tulostetaan tavallisesti automaattisesti. Kirjoita tämä komento, jos näin ei tapahtunut tai osa siitä on vaikeaselkoinen (esimerkiksi kun pinojälki on niin pitkä, että se kiertää ympäri) ja ainoa tapasi tarjota tietoja kehittäjille on näytön valokuvaaminen.
ints Näyttää käsitellyt ja käsittelemättömät laitteistokeskeytykset.
co (eli continue) Jättää järjestelmävianjäljittimen ja jatkaa normaalia järjestelmän toimintaa, jos se on mahdollista.
reboot Alkulataa järjestelmän välittömästi. Menetät kaiken tallentamattomat tiedot ja vieläpä nuo, jotka on tallennettu, mutta joita ei ole vielä kirjoitettu levylle.

Katso lisätietoja artikkelista Tervetuloa vikajäljitysalueelle.

KDL-tuloste kirjoitetaan sarjaporttiin (jos sinulla on sellainen, vastaavaan kaapeliin ja toiseen tietokoneeseen, voit kaapata tulosteen siellä pääteikkunan kautta) ja syslog-järjestelmälokiin. Jos et voi poistua KDL:stä, sitä ei kuitenkaan voida kirjoittaa järjestelmälokiin. Alkulatausvianjäljitysvalitsin mahdollistaa sen tallentamisen kaikesta huolimatta (katso alla).

Voit tuottaa QR-koodeja KDL-tulosteesta, joka voidaan muuntaa tekstiksi käyttäen älypuhelimia ja vastaavia laitteita. Katso blogikirjoitusta QR-koodaa KDL-tulosteesi siitä kuinka saat ulos tietoja KDL:sta käyttäen tätä ominaisuutta.

index Järjestelmäloki

Tämä on ensijainen menetelmä tietojen keräämiseksi ei-käynnistettävästä järjestelmästä.
Syslog-järjestelmäloki (syslog on lyhenne englanninkielisestä lokinimestä system log) sisältää arvokkaita tietoja siitä, mitä järjestelmässäsi tapahtui, mukaanlukien KDL-istunnot. On tavallisesti hyvä ajatus liittää se käyttöjärjestelmäydinaiheiseen Trac-lippuun. Järjestelmäloki kirjoitetaan tiedostoon /boot/system/var/log/syslog. Koska kirjoittaminen tiedostoon vaatii toimivan järjestelmän, kaikkein viimeisin tulostustapahtuma ei ehkä ehdi järjestelmälokiin ennen käyttöjärjestelmäytimen pulman ilmaantumista (erityisesti spontaaneissa järjestelmän uudelleenkäynnistymisissä ja KDL-istunnoissa, joita ei voi jatkaa).

Valitsin Ota käyttöön vianjäljitysjärjestelmäloki käynnistyslataajan Vianjäljitys-valikossa tekee syslog-järjestelmälokista pysyvän muistissa. Jos valitsin Tallenna järjestelmäloki edellisestä istunnosta käynnistymisen aikana on aktivoitu käynnistyslataajavalitsimissa (kuten se on oletuksena), löydät viimeisimmän istunnon järjestelmälokin tiedostosta /boot/system/var/log/previous_syslog.
Jos et kykene käynnistämään hakeaksesi previous_syslog-tiedoston, voit siirtyä käynnistyslataajan valikkoon pitämällä alhaalla näppäintä VAIHTO (tai VÄLILYÖNTI käynnistettäessä UEFI:n kautta) käynnistyksen aikana.
Käynnistyslataajan Vianjäljitys-valikossa sinun pitäisi nyt löytää rivit Näytä järjestelmäloki edellisestä istunnosta ja Tallenna järjestelmäloki edellisestä istunnosta. Edellinen näyttää järjestelmälokin näytöllä, jälkimmäinen sallii sinun tallentaa sen tiedostona levylle. Huomaa, että tällä hetkellä vain FAT32-taltioita tuetaan tiedoston tallentamisessa. Jos haluat käyttää USB-tikkua, mutta olet liittänyt sen järjestelmään niin myöhään, että sitä ei ole vielä tunnistettu, voit nollata koneen ja siirtyä uudelleen käynnistysvalikkoon. Mutta taas: Älä vahingossa käynnistä mitään käyttöjärjestelmää tai tiedot katoavat.

index Vikajäljitystulostus näytölle

Vianjäljitystulostus näytölle on hyödyllinen vain hyvin erikoisten kohteiden vianjäljityksessä ja kun kohteissa tiedetään olevan (ajoitus)pulmia.
Se on ajankohtainen vain kun Haikun alkulataus epäonnistuu ja valikkovalinta Vikajäljitä järjestelmäloki ei jostain syystä toimi. Pidä ennen Haikun alkulatauslogon ilmaantumistta alhaalla VAIHTO-näppäintä (tai VÄLILYÖNTI-näppäintä, kun alkukäynnistetään UEFI:n kautta) päästäksesi alkulatausvalikkoon. Valitse Valitse vianjäljitysvalinnat. Lähellä alareunaa luetellaan Ota käyttöön vikajäljitystulostus näytölle. (Huomaa: Toiset valitsimet voivat olla käytössä yrityksenä alkuladata Haiku. Jos Haiku alkulatautuu vain kun yksi tai useampi valitsin on käytössä, varmista, että mainitset mitkä niistä).
Valitse lopuksi Paluu päävalikkoon ja sitten Jatka alkulatausta.
Yksi tai useampia tekstisivuja näytetään näytölle, vain muutama harva viimeinen rivi on liitettävä vikailmoituslippuun. Tässä on lisätietoja Alkulataajasta.

index Laitteisto-/ajuriviat

Kun ollaan tekemisissä laitteisto- tai ajurivikojen kanssa, sinun pitäisi liittää seuraavia tietoja tekstitiedostona:

- listdev Yksityiskohtainen luettelo laitteistostasi, mukaanlukien valmistaja- ja pci-tunnisteet, samanlainen kuin Linuxin lshw ja lspci.
- listusb -v Otaksutaan sen olevan USB:hen liittyvä pulma, sama kuin lsusb.
- open /var/log/syslog Haikun käyttämään ensisijaiseen järjestelmälokiin tutustumiseksi katso yllä Syslog, joka on kuin vianjäljitys näytölle käynnistyksen aikana. Komennolla open voit poimia olennaisen osan järjestelmälokista testieditorissa.
- listimage | grep drivers/ Luettelee kaikki käytetyt ajurit.
- usb_hid_report USB-syötelaitteiden tapauksessa lisää tiedosto /tmp/usb_hid_report_descriptor_*.bin.
- ints Käytettävissä vain Käyttöjärjestelmäytimen vianjäljitysalueella (katso yllä). Näyttää keskeytysten käytön. Eri laitteiden kesken jaettuja keskeytyksiä ei pitäisi olla montaa.
- Vianjäljitystulostuksessa näytölle (vianjäljityksen alkulatausaikainen valitsin, katso yllä).

Neljä ensimmäistä komentoa kirjoitetaan Pääteikkunassa. Lisää > output.txt komennon jälkeen ja se putkitetaan tekstitiedostoon, jonka nimi on "output.txt", jonka voit liittää vikailmoitukseesi tai sähköpostiviestiisi.

index

Vikailmoituksen tekemisen jälkeen kehittäjä tutkii vikaa ja yrittää luokitella sen. Muista, että olemme kaikki vapaaehtoisia ja sellaisena joskus vikailmoitus voi olla vastaamattomana jonkin aikaa. Lisätietojen lisääminen silloin kun sellaista ilmenee, auttaa tavallisesti vian poimimista käsiteltäväksi nopeammin, mutta älä yritä 'töniä' vikaa lisäämällä ei-kuvaavia kommentteja.

Muista, että vika ei ole jotain, johon käytät pikkuisen aikaa ja sitten kaikki on tehty. Jos ilmoitat viasta, olet osa Haikun kehitysprosessia. Kehittäjät saattavat esittää kysymyksiä yrittäessään korjata vikaa. Pysyttele tavoitettavissa vastataksesi kysymyksiin. Katso osanottamisesi -tehdyksi' kun vika on merkitty 'fixed'.