上一页
OpenBSD简介
OpenBSD FAQ 第二章:其他OpenBSD信息资源 
下一页
获取OpenBSD


第二章:其他OpenBSD信息资源
2.1感兴趣的web页:
OpenBSD 工程的官方网站位于:http://www.OpenBSD.org
在此可以找到OpenBSD各方面的许多可用信息。
OpenBSD Journal是一个致力于OpenBSD新闻和评论的站点。
2.2-邮件列表:

OpenBSD工程维护着几个非常受欢迎的邮件列表,你可以进行订阅并并使用!为了订阅邮件列表,你需要发送email信息到majordomo@openbsd.org。此地址为一自动订阅系统。在你所发邮件的正文部分,你需要有你单独行,该行包含你要订阅的列表的订阅命令。例如:
sybscrible announce
邮件列表处理器将会回复邮件让你确定订阅,这样的话,别人就不能让你订阅一些不想要的列表。

2.3-手册页(manual pages)

OpenBSD带有手册页格式的很多文档,也有许多和指定的应用程序相关的文档。为了访问手册页和其他文档,请确定你已安装了man和其他组件。
这里是对新手很有帮助的一些手册页:
●help(1)--新手及系统管理员的帮助
●afterboot(8)--第一次完全启动后所需要查看的。
●boot(8)--系统启动程序
●login.conf(5)--登陆组配置文件格式
●adduser(8)--添加用户的命令
●vipw(8)--编辑主密码文件
●man(1)---显示在线手册页。
●sendbug(1)--发送问题报告(PR)到支持中心站点。
●disklabel(8)--读取和写入磁盘标签。
●ifconfig(8)--配置网络界面参数
●route(8)--手工操作路由表
●netstat(8)--显示网络状况
●reboot,halt(8)--停止和重启系统
●shutdown(8)--在指定的时间内关闭系统
●boot_config(8)--如何在启动时改变内核配置。

你可以在http://www.openbsd.org/cgi-bin/man.cgi/上找到OpenBSD的所有手册页,如果你安装了man34.tgz的话,你也可以在你的系统上找到他们。

一般来说,如果你知道了某个命令的名字或者手册页,你可以执行"man command"来查看它。比如,"man vi"来读取vi编辑器的手册页。如果你不知道命令名,或者"man command"找不到手册页,你可以通过执行"apropos something"或者"man -k something"来搜索手册页数据库。(something是可能出现在你搜索的命令的手册页标题上的关键字),例如:
#apropos "time zone"
tzfile (5) - time zone information
zdump (8) - time zone dumper
zic (8) - time zone compiler

附加的数字说明了那个手册页在整个手册的哪一个部分可以找到。有时候,你会发现相同名字的手册页位于手册中的不同部分。例如,假如你想知道cron配置文件的格式。一旦你知道了手册页处于哪一部分,你可以执行"man n command"(n即手册段号码)。
# man -k cron
cron (8) - clock daemon
crontab (1) - maintain crontab files for individual users
crontab (5) - tables for driving cron
# man 5 crontab

除了Unix的手册页外,还有一个可设置类型的文档组(包含在misc34.tgz中),它位于/usr/share/doc目录内。你可以在每个相应的目录内使用"make"来格式化每个文档组。psd目录是程序员协助文档。smm(System Manager's Manual.)目录是系统管理员手册。usd(the UNIX User's Supplementary Documents)目录是Unix用户的协助文档。你可以在这三个目录内运行"make",或者你可以指定一个发布的某段并在其子目录下运行“make”某些目录是空的。默认的,格式化文档将产生PostScript输出,适合于打印。postScript格式很大,你会消耗220-300%的空间。如果你不需访问PostScript打印机或者显示,你可能会将文档格式化适合于终端显示。在每个Makefile文件里,你需要加入"-Tascii"参数到每个groff命令中。一些文档使用ms格式化宏,一些使用me格式化宏。每个文档子目录下的Makefile文件(/usr/share/doc/usd/04.csh/Makefile
)会告诉你该使用哪一个,例如:
# cd /usr/share/doc/usd/04.csh
# groff -Tascii -ms tabs csh.1 csh.2 csh.3 csh.4 csh.a csh.g > csh.txt
# more csh.txt


Unix手册页一般比可设置类型文档更新也更可靠。可设置文档一般比手册页更详细的解释复杂的应用程序。
对大多数人来说,拥有手册页的硬拷贝是很有作用的。下面就是制作可打印拷贝手册页的方法。

如何显示手册页的源码文件?(比如,一些文件名结尾为数字的文件,像tcpdump.8等)

这可以在src树中找到。手册页可以在该树中找到。通常可以使用CVS进行更新。想查看这些,只要简单的:
# nroff -mandoc | more


我如何得到无格式或者控制字符的无格式手册页?

直接得到没有非打印字符的手册页是非常有用的。如:
#man | col -b


我如何得到用于打印的手册页的PostScript拷贝?

注意[man_src_file]必须是手册页源码文件(很可能是以数字结尾的文件名,如tcpdump.8).PostScript版的手册页看起来很好。他们可以打印或者用某程序(例如gv)进行浏览。GhostView可以在ports中找到。用下面的groff命令选项来得到OpenBSD系统手册页的postScript 版。
# groff -mandoc -Tps [man_src_file] > outfile.ps


2.4-报告错误(Reporting Bugs)

提交任何错误报告前,请阅读http://www.openbsd.org/report.html

正确的错误报告是终端用户的和重要的一个职责。诊断大部分严重的错误需要许多详细的信息。开发人员通常通过e-mail来获得错误报告,如:
From: joeuser@example.com
To: bugs@openbsd.org
Subject: HELP!!!
I have a PC and it won't boot!!!!! It's a 486!!!!!

希望大多数用户知道为什么这样的错误报告会被立刻删除掉。所有的错误报告都有关包含详细的信息。如果Joeuser真的想让人们来帮助发现这个bug,他/她就有关提供更多的信息。。比如这样:
From: smartuser@example.com
To: bugs@openbsd.org
Subject: 3.3-beta panics on a SparcStation2
OpenBSD 3.2 installed from an official CD-ROM installed and ran fine
on this machine.
After doing a clean install of 3.3-beta from an FTP mirror, I find the
system randomly panics after a period of use, and predictably and
quickly when starting X.
This is the dmesg output:
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: 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: 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
This is the panic I got when attempting to start X:
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
Thank you!

阅读report.html来获得建立和发送错误报告的更多信息。如果你认为该bug与你的硬件配置,你就必须提供详细的硬件信息。一般地,提供dmesg输出就足够了。关于你的问题的详细描述也是需要的。你会注意到dmesg描述了硬件信息,输出的文本解释了为什么聪明的用户认为他的系统被损坏,为什么会发生如此crash(启动X),以及调试器"ps"和"trace"的输出。在此情况下,聪明的用户提供串口控制台的输出信息,如果你做不到这点,你需要用笔和纸纪录下crash信息。

如果聪明的用户想从他运行的一个OpenBSD上发送错误报告,那么他就要使用sendbug(1)工具将错误报告发送到GNATS问题跟踪系统。明显的,如果你的系统不能启动,你就不能使用sendbug工具,但是只要可能的话,你就应该使用它。你还应该包含发生了什么的详细信息,你的系统配置和如何重现该错误。sendbug命令要求你的系统能够在Internet上成功的发送电子邮件。

通过sendbug(1)发送错误报告后,你也将会收到关于该报告的状态的邮件。你可能需要和开发者联系以提供更多的信息或者需要测试的patch.你也可以监控bugs@openbsd.org邮件列表档,详细的见mailing list page.或者从在线Bug Tracking System上查找错误报告的数据库状况。

上一页
OpenBSD简介
目录 
下一页
获取OpenBSD