Mplayer ошибка:alsa-control unable to find simple control 'p

Аватар пользователя Sewix

После покупки новой звуковухи(Creativ SB 7.1Live) пришлось самому собрать alsa 1.0.9b. После догих танцев с бубном мне это удалось и звук заработал!!! Я собрал:
alsa-driver-1.0.9b.tar.bz2
alsa-utils-1.0.9a.tar.bz2
alsa-lib-1.0.9.tar.bz2 - возможно с ним проблемы
Когда запускаю mplayer точнее gmplyaer вылетает ошибка
alsa-control unable to find simple control 'pcm',0

Когда стояла alsa из коробки такой проблемы небыло.
Когда внимательно посмотрел ход установки alsa-lib обнаружил:
Libraries have been installed in:
/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

Думаю что решение проблемы тут, но не знаю куда копать и что тут от меня хотя.

Аватар пользователя sergeil

Re: Mplayer ошибка:alsa-control unable to find simple contro

1. Вы можете последовать рекомендациям и написать в своем профиле:
export LD_LIBRARY_PATH="путь_к_библиотекам_алсы"

2. Вы можете добавить этот путь, в который легли библиотеки alsa в /etc/ld.so.conf и выполнить
root# ldconfig

3. Я вам предлагаю взять новую alsa из эксперементального репозитария RH.
Я беру здесь http://download.fedora.redhat.com/pub/fedora/linux/core/development/SRPMS/
Выполнить rpmbuild --rebuild ...
и проинсталлировать как родной. Мне кажется это наиболее правильный путь для RPM-based дистрибутива, каковым и есть ASPLinux.

Аватар пользователя lystor

Re: Mplayer ошибка:alsa-control unable to find simple contro

Я предпочитаю брать здесь или здесь и собирать с помощью rpmbuild.

Аватар пользователя sergeil

Re: Mplayer ошибка:alsa-control unable to find simple contro

Цитата:
lystor писал:
Я предпочитаю брать здесь или здесь и собирать с помощью rpmbuild.

lystor, ты абсолютно прав...
Я забыл, что FC4 уже считается стабильной ...

Другое дело, если пакетов FC4 тоже недостаточно, то приходится быть "впереди планеты всей", и, соответственно,
идти на риск ...
Улыбка

Аватар пользователя Sewix

Re: Mplayer ошибка:alsa-control unable to find simple contro

2 sergeil
Удалил установленный из исходников alsa-lib через make uninstall
Скачал alsa-lib-1.0.9rf-3.src.rpm
собрал rpmbuild --rebuild alsa-lib-1.0.9rf-3.src.rpm
откопал в /usr/src/asplinux/RPMS/i386
и поставил
rpm -ivh alsa-lib-1.0.9rf-3.i386.rpm
rpm -ivh alsa-lib-devel-1.0.9rf-3.i386.rpm
Я все правельно сделал?
Но ошибка осталась. gmplayer вылетает с тойже ошибкой. Где еще копать?

Аватар пользователя sergeil

Re: Mplayer ошибка:alsa-control unable to find simple contro

Цитата:
Sewix писал:
2 sergeil
Удалил установленный из исходников alsa-lib через make uninstall
Скачал alsa-lib-1.0.9rf-3.src.rpm
собрал rpmbuild --rebuild alsa-lib-1.0.9rf-3.src.rpm
откопал в /usr/src/asplinux/RPMS/i386
и поставил
rpm -ivh alsa-lib-1.0.9rf-3.i386.rpm
rpm -ivh alsa-lib-devel-1.0.9rf-3.i386.rpm
Я все правельно сделал?

Да
Кстати, xmms нормально работает через ALSA?
Попробуйте ...

Цитата:
Но ошибка осталась. gmplayer вылетает с тойже ошибкой. Где еще копать?

Будем копать дальше ...

1. Какая версия gmplayer?
Кстати, у меня gmplayer - это symlink на mplayer.

[sergeil@homedesk ~]$ rpm -qf `which gmplayer`
mplayer-1.0-0.pre7.1.10.0asp

Первым делом, я бы спрятал (переименовал) текущие настройки mplayer в вашем $HOME.

[sergeil@homedesk ~]$ ll -d .mplayer
drwxrwxr-x 2 sergeil sergeil 4096 Фев 5 2005 .mplayer
Мало-ли что он там понаписывал...

Потом, я-бы, находясь в XWindow, открыл терминал и попытался запустить gmplayer из командной строки....
Вот что получил я...

[sergeil@homedesk .mplayer]$ gmplayer
MPlayer 1.0pre7-3.3.3 (C) 2000-2005 MPlayer Team
CPU: Intel Pentium 4/Xeon/Celeron Foster (Family: 8, Stepping: 4)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

vo: X11 running at 1024x768 with depth 24 and 32 bpp (":0.0" => local display)
85 audio & 196 video codecs
Failed to open /dev/rtc: No such file or directory (it should be readable by the user.)
Opening joystick device /dev/input/js0
Can't open joystick device /dev/input/js0 : No such file or directory
Can't init input joystick
Setting up LIRC support...
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support.
You will not be able to use your remote control.

------------------------------
Появились окна GUI ...
Закрыли окно...
---------------------------

Exiting... (Exit)

Получили нормальное завершение...

Аватар пользователя lystor

Re: Mplayer ошибка:alsa-control unable to find simple contro

Полное руководство от разработчиков ALSA. Взято здесь.
Если что будет непонятно - спрашивайте.

Sound Blaster Live 7.1
chipset SB0410
driver ca0106

The module options for snd-ca0106

Introduction

There are two ways of getting Linux drivers to work, you can either compile them into the kernel or build them separately as modules. Read the Kernel-HOWTO for details of how to compile a kernel.

You must turn on the sound support soundcore module. This is in the kernel. Look in the sound drivers directory and it should be the first option. Most people enable the module setting. That way you can load and unload the module manually if you have multiple soundcards/devices or if you intend to debug or use cutting edge software which may cause your drivers to halt sometimes. Of course it also means you have more control of your system.

Most modern distros come with soundcore compiled as a module. You can check this in numerous ways. The easiest way is to type.

modinfo soundcore

If this command returns that you have this module, then you don't need to recompile your kernel.

Quick Install

NB. If you are using cvs then you need to type

./cvscompile "or" make build

instead of

./configure

In a shell type these commands:

Make a directory to store the alsa source code in.

cd /usr/src
mkdir alsa
cd alsa
cp /downloads/alsa-* .

Now unzip and install the alsa-driver package

bunzip2 alsa-driver-xxx
tar -xf alsa-driver-xxx
cd alsa-driver-xxx
./configure --with-cards=ca0106 --with-sequencer=yes;make;make install

NB. If you are using drivers before 0.9.4 then you need to run

./snddevices

If you use devfs then you should not run the snddevices script

The snddevices script sets the permissions for the devices it creates to root. You should

chmod a+rw /dev/dsp /dev/mixer /dev/sequencer /dev/midi

Now unzip and install the alsa-lib package

cd ..
bunzip2 alsa-lib-xxx
tar -xf alsa-lib-xxx
cd alsa-lib-xxx
./configure;make;make install

Now unzip and install the alsa-utils package

cd ..
bunzip2 alsa-utils-xxx
tar -xf alsa-utils-xxx
cd alsa-utils-xxx
./configure;make;make install

Now insert the modules into the kernel.

modprobe snd-ca0106;modprobe snd-pcm-oss;modprobe snd-mixer-oss;modprobe snd-seq-oss

NB. For drivers older than 0.9.0beta11 use:

modprobe snd-card-ca0106

Now adjust your soundcards volume levels. All mixer channels are muted by default. You must use a native mixer program to unmute appropriate channels, for example alsamixer from the alsa-utils package. Note that some usb-audio devices do not have internal mixer controls.

alsamixer

You can also look at the utils/alsasound file. This script is designed for the RedHat distribution, but it can be used with other distributions which use System V style rc init scripts. This will allow you to load your modules at boot time. If you want to do this you could just compile them into the kernel instead and save yourself the hassle of coming to terms with the rc init scripts.

Setting up modprobe and kmod support

Before you send a mail complaining that "I don't have /etc/modules.conf, where do I find it ....." ,The /etc/conf.modules has been deprecated with a few distro's so in your case, it may still be /etc/conf.modules. Basically they are both the same, but recent version of modutils uses /etc/modules.conf instead. Nothing to worry about as such, optionally please update to latest version of modutils. This should solve your problem.

Here's the example for this card. Copy and paste this to the bottom of your /etc/modules.conf file.

Note to debian users: You need to save this information into a file in the /etc/modutils/ directory (Eg. /etc/modutils/alsa) and run update-modules

# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-ca0106
# module options should go here

# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0

# card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

NB. For drivers older than 0.9.0beta11 use:

snd-card-ca0106

To copy and paste the above to your /etc/modules.conf file follow these instructions.

A short explanation of what happens in the /etc/modules.conf file

Native Devices

After the main multiplexer is loaded, its code requests top level sound card module. String snd-card-%i is requested for native devices where %i is sound card number from zero to seven. String sound-slot-%i is requested for native devices where %i is slot number for ALSA owner this means sound card number. The options line allows you to set various config options before the module is loaded. String snd_id lets you set the name of the card which is returned in the /proc/asound/cards file. Other options may be available which are card specific. The options for these are found in the INSTALL file or above.

xyz@localhost#pico /etc/modules.conf

# ALSA portion
alias snd-card-0 snd-interwave
alias snd-card-1 snd-cmipci
options snd-cmipci id="first" enable_midi="1"

# OSS/Free portion
alias sound-slot-0 snd-card-0
alias sound-slot-1 snd-card-1

NB. For drivers older than 0.9.0rc5 use:

options snd-cmipci snd_id="first" snd_enable_midi="1"

The "snd_" prefix has been removed from the "module options" to fit with the kernel standard.

Autoloading OSS/free emulation

We are finished at this point with the configuration for ALSA native devices, but you may also need autoloading for ALSA add-on OSS/Free emulation modules. At this time only one module does not depend on any others, thus must be loaded separately, snd-pcm1-oss.o. String sound-service-%i-%i is requested for OSS/Free service where first %i means slot number e.g. card number and second %i means service number.

xyz@localhost#pico
/etc/modules.conf

# OSS/Free portion - card #1
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

# OSS/Free portion - card #2 (cmipci)
alias sound-slot-1 snd-card-1
alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-3 snd-pcm-oss
alias sound-service-1-12 snd-pcm-oss

The alias for snd-seq-oss is not necessary on the second device, because there is only one /dev/sequencer, regardless how many devices you have.

The .asoundrc file

Find out more about this file here.

This file allows the you to have more advanced control over your card/device. Some very useful applications will not work without it. The .asoundrc file consists of definitions of the various cards available in your system. It also gives you access to the pcm plugins in alsa-lib. These allow you to do tricky things like combine your cards into one or access multiple i/o's on your mulitchannel card.

Below is the most basic definition.

Make a file called .asoundrc in your home and/or root directory.

vi /home/xxx/.asoundrc

copy and paste the following into the file then save it.

pcm.ca0106 {
type hw
card 0
}

ctl.ca0106 {
type hw
card 0
}

Аватар пользователя Sewix

Re: Mplayer ошибка:alsa-control unable to find simple contro

[root@localhost ~]# gmplayer
MPlayer 1.0pre7-3.3.3 (C) 2000-2005 MPlayer Team
CPU: Intel Pentium 4/Xeon/Celeron Foster (Family: 8, Stepping: 7)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2

vo: X11 running at 1024x768 with depth 24 and 32 bpp (":0.0" => local display)
Syntax error in font desc: mhwanhCannot load font: /usr/local/share/mplayer/font/cp1250-a.raw
New_Face failed. Maybe the font path is wrong.
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.

Exiting... (Exit)

Кстати когда просто открыл gmplayer без загрузки файла ошибки нет.
Чистый mplayer(не gmplayer) играет файлы без ошибок. Но мне нужно что я мог мышкой прокручивать файл(т.е. gmplayer).

Ну на шрифт он всегда у меня орет пока это не мешает.
Версия у меня MPlayer-1.0pre7.tar.bz2
Собрал из исходников. Если ставить из rpm то кодеков мало.
А так я еще не знаю не одного файла которого он бы не смог проиграть.
Звук в xmms работает, ну и вобще в кде.
Тут обнаружел что звук не пашет в q3. Раньше работал со старой alsa.
Проблема наверняка в каких нибудь библиотеках а не в mplayer.

Аватар пользователя sergeil

Re: Mplayer ошибка:alsa-control unable to find simple contro

Как много у Вас пакетов, собранных вручную и, если не секрет, какие?

Аватар пользователя Sewix

Re: Mplayer ошибка:alsa-control unable to find simple contro

Програм собранных у меня не много.
Если я не ошибаюсь:
mplayer,alsa,krusider
Пытался собрать больше но это не всегда получается.
А некоторые собрал, но потом удалил не понравились.

В данныый момент я вобще все испортил.
Пытался удалить собранный из исходников не хочет.
Поставил mplayer из rpm он вобще перестал работать.
Надо его грамотно удалить потом заново поставить.
Буду шаманить потом сегодня надоело.

Аватар пользователя Sewix

Re: Mplayer ошибка:alsa-control unable to find simple contro

Mplayer сново заработал с прежней ошибкой. Но я нашел следущее когда запустил в консоли gmplayer:
************************************************
**** Your system is too SLOW to play this! ****
************************************************

Possible reasons, problems, workarounds:
- Most common: broken/buggy _audio_ driver
- Try -ao sdl or use the OSS emulation of ALSA.
- Experiment with different values for -autosync, 30 is a good start.
- Slow video output
- Try a different -vo driver (-vo help for a list) or try -framedrop!
- Slow CPU
- Don't try to play a big DVD/DivX on a slow CPU! Try -hardframedrop.
- Broken file
- Try various combinations of -nobps -ni -forceidx -mc 0.
- Slow media (NFS/SMB mounts, DVD, VCD etc)
- Try -cache 8192.
- Are you using -cache to play a non-interleaved AVI file?
- Try -nocache.
Read DOCS/HTML/en/video.html for tuning/speedup tips.
If none of this helps you, read DOCS/HTML/en/bugreports.html.

alsa-control: unable to find simple control 'PCM',0% 11% 3,3% 51 0
alsa-control: unable to find simple control 'PCM',0% 12% 3,3% 52 0
alsa-control: unable to find simple control 'PCM',0% 12% 3,3% 53 0
alsa-uninit: pcm closed

Exiting... (Quit)

Надо поставить oss емуляцию в alsa,
В документации к mplayer для мой звуковухе тоже написано что он нужен.
http://www2.mplayerhq.hu/MPlayer/DOCS/HTML-single/ru/MPlayer.html#id2827884

RSS-материал