[Spis treści] [Sekcja 1 - Wstęp do OpenBSD] [Sekcja 3 - Jak zdobyć OpenBSD?]
Oficjalna strona Projektu OpenBSD dostępna jest pod adresem: http://www.OpenBSD.org.
Można tutaj znaleźć wiele cennych informacji dotyczących Projektu OpenBSD.
Witryna OpenBSD Journal jest serwisem w którym można znaleźć informacje i opinie ze świata OpenBSD.
Witryna OpenBSDsupport.org zawiera "zarządzaną przez użytkowników" dokumentację o różnej zawartości, często obejmującej tematy spoza tego FAQ lub innej oficjalnej dokumentacji.
Wielu użytkowników OpenBSD posiada własne strony internetowe, na których umieszcza różne użyteczne informacje. Jak ze wszystkim w Internecie dobra wyszukiwarka czyni życie łatwiejszym, podobnie jak odrobina sceptycyzmu. Po prostu nigdy nie przepisuj ślepo poleceń (ani nie uruchamiaj żadnych programów) wprost na swoim komputerze jeśli ich nie rozumiesz!
Projekt OpenBSD utrzymuje kilka popularnych list mailingowych, które użytkownicy powinni subskrybować i regularnie śledzić. Aby zapisać się na listę mailingową, wystarczy wysłać wiadomość e-mail na adres: majordomo@openbsd.org. Jest to usługa pozwalająca na automatyczne zapisanie się na listę mailingową. Treść wiadomości powinna zawierać pojedynczą linię z komendą zapisującą użytkownika na wybraną listę. Na przykład:
subscribe announce
Automat, wysyłając wiadomość do użytkownika, poprosi o potwierdzenie chęci subskrybowania listy. Celem takiego działania jest zabezpieczenie użytkownika przed złośliwym żartem, który spowoduje zasypanie skrzynki niechcianą pocztą. Istnieje kilka możliwości potwierdzenia: skorzystanie z linku do interfejsu webowego serwera list, wysłanie odpowiedzi lub maila na adres majordomo@openbsd.org. Bez względu na wybór metody, proszę zauważyć, że łączy je unikatowy numer identyfikacyjny, jak np. A56D-70D4-52C3. Dodatkowym warunkiem jest odpowiedź przed upływem określonego czasu, aby upewnić się, że ty jesteś prawdziwoą osobą, która zarządała subskrybcji listy (to jest prawdziwy "opt-in").
Po potwierdzeniu chęci przystąpienia do listy, zostaniesz natychmiast do niej dodany, a automat powiadomi Cię o tym.
Aby wypisać się z listy, musisz wysłać wiadomość e-mail na adres majordomo@openbsd.org. Może ona wyglądać tak:
unsubscribe announce
Jeżeli masz jakieś trudności z obsługą systemu list mailingowych, przeczytaj najpierw wszystkie instrukcje. Można je otrzymać wysyłając e-mail na adres majordomo@openbsd.org o treści "help".
Istnieje możliwość zarządzania subskrypcją list poprzez bardzo przyjazny interfejs www na stronie http://lists.openbsd.org Najbardziej popularnymi listami mailingowymi są:
Przed wysłaniem pytania na misc lub na jakąkolwiek inną listę, sprawdź archiwum, gdyż większość pospolitych pytań była już zadawana wielokrotnie. Dla Ciebie może to być pierwsze spotkanie z tym problemem, ale inni użytkownicy list mailingowych mogli już kilka razy widzieć to pytanie i nie zainteresują się widząc je ponownie. Jeśli pytanie odnosi się do sprzętu, zawsze do pytania dołącz wynik polecenia dmesg!
Archiwa oraz wskazówki dotyczące samych list dyskusyjnych można znaleźć pod adresem: http://www.openbsd.org/mail.html.
Nieoficjalną lista dyskusyjna, która może zainteresować nowych użytkowników OpenBSD i w ogóle systemu UNIX jest: OpenBSD Newbies.
OpenBSD dostarczany jest z rozległą dokumentacją w formie stron podręcznika man, powiązanych z poszczególnymi aplikacjami. Wiele wysiłku wkładane jest w utrzymanie ich w ciągle aktualnym stanie. We wszystkich przypadkach strony man są podstawowym źródłem informacji na temat OpenBSD.
Aby móc korzystać z podręcznika systemowego, a także innej dokumentacji, należy włączyć do systemu man42.tgz oraz misc42.tgz z pakietów instalacyjnych
A oto lista niektórych stron podręcznika systemowego pomocnych nowym użytkownikom:
Dla początkujących
Możesz znaleźć strony podręcznika OpenBSD na stronie http://www.openbsd.org/cgi-bin/man.cgi, a także w swoim systemie, jeśli zainstalowałeś man42.tgz.
Generalnie, znając nazwę polecenia lub strony podręcznika, można przeczytać ją, używając polecenia "man polecenie". Na przykład: "man vi", aby przeczytać o edytorze vi. Nie znając nazwy polecenia lub polecenie "man polecenie" nie jest w stanie znaleźć żądanej strony podręcznika, można spróbować odnaleźć stronę zawierającą interesujące informacje, używając "apropos slowo_kluczowe" lub "man -k slowo_kluczowe", gdzie "slowo_kluczowe" jest słowem, które może wystąpić w tytule strony podręcznika. Na przykład:
# apropos "time zone"
tzfile (5) - time zone information
zdump (8) - time zone dumper
zic (8) - time zone compiler
Numery w nawiasach wskazują sekcję stron podręcznika, w której to słowo zostało znalezione. Czasami dane słowo występuje w różnych częściach tego samego dokumentu. Załóżmy, że użytkownik chce wiedzieć, jak wygląda plik konfiguracyjny demona cron. Znając numer sekcji strony podręcznika wystarczy wykonać polecenie "man n nazwa_polecenia", gdzie n jest właśnie numerem sekcji podręcznika.
# man -k cron
cron (8) - clock daemon
crontab (1) - maintain crontab files for individual users
crontab (5) - tables for driving cron
# man 5 crontab
Oprócz podręcznika systemowego man, dostępna jest również dodatkowa dokumentacja (dołączona w pakiecie instalacyjnym misc42.tgz). Mieści się ona w katalogu /usr/share/doc. Jeśli zainstalowany został pakiet textXX.tgz, można sformatować każdy zestaw dokumentów poleceniem "make", wydanym w odpowiednim podkatalogu. Podkatalog psd zawiera rozdział "Dokumentacja uzupełniająca dla programisty" (ang. "Programmer's Supplementary Documents"). Podkatalog smm zawiera "Podręcznik administratora systemu" (ang. "System Manager's Manual"). Podkatalog usd to "Dokumentacja uzupełniająca dla użytkownika" (ang. "User's Supplementary Documents"). Można wywołać make w nadrzędnym katalogu lub wybrać tylko poszczególne podkatalogi i tam wykonać polecenie 'make'.
Niektóre podkatalogi są puste. Domyślnie, 'make' utworzy dokumenty w formacie PostScript, czyli gotowym do wydruku. Wersja w formacie PostScript może być całkiem duża - zakłada się około 250-300% wzrost na każdej części. Nie mając dostępu do drukarki lub wyświetlacza dokumentów PostScript, można sformatować pliki wyjściowe tak, aby możliwe było przeczytanie ich wprost na terminalu. W każdym podkatalogu można zbudować dokumenty wprost w formacie ASCII (nazywane 'paper.txt') przy pomocy make(1). Na przykład:
# cd /usr/share/doc/usd/04.csh
# make paper.txt
# more paper.txt
Proszę zauważyć, że do zbudowania interesującej dokumentacji mogą być niezbędne prawa superużytkownika, a także konieczne może być wywołanie polecenia make clean, które usunie poprzednio wygenerowane dokumenty. Dodatkowe informacje na ten temat znajdują się w pliku /usr/share/doc/README.
Strony Uniksowego podręcznika są bardziej aktualne i godne zaufania, niż dokumenty złożone. Jednak dokumenty złożone szczegółowiej wyjaśniają działanie skomplikowanych aplikacji, aniżeli strony podręcznika.
Dla wielu osób, posiadanie kopii podręcznika na twardym dysku może być bardzo przydatne. Tutaj znajdują się wskazówki dotyczące tworzenia drukowalnych kopii podręcznika.
Można go znaleźć w drzewie src. Strony podręcznika są niesformatowane i wielokrotnie uaktualniane poprzez CVS. Aby przejrzeć tą stronę użyj:
# nroff -Tascii -mandoc <file> | more
Przydatne jest otrzymanie prostej strony podręcznika bez niedrukowalnych znaków.
Można to zrobić w ten sposób:
#man <command> | col -b
Zauważ, że <file> musi być plikiem źródłowym podręcznika (prawdopodobnie plik, który kończy się liczbą; np. tcmdump.8). Wersja PostScript'owa wygląda całkiem nieźle. Może być drukowana lub przeglądana na ekranie programem typu gv (GhostView). Można go znaleźć w kolekcji pakietów. Polecenie nroff(1), pomoże uzyskać PostScriptową wersję podręcznika OpenBSD:
# nroff -Tps -mandoc -Tps <file> > outfile.ps
Dla ludzi, którzy budują system ze źródeł, dostępnych jest wiele opcji kontrolujących sposób w jaki mają być przygotowane strony man. Można je umieścić w pliku /etc/mk.conf (może być konieczne utworzenie tego pliku samodzielnie) skąd zostaną pobrane w trakcie kompilacji systemu. Jedną, szczególnie użyteczną, opcją jest wygenerowanie skompresowanych stron podręcznika, dzięki czemu można zaoszczędzić trochę miejsca na dysku. Wystarczy dodać następującą linijkę do pliku /etc/mk.conf:
MANZ=yes
Użyteczne może być także dodanie opcji generującej strony w formacie
PostScript wraz z ich odpowiednikami w formacie tekstowym. Można to
osiągnąć dodając opcję MANPS=yes w pliku /etc/mk.conf.
Dalsze szczegóły znajdują się w podręczniku na stronie
mk.conf(5)
Część dokumentacji dla OpenBSD dostarczana jest w formie plików info, które znajdują się w katalogu /usr/share/info. Jest alternatywny format dokumentacji dostarczany przez GNU. Wiele z tych plików zawiera aktualniejsze informacje od tych zawartych w podręczniku systemowym GNU, a można je przeglądać przy pomocy polecenia info(1). Na przykład, by obejrzeć informacje o kompilatorze gcc(1) napisz:
# info gcc
Gdy już zapoznasz się z info, będziesz mógł docenić prawdziwą wartość
naszych stron man!
Domyślny plik konfiguracyjny dla xterm(1) nie wyświetla stron podręcznika w kolorze. Aby zmusić xterm do wyświetlania stron man w kolorze, wystarczy skopiować plik /etc/X11/app-defaults/XTerm-color do swojego domowego katalogu i zmienić jego nazwę na ".Xdefaults". Należy uważać by nie nadpisać żadnych aktualnych ustawień w pliku ".Xdefaults". Plik ten zawiera w sobie wszystkie opcje niezbędne do włączenia kolorowania stron man w XTermie. Trzy poniższe linie powinny zostać odkomentowane:
!*VT100*colorULMode: on
!*VT100*underLine: off
!*VT100*colorBDMode: on
Reszta tego pliku pozwala zmienić inne ustawienia dotyczące kolorów.
Interesujące z punktu widzenie stron podręcznika systemowego mogą
być poniższe dwie:
*VT100*colorUL: yellow
*VT100*colorBD: white
Niestety te kolory wyglądają raczej okropnie, więc niewielkie dopasowanie
może okazać się niezbędne. Jeśli można coś zasugerować to polecam
red (czerwony) dla "colorUL" oraz magenta dla "colorBD".
Istnieje także dedykowana dla X11 przeglądarka stron manuala,
xman(1), wyposażona w interfejs graficzny. Więcej informacji
na ten temat znajduje się w podręczniku xterm(1) oraz xman(1).
Dobry przewodnik dla ludzi chcących samodzielnie przygotować stronę man znajduje się w mdoc.samples(7), a szczegółowe informacje w mdoc(7)
Wreszcie: przed złożeniem jakiegokolwiek raportu o błędach, przeczytaj najpierw http://www.openbsd.org/report.html.
Zgłaszanie błędów jest jednym z najważniejszych obowiązków użytkowników. Aby rozpoznać większość poważnych dziur, potrzebne są szczegółowe informacje na ich temat. Developerzy często otrzymują zgłoszenia o błędach podobne to tego:
From: joeuser@example.com
To: bugs@openbsd.org
Subject: POMOCY!!!
Mam komputer PC i nie chce on wystartować!!! Jest to 486!!!
|
Mamy nadzieję, że większość ludzi rozumie dlaczego tego typu zgłoszenia są po prostu usuwane. Wszystkie raporty o błędach powinny zawierać szczegółowe informacje. Jeżeli JoeUser naprawdę oczekuje, że ktoś pomoże mu rozwiązać jego problem, to powinien dostarczyć więcej informacji. Na przykład takich:
From: smartuser@example.com
To: bugs@openbsd.org
Subject: 3.3-beta panikuje na SPARCStation2
Zainstalowałem OpenBSD 3.2 z oficjalnego wydania CD. Jak narazie,
na mojej maszynie, wszystko działało sprawnie. Po instalacji 3.3-beta
przez jeden z mirrorów FTP, okazało się że system "panikuje" w różnych
odstępach czasu, najczęściej podczas uruchamiania X Window.
Oto co pokazuje dmesg:
OpenBSD 3.3-beta (GENERIC) #9: Mon Mar 17 12:37:18 MST 2003
deraadt@sparc.openbsd.org:/usr/src/sys/arch/sparc/compile/GENERIC
real mem = 67002368
avail mem = 59125760
using 200 buffers containing 3346432 bytes of memory
bootpath: /sbus@1,f8000000/esp@0,800000/sd@1,0
mainbus0 (root): SUNW,Sun 4/75
cpu0 at mainbus0: CY7C601 @ 40 MHz, TMS390C602A FPU; cache chip bug
- trap page uncached
cpu0: 64K byte write-through, 32 bytes/line, hw flush cache enabled
memreg0 at mainbus0 ioaddr 0xf4000000
clock0 at mainbus0 ioaddr 0xf2000000: mk48t02 (eeprom)
timer0 at mainbus0 ioaddr 0xf3000000 delay constant 17
auxreg0 at mainbus0 ioaddr 0xf7400003
zs0 at mainbus0 ioaddr 0xf1000000 pri 12, softpri 6
zstty0 at zs0 channel 0 (console i/o)
zstty1 at zs0 channel 1
zs1 at mainbus0 ioaddr 0xf0000000 pri 12, softpri 6
zskbd0 at zs1 channel 0: reset timeout
zskbd0: no keyboard
zstty2 at zs1 channel 1: mouse
audioamd0 at mainbus0 ioaddr 0xf7201000 pri 13, softpri 4
audio0 at audioamd0
sbus0 at mainbus0 ioaddr 0xf8000000: clock = 20 MHz
dma0 at sbus0 slot 0 offset 0x400000: rev 1+
esp0 at sbus0 slot 0 offset 0x800000 pri 3: ESP100A, 25MHz, SCSI ID 7
scsibus0 at esp0: 8 targets
sd0 at scsibus0 targ 1 lun 0: <SEAGATE, ST1480 SUN0424, 8628> SCSI2 0/direct fixed
sd0: 411MB, 1476 cyl, 9 head, 63 sec, 512 bytes/sec, 843284 sec total
sd1 at scsibus0 targ 3 lun 0: <COMPAQPC, DCAS-32160, S65A> SCSI2 0/direct fixed
sd1: 2006MB, 8188 cyl, 3 head, 167 sec, 512 bytes/sec, 4110000 sec total
le0 at sbus0 slot 0 offset 0xc00000 pri 5: address 08:00:20:13:10:b9
le0: 16 receive buffers, 4 transmit buffers
cgsix0 at sbus0 slot 1 offset 0x0: SUNW,501-2325, 1152x900, rev 11
wsdisplay0 at cgsix0
wsdisplay0: screen 0 added (std, sun emulation)
fdc0 at mainbus0 ioaddr 0xf7200000 pri 11, softpri 4: chip 82072
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
root on sd0a
rootdev=0x700 rrootdev=0x1100 rawdev=0x1102
Oto komunikat, który wyświetla się gdy próbuje uruchomić X Window:
panic: pool_get(mclpl): free list modified: magic=78746572; page 0xfaa93000;
item addr 0xfaa93000
Stopped at Debugger+0x4: jmpl [%o7 + 0x8], %g0
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb> trace
pool_get(0xfaa93000, 0x22, 0x0, 0x1000, 0x102, 0x0) at pool_get+0x2c0
sosend(0x16, 0xf828d800, 0x0, 0xf83b0900, 0x0, 0x0) at sosend+0x608
soo_write(0xfac0bf50, 0xfac0bf70, 0xfac9be28, 0xfab93190, 0xf8078f24, 0x0)
at soo_write+0x18
dofilewritev(0x0, 0xc, 0xfac0bf50, 0xf7fff198, 0x1, 0xfac0bf70) at
dofilewritev+0x12c
sys_writev(0xfac87508, 0xfac9bf28, 0xfac9bf20, 0xf80765c8, 0x1000, 0xfac0bf70)
at sys_writev+0x50
syscall(0x79, 0xfac9bfb0, 0x0, 0x154, 0xfcffffff, 0xf829dea0) at syscall+0x220
slowtrap(0xc, 0xf7fff198, 0x1, 0x154, 0x1, 0xfac87508) at slowtrap+0x1d8
ddb> ps
PID PPID PGRP UID S FLAGS WAIT COMMAND
27765 8819 29550 0 3 0x86 netio xconsole
1668 29550 29550 0 3 0x4086 poll fvwm
15447 29550 29550 0 3 0x44186 poll xterm
8819 29550 29550 35 3 0x4186 poll xconsole
1238 29550 29550 0 3 0x4086 poll xclock
29550 25616 29550 0 3 0x4086 pause sh
1024 25523 25523 0 3 0x40184 netio XFree86
*25523 25616 25523 35 2 0x44104 XFree86
25616 30876 30876 0 3 0x4086 wait xinit
30876 16977 30876 0 3 0x4086 pause sh
16977 1 16977 0 3 0x4086 ttyin csh
5360 1 5360 0 3 0x84 select cron
14701 1 14701 0 3 0x40184 select sendmail
12617 1 12617 0 3 0x84 select sshd
27515 1 27515 0 3 0x184 select inetd
1904 1 1904 0 2 0x84 syslogd
9125 1 9125 0 3 0x84 poll dhclient
7 0 0 0 3 0x100204 crypto_wa crypto
6 0 0 0 3 0x100204 aiodoned aiodoned
5 0 0 0 3 0x100204 syncer update
4 0 0 0 3 0x100204 cleaner cleaner
3 0 0 0 3 0x100204 reaper reaper
2 0 0 0 3 0x100204 pgdaemon pagedaemon
1 0 1 0 3 0x4084 wait init
0 -1 0 0 3 0x80204 scheduler swapper
Dziękuję z góry za pomoc!
|
report.html. Zasadniczo, szczegółowe
informacje o sprzęcie są konieczne, jeśli podejżewasz, że błąd może być
w jakikolwiek sposób związany z daną konifiguracją sprzętową. Narzędzie
dmesg(8) powinno być pod tym względem wystarczające. Następnie, konieczny
jest szczegółowy opis problemu. Zwróć uwagę, że dmesg opisuje sprzęt, tekst
wyjaśnia dlaczego Smart User myślał, że system nie jest zepsuty (działało
dobrze na 3.2), jak doszło do zawieszenia się systemu (uruchamiając X), a
także wyniki poleceń debugger'a: "ps" i "trace".
W tym przypadku, Smart User dostarczył wynik przechwycony na
konsoli szeregowej, jeśli będzie trzeba
pomóż sobie kartką i ołówkiem, aby zapisać komunikaty o problemie.
(Powyższy mail to prawdziwy list, a informacje z powyższego raportu
pomogły rozwiązać problem, który dotknął systemy Sun4c).
Jeżeli Bystry Użytkownik ma działający system OpenBSD, z którego chciałby wysłać
raport o błędzie, powinien skorzystać z narzędzia
sendbug(1), które wyśle informacje o jego błędzie do systemu śledzenia
problemów GNATS. Jeśli nie można użyć
sendbug(1),
ponieważ system nie chce wystartować, zgłoś problem w jakikolwiek sposób,
jednak wskazane jest używać sendbug kiedy to tylko możliwe. Oczywiście, nadal
do raportu, musisz włączyć szczegółowe informacje o tym, co się stało, dokładną
konfigurację systemu, oraz to kiedy dany problem występuje. Polecenie
sendbug(1) wymaga, aby Twój system był w stanie wysłać maila do Internetu.
Zwróć uwagę, że serwer pocztowy korzysta z
spamd(8)
opartego na "szarych listach", zatem może upłynąć pół godziny zanim
serwer pocztowy zaakceptuje twoje zgłoszenie błędu. Bądź więc cierpliwy.
Po wysłaniu raportu o błędzie poprzez sendbug(1), zostaniesz zawiadomiony przez
e-mail o ważności błędu. Developerzy mogą się z Tobą skontaktować, prosząc o
dodatkowe informacje lub dostarczając łatki do przetestowania.
Można również śledzić archiwa listy mailingowej bugs@openbsd.org,
lub obserwować status raportu o błędzie w bazie danych on-line, pod adresem
list mailingowych, lub poprzez bazę danych błędów
na stronie
Bug Tracking System.
Utracony "Panic message"?
W tym przypadku interesuje nas "Kernel: page fault trap, code=0".
Specjalna nota dla użytkowników SMP
Powtórz "machine ddb x" poprzedzone "trace" dla każdego
procesora w twojej maszynie.
[Spis treści]
[Sekcja 1 - Wstęp do OpenBSD]
[Sekcja 3 - Jak zdobyć OpenBSD?]
Zdobywanie użytecznych informacji dla developerów
Poniżej jest kilka użytecznych porad:
W niektórych okolicznościach, możesz stracić pierwszy komunikat "panic",
zawierający przyczynę problemu.
Jest to bardzo ważna wiadomość, możesz chcieć ją również dołączyć do raportu.
Możesz ją odzyskać używając polecenia "show panic" w ddb>,
podobnie jak w przypadku poniżej:
ddb> show panic
0: kernel: page fault trap, code=0
ddb>
Powinieneś pobrać "ślad" dla każdego procesora i załączyć do raportu:
ddb{0}> trace
pool_get(d05e7c20,0,dab19ef8,d0169414,80) at pool_get+0x226
fxp_add_rfabuf(d0a62000,d3c12b00,dab19f10,dab19f10) at fxp_add_rfabuf+0xa5
fxp_intr(d0a62000) at fxp_intr+0x1e7
Xintr_ioapic0() at Xintr_ioapic0+0x6d
--- interrupt ---
idle_loop+0x21:
ddb{0}> machine ddb 1
Stopped at Debugger+0x4: leave
ddb{1}> trace
Debugger(d0319e28,d05ff5a0,dab1bee8,d031cc6e,d0a61800) at Debugger+0x4
i386_ipi_db(d0a61800,d05ff5a0,dab1bef8,d01eb997) at i386_ipi_db+0xb
i386_ipi_handler(b0,d05f0058,dab10010,d01d0010,dab10010) at i386_ipi_handler+0x
4a
Xintripi() at Xintripi+0x47
--- interrupt ---
i386_softintlock(0,58,dab10010,dab10010,d01e0010) at i386_softintlock+0x37
Xintrltimer() at Xintrltimer+0x47
--- interrupt ---
idle_loop+0x21:
ddb{1}>
www@openbsd.org
$OpenBSD: faq2.html,v 1.35 2007/11/23 19:30:03 tobias Exp $