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

📄 soundcard-on.sh

📁 Shall高级编程
💻 SH
字号:
#!/bin/bash# soundcard-on.sh#  Script author: Mkarcher#  http://www.thinkwiki.org/wiki  ...#  /Script_for_configuring_the_CS4239_sound_chip_in_PnP_mode#  ABS Guide author made minor changes and added comments.#  Couldn't contact script author to ask for permission to use, but ...#+ the script was released under the FDL,#+ so its use here should be both legal and ethical.#  Sound-via-pnp-script for Thinkpad 600E#+ and possibly other computers with onboard CS4239/CS4610#+ that do not work with the PCI driver#+ and are not recognized by the PnP code of snd-cs4236.#  Also for some 770-series Thinkpads, such as the 770x.#  Run as root user, of course.##  These are old and very obsolete laptop computers,#+ but this particular script is very instructive,#+ as it shows how to set up and hack device files.#  Search for sound card pnp device:for dev in /sys/bus/pnp/devices/*do  grep CSC0100 $dev/id > /dev/null && WSSDEV=$dev  grep CSC0110 $dev/id > /dev/null && CTLDEV=$devdone# On 770x:# WSSDEV = /sys/bus/pnp/devices/00:07# CTLDEV = /sys/bus/pnp/devices/00:06# These are symbolic links to /sys/devices/pnp0/ ...#  Activate devices:#  Thinkpad boots with devices disabled unless "fast boot" is turned off#+ (in BIOS).echo activate > $WSSDEV/resourcesecho activate > $CTLDEV/resources# Parse resource settings.{ read # Discard "state = active" (see below).  read bla port1  read bla port2  read bla port3  read bla irq  read bla dma1  read bla dma2 # The "bla's" are labels in the first field: "io," "state," etc. # These are discarded. #  Hack: with PnPBIOS: ports are: port1: WSS, port2: #+ OPL, port3: sb (unneeded) #       with ACPI-PnP:ports are: port1: OPL, port2: sb, port3: WSS #  (ACPI bios seems to be wrong here, the PnP-card-code in snd-cs4236.c #+  uses the PnPBIOS port order) #  Detect port order using the fixed OPL port as reference.  if [ ${port2%%-*} = 0x388 ] #            ^^^^  Strip out everything following hyphen in port address. #                  So, if port1 is 0x530-0x537 #+                 we're left with 0x530 -- the start address of the port. then   # PnPBIOS: usual order   port=${port1%%-*}   oplport=${port2%%-*} else   # ACPI: mixed-up order   port=${port3%%-*}   oplport=${port1%%-*} fi } < $WSSDEV/resources# To see what's going on here:# ---------------------------#   cat /sys/devices/pnp0/00:07/resources##   state = active#   io 0x530-0x537#   io 0x388-0x38b#   io 0x220-0x233#   irq 5#   dma 1#   dma 0#   ^^^   "bla" labels in first field (discarded). { read # Discard first line, as above.  read bla port1  cport=${port1%%-*}  #            ^^^^  # Just want _start_ address of port.} < $CTLDEV/resources# Load the module:modprobe --ignore-install snd-cs4236 port=$port cport=$cport\fm_port=$oplport irq=$irq dma1=$dma1 dma2=$dma2 isapnp=0 index=0# See the modprobe manpage.exit $?

⌨️ 快捷键说明

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