📄 readme.modules
字号:
Linux sound-driver module (c) Peter Trattler License: GPL (Gnu Public License)Idea:I've modified the sources for the sound driver to allow simply insert andremove the sound driver from the kernel by calling (only available for Linux) insmod /usr/src/linux/modules/sound.oand rmmod soundThis may be useful if you are doing one of the following things:1) Debugging the sound driver2) Creating a new device within the sound-driver3) You do not the sound driver all the time (as it wastes quite a lot ofmemory for its buffers)Compilation:Go to /usr/src/linux and make the following steps:a) configure the sound driver: To do that call "make config" and enable thesound-driver -- you will be asked different questions about yoursound-hardware (remember not to use a too big DMA-Buffer size; youshould use 16kB, if you have 16Bit devices, otherwise you can use 32kB)b) disable the sound driver in the kernel: call make config again but answer'N' to "Sound card support"c) run "make modules"; the sound-driver sound.o should end up in/usr/src/linux/modulesIf memory is tight:I've allocated at about 70kB for the sound-drivers internal tables. If thisis too much, 'insmod sound.o' will generate the following warning...use 'insmod memsize=xxxx'...You can only use this command, if you have (I think) at leastmodules-1.1.87 or up. You can also switch debugging on by running the commandinsmod sound.o debugmem=1Files I changed:I've only changed the files soundcard.c(most changes) and some changes withinthe Makefile, sound_config.h and the Makefile in /usr/src/linux/driversBugs:a) As the kmalloc (..., GFP_DMA) caused some unexpected errors (I don't know ifit is my fault), I created some code, which is (by default) enabled by#define KMALLOC_DMA_BROKEN 1 (within soundcard.c).It trys to allocate a large enough region, so that the complete dma-buffercan be occupied in this space. If it does not fit within this region itdoubles the size of it. But this can cause problems, if the sound-buffer istoo big (as kmalloc can only handle regions at up to circa 100kB).So take care to use for 8Bit devices a sound-DMA-buffer of 32kB (maximum)and for 16Bit devices a maximum of 16kB. Otherwise the allocation schememight fail.b) Buffers allocated by the different sound devices via calls to kmalloc arenot freed, if the sound driver is removed again (these buffers tend to bequite small -- so it does not harm a lot)c) If there is not enough (kernel-) memory available, the installation ofthe sound-driver fails. (This happens quite often, if you did not install thedriver right after booting -- [PS: I've only got 5MB of Ram, so this mightbe the source for this problem])Author: Peter Trattler (peter@sbox.tu-graz.ac.at)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -