|
Re: ставим звук на кодеке AC~97 in FreeBsd
|
Posted by: q on January 12, 2003 at 18:13:46
Posters Details: [194.158.216.136], X-Forwarded 4: [] [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)]
In Reply to: ставим звук на кодеке AC~97 in FreeBsd Posted by: qwerty on April 29, 2002 at 18:04:54
# ICH Audio driver for FreeBSD
#
# This is the FreeBSD audio driver for integrated AC'97 interface of Intel 443MX, 810 and 820 chipset!!!CAUTION!!!
#
# This driver has been tested many people, and increased stability. But there maybe hidden trouble. So, please test this driver, if you are able to recreate kernel and know how to boot old kernel.
#
# Index
#
# What's new
# Status
# Known problems
# How to install
# Todo list
# Develop/Test environment
# Technical references
#
# What's new
#
# Update Feb.27
#
# Bug fix about to get CODEC support sample rates.
# Fix DMA resource handling routines.
# Change to use AC'97 common routines for VRA function.
#
# Update Feb.19
#
# Follow to change of newpcm inner API (5-CURRENT and 4-STABLE). These changes are mainly contributed by Mr. Chris Knight. If there isn't big trouble, I'll contribute this version to FreeBSD-current.
#
# Update Oct.21
#
# Follow to change of newpcm inner API (5-CURRENT and 4-STABLE(since Oct.5)). In these kernel version, Sep.24 driver will make system down. On the other hand, for old kernel which like 4.1.1-RELEASE, use Sep.24 driver.
# Add codes for loadable kernel module. But it is only add code, so, in 4-STABLE, static link is available to use.
#
# Update Sep.24
#
# Add VRA/VRM function check for the CODEC which not support VRA/VRM extention of AC'97 R2.1. If VRA/VRM function is not supported, sample rate is fixed to 48kHz.
# Add delay step for some Intel840/815E system.
#
# Update Sep.19
#
# Add routines for buffer underflow. It remove stop-play trouble on high system load.
#
# Update Sep.8
#
# Recording function is supported.
# Correct playing buffer function(ichpchan_getptr()). By this change, reduced interrupt timeout.
# Add power on/off code in start and stop play/recode function. This increase battery time little.
# Display play/record sampling rate which supported by CODEC, at boot-up with -t option. If you have trouble that cannot play sound intead of system identify device
#
# Update Aug.20
#
# Suspend/Resume capability supported. By this, you can play sound after suspend/resume.
# Automatically recovered after interrupt timeout occured. For detail about interrupt timeout, see Known problems.
# Removed needless CODEC wait loops. By this, cut the CPU time in system bottom half.
#
# Status
#
# In This state, ICH audio driver supports this environment and fitures.
#
# FreeBSD4-stable(Not tested in 5-current)
# Audio device which connected with AC'97 interface integrated in Intel 443MX, 810, 820 chipset.(and also 815(E) and 840 chipset is reported OK)
# PCM sound play(Tested for playing AU format file and mpg123. Play by 16bit stereo sound in 8KHz-48KHz sample rate.)
# PCM sound record(Tested by wavrec)
# AC'97 standerd mixer controll(Tested about PCM and VOL with "mixer" command)
#
# It seemed be practical level, except some problems below. Sound quality is good for hearing 160Kbps rate MP3 data (it is created by "gogo" from CD of Stephan Grappelli). And CPU load is about 5% for PentiumIII 500MHz in this case.
#
# Known problems
#
# This driver is not tested yet in many case. And also, there is some problems like this.
#
# In some case of CODEC and programm, cannot execute to play. It mainly caused by lack of VRM function of early AC'97.
# No consideration about Modem CODEC. AC'97 interface can use Modem CODEC and Audio CODEC at the same time, but this driver has no Modem interfaces.
#
# How to install
#
# Getting driver source, and store to system source directory
# Register driver source to system
# Add pcm device to configuration file, and create kernel
#
# Install detail is described below.
#
# Get source
#
# Download one of these ICH audio driver source according to your system version.
#
# ich.c.gz(4-STABLE, 5-CURRENT)(7063Bytes, MD5:51518daec093729ba02249fa941ef5c3)
# ich.c.gz(4.2-RELEASE)(6856Bytes, MD5:8658753568134e37619a550e627efbcb)
# ich.c.gz(before 4.1.1-RELEASE)(6867Bytes, MD5:90760e18b72ad00171b6e4a833fadce5)
#
# Unzip like this, and copy to the directory /usr/src/sys/dev/sound/pci.
#
# # gunzip ich.c.gz
# # cp ich.c /usr/src/sys/dev/sound/pci
#
#
# Register the source
#
# Register source file to the file /usr/src/sys/conf/files. Add the line with editor.
#
# :
# :
# dev/sound/pci/csapcm.c optional pcm pci
# dev/sound/pci/ds1.c optional pcm pci
# dev/sound/pci/emu10k1.c optional pcm pci
# dev/sound/pci/es137x.c optional pcm pci
# dev/sound/pci/ich.c optional pcm pci
# dev/sound/pci/neomagic.c optional pcm pci
# dev/sound/pci/t4dwave.c optional pcm pci
# :
# :
#
#
# Create kernel
#
# Kernel create procedure is same as ordinary way to use PCM driver.
#
# Add the line "device pcm" to the configuration file(/usr/src/sys/i386/conf/FOO).
# Execute "config FOO" at the directory /usr/src/sys/i386/conf.
# Execute "make depend;make;make install" at the directory "/usr/src/sys/compile/FOO".
#
# For more details, see FreeBSD handbook.
#
# What to do
#
# Make loadable module driver. It makes to use audio without recreate kernel, and not spend resources in environment which not use ICH audio.
#
# Develop/Test environment
#
# This driver is developed and tested with the environment below.
#
# Hardware
# Toshiba DynaBookSS 3440(CPU:PentiumIII 500MHz, Memory:128MB, Chipset:Intel 443MX, CODEC: Yamaha?)
# OS
# FreeBSD 4.1-stable
#
# Technical references
#
# This driver development is mainly depends on Intel developers manuals. Especially these 3 documets are essential. You can get these documents from Intel developper's site.
#
# Intel 82801AA(ICH) and Intel 82801AB(ICH0) I/O Controller Hub Datasheet (29065503.pdf)
# Intel 82801AA(ICH) and Intel 82801AB(ICH0) I/O Controller Hub AC'97 (29802801.pdf)
# Audio Codec '97 Revision 2.1 (ac97r21.pdf)
# Katsurajima Naoto Last modified: Tue Feb 27 22:48:48 JST 2001
Follow Ups:
|
|