31

godor2008 пишет:

Папку /linphone/share/alsa удалил уже когда посыпались ошибки

почему отсюда то...нужно удалить libasound из /что-то/там/lib.
чтобы точно посмотреть, откуда она подгружается, можно тем же strace воспользовался...

ЗЫ: не знаю, что там док предлагал, но если перенести в какой-нить раздел, то идея здравая. т.к. тема достаточно специфичная, а тут она просто затеряется...

прим. verg: позже будет перенесена

95% процентов проблем находятся между клавиатурой и стулом.

32 (27.03.2012 16:59:35 отредактировано godor2008)

Скомпилил с альсой 1.0.23 --enable-static, --enable-shared

Теперь другие ошибки при конекте:

ortp-error-snd_pcm_avail_update: Broken pipe
ortp-error-*** alsa_can_read fixup, trying to recover
ALSA lib pcm.c:7245:(snd_pcm_recover) overrun occured
ortp-error-snd_pcm_avail_update: Broken pipe
ortp-error-*** alsa_can_read fixup, trying to recover
ALSA lib pcm.c:7245:(snd_pcm_recover) overrun occured
ortp-error-snd_pcm_avail_update: Broken pipe
ortp-error-*** alsa_can_read fixup, trying to recover
ALSA lib pcm.c:7245:(snd_pcm_recover) overrun occured

При старте теперь всего 2 ошибки:

root@am3517-evm:/home/linphone# /home/linphone/install/usr/bin/linphonec
ALSA lib conf.c:4600:(snd_config_expand) Unknown parameters 0
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL default:0
Ready
Warning: video is disabled in linphonec, use -V or -C or -D to enable.
linphonec> Registration on sip:192.168.20.13 successful.

Удаление libasound.a из /home/linphone/usr/lib не дает никакого эффекта

33

Что интересно:

При звонке на 99991008 - это тестовый номер на сервере Yate, получаю такие вот сообщения:

ortp-error-snd_pcm_avail_update: Broken pipe
ortp-error-*** alsa_can_read fixup, trying to recover
ALSA lib pcm.c:7245:(snd_pcm_recover) overrun occured
ortp-error-snd_pcm_avail_update: Broken pipe

И ужасно искаженный отрывистый звук. Даже "выкрики" какието.

Когда же я звоню на другого клиента (на отдельном ноутбуке), соединение происходит нормально, в окне PhonerLite (телефон на ноутбуке) появляется сообщение об удачном конекте, показываются используемые кодеки, но звука нет! Никакие сообщения в Linphone не появляются. Как будто бы всё ок.

34

Я в Linphone отключил кодек speex 32000.

Теперь при конекте не появляются ошибки, но и звука тоже нет. Оставил включенными кодеки PCMA и PCMU

35

godor2008 пишет:

Удаление libasound.a из /home/linphone/usr/lib не дает никакого эффекта

.a - само собой не дало - это же статическая библиотека! она линкуется прямо в исполняемый файл. после компиляции нас интересуют .so файлы.
Моя идея в том, чтобы linphone использовал системный libasound.so из /usr/lib/. для того, чтобы это было наверняка - надо удалить лишние копии библиотеки.
для того, чтобы удостоверится в этом - можно воспользоваться strace'ом.

95% процентов проблем находятся между клавиатурой и стулом.

36 (28.03.2012 11:21:55 отредактировано godor2008)

При запуске со strace обнаружил такую строчку:

open("/home/linphone/install/usr/lib/libasound.so.2", O_RDONLY) = 3

Удалил данный файл. После запуска получаю:

...
open("/home/linphone/install/usr/lib/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
...
open("/usr/lib/libasound.so.2", O_RDONLY) = 3
...

Но ошибки при старте все равно возникают

root@am3517-evm:~# /home/linphone/install/usr/bin/linphonec
ALSA lib conf.c:4630:(snd_config_expand) Unknown parameters 0
ALSA lib control.c:882:(snd_ctl_open_noupdate) Invalid CTL default:0
Ready

37

гмм... может и правда у алсы кривой конфиг?
если на коробке установлены alsa-utils и записываемая ФС в корне, то запуск alsaconf должен поправить дело...
остальное вроде всё правильно уже...

95% процентов проблем находятся между клавиатурой и стулом.

38

alsaconf на ките отсутствует(

Fat-Zer пишет:

1. скопировать алсу с девайса, и положить её в соответствующую папку в своей системе сборки. + узнать её версию и положить хедеры от соответствующей версии в include'ы

На ките нету:

root@am3517-evm:~# find / -name "*asound.a*"
/home/linphone/install/usr/lib/libasound.a

Каким образом ее оттуда стащить?

39

godor2008 пишет:

"*asound.a*"

ну зачем опять статическую библиотеку ищите? libasound.so*

95% процентов проблем находятся между клавиатурой и стулом.

40

Точно...

root@am3517-evm:~# find / -name "*asound*"
/etc/asound.state
/etc/asound.conf
/usr/lib/alsa-lib/libasound_module_ctl_bluetooth.so
/usr/lib/alsa-lib/libasound_module_pcm_bluetooth.so
/usr/lib/libasound.so.2
/usr/lib/libasound.so.2.0.0
/proc/asound
/sbin/asound.state
root@am3517-evm:~#

41

Скрипт конфигурации сейчас такой:

#!/bin/bash

export PATH=/opt/arm-2011.09/bin:$PATH
export HOSTTPL=arm-none-linux-gnueabi
export PREFIX=/usr
export SOURCEDIR=$HOME/linphone
export INSTALLDIR=$SOURCEDIR/install
export COMPDIR=$SOURCEDIR/install$PREFIX

sudo apt-get install intltool

cd $SOURCEDIR/ncurses-5.9
./configure --prefix=$PREFIX --with-shared --with-gnu-ld --host=$HOSTTPL
make
make install DESTDIR=$INSTALLDIR

cd $SOURCEDIR/readline-6.2
./configure --prefix=$PREFIX --host=$HOSTTPL
make
make install DESTDIR=$INSTALLDIR

cd $SOURCEDIR/libosip2-3.5.0
./configure --prefix=$PREFIX --with-gnu-ld --host=$HOSTTPL
make
make install DESTDIR=$INSTALLDIR

cd $SOURCEDIR/libogg-1.3.0
./configure --prefix=$PREFIX --with-gnu-ld --host=$HOSTTPL
make
make install DESTDIR=$INSTALLDIR

rm $COMPDIR/lib/*.la

cd $SOURCEDIR/libeXosip2-3.5.0
./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld OSIP_CFLAGS="-I$COMPDIR/include" OSIP_LIBS="-L$COMPDIR/lib -losip2 -losipparser2"
make
make install DESTDIR=$INSTALLDIR

rm $COMPDIR/lib/*.la

cd $SOURCEDIR/speex-1.2rc1
./configure --prefix=$PREFIX --host=$HOSTTPL --enable-arm-asm --with-gnu-ld --enable-fixed-point --with-ogg="$COMPDIR" --disable-float-api
make
make install DESTDIR=$INSTALLDIR

rm $COMPDIR/lib/*.la

cd $SOURCEDIR/libvorbis-1.3.2
./configure --prefix=$PREFIX --with-gnu-ld --target=$HOSTTPL OGG_CFLAGS="-I$COMPDIR/include" OGG_LIBS="-L$COMPDIR/lib/libogg.a"
make
make install DESTDIR=$INSTALLDIR

rm $COMPDIR/lib/*.la

cd $SOURCEDIR/alsa-lib-1.0.25
./configure --prefix=$PREFIX --host=$HOSTTPL --enable-static=no --enable-shared=yes
make
make install DESTDIR=$INSTALLDIR

rm $COMPDIR/lib/*.la

cd $SOURCEDIR/linphone-3.5.2

./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld --disable-static --disable-glib --enable-gtk_ui=no --disable-sdl --disable-x11 --disable-libv4l2  --with-readline=$COMPDIR SPEEX_CFLAGS="-I$COMPDIR/include" SPEEX_LIBS="-L$COMPDIR/lib -lspeex" SWSCALE_CFLAGS="-I$COMPDIR/include" SWSCALE_LIBS="-L$COMPDIR/lib -lswscale" --enable-alsa --disable-video --disable-ffmpeg --disable-strict --disable-tests --enable-fixed-point SPEEXDSP_CFLAGS="-I$COMPDIR/include" SPEEXDSP_LIBS="-L$COMPDIR/lib -lspeexdsp" LDFLAGS="-L$COMPDIR/lib" CFLAGS="-I$COMPDIR/include" --with-osip=$COMPDIR

#vi $SOURCEDIR/linphone-3.5.2/coreapi/Makefile
#Find the LIBS variable and change it as:
#LIBS = /home/sasha/linphone/install/usr/lib/libosip2.a /home/sasha/linphone/install/usr/lib/libspeex.a /home/sasha/linphone/install/usr/lib/libvorbis.a /home/sasha/linphone/install/usr/lib/libvorbisenc.a /home/sasha/linphone/install/usr/lib/libspeexdsp.a /home/sasha/linphone/install/usr/lib/libogg.a -lasound


#cd $SOURCEDIR/linphone-3.5.2/coreapi/help/Makefile
#Find the LIBS variable and change it as:
#LIBS = /home/sasha/linphone/install/usr/lib/libeXosip2.a /home/sasha/linphone/install/usr/lib/libspeex.a /home/sasha/linphone/install/usr/lib/libvorbisenc.a /home/sasha/linphone/install/usr/lib/libosipparser2.a /home/sasha/linphone/install/usr/lib/libosip2.a /home/sasha/linphone/install/usr/lib/libvorbis.a /home/sasha/linphone/install/usr/lib/libspeexdsp.a /home/sasha/linphone/install/usr/lib/libogg.a -lasound

#cd $SOURCEDIR/linphone-3.5.2/console/Makefile
#Find the LIBS variable and change it as:
#LIBS = -leXosip2 -losip2 /home/sasha/linphone/install/usr/lib/libvorbisenc.a -lspeexdsp -logg -losipparser2 -lasound

#And find linphonecsh_LDADD variable and change it as:
#linphonecsh_LDADD = $(ORTP_LIBS) -L/home/sasha/linphone/install/usr/lib

#make
#make install DESTDIR=$INSTALLDIR

У меня сейчас сомнения насчет указания имен библиотек. Если укажу -lasound, то эта библиотека будет искаться в /usr/lib. Если я указываю -l/home/sasha/linphone/install/usr/lib/asound то получаю ошибку

42 (28.03.2012 16:59:00 отредактировано Fat-Zer)

godor2008 пишет:

Если я указываю -l/home/sasha/linphone/install/usr/lib/asound то получаю ошибку

если с путём указывать, то надо и с префиксами и с суффиксами... libasound.so.версия

godor2008 пишет:

Если укажу -lasound, то эта библиотека будет искаться в /usr/lib

если вы про /usr/lib/ хоста, то не должна - архитектура там не та...

ЗЫ: по идее вместо такой кучи правок со статическими либами должно быть достаточно добавить -Bstatic перед флагами линковки (или чего-то подобного... точно не помню)

95% процентов проблем находятся между клавиатурой и стулом.

43

А каким образом стянуть альсу с кита? Достаточно ли скопировать libasound.so оттуда в свою папку компиляции

44 (29.03.2012 01:45:07 отредактировано Fat-Zer)

godor2008 пишет:

А каким образом стянуть альсу с кита? Достаточно ли скопировать libasound.so оттуда в свою папку компиляции

да, должно быть достаточно скопировать её в одну из папок, указанных в "-L" ключах

95% процентов проблем находятся между клавиатурой и стулом.

45

Проблема...
На ките libasound.so.2 - это ссылка.

А при копировании ее через tftp получаю обычный файл

46

godor2008 пишет:

На ките libasound.so.2 - это ссылка.

А при копировании ее через tftp получаю обычный файл

не суть... но если есть желание можно скопировать файл и самому создать ссылку...

95% процентов проблем находятся между клавиатурой и стулом.

47

Но это ведь ссылка на чтото - библиотеку

48 (29.03.2012 12:03:25 отредактировано Fat-Zer)

godor2008 пишет:

Но это ведь ссылка на чтото - библиотеку

ну а после копирования вы и должны получить библиотеку... нет?

95% процентов проблем находятся между клавиатурой и стулом.

49

На ките libasound.so.2 занимает 18 Кб
После копирования на хост машину - 768 Кб

50

godor2008 пишет:

На ките libasound.so.2 занимает 18 Кб

может просто 18 байт? так это количество символов в "libasound.so.2.0.0" =)
посмотрите размер файла на который она ссылается...

95% процентов проблем находятся между клавиатурой и стулом.

51 (29.03.2012 15:57:06 отредактировано godor2008)

Точно ab Посмотрел на что ссылается файл

Я даунгрейдил Linphone до версии 3,4,3.

Скомпилил его под x86. При его запуске получаю такиеже ошибки как и на ARM, только на х86 он взонит и слышно звук в обе стороны. На x86 работает как надо.

52 (29.03.2012 16:35:43 отредактировано godor2008)

При запуске Linphone с ключом "-d" (debug) звонке с ARM на тестовый номер получаю кучу таких сообщений:

ortp-warning-Receiving packet with unknown payload type 112.

На x86 таких проблем нет.

53

По поводу libasound.2 и libasound.2.0.0

Я заменил на ARM эти два файла теми, которые скомпилил их исходников на x86. Воспроизведение звука в mplayer осталось нормальным. Значит драйвера рабочие(

54

Сервер у меня стоит в VirtualBox - Yate.

Звонки с других телефонов нормально маршрутизируются

55

О чудо!!!!
Помимо всего - была еще проблема и в севере.

Я запустил сервер в Yate в Windows и оно заработало!!!

Видимо у Linphonec на ARM проблема с серваком Yate в Linux

56

Теперь можно ведь удалить из linphone/lib файлы статических библиотек lib*.a без вреда для приложения?

57

godor2008 пишет:

Теперь можно ведь удалить из linphone/lib файлы статических библиотек lib*.a без вреда для приложения?

да...

godor2008 пишет:

Видимо у Linphonec на ARM проблема с серваком Yate в Linux

я бы не стал однозначно грешить... но тут уже можно запустить вайршарк и смотреть на уровне пакетов, чем они отличаются...

95% процентов проблем находятся между клавиатурой и стулом.

58

Новая проблема. В качестве сервера Yate используется FreeBSD на i386. К нему через свитч подключается комп и дев. борда. Звонки с ПК на ARM проходят нормально. При звонке с ARM на ПК, отсутствует звук и появляются ошибки:

linphonec> Media streams established with <sip:222@192.168.20.137> for call 2.
ortp-error-snd_pcm_avail_update: Broken pipe
ortp-error-*** alsa_can_read fixup, trying to recover
ALSA lib pcm.c:7316:(snd_pcm_recover) overrun occurred
^CTerminating...

Когда же в качестве сервера я использую ноутбук с Windows XP и Yate, то звонки нормально проходят в обе стороны. Надо копать в сторону сервера(

59

Что еще более странно:
При отключении на ARM в Linphone кодеков speex, и использовании только кодеков PCMA и PCMU звонки через сервер FreeBSD проходят нормально.
Возможно это связано с тем что на FreeBSD стоит Yate 1.x, а на Windows XP - Yate 3.3