Установка и настройка Skype (chroot-окружение).
Сама установка «Skype» не должна вызывать затруднений, но так как это делается в «песочнице», есть некоторые нюансы. Это касается, в первую очередь, настройки звука и микрофона. Как Вы знаете, наверное, «Microsoft» отказался от прямого вывода звука через «Alsa» в новой версии «Skype» и приходится изгаляться с «PulseAudio».
Предполагается что «chroot-окружение» у Вас уже установлено и настроено.
Система, на примере, которой все это показано, построена на базе «AMD E-350» (с интегрированной графикой), поэтому возможны незначительные отличия в настройках Вашего оборудования.
Для начала включим микрофон. Действия проводятся на основной системе в терминале:
аlsamixer
У большинства систем на «AMD» первым устройством идет «HDMI», поэтому нажимаем «F6» чтобы выбрать «аналог».
И «F5» чтобы отобразить все устройства воспроизведения (playback) и захвата (capture).
Здесь, чтобы не ошибиться, включаем все, что связано с микрофоном и выставляем уровни. Включение – клавиша «M», вверх/вниз – добавляет или уменьшает уровень.
Также необходимо включить устройство «Capture». Это делается клавишей «Пробел».
Параметры «Boost» (усиление микрофона) не следует выставлять до конца.
После сделанных изменений нажимаем «Esc» и сохраняем настройки:
alsactl store -f /storage/.config/sound.conf
PulseAudio & Alsa.
Установим нужные пакеты (в терминале «песочницы», порт – 2222) :
apt install alsa pulseaudio pavucontrol -y
Удаляем файл «/storage/ubuntu/sys/etc/asound.conf» и переименовываем « /storage/ubuntu/sys/etc/asound.conf.skype_sample» в «/storage/ubuntu/sys/etc/asound.conf».
Файл «asound.conf» (бывший asound.conf.skype_sample) выглядит так:
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:1,9"
}
capture.pcm {
type plug
slave.pcm "hw:0,0"
}
}
Вам необходимо подставить свои значения «slave.pcm» для «playback.pcm» (устройство воспроизведения) и «capture.pcm» (микрофон) в формате “hw:карта,устройство”.
С устройством воспроизведения – понятно. Значения “карта/устройство” Вы можете получить на вкладке «Настройки ТВ» -> «Звук» -> «Тест звуковых устройств». Чтобы выяснить эти значения для микрофона, используйте команду:
arecord -l
[email protected]:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: SB [HDA ATI SB], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
Второй вход (card 1, device 2) – это разъем передней панели корпуса. Я точно не знал, какой номер устройства у микрофонного входа задней панели (к нему я подключил микрофон), но по логике вещей должно быть так. Если у Вас не заработает – впишите следующее устройство или включите микрофон в другой разъем. У меня получилось так (вывод звука по HDMI и микрофон):
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,3"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}
Перейдем к редактированию файлов «PulseAudio».
Откройте файл «/storage/ubuntu/sys/etc/pulse/system.pa» и замените строку
load-module module-native-protocol-unix
на
load-module module-native-protocol-unix auth-anonymous=1
В конец этого файла добавьте строки:
load-module module-alsa-sink
load-module module-alsa-source
Проверим работу «PulseAudio».
В терминале «песочницы» дайте команду:
chmod 0666 /dev/snd/*
Это нужно для нормальной работы «PulseAudio».
Запустим «PulseAudio»:
pulseaudio —system
* длинное тире перед "system": на самом деле это два маленьких (и так дальше по тексту).
Если программа не завершилась с ошибкой – все нормально, не закрывайте.
Откройте еще один терминал «песочницы» и там:
pactl list
Будет выдан длинный список существующих объектов («pulseaudio» — можно закрыть: Ctrl+C).
Среди них должны быть: устройство вывода звука «Sink» и устройство захвата «Source». Это означает, что «pulseaudio» видит устройства и может с ними работать.
Продолжаем.
В файле «/storage/ubuntu/sys/etc/init.d/pulseaudio» замените строку
PULSEAUDIO_SYSTEM_START=0
На
PULSEAUDIO_SYSTEM_START=1
В файле «/storage/ubuntu/sys/etc/chroot-init.sh» раскомментируйте строки:
## PulseAudio server start
chmod 0666 /dev/snd/*
/etc/init.d/pulseaudio start
В результате последних действий «pulseaudio» будет автоматически стартовать при загрузке системы.
Пока же, запустим его вручную (из «песочницы»):
service pulseaudio start
Skype.
Устанавливаем «Skype»:
apt install skype -y
и запускаем в терминале «хоста»:
xbmc_close
/storage/ubuntu/sys/usr/sbin/chroot /storage/ubuntu/sys/ skype
Сделайте необходимые настройки и проверьте звук.
Теперь давайте сделаем так чтобы «Skype» стартовал автоматически, и мы могли бы совершать/отвечать на звонки из «XBMC».
Для того чтобы организовать такой функционал нам потребуется программа-посредник (я выбрал «xterm»). Поясню, зачем это нужно.
Когда мы переключимся на «Skype» из «XBMC» у нас не будет возможности вернуться обратно (в XBMC) пока мы не закроем «Skype». Но, «Skype» мы закрывать не хотим, он должен продолжать работать. Из «chroot-окружения» мы не можем дать команду «xbmc_start» потому что «песочница» не имеет доступа к файловой системе «хоста». Вот для этого и нужна «программа-посредник». Система будет реагировать на ее закрытие и снова запускать «XBMC». Какая именно это будет программа – значения не имеет (лишь бы что-то маленькое).
Устанавливаем «xterm»:
apt install xterm -y
Даем права на выполнение для файла «/storage/ubuntu/autorun/20_skype»:
chmod +x /storage/ubuntu/autorun/20_skype
и добавляем «Skype» (/storage/ubuntu/progs/Skype) в «Advanced Launcher».
Перезагрузим систему и убедимся, что «Skype» работает, так как нам хотелось.
При входящем звонке или когда нам захочется позвонить – запускаем «Skype». Фактически, как Вы понимаете, «Skype» уже работает (если Вы выбрали вариант с автозагрузкой, если нет — «Skype» будет запущен), мы запускаем программу-посредник (xterm). При этом «XBMC» будет закрыт и мы сможем управлять «Skype».
После закрытия терминала «xterm» мы снова в «XBMC».
По аналогии это можно проделать и с «VDR». Для этого нужно написать скрипт и добавить команду в «/storage/.config/vdr/commands.conf».