⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 55.html

📁 著名的linux英雄站点的文档打包
💻 HTML
📖 第 1 页 / 共 5 页
字号:
      ln -s /dev/devicefile /dev/modem<br>
<br>
      您也可以使用setserial,修改串口配置,比如设置串口的波特率,同样也可以设置/etc/serial.conf设置串口的工作参数。<br>
setserial -agv /dev/ttyS*<br>
<br>
5 声卡配置过程<br>
5.1 内核声卡驱动程序的配置<br>
现在正在使用的声卡主要有PCI和ISA两种。在linux系统下,对这两种类型声卡的配置过程实际上是生成配置文件/etc/modules.conf,建立正确的设备别名和声卡设备驱动程序的对应关系。在正确的设置驱动模块之后,使用混音器程序设置声卡的输出音量。<br>
<br>
若您的声卡是ISA PnP类型的,那么如果这块声卡在dos(windows)系统下也工作良好,那么您可以先记住声卡的工作参数,包括IRQ、DMA和I/O。一般而言,在linux系统下应该使用和DOS下一样的参数。<br>
<br>
如果您不知道它的工作参数,您可以通过/proc/isapnp获得声卡的配置空间,它包括dma、ioport和irq等信息。然后您可以通过检查/proc/interrupts,/proc/ioports和/proc/dma文件获知系统中空闲的irq、ioports和dma等信息,由此您可以选择合适的声卡配置参数。<br>
<br>
在2.4.x内核中,实现了ISA PnP支持,同时一部分声卡驱动程序现在也支持无需使用isapnp工具完成自动检测和配置了。关于声卡设备的详细信息您也可以查看内核文档/usr/src/linux/Documentation/sound/中的文件。<br>
<br>
对于PCI声卡而言,它们的驱动程序包含了自动检测过程,所以您只需要插入正确的驱动模块,声卡一般就能正常工作了。<br>
<br>
在声卡模块被第一次引用时,内核会要求加载相应的驱动模块。与声卡模块对应的设备别名是sound-slot-0(0表示系统中的一个声卡,以此类推)。例如,在/etc/modules.conf中加入:<br>
alias sound-slot-0 esssolo1<br>
就配置了ESS Solo-1声卡。这条语句表示在需要声卡时,自动加载模块esssolo1。<br>
<br>
有时加载了sound-slot-0对应的设备模块之后,并不能使声卡的所有功能生效。这时设备就会请求访问sound-service-0-n别名。n代表了不同的设备:<br>
编号 对应的设备<br>
0 混音器(Mixer)<br>
2 MIDI<br>
3,4 DSP<br>
表 5-1<br>
<br>
这时就要求您设置正确的声卡服务模块别名,这样声卡才能够正常工作。声卡对应的设备文件:<br>
设备文件名 设备描述<br>
/dev/audio 正常连接到/dev/audio0<br>
/dev/audio0 sun工作站兼容的声音设备(仅部分实现,不支持sun ioctl接口,仅支持u-law编码)<br>
/dev/audio1 第二个声音设备(安装多个声卡时使用)<br>
/dev/dsp 正常连接到/dev/dsp0<br>
/dev/dsp0 第一个数字采样设备<br>
/dev/dsp1 第二个数字采样设备<br>
/dev/mixer 正常连接到/dev/mixer0<br>
/dev/mixer0 第一个声音混音器<br>
/dev/mixer1 第二个声音混音器<br>
/dev/music 高级序列化接口<br>
/dev/sequencer 底层MIDI,FM和GUS存取<br>
/dev/sequencer2 正常连接到/dev/music<br>
/dev/midi00 第一个原MIDI端口<br>
/dev/midi01 第二个原MIDI端口<br>
/dev/midi02 第三个原MIDI端口<br>
/dev/midi03 第四个原MIDI端口<br>
/dev/sndstat 显示声音驱动程序的状态<br>
表 5-2<br>
<br>
pc扬声器提供下列设备:<br>
<br>
/dev/pcaudio            等价于/dev/audio<br>
/dev/pcsp           等价于/dev/dsp<br>
/dev/pcmixer            等价于/dev/mixer<br>
<br>
<br>
<br>
您可以直接将声音文件送入对应的设备,比如,将.au声音文件通过将其送入/dev/audio中播放,原始采样也可被送入/dev/dsp。<br>
cat sample.su &gt; /dev/audio<br>
<br>
但是这样做一般效果较差,播放时应采用play命令。对于wavplay和vplay(snd-util包)会以最好的效果播放wav文件,但是它们不能识别微软adpcm压缩的wav文件。若手动设置争取正确的参数之后,splay用于播放大多数声音文件。<br>
<br>
读/dev/audio和/dev/dsp返回的采样数据可以重定向到一个文件。vrec可以使这个过程更容易。可能需要一个混音器程序选择适当的输入设备。<br>
<br>
5.2 ALSA声卡驱动程序的配置<br>
对于声卡驱动程序,除了内核自带的驱动程序之外,您还可以使用Advanced linux Sound Architecture(ALSA,http://www.alsa-project.org/)提供的驱动程序。它支持一系列主流声卡,同时它和内核的声音结构互相兼容,在某种程度上,可以说是内核的声卡驱动模块的补充。<br>
<br>
ALSA的声卡驱动程序的一般命名规则是snd-card-&lt;soundcard&gt;。soundcard代表不同类型的声卡。例如,对于所有的16位Soundblaster声卡,它们对应的驱动程序模块为snd-card-sb16。<br>
<br>
若与需要linux内核声音驱动的向后兼容性,您还需要两个模块snd-pcm-oss和snd-mixer-oss。对于amixer设置的多个混音器,它们都是针对不同的设备的。比如CD通道的设置是针对CD播放器的。而很多应用程序,如象mpg123,xmms,realplayer,都要依赖PCM通道的设置。MIC代表麦克风。不同的Gain部分对于不同的使用能提供特别的增益。<br>
<br>
缺省情况下ALSA静音所有的输出。为了获得声音,必须解除主音量和PCM音量的静音。<br>
amixer -c 0 sset 'Master',0 100%,100% unmute<br>
amixer -c 0 sset 'PCM ',0 100% unmute<br>
<br>
选项包括mute,unmute,capture,nocapture,rec,norec,数字或left:right。amixer不带参数运行时,返回声卡上所有通道的设置情况。<br>
<br>
为了在每次插入声卡驱动模块时,都打开静音,您可以在/etc/modules.conf加入下列语句:<br>
post-install snd-card-sb16 amixer -c 0 sset 'Master',0 100%,100% unmute && amixer -c 0 sset 'PCM ',0 100% unmute<br>
在成功插入了alsa声卡模块之后,系统会出现/proc/asound目录,这个目录描述了声卡的工作情况,以及创建的设备文件。<br>
<br>
在您加载snd-pcm-oss设备模块之后,你也能使用与oss兼容的方式存取声卡,这时如下的映射会被完成:<br>
ALSA设备 OSS设备 次设备号<br>
/dev/snd/pcmC0D0 /dev/audio0(/dev/audio) 4<br>
/dev/snd/pcmC0D0 /dev/dsp0(/dev/dsp) 3<br>
/dev/snd/pcmC0D1 /dev/adsp(/dev/adsp) 12<br>
/dev/snd/pcmC1D0 /dev/audio1 20<br>
/dev/snd/pcmC1D0 /dev/dsp1 19<br>
/dev/snd/pcmC1D1 /dev/adsp1 28<br>
/dev/snd/pcmC2D0 /dev/audio2 36<br>
/dev/snd/pcmC2D0 /dev/dsp2 35<br>
/dev/snd/pcmC2D1 /dev/adsp2 44<br>
表 5-3<br>
<br>
对于/dev/mixer设备,要加载snd-mixer-oss,可以保证和老的oss混音器的兼容性。如果您插入了上述设备之后,声音系统仍无法正常工作,您可以运行snddevices命令,建立正确的设备文件。<br>
<br>
由于为使ALSA正常工作,需要设置大量的设备别名,下面就给出一个/etc/modules.conf的例子,它能够完成ESS Solo1声卡的自动配置工作。其他的ALSA设备的设置也基本与此声卡相同。<br>
<br>
# 设置ALSA设备的主设备号,它固定为116<br>
alias char-major-116 snd<br>
<br>
# 设置OSS设备的主设备号,它固定为14,这使得ALSA复用OSS设备<br>
alias char-major-14 soundcore<br>
<br>
# ALSA设备别名<br>
alias sound-card-0 snd-card-es1938<br>
<br>
# OSS设备别名<br>
alias sound-slot-0 sound-card-0<br>
<br>
# 安装不同的声卡服务<br>
alias sound-service-0-0 snd-mixer-oss<br>
alias sound-service-0-1 snd-seq-oss<br>
alias sound-service-0-3 snd-pcm-oss<br>
alias sound-service-0-8 snd-seq-oss<br>
alias snd-minor-oss-12 snd-pcm-oss<br>
<br>
# 运行amixer命令,打开声音输出<br>
post-install snd-card-es1938 amixer -c 0 sset 'Master',0 100%,100% unmute && amixer -c 0 sset 'PCM ',0 100% unmute<br>
<br>
6 窗口系统(XFree86)的配置过程<br>
6.1 显示卡的描述文件介绍(CardDB)<br>
CardDB是X配置程序使用的显示卡数据文件。在对XFree86进行配置时,配置程序一般都需要读取其上的内容完成显示卡的配置。它的内容与使用的XFree86的版本密切相关。一般而言,它保存的位置是在/usr/X11R6/lib/X11/目录下。现在我们就对XFree86 4.1.0的CardDB文件进行简单的介绍:<br>
<br>
NAME<br>
显示卡的描述名称<br>
CHIPSET<br>
描述显示卡使用的芯片集<br>
<br>
SERVER<br>
为了和3.x版本的XFree86向下兼容,由此字段指定此显示卡在XFree86 3.x下的X服务器,例如VGA16,SVGA等。<br>
<br>
DRIVER<br>
描述在4.x版本的XFree86下显示卡的驱动程序模块。<br>
<br>
LINE<br>
设置显示卡特定的选项信息,这样的选项信息出现在XF86Config的Device节,对应设备的Option参数。<br>
<br>
SEE<br>
是指此显示卡的配置信息与SEE字段所制定的显示卡完全相同,例如<br>
<br>
NAME Number Nine GXE64 with S3 Trio64<br>
SEE S3 Trio64 (generic)<br>
表示Number Nine GXE64的显示卡配置与S3 Trio64 (generic)的配置完全相同。<br>
<br>
RAMDAC<br>
RAM直接存取控制的控制芯片型号<br>
<br>
DACSPEED<br>
直接存取控制的速度<br>
<br>
CLOCKCHIP<br>
此显示卡的时钟芯片的<br>
<br>
NOCLOCKCHIP<br>
此显示卡无时钟芯片<br>
<br>
UNSUPPORTED<br>
此类型的显卡,此版本的XFree86不能提供支持<br>
<br>
COMMENT<br>
注释<br>
<br>
例如,对于RIVA TNT显卡,XFree86 4.1.0中的信息如下:<br>
<br>
NAME RIVA TNT<br>
CHIPSET RIVATNT<br>
SERVER SVGA<br>
DRIVER nv<br>
NOCLOCKPROBE<br>
<br>
<br>
<br>
 <br>
<br>
6.2 显示器信息检测<br>
显示器的信息在XFree86系统中时非常重要的,它对应XFree86配置文件的Monitor节。在这一节中包含监视器的水平扫描频率范围,垂直扫描频率范围,显示器支持的显示模式等信息。同样的,显示器的自动检测也就是通过程序自动读出显示器的上述信息。它的正确设置对于XFree86能否正常显示起到很重要的作用。<br>
<br>
对于显示器的信息检测,要求它必须支持vbe(VESA的BIOS级扩展)。在显示器支持此扩展时,通过系统实模式下的BIOS调用INT 10H,可以取得显示器的详细信息。<br>
<br>
可能需要的BIOS子功能调用为:<br>
<br>
AH = 0x4F00<br>
获得关于监视器的VESA的BIOS级扩展信息<br>
<br>
AH = 0x4F01<br>
获得监视器支持的特定显示模式<br>
<br>
AH = 0x4F02<br>
设置当前的视频模式<br>
<br>
AH = 0x4F03<br>
获得当前的视频模式<br>
<br>
AH = 0x4F04<br>
保存/还原svga显示方式<br>
<br>
AH = 0x4F15<br>
获得监视器的EDID扩展信息<br>
<br>
一般的显示器使用上述中断的方式是:先检查显示器是否支持VESA的BIOS级扩展,如果显示器支持BIOS级扩展,就查看显示器支持的显示模式,然后获得显示器的EDID扩展信息。在读出的EDID扩展信息中,可以查出显示器的垂直回扫频率范围和水平回扫频率范围,也可以计算出显示器的大小,对于一部分显示器还可以从此信息中读出监视器的制造商信息。<br>
<br>
由显示器读出的信息可以设置XF86Config的Monitor节,对于设置了正确的垂直回扫频率范围和水平回扫频率范围的显示器,X自动设置为当前显示分辨率下支持的最高扫描频率的显示模式(此显示模式要求有对应的Modeline)。<br>
<br>
但是如果您的显示器不支持EDID扩展信息,那么您就只有根据经验来设置显示器的垂直回扫频率范围和水平回扫频率范围。如果设置的范围高于监视器的实际支持范围,那么显示器会出现黑屏的现象。<br>
<br>
对于编程实现,如果您要调用上述bios中断,那么必须使用lrmi这个实模式接口,并设置正确的寄存器信息,完成系统调用。具体的检测显示器信息的例子,您可以参考Xconfigurator下ddcprobe的源程序,也可以参考Mandrake系统下的ddcxinfos命令的源程序。<br>
<br>
6.3 窗口系统的配置过程<br>
要正确的在linux下配置窗口系统,实际上就是生成正确的XFree86配置文件,这个文件一般保存在/etc/X11/下,在X版本是3.x时,它的文件名为XF86Config,在X版本是4.x时,它的文件名一般为XF86Config-4。在现在的发行版本中,处于硬件兼容性的考虑,他们一般都让这两个版本的XFree86包共存。因此,您也可以在/etc/X11目录下,发现这两个文件同时存在,这时使用那个文件就要看系统的X服务器的版本了。<br>
<br>
无论是那个版本的XF86Config文件都是由许多节(Section)构成的,但是这些节描述的内容主要包括:键盘、鼠标、显示器、显示卡、字体(颜色)等。<br>
<br>
在X版本是3.x时,键盘和鼠标的描述分别对应Keyboard和Pointer节。而在X版本是4.x时,键盘和鼠标的描述都对应InputDevice节,只是对应不同的驱动模块,键盘的驱动模块是keyboard,鼠标的驱动模块是mouse。配置这两节所需要的信息可以从/etc/sysconfig/keyboard和/etc/sysconfig/mouse中获得,它们的详细内容,本文的前面章节已作了介绍。<br>
<br>
配置显示器实际上是生成XF86Config文件的Monitor节,需要配置的信息一般包括:水平扫描频率范围、垂直扫描频率范围、监视器支持的显示模式、制造商信息。对于支持vbe和edid扩展的显示器,可以根据从显示器上读出的信息设置对应字段的值。但是如果显示器不支持上述扩展,则显示卡的设置必须由用户手动完成。如果您在配置XFree86时不指定这一节,那么XFree86会设置显示模式为640x480,垂直扫描频率为60hz的方式。不同显示模式的扫描频率:<br>
<br>
显示分辨率 垂直扫描频率(Hz) 水平扫描频率(kHz)<br>
640x480 60 31.50<br>
640x480 72 36.50<br>
640x480 75 37.50<br>
640x480 85 43.27<br>
800x600 60 37.80<br>
800x600 72 48.00<br>
800x600 85 55.84<br>
800x600 100 64.02<br>
1024x768 60 48.40<br>
1024x768 70 56.50<br>
1024x768 76 62.50<br>
1024x768 85 70.24<br>
1024x768 100 80.21<br>
1280x1024 61 64.20<br>

⌨️ 快捷键说明

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