Cách đây không lâu,tôi có thử một phiên bản FC 3 và Slackware 10.1,một điều kì lạ là cả hai HĐH này đều đồng thời làm việc rất kém với sound-card của tôi là cs-c4281(nói chung là cho họ cs42xx).Đặt biệt mà nói trên cấu hình mặc định nhân của Slackware 10.1 với kernel 2.6.10.x thử nghiệm không có thiết lập cho CONFIG_SND.
(Ở đây dành cho cách sound-card riêng biệt,không gắn liền trên manboard.Còn trên các mainboard hiên đại ngày này,chúng ta không cần phải mua các sound-card riêng biệt bởi vì nó được trang bị sẵn trên mainboard rồi).

Chiếc sound-card của tôi không làm việc một cách bình thường. Sau khi cài đặt(lần đầu) nó hoạt động bình thường.Nhưng sau đó khi khởi động hệ thống lại,nó lại không hoạt động nữa.Sau đó khợi động lại thì nó lại chạy.Cứ như thế....lần lượt để nghe được nhạc phải lần lượt khởi động lại hệ thống một cách thường xuyên.Điều này rất là khó chịu...phải nói là rất bực.

Trên kernel 2.6.x tất nhiên là có các modules cho các loại sound-card trên tuy nhiên chúng tôi khuyến khích bạn nên biên dịch cho modules sound-card của mình một cách riêng biệt.Bạn cần phải có những packages dưới đây:
  • alsa-lib
  • alsa-oss
  • alsa-utils
  • alsa-driver
  • Bạn có thể tải chúng ở site http://project-alsa.org/

    Bạn copy chúng vào một thư mục riêng biệt.Để untar nhanh chóng có thể sử dụng scripts sau đây:
    for i in *.tar.bz2
    do
    tar jxf $i
    done
    Để cài đặt chúng bạn phải sử dụng cấu chúc cài đặt thông thường
    # ./configure && make && make install
    I. Vấn đề với sound-card:

    Sau khi đăng nhập vào hệ thống.Rất là vui vì bạn có một hệ thống có thể nói là cập nhật,với nhân mới,có tính năng cao hơn,làm việc với nhiều thiết bị hơn.Nhưng ôi thôi,khi thực hiên:

    #aumix

    Bạn nhận được những thông báo về lỗi sound-card,hoặc no hardware detected.

    II. Định dạng sound-card

    Điều cơ bạn ở đây là bạn cần phải có những thông tin cần thiết về sound-card của mình.Tuy nhiên trước khi bạn làm điều đó,chúng tôi khuyên bạn nên mở thùng máy ra và kiểm tra lại xem sound-card đã thực sụ nằm chắc chắn kết nối với PCI  chưa.Đôi khi có trường hợp kết nối phần cứng không có(do lỏng hoặc bụi bẩn lâu ngày).

    Khi ấy bạn có thể than nhiên kiểm tra xem họ của sound-card của mình là loại nào.Điều quan trọng là bạn phải biết được module nào cần thiết cho sound-card của mình.

    Để kiểm tra phần cứng về sound-card bạn có thể làm như sau:

    #/sbin/lspci

    00:00.0 Host bridge: VIA Technologies, Inc. VT8605 [ProSavage PM133] (rev c4)
    00:01.0 PCI bridge: VIA Technologies, Inc. VT8605 [PM133 AGP]
    00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
    00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
    00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
    00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
    00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
    00:0a.0 Multimedia audio controller: Cirrus Logic Crystal CS4281 PCI Audio (rev 01)
    00:11.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
    00:14.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
    00:14.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
    01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R100 QD [Radeon 7200]

    Như trên đây,bạn sẽ thấy sound-card kết nối qua PCI là :Cirrus Logic Crystal CS4281 PCI Audio.
    Bạn có thể lấy được các thông tin rõ ràng hơn qua dịch vụ procfs như sau:

    # cat /proc/pci

    PCI devices found:
      Bus  0, device   0, function  0:
        Class 0600: PCI device 1106:0605 (rev 196).
          Prefetchable 32 bit memory at 0xd0000000 [0xd3ffffff].
      Bus  0, device   1, function  0:
        Class 0604: PCI device 1106:8605 (rev 0).
          Master Capable.  No bursts.  Min Gnt=12.
      Bus  0, device   7, function  0:
        Class 0601: PCI device 1106:0686 (rev 64).
      Bus  0, device   7, function  1:
        Class 0101: PCI device 1106:0571 (rev 6).
          Master Capable.  Latency=32. 
          I/O at 0xd000 [0xd00f].
      Bus  0, device   7, function  2:
        Class 0c03: PCI device 1106:3038 (rev 26).
          IRQ 10.
          Master Capable.  Latency=32. 
          I/O at 0xd400 [0xd41f].
      Bus  0, device   7, function  3:
        Class 0c03: PCI device 1106:3038 (rev 26).
          IRQ 10.
          Master Capable.  Latency=32. 
          I/O at 0xd800 [0xd81f].
      Bus  0, device   7, function  4:
        Class 0600: PCI device 1106:3057 (rev 64).
          IRQ 9.
      Bus  0, device  10, function  0:
        Class 0401: PCI device 1013:6005 (rev 1).
          IRQ 5.
          Master Capable.  Latency=32.  Min Gnt=4.Max Lat=24.
          Non-prefetchable 32 bit memory at 0xdb011000 [0xdb011fff].
          Non-prefetchable 32 bit memory at 0xdb000000 [0xdb00ffff].
      Bus  0, device  17, function  0:
        Class 0200: PCI device 10ec:8139 (rev 16).
          IRQ 11.
          Master Capable.  Latency=32.  Min Gnt=32.Max Lat=64.
          I/O at 0xe000 [0xe0ff].
          Non-prefetchable 32 bit memory at 0xdb010000 [0xdb0100ff].
      Bus  0, device  20, function  0:
        Class 0400: PCI device 109e:036e (rev 17).
          IRQ 10.
          Master Capable.  Latency=32.  Min Gnt=16.Max Lat=40.
          Prefetchable 32 bit memory at 0xdb012000 [0xdb012fff].
      Bus  0, device  20, function  1:
        Class 0480: PCI device 109e:0878 (rev 17).
          IRQ 10.
          Master Capable.  Latency=32.  Min Gnt=4.Max Lat=255.
          Prefetchable 32 bit memory at 0xdb013000 [0xdb013fff].
      Bus  1, device   0, function  0:
        Class 0300: PCI device 1002:5144 (rev 0).
          IRQ 11.
          Master Capable.  Latency=32.  Min Gnt=8.
          Prefetchable 32 bit memory at 0xd4000000 [0xd7ffffff].
          I/O at 0xc000 [0xc0ff].
          Non-prefetchable 32 bit memory at 0xd9000000 [0xd907ffff].

    Bạn sẽ nhìn thấy các thông tin chi tiết về các giá trị của IRQ.Những thông tin sẽ dễ dàng cho bạn khi thiết lập cấu hình cho sound-card.Tuy nhiên,bạn phải chắc chắn rằng module của sound-card  được đưa vào trong phiên bản ALSA mà bạn có.Để xem chúng có trong đó hay không bạn có thể làm như sau:
    # cd /path/to/alsa-driver-<version>
    # ./configure --help
    Bạn sẽ nhìn thấy nhiều thông tin cần thiết,tuy nhiên chỉ cần chú ý đến thông tin sau:
    --with-cards=<list>     compile driver for cards in <list>;
    cards may be separated with commas;
    'all' compiles all driver
    Possible cards are:
    dummy, virmidi, serial-u16550, mtpav, mpu401,
    als100, azt2320, cmi8330, dt019x, es18xx,
    opl3sa2, sgalaxy, sscape, ad1816a, ad1848,
    cs4231, cs4232, cs4236, pc98-cs4232, es1688,
    gusclassic, gusmax, gusextreme, interwave,
    interwave-stb, opti92x-ad1848, opti92x-cs4231,
    opti93x, sb8, sb16, sbawe, es968, wavefront,
    als4000, azt3328, bt87x, cmipci, cs4281, ens1370,
    ens1371, es1938, es1968, fm801, intel8x0,
    maestro3, rme32, rme96, sonicvibes, via82xx,
    ali5451, cs46xx, emu10k1, ice1712, ice1724,
    korg1212, mixart, nm256, rme9652, hdsp, trident,
    vx222, ymfpci, powermac, sa11xx-uda1341,
    usb-audio, harmony, vxpocket, vxp440, serialmidi,
    intel8x0m, hdspm, atiixp, pdplus, msnd-pinnacle,
    pdaudiocf, usb-usx2y, au8810, au8820, au8830
    Khi cài đặt bạn có thể  chi ra sound-card riêng của mình bằng chọn lựa sau:

    #./configure --with-cards=cs4281

    Chú ý rằng,trong kernel 2.4.x thì tập tin để điều khiển quá trình tải modules nhận  dạng sound-card là modules.conf (còn trong kernel 2.6.x là modprobe.conf)

    Bạn sẽ nhìn thấy chúng có dạng như sau:

    alias eth0 8139too
    alias snd-card-0 snd-cs4281
    options snd-card-0 index=0
    install snd-cs4281 /sbin/modprobe --ignore-install snd-cs4281 && /usr/sbin/alsactl restore >/dev/null 2>&1 || :
    remove snd-cs4281 { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-cs4281
    alias char-major-81 bttv
    alias usb-controller uhci-hcd

    # --- BEGIN: Generated by ALSACONF, do not edit. ---
    # --- ALSACONF verion @VERSION@ ---
    alias snd-card-0 snd-cs4281
    alias sound-slot-0 snd-cs4281
    # --- END: Generated by ALSACONF, do not edit. ---


    III Kiểm tra modules đã được khởi động hay không:

    Khi khởi động vào hệ thống,bạn có thể thực hiện:

    #alsamixer
    alsamixer: function snd_ctl_open failed for default: No such device
    Nếu bạn nhận được thông báo như trên có nghĩa là sound-card của bạn làm việc không bình thường.Bạn cần phải kiểm tra xem các modules sound-card có hay không.Để làm điều này bạn có thể làm như sau:
    Module                  Size  Used by
    snd_seq_midi            8736  0
    snd_seq_midi_event      8832  1 snd_seq_midi
    snd_opl3_synth         17412  0
    snd_seq_instr          12032  1 snd_opl3_synth
    snd_seq_midi_emul       6400  1 snd_opl3_synth
    snd_seq                58256  5 snd_seq_midi,snd_seq_midi_event,snd_opl3_synth,snd_seq_instr,snd_seq_midi_emul
    snd_ainstr_fm           2816  1 snd_opl3_synth
    snd_cs4281             24048  1
    snd_rawmidi            27328  2 snd_seq_midi,snd_cs4281
    snd_ac97_codec         67320  1 snd_cs4281
    snd_pcm_oss            48296  1
    snd_mixer_oss          18048  1 snd_pcm_oss
    snd_pcm                93064  3 snd_cs4281,snd_ac97_codec,snd_pcm_oss
    gameport                4801  1 snd_cs4281
    snd_opl3_lib           12160  2 snd_opl3_synth,snd_cs4281
    snd_seq_device          9228  5 snd_seq_midi,snd_opl3_synth,snd_seq,snd_rawmidi,snd_opl3_lib
    snd_timer              30212  3 snd_seq,snd_pcm,snd_opl3_lib
    snd_hwdep              10016  1 snd_opl3_lib
    snd                    55908  13 snd_opl3_synth,snd_seq_instr,snd_seq,snd_cs4281,snd_rawmidi,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_opl3_lib,snd_seq_device,snd_timer,snd_hwdep
    soundcore               9889  2 snd
    radeon                120516  2
    lp                     11565  0
    autofs4                24005  0
    sunrpc                160421  1
    ipt_REJECT              6465  1
    ipt_state               1857  1
    ip_conntrack           40693  1 ipt_state
    iptable_filter          2753  1
    ip_tables              16193  3 ipt_REJECT,ipt_state,iptable_filter
    vfat                   14785  4
    fat                    45409  1 vfat
    dm_mod                 54741  0
    button                  6481  0
    battery                 8517  0
    ac                      4805  0
    md5                     4033  1
    ipv6                  232577  8
    uhci_hcd               31449  0
    bt878                  11093  0
    tuner                  18413  0
    tvaudio                20961  0
    bttv                  150541  1 bt878
    video_buf              21701  1 bttv
    i2c_algo_bit            8521  1 bttv
    v4l2_common             5953  1 bttv
    btcx_risc               4425  1 bttv
    i2c_core               22081  4 tuner,tvaudio,bttv,i2c_algo_bit
    videodev                9664  1 bttv
    parport_pc             24705  1
    parport                41737  2 lp,parport_pc
    snd_page_alloc         10120  1 snd_pcm
    8139too                26305  0
    mii                     4673  1 8139too
    floppy                 58609  0
    ext3                  116809  1
    jbd                    74969  1 ext3

    Như vậy là ổn,module đã được khởi động những tại sao khi thực hiện

    #alsamixer
    alsamixer: function snd_ctl_open failed for default: No such device
    Bạn lại nhận được những thông tin trên.Có lẽ đó là do module của sound-card chi được bật lên khi hệ thống khởi động,sau đó bạn cần phải khởi động lại modules của sound-card bằng tay.Hệ thống đã không thành công khởi động sound-card.

    Có nghĩa là phải khởi động lại sound-card để nó nhận lại ra modules hiện thời(bằng tay).Tuy nhiên bằng cách nào?.

    Bạn có thể làm điều này bằng cách sau:

    #/sbin/chkconf --list sound
    sau đó:

    #/sbin/chkconf --level x sound on

    Nếu như không có thông tin về "sound" bạn có thể thử với snd hoặc snd-cs42xx
    Tuy nhiên nếu như tất cả đều không nhận được kết qủa thì đấy không phải là kết thúc.Chúng ta tiến đến sử dụng alsaconf

    Sau khi cài đặt hết tất cả các packages ALSA mà liệt kê trên.
    Bạn có thể thực hiên:

    #alsaconf  để thực hiên việc tìm kiếm và thiết lập sound-card của mình.

    Nếu như bạn nhận được thông báo: "command not found". Đừng có sợ.Bạn sẽ tìm thấy một script về alsaconf trong package alsa-utils.x.Chạy nố một cách bình thường.

    # --- BEGIN: Generated by ALSACONF, do not edit. ---
    # --- ALSACONF verion @VERSION@ ---
    alias snd-card-0 snd-cs4281
    alias sound-slot-0 snd-cs4281
    # --- END: Generated by ALSACONF, do not edit. ---
    Đấy là thông tin mà alsaconf làm cho bạn  và bổ sung vào modprobe.conf
    Tuy nhiên nếu như bạn không có alsaconf thì cũng không phải là kêt thúc không thể nghe được nhạc.Rất đơn giản.Bạn tiến hành cấu hình tập tin modprobe.conf bằng tay.Rất đơn giản chỉ cần soạn thảo lại tập tin /etc/modprobe.conf và bổ sung vào dòng sau:

    alias snd-card-0 snd-cs4281
    alias sound-slot-0 snd-cs4281

    Sau đó cần phải khởi động modules của sound-card
    Bạn có thể làm bằng các cách sau:
    #/sbin/modprobe snd-cs4281
    (#modprobe snd-cs42xx)
    Hoặc là
    #insmod snd-cs42xx
    Chúng nằm ở catalog:
    /lib/modules/2.6.9-1.667/kernel/sound/pci/snd-cs4281.ko
    Sau đó chìa khoá chính là lệnh để khởi động lại sound-card là:
     
    # /etc/rc.d/init.d/alsasound restart

    Đây chính là chìa khoá để sound-card hoạt động bình thường khi mà hệ thống đã không thành công khi khời động sound-card.Sau đó bạn có thể sử dụng:
    #aumix
    Bạn nhận được như sau:



    Hoặc là alsamixer:

    #alsamixer

    Bạn nhận được như sau:


    Như vậy là mình đã thành công với sound-card của mình trên FC3 và Slackware10.1
    Chúc may mắn.Hi vọng bạn có thể giải quyết được điều gì đó với sound-card của mình.

    Hosted by uCoz