Alsa+две звуковых карты =fail

Автор grafeen, 02 сентября 2012, 18:54:09

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

grafeen

Вообщем, проблема в том что никак не могу поставить дефолтной в Alse внешнюю звуковую карту(USB). Всячески уже пробывал и нивкакую.
Добивался того что б алсамиксер показывал что звуковая карта вроде и дефолтная, но половина звука в наушниках(через ЮСБ карту) половина в ноутбучных колонках... сейчас вернул как было, чтоб хоть както чтото слушать.

http://alsa.opensrc.org/FAQ026
пробовал этот вот способ, создавал файл, туда вписывал инфу.и не работает.

вывод /proc/asound/devices
Открыть содержимое (спойлер)

  2:        : timer
  3:        : sequencer
  4: [ 0- 3]: digital audio playback
  5: [ 0- 0]: digital audio playback
  6: [ 0- 0]: digital audio capture
  7: [ 0- 3]: hardware dependent
  8: [ 0- 0]: hardware dependent
  9: [ 0]   : control
10: [ 1- 0]: digital audio playback
11: [ 1- 0]: digital audio capture
12: [ 1]   : control
[свернуть]
вывод /proc/asound/modules
Открыть содержимое (спойлер)

0 snd_hda_intel
1 snd_usb_audio
[свернуть]

вывод /proc/asound/cards
Открыть содержимое (спойлер)
0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xf2800000 irq 22
1 [Device         ]: USB-Audio - USB PnP Sound Device
                      C-Media Electronics Inc.       USB PnP Sound Device at us$
[свернуть]

еще главная проблема что все факи сделанны в каком нибудь 2006-2008 году... и у алсы уже файлы в других местах лежат и вообще заколебался я.

пробовал еще так: нашел /usr/share/alsa/alsa.conf
и там было
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0

поменял на 1, начались дикие гоны но чтото я в наушниках и услышал... но все равно не то.
вот полный alsa.conf
Открыть содержимое (спойлер)
#
#  ALSA library configuration file
#

# pre-load the configuration files

@hooks [
   {
      func load
      files [
         "/etc/asound.conf"
         "~/.asoundrc"
      ]
      errors false
   }
]

# load card-specific configuration files (on request)

cards.@hooks [
   {
      func load
      files [
         {
            @func concat
            strings [
               { @func datadir }
               "/cards/aliases.conf"
            ]
         }
      ]
   }
   {
      func load_for_all_cards
      files [
         {
            @func concat
            strings [
               { @func datadir }
               "/cards/"
               { @func private_string }
               ".conf"
            ]
         }
      ]
      errors false
   }
]

#
# defaults
#

# show all name hints also for definitions without hint {} section
defaults.namehint.showall off
# show just basic name hints
defaults.namehint.basic on
# show extended name hints
defaults.namehint.extended off
#
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format "unchanged"
defaults.pcm.dmix.card defaults.pcm.card
defaults.pcm.dmix.device defaults.pcm.device
defaults.pcm.dsnoop.card defaults.pcm.card
defaults.pcm.dsnoop.device defaults.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.surround71.card defaults.pcm.card
defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
# truncate files via file or tee PCM
defaults.pcm.file_format   "raw"
defaults.pcm.file_truncate   true
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0

#
#  PCM interface
#

# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm

pcm.default cards.pcm.default
pcm.front cards.pcm.front
pcm.rear cards.pcm.rear
pcm.center_lfe cards.pcm.center_lfe
pcm.side cards.pcm.side
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.surround71 cards.pcm.surround71
pcm.iec958 cards.pcm.iec958
pcm.spdif iec958
pcm.hdmi cards.pcm.hdmi
pcm.dmix cards.pcm.dmix
pcm.dsnoop cards.pcm.dsnoop
pcm.modem cards.pcm.modem
pcm.phoneline cards.pcm.phoneline

pcm.hw {
   @args [ CARD DEV SUBDEV ]
   @args.CARD {
      type string
      default {
         @func getenv
         vars [
            ALSA_PCM_CARD
            ALSA_CARD
         ]
         default {
            @func refer
            name defaults.pcm.card
         }
      }
   }
   @args.DEV {
      type integer
      default {
         @func igetenv
         vars [
            ALSA_PCM_DEVICE
         ]
         default {
            @func refer
            name defaults.pcm.device
         }
      }
   }
   @args.SUBDEV {
      type integer
      default {
         @func refer
         name defaults.pcm.subdevice
      }
   }      
   type hw
   card $CARD
   device $DEV
   subdevice $SUBDEV
   hint {
      show {
         @func refer
         name defaults.namehint.extended
      }
      description "Direct hardware device without any conversions"
   }
}

pcm.plughw {
   @args [ CARD DEV SUBDEV ]
   @args.CARD {
      type string
      default {
         @func getenv
         vars [
            ALSA_PCM_CARD
            ALSA_CARD
         ]
         default {
            @func refer
            name defaults.pcm.card
         }
      }
   }
   @args.DEV {
      type integer
      default {
         @func igetenv
         vars [
            ALSA_PCM_DEVICE
         ]
         default {
            @func refer
            name defaults.pcm.device
         }
      }
   }
   @args.SUBDEV {
      type integer
      default {
         @func refer
         name defaults.pcm.subdevice
      }
   }      
   type plug
   slave.pcm {
      type hw
      card $CARD
      device $DEV
      subdevice $SUBDEV
   }
   hint {
      show {
         @func refer
         name defaults.namehint.extended
      }
      description "Hardware device with all software conversions"
   }
}

pcm.plug {
   @args [ SLAVE ]
   @args.SLAVE {
      type string
   }
   type plug
   slave.pcm $SLAVE
}

pcm.shm {
   @args [ SOCKET PCM ]
   @args.SOCKET {
      type string
   }
   @args.PCM {
      type string
   }
   type shm
   server $SOCKET
   pcm $PCM
}

pcm.tee {
   @args [ SLAVE FILE FORMAT ]
   @args.SLAVE {
      type string
   }
   @args.FILE {
      type string
   }
   @args.FORMAT {
      type string
      default {
         @func refer
         name defaults.pcm.file_format
      }
   }
   type file
   slave.pcm $SLAVE
   file $FILE
   format $FORMAT
   truncate {
      @func refer
      name defaults.pcm.file_truncate
   }
}

pcm.file {
   @args [ FILE FORMAT ]
   @args.FILE {
      type string
   }
   @args.FORMAT {
      type string
      default {
         @func refer
         name defaults.pcm.file_format
      }
   }
   type file
   slave.pcm null
   file $FILE
   format $FORMAT
   truncate {
      @func refer
      name defaults.pcm.file_truncate
   }
}

pcm.null {
   type null
   hint {
      show {
         @func refer
         name defaults.namehint.basic
      }
      description "Discard all samples (playback) or generate zero samples (capture)"
   }
}

#
#  Control interface
#
   
ctl.default {
   type hw
   card {
      @func getenv
      vars [
         ALSA_CTL_CARD
         ALSA_CARD
      ]
      default {
         @func refer
         name defaults.ctl.card
      }
   }
}

ctl.hw {
   @args [ CARD ]
   @args.CARD {
      type string
      default {
         @func getenv
         vars [
            ALSA_CTL_CARD
            ALSA_CARD
         ]
         default {
            @func refer
            name defaults.ctl.card
         }
      }
   }
   type hw
   card $CARD
}

ctl.shm {
   @args [ SOCKET CTL ]
   @args.SOCKET {
      type string
   }
   @args.CTL {
      type string
   }
   type shm
   server $SOCKET
   ctl $CTL
}

#
#  RawMidi interface
#

rawmidi.default {
   type hw
   card {
      @func getenv
      vars [
         ALSA_RAWMIDI_CARD
         ALSA_CARD
      ]
      default {
         @func refer
         name defaults.rawmidi.card
      }
   }
   device {
      @func igetenv
      vars [
         ALSA_RAWMIDI_DEVICE
      ]
      default {
         @func refer
         name defaults.rawmidi.device
      }
   }
}

rawmidi.hw {
   @args [ CARD DEV SUBDEV ]
   @args.CARD {
      type string
      default {
         @func getenv
         vars [
            ALSA_RAWMIDI_CARD
            ALSA_CARD
         ]
         default {
            @func refer
            name defaults.rawmidi.card
         }
      }
   }
   @args.DEV {
      type integer
      default {
         @func igetenv
         vars [
            ALSA_RAWMIDI_DEVICE
         ]
         default {
            @func refer
            name defaults.rawmidi.device
         }
      }
   }
   @args.SUBDEV {
      type integer
      default -1
   }
   type hw
   card $CARD
   device $DEV
   subdevice $SUBDEV
   hint {
      description "Direct rawmidi driver device"
      device $DEV
   }
}

rawmidi.virtual {
   @args [ MERGE ]
   @args.MERGE {
      type string
      default 1
   }
   type virtual
   merge $MERGE
}

#
#  Sequencer interface
#

seq.default {
   type hw
}

seq.hw {
   type hw
}

#
#  HwDep interface
#

hwdep.default {
   type hw
   card {
      @func getenv
      vars [
         ALSA_HWDEP_CARD
         ALSA_CARD
      ]
      default {
         @func refer
         name defaults.hwdep.card
      }
   }
   device {
      @func igetenv
      vars [
         ALSA_HWDEP_DEVICE
      ]
      default {
         @func refer
         name defaults.hwdep.device
      }
   }
}

hwdep.hw {
   @args [ CARD DEV ]
   @args.CARD {
      type string
      default {
         @func getenv
         vars [
            ALSA_HWDEP_CARD
            ALSA_CARD
         ]
         default {
            @func refer
            name defaults.hwdep.card
         }
      }
   }
   @args.DEV {
      type integer
      default {
         @func igetenv
         vars [
            ALSA_HWDEP_DEVICE
         ]
         default {
            @func refer
            name defaults.hwdep.device
         }
      }
   }
   type hw
   card $CARD
   device $DEV
}

#
#  Timer interface
#

timer_query.default {
   type hw
}

timer_query.hw {
   type hw
}

timer.default {
   type hw
   class {
      @func refer
      name defaults.timer.class
   }
   sclass {
      @func refer
      name defaults.timer.sclass
   }
   card {
      @func refer
      name defaults.timer.card
   }
   device {
      @func refer
      name defaults.timer.device
   }
   subdevice {
      @func refer
      name defaults.timer.subdevice
   }
   hint.description "Default direct hardware timer device"
}

timer.hw {
   @args [ CLASS SCLASS CARD DEV SUBDEV ]
   @args.CLASS {
      type integer
      default {
         @func refer
         name defaults.timer.class
      }
   }
   @args.SCLASS {
      type integer
      default {
         @func refer
         name defaults.timer.sclass
      }
   }
   @args.CARD {
      type string
      default {
         @func refer
         name defaults.timer.card
      }
   }
   @args.DEV {
      type integer
      default {
         @func refer
         name defaults.timer.device
      }
   }
   @args.SUBDEV {
      type integer
      default {
         @func refer
         name defaults.timer.subdevice
      }
   }
   type hw
   class $CLASS
   sclass $SCLASS
   card $CARD
   device $DEV
   subdevice $SUBDEV
}
[свернуть]

вообщем это пока главная проблема, ато звук через стандартную звуковую карту намного хуже...

corner

#1
Попробуйте инструкцию отсюда.
Обратите внимание на номер карты, id device и на defaults.ctl.card.
Т.е., например у вас вывод
Цитировать...
card 2: Audio [Altec Lansing XT1 - USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
то asound выглядит:
Цитироватьdefaults.pcm.card 2
defaults.pcm.device 0
defaults.ctl.card 2
Может, так получиться.

Сообщение объединено: 02 сентября 2012, 20:35:05

Потом alsamixer и т.д.

vladimir_ar

Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M