216.html

来自「本文详细介绍了学习FREEBSD的一些命令」· HTML 代码 · 共 36 行 · 第 1/2 页

HTML
36 行
字号
<tr><td>&nbsp;</td></tr>
<tr><td align=left><i>作者:</i>王波</td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><font color=white>了解了最基本的GENERIC设置文件的内容,使用者就能根据实际情况,将不必要的设置删除,配置一个适合自己硬件的内核。然而GENERIC内核并不能包括更丰富的设置,包括很多支持的硬件种类,或者特定的内核特性等。<br><br>  除了上面提到的这些较常用到的选项之外,FreeBSD中还支持一些不常使用的设备和选项,例如一些老式的连接到声卡上的光驱、游戏杆等,FreeBSD甚至也支持IP&nbsp;over&nbsp;ATM协议和ATM网卡,千兆以太网卡等最新的网络设备和协议。<br><br>  所有的选项均可以在LINT文件中找到对应配置的例子,就需要根据具体硬件将配置增加到用户自己的配置文件中。<br><br>  无论增加哪种硬件设备之后,都要检查系统中是否有相应的设备文件存在。通用内核中不存在的设备,缺省也没有生成对应的设备文件。因此需要进入/dev目录中,使用/dev/MAKEDEV命令来产生相应的设备文件。&nbsp;<br><br><br>调整内核性能<br><br>  当运行一台高性能服务器的时候,缺省设置并不能充分发挥内核的所有能力。为了调整系统性能,便需要考虑更多的设置选项。<br><br>maxusers		256<br>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"MAXMEM=(256*1024)"<br>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"MAXDSIZ=(256*1024*1024)"<br>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"DFLDSIZ=(256*1024*1024)"<br>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NMBCLUSTERS=4096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHILD_MAX=512&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPEN_MAX=512&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>options		SMP<br>options		APIC_IO<br>options		SOFTUPDATES<br>&nbsp;<br>&nbsp;<br><br>  由于服务器系统运行在高负载下,需要产生数量巨大的进程数目,并打开相当多的文件。为了提供更好的支持就需要增加系统中表格的大小,这应该增加maxusers设置参数。<br><br>  系统启动时首先通过BIOS来检测系统中的内存,但是一般的BIOS最多只能报告64M内存,因此FreeB&nbsp;SD需要自己检测系统中的内存数量。然而系统内存检测并不一定检测到系统中的所有内存,因此需要在内核设置中指定内存大小,MAXMEM选项就用来指定系统物理内存的容量。上例中将系统内存设置为256MB。<br><br>  此外,缺省情况下FreeBSD限制每个应用程序使用128MB的内存,这对于一般的应用程序是满足的。但是对于特定的应用程序的服务器,如大容量的新闻组服务器,将占用大量内存,因此就需要增加相应的参数。内核选项MAXD&nbsp;SIZ为最大限制,DFLDSIZ为这个限制的缺省值,那么将应用程序的内存使用限制设为256MB的配置项为上例所示。<br><br>  为了增加FreeBSD的网络性能,可以增加NMBCLUSTERS的值,这个设置决定网络界面接收数据时的缓冲mbuf的大小,增加这个值就能使系统能同时响应更多的并发请求,这对于Web等高负载服务器特别重要。CHIL&nbsp;D_MAX定义一个进程能打开的最多子进程数数目,而OPEN_MAX定义一个进程能同时打开的文件描述字的数目,这三个参数为继承自4.4BSD中的设置参数,在FreeBSD下一般不需要调整,因此并没有写在LINT配置文件中,一般情况下,NMBCLUSTERS的缺省值对于高负载服务器略小一些,而CHILD_MAC和OPEN_MAX的缺省值能满足一般的高负载服务器的要求。<br><br>  通常这些数值参数需要根据实际情况进行调整,而不应该一味的增大。使用vmstat,netstat,top&nbsp;等系统工具可以观察系统在实际情况下的运行状态,以决定需要进行哪些调整。<br><br>  SOFTUPDATES选项能增加UFS类型的文件系统存取速度,对于大部分种类的网络服务器,系统瓶颈在于磁盘访问速度,而使用这个选项可以改善文件系统的存取性能。这个选项之所以没有被作为缺省设置,主要是因为版权原因。然而为了编译带有SOFTUPDATES选项的内核,还必须手工建立一些符号连接,因为SOFTUPDATES使用的源代码并不直接位于正确的编译路径下,而是位于一个非标准路径下,FreeBSD使用这种方法提醒FreeBSD用户,表示这个部分的版权与BSD版权许可不同,需要单独处理。<br><br>#&nbsp;cd&nbsp;/usr/src/sys/ufs/ffs<br>#&nbsp;ln&nbsp;-s&nbsp;/usr/src/contrib/sys/softupdates/*.[ch]&nbsp;.<br>&nbsp;<br>&nbsp;<br><br>  当建立了上述连接之后,带有SOFTUPDATES选项的内核才能被正确编译,然而即使内核支持这个选项,还需要在文件系统中设置softupdate选项,相应文件系统才能真正使用这个功能,这需要对相应的文件系统使用tunefs命令:<br><br>#&nbsp;tunefs&nbsp;-n&nbsp;enable&nbsp;/dev/rda0s1d<br>&nbsp;<br>&nbsp;<br><br>  这个命令只需执行一次就行了,为了避免出现问题,请在系统的单用户模式下执行这个命令。同样可以使用tune&nbsp;fs&nbsp;-n&nbsp;disable可以屏蔽这个功能。<br><br>  此外,对于多处理器的服务器系统,还可以使用SMP选项和APIC_IO选项以支持多处理器。<br><br>  可以在编译内核时打开更多的优化选项,缺省情况的只能提供十分基本的优化,而且是使用标准版本的gcc&nbsp;2.&nbsp;7.2.1来编译系统的。可以安装egcc,并指定更高的优化选项,如-O6和-mPentium,来获得更高级别的优化和利用Pentium芯片专用指令。由于egcc仅仅支持ELF格式的执行文件,因此不能用于3.0之前(包括3&nbsp;.0-REKLEASE)使用a.out格式内核的系统。<br><br>  当使用egcc编译内核时,需要更改执行config后产生的内核目录下的Makefile,需要重新定义C&nbsp;C选项为/usr/local/bin/egcc,并更改优化选项-O为-O&nbsp;-mpentium,但是由于egcc&nbsp;不支持gcc的编译选项-fformat_externsion,因此还需要更改Makefile引用的/usr/s&nbsp;rc/share/mk/bsd.kern.mk文件,删除这个文件中这个编译选项的定义。<br><br>  虽然理论上编译器优化不影响编译结果,但是编译器本身也会存在问题,使得在某些情况下发生错误。尤其对于系统内核,它决定系统的稳定性。因而在编译时采用过高的优化时就要特别小心,极其偶然的情况下会过高优化的内核会造成系统崩溃。因此在正式使用一个优化内核之前,应该保留一个原有的、使用普通优化选项的内核。新内核经过一定时间实际运行的考验,确认没有问题之后才能放心用于正式使用。<br><br><br>声卡设备<br><br>  通常对于SoundBlaster兼容的声卡,可以使用的以下配置选项:<br><br>controller&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pnp0<br>controller&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;snd0<br>device&nbsp;sb0&nbsp;at&nbsp;isa?&nbsp;port&nbsp;0x220&nbsp;irq&nbsp;7&nbsp;conflicts&nbsp;drq&nbsp;1&nbsp;vector&nbsp;sbintr<br>options&nbsp;&nbsp;SBC_IRQ=5<br>device&nbsp;&nbsp;&nbsp;sbxvi0&nbsp;&nbsp;at&nbsp;isa?&nbsp;drq&nbsp;5<br>device&nbsp;&nbsp;&nbsp;sbmidi0&nbsp;&nbsp;at&nbsp;isa?&nbsp;port&nbsp;0x330<br>device&nbsp;&nbsp;&nbsp;opl0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;isa?&nbsp;port&nbsp;0x38a<br>&nbsp;<br>&nbsp;<br><br>  其中pnp0控制器是帮助设置ISA接口的PNP声卡的资源,这主要用于使用BIOS为ISA&nbsp;PNP设备分配资源的情况下。但如果不是ISA&nbsp;PNP的声卡,就不需要这个设置,而且如果ISA&nbsp;PNP声卡能设置为非PNP类型,最好将其设置为非PNP类型,ISA总线下的PNP声卡比较难以设置。<br><br>  如果系统中安装有DOS的话,可以启动到DOS下,使用该卡的设置程序或一些系统硬件分析软件寻找BIOS分配给ISA&nbsp;PNP卡的资源。<br><br>  snd0提供最基本的声卡支持代码,sb0为SoundBlaster兼容声卡驱动程序,要根据声卡的配置参数更改sb0驱动程序的IRQ、DMA以及port数值。改变IRQ值的时候,不仅应该在sb0的配置行中改变,还应该使用SBC_IRQ配置选项。<br><br>  sbvxi0也是SoundBlaster&nbsp;16所需的代码,大部分声称与SoundBlaster兼容的声卡并不能做到完全兼容SoundBlaster&nbsp;16,最多兼容SoundBlaster或SoundBlaster&nbsp;Pro,因此就不能支持这个设备,只有真正的SoundBlaster&nbsp;16才能使它发挥作用。sbmidi0为So&nbsp;undBlaster声卡的MIDI接口的驱动程序,很多兼容声卡也不支持这个设备。opl0为SoundBlast&nbsp;er兼容声卡使用的Yamaha&nbsp;OPL-2和OPL-3芯片使用的驱动。<br><br>  使用上面的配置选项,设置正确的资源参数,就可以支持soundblaster兼容声卡。但是不同声卡对So&nbsp;undblaster的兼容性不同,因此系统检测时就不能检测到所有的设备,如midi设备或sbvxio0设备,但一般都可以检测到sb0设备,这就能提供基本的声卡设备支持。<br><br>  声卡设备还需要相应设备文件snd0的支持:<br><br>#&nbsp;cd&nbsp;/dev<br>#&nbsp;./MAKEDEV&nbsp;snd0<br>&nbsp;<br>&nbsp;<br><br>  当使用这些选项重新编译好内核,并启动之后,就可以查看声卡系统是否工作正常。首先应使用&nbsp;dmesg命令查看系统是否侦测出了声卡设备,如果没有侦测出,就可能是硬件参数配置的问题,需要使用&nbsp;UserConfig更改配置。<br><br>#&nbsp;dmesg&nbsp;|&nbsp;grep&nbsp;snb0<br>snd0:&nbsp;<SoundBlaster&nbsp;16&nbsp;4.16>&nbsp;<br>snd0:&nbsp;<SoundBlaster&nbsp;16&nbsp;4.16>&nbsp;<br>snd0:&nbsp;<SoundBlaster&nbsp;MPU-401>&nbsp;<br>snd0:&nbsp;<Yamaha&nbsp;OPL3&nbsp;FM>&nbsp;<br>&nbsp;<br>&nbsp;<br><br>  通过直接读取设备文件sndstat可以查看出当前声卡的状态,根据系统检测出的设备不同,sndstat&nbsp;报告的系统中安装的驱动也不同,至少应该报告一个soundBlaster设备:<br><br>#&nbsp;cat&nbsp;/dev/sndstat<br>VoxWare&nbsp;Sound&nbsp;Driver:3.5-alpha15-970902&nbsp;<br>(Wed&nbsp;Aug&nbsp;&nbsp;6&nbsp;22:58:35&nbsp;PDT&nbsp;1997&nbsp;Amancio&nbsp;Hasty@rah.star-gate.com)<br>Config&nbsp;options:&nbsp;<br><br>Installed&nbsp;drivers:&nbsp;<br>Type&nbsp;1:&nbsp;OPL-2/OPL-3&nbsp;FM<br>Type&nbsp;2:&nbsp;SoundBlaster<br>Type&nbsp;6:&nbsp;SoundBlaster16<br>Type&nbsp;7:&nbsp;SB16&nbsp;MIDI<br><br>Card&nbsp;config:&nbsp;<br>SoundBlaster&nbsp;at&nbsp;0x220&nbsp;irq&nbsp;5&nbsp;drq&nbsp;1<br>SoundBlaster16&nbsp;at&nbsp;0xffffffff&nbsp;irq&nbsp;1&nbsp;drq&nbsp;5<br>SB16&nbsp;MIDI&nbsp;at&nbsp;0x330&nbsp;irq&nbsp;1<br>OPL-2/OPL-3&nbsp;FM&nbsp;at&nbsp;0x388&nbsp;irq&nbsp;1<br><br>Audio&nbsp;devices:<br>0:&nbsp;SoundBlaster&nbsp;16&nbsp;4.16<br><br>Synth&nbsp;devices:<br>0:&nbsp;Yamaha&nbsp;OPL-3<br><br>Midi&nbsp;devices:<br>0:&nbsp;SoundBlaster&nbsp;16&nbsp;Midi<br><br>Timers:<br>0:&nbsp;System&nbsp;clock<br><br>Mixers:<br>0:&nbsp;SoundBlaster<br>&nbsp;<br>&nbsp;<br><br>  设备文件audio用于声音的输入、输出,如果声卡没有IRQ/DRQ冲突,就能正常使用这个设备,从而可以通过这个设备进行录音和播放声音文件,可以通过标准的操作命令来操作这个设备文件。<br><br>#&nbsp;dd&nbsp;if=/dev/audio&nbsp;of=out.au&nbsp;bs=1024&nbsp;count=10<br>#&nbsp;cat&nbsp;out.au&nbsp;>&nbsp;/dev/audio<br>&nbsp;<br>&nbsp;<br><br>  此后就可以安装相关的声音应用软件了,这些软件通常位于ports的软件包目录下,例如播放mp3格式的音乐文件的软件mpg123:<br><br>#&nbsp;cd&nbsp;/usr/ports/audio/mpg123<br>#&nbsp;make&nbsp;install<br>#&nbsp;mpg123&nbsp;test.mp3<br>&nbsp;<br>&nbsp;<br><br><br>其他的声卡驱动程序<br><br>  除了SoundBlaster声卡之外,FreeBSD还可以支持SoundBlaster&nbsp;AWE&nbsp;32/&nbsp;64、Gravis&nbsp;Ultrasound、Microsoft&nbsp;Sound&nbsp;System、Roland&nbsp;MPU&nbsp;401、ProAudioSpectrum等声卡。支持这些声卡的驱动也在LINT文件中给出了范例,但这些驱动程序不是单独使用的,需要与上面提到的基本设备sb0相互合作。<br><br>  如果计算机上没有声卡,也可以使用个人计算机的喇叭模拟声卡。这样的音响效果并不令人满意,而且也会消耗大量处理器时间,因此应该尽量使用,模拟声卡的设备驱动为pca0。<br><br>  有些情况下某些soundblaster声卡使用以上的sd0声卡设备选项并不能正常工作,会遇到IRQ/D&nbsp;RQ的冲突问题。此外还可以使用另一个驱动程序pcm0,这个驱动程序能支持一些sb0不支持的SoundBlast&nbsp;er兼容声卡。当然pcm0的功能相对弱一些,不能支持midi功能。设备sb0能和其他几个设备同时发挥作用,而p&nbsp;cm0设备不能和前面提到的其他设备相互协作,使用pcm0的配置文件应该为:&nbsp;<br><br>controller&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pnp0<br>controller&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;snd0<br>device&nbsp;pcm0&nbsp;at&nbsp;isa?&nbsp;port&nbsp;0x220&nbsp;irq&nbsp;7&nbsp;drq&nbsp;1&nbsp;vector&nbsp;pcmintr<br>&nbsp;<br>&nbsp;<br><br>  有时由于pnp设置资源的问题,使得pcm驱动将声卡识别为第二个设备pcm1,而报告pcm0与pcm1存在冲突,此时可以简单的建立设备snd1,而忽略pcm0的冲突信息,此后就一直使用snd1作为声卡设备。<br><br><br>设置ISA&nbsp;PNP声卡<br><br>  为了给PNP声卡设置正确的资源值,可以在UserConfig中的命令行方式下搜寻PNP设备、配置PNP&nbsp;设备的硬件参数。如同在前面提到的,对PNP设备需要在UserConfig的命令行方式下使用pnp命令进行设置。为了保留这个设置,每次启动时都自动进行设置,就需要将设置写入根文件系统中的一个设置文件中,例如/kernel.config,例如对于Soundblaster&nbsp;Vibrx16,执行的pnp命令及写入kernel.config的内容包括:<br><br>pnp&nbsp;1&nbsp;0&nbsp;os&nbsp;enable&nbsp;irq0&nbsp;5&nbsp;drq0&nbsp;0&nbsp;drq1&nbsp;1&nbsp;port0&nbsp;0x220&nbsp;port1&nbsp;0x300&nbsp;port2&nbsp;0x388<br>pnp&nbsp;1&nbsp;1&nbsp;os&nbsp;enable&nbsp;port0&nbsp;0x201<br>quit<br>&nbsp;<br>&nbsp;<br><br>  由于pnp命令就为pnp设备分配了资源,那么内核配置文件中的pcm0使用的参数设置就要与它相一致。<br><br>  当设置完kernel.config中,还需要设置Boot&nbsp;Loader的资源文件/boot/boot.rc文件,使其能在启动时自动执行设置命令。<br><br>load&nbsp;/kernel<br>load&nbsp;-t&nbsp;userconfig_script&nbsp;/kernel.config<br>autoboot<br>&nbsp;<br>&nbsp;<br><br>  由于个人计算机上的声卡种类相当多,而FreeBSD支持的声卡类型相对较少,如果用户计算机使用的声卡与FreeBSD支持的类型都不兼容,也可以考虑使用FreeBSD下的商业声卡驱动,商业驱动程序能够支持更多类型的硬件。Opensound是FreeBSD下的一种商业声卡支持驱动,其主页是http://www.4front.com。</font></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td align=right><i>来源:</i><a href="javascript:if(confirm('http://freebsd.online.ha.cn/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://freebsd.online.ha.cn/'" tppabs="http://freebsd.online.ha.cn/">http://freebsd.online.ha.cn/</a></td></tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
声明:本站的文章和软件是本人从网上收集整理的(除本人的作品之外),所有版权属于作者,<br>
如有侵犯您的权益,请指出,本站将立即改正,谢谢.
<hr  width=500>
<br>
<font color=#ffffff>Copyright 2000 <a href="javascript:if(confirm('http://www.newok.com/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.newok.com/'" tppabs="http://www.newok.com/" class=t1>www.newok.com</a></font>
</div>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?