Как правильно приготовить Skype-4.3 под Linux

Последнее добровольно-принудительное обновление программы Skype в среде его пользователей вызвало целую гамму чувств — от недоумения до негодования. Особенно, проблема коснулась Linux-сообщество. Верней, ту его часть, которая использует звуковую подсистему ALSA.

Это связано с тем, что в компании Microsoft почему-то решили, что единственно правильный путь — это использование PulseAudio, тем самым оставив без альтернативы огромное число тех, кто по каким-либо причинам не использует этот звуковой сервер.

Я отношусь к числу тех, кто не видит для себя смысла в использовании PulseAudio при нормально работающем ALSA и перенастраивать всю звуковую подсистему в угоду Skype желания не имею.

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

Сначала немного общей информации.
Когда стало понятно, что заставить работать без сбоев версию Skype-4.2 не получится, я сосредоточился на решении проблемы звука в Skype-4.3

Т.к. в повседневной жизни я использую Gentoo Linux, то для меня обычным делом является использовать USE флаги при сборке пакетов. Поэтому, я обратил внимание на USE флаг apulse. Немного «погуглив», я узнал, что это эмулятор API звукового сервера PulseAudio через ALSA. Как раз то, что мне было нужно.

Дальше было просто:
  1. Ставится apulse
  2. При помощи arecord определяется устройство микрофона
  3. Пишется конфигурационный файл ~/.asoundrc
  4. Ставится Skype с включенным флагом apulse
  5. Наслаждаемся

Все пункты, кроме 3 и 5 выполняются под администратором root.
Пункты 2 и 3 для меня были необходимы, т.к. микрофон у меня встроен в вебкамеру. Те, кто пользуется гарнитурой, подключенной к звуковой карте, вероятно, могут эти пункты пропустить.

Теперь то же самое, но применительно к системе Gentoo Linux:
  1. Ставим apulse
    ~ # emerge -av apulse
    These are the packages that would be merged, in order:
    Calculating dependencies... done!
    [ebuild   R   ~] media-sound/apulse-0.1.2  ABI_X86="32 (64) (-x32)" 0 KiB
    Total: 1 package (1 reinstall), Size of downloads: 0 KiB
    Would you like to merge these packages? [Yes/No]

  2. Смотрим список устройств для захвата звука
    ~ # arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 0: PCH [HDA Intel PCH], device 0: ALC887 Analog [ALC887 Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 0: PCH [HDA Intel PCH], device 2: ALC887 Alt Analog [ALC887 Alt Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 2: C920 [HD Pro Webcam C920], device 0: USB Audio [USB Audio]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    

    Обратите внимание — микрофон находится в card 2, device 0. Это и будет отражено в конфигурационном файле

  3. Данный файл необходимо создать под своей учётной записью
    ~ $ nano ~/.asoundrc 
    pcm.!default {
             type asym
             playback.pcm {
                     type plug
                     slave.pcm "hw:0,0"
             }
             capture.pcm {
                     type plug
                     slave.pcm "hw:2,0"
             } 
     }

  4. Установим Skype
    ~ # emerge -av skype
    These are the packages that would be merged, in order:
    Calculating dependencies... done!
    [ebuild   R   ~] net-im/skype-4.3.0.37-r1  USE="apulse -pax_kernel -pulseaudio (-selinux)" 0 KiB
    Total: 1 package (1 reinstall), Size of downloads: 0 KiB
    Would you like to merge these packages? [Yes/No]

  5. Запускаем Skype и наслаждаемся безупречно чистым звуком, как гласит реклама данного продукта.

На этом всё.
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 26
  • +9
    А ещё можно указать, что разработку apulse ведёт наш соотечественник. А вообще новости уже месяц: Началась работа над эмуляцией PulseAudio через ALSA.
    • +2
      Подтверждаю, пункты 2-3 не нужны для гарнитуры. А пункт 1 — автоматически при пункте 4 выполняется. Даже желательно не выполнять пункт 1, чтоб apulse в world не попал.

      Правда вы опустили прописывание ABI_X86=«64 32» в make.conf и связанные с этим пляски с бубном, вроде echo -abi_x86_32 >> /etc/portage/profile/use.mask.
      • 0
        Пляски с бубном я опустил намеренно, чтобы не усложнять статью. Она, весьма, схематична и написана для общего понимания.
        Именно поэтому я привел все шаги в соответствии с показанной выше схемой.
        Про переключения на abi_x86_32 можно написать отдельную статью. Хотя, это достаточно хорошо описано в wiki.gentoo.org/wiki/Multilib_System_without_emul-linux_Packages.
        Но, если сообщество решит, что это необходимо, я готов дополнить статью данным материалом.
        • 0
          Думаю, стоит дополнить. Лучше сложный howto, чем нерабочий.
          • 0
            Тут не совсем howto, наверное. Я подумаю, как будет лучше — дополнить данную статью или вынести в отдельную. Всё-таки, переход на abi_x86_32 — это более общий вопрос, skype он касается только в частном случае.
      • +2
        Правильно готовить Skype надо так:

        sudo apt-get remove skype
        
        • +1
          Если так, то уж:
          sudo apt-get purge skype
          
        • 0
          Что совершенно не помогает в случае Debian Squeeze. Пришлось из-за этого паршивого скайпа переустанавливать ОС бабушке в удаленной от цивилизации деревне, после нескольких лет идеальной работы :(
          • 0
            Можно было собрать из исходников, либо собрать deb пакет и установить через менеджер пакетов. Алгоритм и ингредиенты остаются те же.
            Собственно, apulse находится здесь github.com/i-rinat/apulse
            • 0
              Так не в apulse дело, а в остальных зависимостях.
              • 0
                Для Debian Squeeze можно попробовать выбрать на сайте Skype версию Dinamic. Это будет архив tar.bz2.
                Внутри есть описание, как ставить на различные версии. В том числе и на Debian 6.
                • 0
                  Спасибо за информацию, её бы да недели две раньше.
                  Хотя я не уверен, что оно всё равно не захотело бы новые версии библиотек qt.
            • +2
              подождите подождите. у вашей бабушки(!) в удалённой от цивизилации деревне(!) стоит debian(!)?
              • +1
                Конечно (только не у моей, но это не так уж важно). Когда в деревне заработал 2G, появилось желание приобщить бабулю к интернету. При этом хотелось обеспечить максимальную надежность (чтоб ничего не ломалось, не выходило из строя, не ловило вирусы, и так далее). Debian 6 с LXDE (и скином в стиле «похоже на WinXP, но попроще») без сбоев и упрёков использовалась несколько лет для просмотра фотографий (eog, если мне не изменяет память), веб-сайтов (chromium) и общения по сети (skype). Бабушка была довольна.
                Из-за skype пришлось ехать в деревню и обновлять ОС — на этот раз бабушка осваивает Linux Mint.
            • 0
              Спасибо!
              Что плохого в том, что бы юзать pulseaudio-libs.i686 и alsa-lib.i686 рядышком и не заморачиваться?
              • 0
                Не нравится мне, как сейчас сделано в portage: почему-то обязательно нужно собрать alsa-lib и glib с abi_x86_32, что тянет ещё дохрена всего, вместо того чтобы зависеть от emul-linux-x86-baselibs и emul-linux-x86-soundlibs. У меня, например, работает и с emul-linux-x86-*.
                • 0
                  А можно чуть подробнее? У меня всё-равно стоит куча emul-linux-x86-*, и хотелось бы избежать лишних телодвижений при установке apulse.
                  • 0
                    Я имел в виду, что если собрать apulse из исходников отдельно, не используя ebuild, то он нормально работает и с установленными emul-linux-x86-*. Правильно поправить существующие сейчас ebuild-ы для apulse и skype пока руки не дошли да и не совсем понятно как.
                  • +1
                    Переходить на ABI_X86=«64 32» все равно придется. Gentoo сейчас переходит с emul-linux-x86-* на abi_x86_32. У меня после установки скайпа больше нет пакетов emul-linux-x86-*, хотя раньше я их активно использовал.
                  • 0
                    Я на этот проект глядел где-то с месяц назад, тоже хотелось выпилить из системы pulseaudio поставленный исключительно ради скайпа, но он показался сыроватым. Как давно Вы его используете, были ли какие-то проблемы?
                    • 0
                      Ранее я его никак не использовал. Поставил только из-за обновления Skype. В системе работает ALSA. Skype работает через apulse. Проблем, связанных со звуком, не заметил. Вчера обнаружил проблему со Skype — при входящем звонке вешается. Если сделать автоприем звонка, то работает. Автоприём для меня не удобно, но пока оставил так. Исходящие звонки работают нормально. Буду разбираться.
                      • 0
                        Я предполагаю, в чём дело. Заметили, что в скайпе разные устройства для звонка и для звука при разговоре? Если в 4.2 и ранее там указать одно и то же устройство, а оно не имеет аппаратного микширования, скайп сбросит входящий звонок без с ошибкой «устройство занято»: оно было открыто для воспроизведения мелодии звонка, потом он попытался открыть ещё раз для воспроизведения собственно звонка, но не смог.

                        Может быть, у апульса тоже есть проблемы с такой конфигурацией?

                        И, пользуясь случаем, вопрос вам: вот у меня на компе оказалось
                        media-sound/apulse-0.1.2 ABI_X86="(64) -32 (-x32)"

                        А нужно именно 32? И соответственно вопросы типа — можно ли его задать только для одного приложения (ABI-флаг там в какой-то USE-флаг транслируется?)

                        UPD: да, транслируется в abi_x86_32. Но не хочет ставиться с таким флагом — emerge: there are no ebuilds to satisfy «media-libs/alsa-lib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]».

                        Не просветите, как с этим бороться? Может, ссылка какая есть с объяснением.
                        • 0
                          1. Разобрался в причинах зависания при входящих звонках. Из-за ~/.asoundrc. Писать правильный конфиг не было времени, поэтому решил «радикально» — удалил ~/.asoundrc и команду запуска скайпа привел к следующему виду (у меня KDE):
                          APULSE_CAPTURE_DEVICE=plughw:2,0 apulse skype %U

                          2. Крайне желательно отказаться от emul-linux-x86-* и использовать abi_x86_32. В переходе принципиально сложного нет ничего, сам процесс описан в данной статье wiki.gentoo.org/wiki/Multilib_System_without_emul-linux_Packages
                          Можно попробовать собрать apulse вручную, возможно, там не будет зависимости от abi_x86_32. Но на abi_x86_32, рано или поздно, переходить придется.
                    • +2
                      Напомню о виновнике торжества:
                      Скрытый текст
                      image

                      Поттеринг поступил аналогично булгаковскому коту Бегемоту. Во время пожара в ресторане МАССОВЛИТа указанный кот действовал так:
                      «Я побежал в кладовку, спас сёмгу. Я побежал в кухню, спас халат.»
                      Аналогично: сначала этот прославленный разработчик (правда слава у него — с душком-с) побежал в загрузку и сотворил там systemd, потом побежал в звук и сотворил пшшшшш-аудио.
                      Теперь мы ждем ебилдов костыля для исправления этого несчастья.
                      • 0
                        Правильно ли я понимаю, что стим тоже зависит от пульсы и можно ли таким макаром избавить его от этой зависимости?
                        • +2
                          По крайней мере в gentoo у меня вполне работал стим без пульсы.

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