пятница, 14 сентября 2012 г.

Как автоматически выкачать файлы со страницы с открытым доступом / How to fetch directly linked files from a webpage

(dear english-speaking friends, please use google translate)

Допустим мы хотим скачать свободный контент со страницы автоматически, а не нажимать вручную. Есть страница на которой указаны прямые ссылки. Однако именно нажимать нам на каждый неудобно. Это решение позволит взять все ссылки и аккуратно их скачать, контроллируя что скачаны будут именно они и то, что расход ресурсов будет минимальным.

Когда я указываю "аккуратно", я имею ввиду пониженная скорость, один поток, хорошая пауза между скачиваниями. В конечном итоге, так как мы будем себя вежливо вести, для владельца это даже лучше, чем ручное выкачивание, так как никогда на не придется чтото скачивать дважды по ошибке.

Если же вы будете вести себя неприлично - будьте уверены, что владелец быстро вас вычислит и отправит в бессрочный бан. Поэтому лучше не злоупотреблять.

Первым делом надо открыть искомую страницу и сохранить ее содержимое обычным броузером. К примеру как: page_source.txt

Теперь нужно вызвать "grep" по ссылкам. Чтобы оставить только релевантные линии.Вот примерный фрагмент:
   <td><a href="/xxxxxxx/my_file.txt" onClick="rl(this, 'DM', 'list-http');return false;">http</a>

Самый надежный способ выудить строку - ключ "list-http".
Также заметьте, ссылки не абсолютные, а относительные. Значить к каждой строчке нужно будет еще добавить полный адрес.

Теперь правьте конструкцию снизу и вызвайте ее, чтобы получился список адресов:
grep "list-http" page_source.txt | sort | uniq | grep -o '<a .*href=.*>' | sed -e 's/<a/\n<a/g' | sed -e 's/<a .*href=['"'"'"]//' -e 's/["'"'"'].*$//' -e '/^$/ d' | sed -e 's#^#http://ваш урл который надо спереди приписать.net#'  > download_list.txt

Что это делает:
- вырезает все строки с ключевым словом из исходной страницы (page_code.txt)
- cортирует и унифицирует их
- вырезает оттуда конструкцию <a href>
- извлекает оттуда ссылку
- дополняет спереди до полного адреса
- помещает это в файл download_list.txt (с перезаписью)

Это создаст список файлов годных для скачки. Проверьте это.

Теперь осталось скормить это wget. Почему wget - потому что wget будет качать в один поток, один файл за раз, чтобы не бесить сервер. Самый "культурный" скачиватель.

Следующую строку нужно вызвать из места где распологается download_list.txt, туда и будут помешены скачанные файлы:
wget --user-agent="Mozilla/11.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2010092416 Firefox/11.0.0" --tries=3 -c -i download_list.txt -o download_log.log –limit-rate=500k --wait=5 --waitretry=30m

Что она делает:
  • меняет useragent на более нейтральный
  • ставит количество попыток перекачки на 3. В случае провала и частых попыток перекачать исходный сайт может нас банить (и правильно). Не будем бесить его:
  • для того, чтобы не бесить, опция --waitretry ставит время ожидания при сбое в 30 минут. Это более чем гуманно.
  • пишет лог. За ним можно следить с другой машины.
  • ограничивает скорость 500 КиБ. Это нужно чтобы не перегружать целевой сервер.
  • ставит ожидание между закачками в 10 секунд. Опять, чтобы также не перегружать сервер. 
Если хочется отправить закачку на фон, чтобы можно было прикрыть терминал, можно воспользоватся опцией "-b". Также, тогда можно опусить опцию "-o", лог будет принудительно выводится в "wget.log"

Чем это удобнее, чем графический менеждер скачек?
  • полный контроль над точными ссылками
  • потребляется значительно меньше системных ресурсов
  • очень хорошая контроллируемость
  • значительно более низкий риск сбоя при долговременной работе

понедельник, 10 сентября 2012 г.

xfprint4 не отображается принтер / xfprint4 does not show printer

(dear english-speaking friends, please use google translate)

Перебирая скрипты thunar от Linux Mint, я натолкнулся на команду печати, которая позволяет сразу распечатать любой текстовый файл прямо из thunar.
xfprint4 имя_файла

Он не был установлен, но после установки, диалог красовался следующим образом:
 
Как видно, принтеры вообще не отображаются. Как это исправить?

Во первых, должен присутствовать пакет a2ps.
Во вторых, нужно открыть терминал и выполнить xfprint-settings, и в появившимся диалоге выбрать нужную систему. В моем случае, это CUPS. После этого, принтеры будут отображаться.

Вещи, стоящие упоминания
Стоит заметить, что xfprint4 использует a2ps, который НЕ поддерживает UTF-8. Это фатально в современных системах, которые сплошь и полностью работают на UTF-8.
Как вариант, можно заменить a2ps через u2ps (пакет gnome-u2ps в debian-образных) используя simlinkи, но этот метод мной еще проверен не был.

понедельник, 3 сентября 2012 г.

Развертывание NFS шары на небольшой безопасной сетке / Simple NFS filesharing

NFS встроен в любой nix, включая Linux и представляет куда более эффективную сеть, чем виндовская SMB/Samba. По моим замерам в сети 100Mbit на кабеле RJ45 Cat 6, NFS развивал скорость передачи 12МБит/c, когда как Samba только 8(нативный виндовский SMB вообще проваливался с 5Mбит/c). Поэтому, если в сети присуствие корявых окон не предвидится, можно и нужно смело пользоваться NFS. Пока статья не рассматиривает аутентификацию и разграничение доступа, поэтому применяйте данную сеть в хорошо огороженном рутером месте, или вообще вне интернета.

Настройка NFS сервера (шары)

Установить rpcbind, nfs-common и nfs-server.
Не нужно биндовать интерфейс loopback при настройке rpcbind. В старых руководствах встречается portmap, он был заменен rpcbind.

Для открытия доступа нужно править файл /etc/exports, имеющего такой синтаксис:  
[путь] [* или имя клиента или IP адрес/маска](rw/ro,async)
В этом файле, подобно /etc/fstab, указываются все расшареные точки на текущей машине.Маску можно и опустить, тогда будет задан единственный адрес.

После правки exports, нужно вызвать sudo exportfs -a
Пример конфига:
/mnt/data 192.168.10.0/24(rw,async)
будет расшарена папка /mnt/data, доступ получит подсеть 192.168.10.хх с правами чтения/записи. Здесь 24 - маска 255.255.255.0 - первые 24 бита (из 32) будут выставленны в 1, фильтруя доступ.

Настройка клиента

Установить rpcbind, nfs-common.
Затем нужно создать пустую папку, куда будет подсоединена шара
mkdir -p "~/Шара".
В отличии от SMB, NFS полностью использует UNIX подход (с монтированием) и гармонично вливается в среду. Никаких просмотров NFS не нужно и не предвидится.

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

Подсоединение напрямик

Синтакс подсоединения напрямик:
sudo mount [IP или DNS алиас сервера]:[путь на сервере] [путь на клиенте] [опция,опция..] [-o nfs опции]
Опции:
-w разрешить запись
-r только чтение
-s подсоединить все-равно (игнорировать проверки)
NFS опции:
Эти опции используются клиентом при подсоединении - или на стадии команды mount (через -o) или в fstab. Полный список можно почитать по man nfs. Приведены наиболее значимые.
defaults - задает параметры по умолчанию. Следом за ним, можно их менять.
nfsvers=х - явно задать требуемую версию NFS протокола.
bg / fg - задать тип подсоединения. fg - foreground - прямой, команда mount заберет управление и будет подсоединять, в случае провала вывалится с ошибкой. bg - background - фоновой, команда mount сразу завершится, но будет продолжать пытаться создать соединение на фоне.
retry=х - количество попыток (сверху), перед сдаванием. Очень полезно при монтировании во время пуска, если сервер не доступен. По умолчанию - три.
port=х, proto=tcp/udp - задать порт и протокол.По умолчанию порт 2049. Если задан 0 - осуществляется опрос демона rpcbind на целевом сервере на счет порта.
timeo=x - задать интервал повтора запроса в х десятках секунд. По умолчанию 60, для протокола UDP - 1.1 c увеличением задержки в случае провала. Есть смысл менять только для сетей с долгим откликом.
retrans=х - количество попыток передачи, перед тем, как сервер сдастся. По умолчанию 3.
rsize=х, wsize=х - количество байт, кратное 1024, переданное за раз при запросах для записи и чтения соответсвенно.
Пример:
sudo mount сервер.домен.com:/mnt/data ~/Шара -w 
sudo mount 192.168.1.1:/mnt/data ~/Шара -w 

Графический скрипт, позволяющий подключать шару.
Этот примитивный скрипт позволит подключать сервер просто щелкнув и введя пароль (это требует mount).
Возможно попозже, я создам софт, который позволит легко обращаться с шарами. Сейчас это не в планах, и мне неизвестно ни одно готовое решение (потому что NFS прост?).
  • нужно заменить IP и папку на сервере, на собственную
  • если используется kde, нужно заменить gksudo на kdesu
  • шара подсоединена с стороны клиента к ~/SHARE
  • нужно поместить его в /usr/local/bin и дать ему +x
  • советую сделать к нему ярлык
  • скрипт использует gksudo и sudo таким образом, потому что стандартный вызов gksudo выдает диалог без возможности сохранить пароль на период времени. 
  • следующие после gksudo вызовы sudo будут автоматически приняты, если пароль был введен корректно.

Вот этот скрипт:
#!/bin/bash
#### This is rather primitive script to access NFS share
#### Substitute IP and folder of the server with your own (192; /home/server).
#### Share will be located at ~/SHARE on client side.
#### And finally, it uses GKSUDO. Install it, or replace with what you use.

mkdir -p ~/SHARE
gksudo -p -S -m "Введите пароль для подсоединения диска" | sudo -S -s -- mount 192.168.1.1:/home/files ~/SHARE -w -o defaults,fg,rsize=4096,wsize=4096
sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-common restart

 

Подсоединение через /etc/fstab 

[IP или DNS алиас сервера]:[путь на сервере] [путь на клиенте] nfs [nfs опция1, nfs опция2..]

Пример из /etc/fstab:
server.filetrash.com:/mnt/data_files /files nfs rsize=8192,wsize=8192,timeo=10

Завершающие действия

После подсоединения вручную рекоммендуется перезапустить демонов nfs-kernel-server и rpcbind
sudo /etc/init.d/rpcbind restart 
sudo /etc/init.d/nfs-kernel-server restart

Более серьезный разбор доступен здесь.

четверг, 30 августа 2012 г.

Управление громкостью в XFCE,Compiz и подобных / Assign volume controls keys under XFCE, Compiz and similar

XFCE, Compiz и схожие среды не имеют шаблонов для смены громкости, вместо этого имеют возможность задавать ассоциации "комбинация"-"программа". Ниже опишу как можно настроить клавиши управления громкостью в подобных средах. Перечисленное особо подходит при использовании PulseAudio.

Команда, которая меняет громкость - amixer. Соответственно, она должна быть установлена.
Увеличить громкость на 5%: amixer set Master 5%+ 
Уменьшить громкость на 5%: amixer set Master 5%- 
Заглушить: amixer set Master toggle 

Дело за малым - осталось присвоить эти комбинации кнопкам.
В XFCE это делается через "Настройки-Клавиатура-Комбинации клавиш".
В Compiz для этого есть плагин "Команды". Его нужно включить, затем записать нужные команды в поля(к примеру 0-3) и затем назначить комбинации этим полям.

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

Вещи, которые стоит отметить. 

Громкость нельзя поднять выше какогото процента.
Дело в том, что команда "amixer" меняет так называемый мастер регулятор Pulse Audio. Еще существует отдельный регулятор громкости для каждого приложения и внутренние регуляторы ALSA: ALSA Master и PCM, Front, иногда Headphones. Если вы выставили громкость внутри приложения, скажем на 60%, а кнопками максимировали глобальную громкость, то средний уровень будет 80% и поднять его выше не получится. Нужно будет поднять громкость отдельного приложения.
А на счет ALSA микшеров вообще отдельная тема - все они должны быть выдвинуты на максимум и их не надо трогать. Однако приложения вроде VLC из за багов, тем не менее, меняют ALSA Master. В результате звук становится тише или громче и его нельзя снизить или увеличить. Все эти громкости можно восстановить через команду alsamixer -c 0, или же в самом alsamixer, выбрав вашу карту через F6, поднять нужные вручную.

среда, 29 августа 2012 г.

Исправление забывшего все Claws Mail / When ClawsMail forgets everything

Сегодня столкнулся со следующей ситуацией:


ClawsMail начисто забыл все настройки и все почтовые папки. Хотя они были настроены и я ничего не менял. Неужели Claws Mail страдает маразмом?.. Да, страдает и это действующий баг. Стоит заметить, комп был нормально выключен, диски имеют совершенно здоровый SMART.

После 10 минут копания, я нашел (достаточно банальную) причину. В ~/.claws-mail лежат все настройки этого почтовика, причем на каждый конфиг, он создает файл отката (.bak). И как раз, для файла "folderlist.xml.bak" оригинального файла (folderlist.xml) не было.

После копирования первого и переименования его в folderlist.xml, эврика, все заработало.



Дальше веселее - через месяц это окно красовалось вновь. Folderlist.xml как всегда отсутствовал, folderlist.xml.bak присутствовал. Но при разыменовании ничего не изменялось. При этом я запусил клиент и начал следить какие файлы будут сменяны - был заново прописан accountrc. В старом accountrc.bak лежали же все мои реальные акки.

И тут я сделал глупость, я закрыл клиент. Accountrc.bak был переписан, делов на несколько минут заново настроить все акки. Но неприятно. На будущее нужно запомнить делать бэкапы конфигурации на глючных приложениях.


Может есть клиенты постабильнее?..

воскресенье, 26 августа 2012 г.

Изменение шрифтов по умолчанию в LibreOffice / Set default LibreOffice fonts

...или как убрать в LibreOffice корявые микрософтовские шрифты.

Нашел проблему в LibreOffice, всплывает при появлении в системе пакета мелкомягких (микрософтовских) шрифтов - "corefonts". В частности, они появляются как жесткая зависимость Wine. При появлении этих шрифтов, LO "неожиданно" переключает шрифты по умолчанию на кривые микрософтовские.

Есть два механизма управляющих шрифтами по умолчанию:
Первый - это стандартный шаблон. На его основе создаются все документы.
Второй - это шрифты по умолчанию. Если в документе шрифт не указан явно, то применяются эти шрифты.

Шаг 1.

Для начала создадим новый шаблон. Для этого нужно просто открыть чистый документ.
Файл - Создать - Текстовый документ

Шаг 2.

Теперь, сменим стили:
Формат - Стили
В этом диалоговом окне, нужно для каждого стиля выбрать "Свойства" и заменить нужный шрифт.

Шаг 2.

Затем, выберем шрифты по умолчанию:
Сервис - Параметры - LibreOffice Writer - Осн. шрифты (западные)

Вот тут задать нужные шрифты по умолчанию.

Шаг 3.

Осталось сохранить этот шаблон как стандартный:
Файл - Шаблоны - Сохранить
Затем:
Файл - Шаблоны - Управление

Внутри диалога двойной щелчок по "Мои шаблоны", затем выбрать только что сохраненный шаблон и "сделать шаблоном по умолчанию".

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

Адаптировать для всех

Эти параметры можно применить и для всех новых пользователей.
Сервис - Параметры - LibreOffice - Пути
Запоминаем простой путь к конфигурации. В моем случае это ".libreoffice".

Выходим из LO и делаем
sudo cp -dR ~/.libreoffice /etc/skel/

Теперь при создании новых пользователей, конфигурация будет перенята. Кроме того, эта комманда сразу верно выставляет права в /etc/skel.

воскресенье, 15 июля 2012 г.

Как грамотно установить WINE и PlayOnLinux на Linux Mint Debian Edition 64 / How to correctly install WINE under LMDE 64

Текущие проблемы в Linux Mint Debian Edition 64 и их причины

  1. отсутствует библиотека lib32asound2-plugins (не путать с libasound2-plugins!), предоставляющая доступ 32битных приложений к PulseAudio 64битной системы.
    Таким образом, все 32битные приложения при обращении к ALSA не смогут быть перенаправлены в PulseAudio. Причина отсутствия не ясна.
  2. отсутствует WINE даже базовой версии.
  3. конфигурация PulseAudio оставляет желать лучшего.

  Шаг 1. Устанавливаем WINE

  • WINE является жесткой зависимостью для установки PlayOnLinux
  • в репах Debian'a WINE отсутсвует напрочь, кроме sid - поэтому мы его из sid'a и потянем. Попытка вытянуть WINE из Ubuntu чревата поломкой системы
  • cборка вручную лишняя, тк PoL позволяет доустанавливать любые версии WINE сам
  • обратите внимание, что wine.list после установки wine нужно заблокировать, иначе сломаете всю систему 

открываем терминал, и пишем:
sudo su [вводим пароль]
mkdir -p /etc/apt/sources.list.d 
еcho "deb http://frickelplatz.de/debian sid main contrib non-free" >> /etc/apt/sources.list.d/wine.list 
[теперь нужно обновить репы и установить wine]
[ни в коем разе ничего более не устанавливайте!]
apt-get update 

[проконтроллируйте, чтобы тянулся только wine, без кучи зависимостей или ошибок]
apt-get install --dry-run wine 

[и если все хорошо]
apt-get install wine 

теперь, важно, нужно заблокировать wine.list, так как это раздел debian sid, и он может поломать систему. Разблокируйте, если wine нужно будет переустановить.
nano /etc/apt/sources.list.d/wine.list
[поставьте перед строкой #, это закомментирует строчку]
#deb http://frickelplatz.de/debian sid main contrib non-free 
[Ctrl-O,Ctrl-X] 
 apt-get update

Шаг 2. Устанавливаем PlayOnLinux 

PlayOnLinux способен обновлять себя, а также подключать дальнейшие версии WINE
echo "deb http://deb.playonlinux.com/ squeeze main" >> /etc/apt/sources.list.d/playonlinux.list 
apt-get update 
apt-get install playonlinux

Шаг 3. Правим шероховатости самого Linux Mint Debian 64. Проблема с lib32asound2-plugins

Зачем нужен этот плагин? 
Lib32asound2-plugins - предоставляет несколько связок для ALSA, позволяя ALSA переадресовывать вывод в том числе и на PulseAudio.Приложение, нагло пытающееся захватить ALSA (здесь - wine) в этом случае будет отправлено в PulseAudio, где оно встанет в очередь и будет "промешано" как и все остальные потоки.

Почему Lib32, а не просто libasound2-plugins
libasound2-plugins уже есть в системе, однако непригоден для 32битных приложений. В данном случае - wine. Это 64битная библиотека.Если нам нужен звук от 32битных приложений в 64битной среде, то нужен дубликат в 32битном коде, который будет связывать 32битные вызовы на 64битный PulseAudio. Если такого дубликата не будет, то не будет и звука. Или не будет перевода и wine полезет в наглую на ALSA.

Инструкции касательного нового 1.0.25 и почему его не ставить.

ВНИМАНИЕ: Начиная с недавнего релиза 1.0.25, lib32asound2 и lib32asound2-plugins были исключены из релиза и поставляются по другому. Смотри тут

теоретически, для установки должно хватать:
dpkg --add-architecture i386
apt-get update
apt-get install --no-install-recommends libasound2-plugins:i386

НО
в этот момент Debian переходит на новую реализацию multilib - возможности адресовать и запускать одну архитектуру из другой. К примеру i386 вызывать x64. И все упирается  в то, что Linux Mint взял не полноценный срез. При ручном разжовывании придется вручную выкачивать и устанавливать отдельно:
libopenjpeg2:i386 из SID (testing), так как она не была захвачена еще.

Но дальше все упирается в:
libcap2 - эта библиотека убрана из x64 в SID и доступна в SID только в i386 исполнении, плюс в новой версии добавили поддержку multiarch. Однако версия, которая еще присуствует в testing (и в срезе Linux Mint Debian Edition) не знает multiarch, доступна в x64 и i386 раздельно. И против нее выстроено 99% приложений.

При попытке:
apt-get install --dry-run libasound2-plugins:i386  libavcodec53:i386 libpulse0:i386 libcap2:i386
apt-get пытается удалить 99% всех пакетов в системе.... и фактически перевести систему на х86. Оно и понятно, у него нет выхода. Брать же версию libcap2 из SID бесполезно, так как в этом случае будет выставлен ультиматум:

Пакеты, имеющие неудовлетворённые зависимости:
 libcap2 : Конфликтует: libcap2:i386 но 1:2.22-1 будет установлен
 libcap2:i386 : Конфликтует: libcap2 но 1:2.22-1 будет установлен
E: Ошибка, pkgProblemResolver::Resolve сгенерировал повреждённые пакеты. Это может быть вызвано отложенными (held) пакетами.


Брать новую SIDовскую версию бесполезно! Так как в этом случае затребуются все 99% пакетов SID системы!

Вывод: инженеры Linux Mint Debian Edition допустили очередной ляп, пропустив asound2 версии 1.0.25.
Цепная реакция заставляет переставлять всю систему на новый подход multiarch, который в свою очередь, не полностью перенесен в срезе взятом Linux Mint Debian Edition.

Решение - откатиться на libasound2 версии 1.0.23 (имеется ввиду все - и libasound2 и libasound2-plugin, и 32битной и 64битной версии) и ждать лучших времен. Откат производится ручной выкачкой следующих файлов версии 1.0.23 (сейчас это stable):
lib32asound2_1.0.23-2.1_amd64.deb
lib32asound2-plugins_1.0.23-1+b1_amd64.deb
libasound2_1.0.23-2.1_amd64.deb
libasound2-plugins_1.0.23-1+b1_amd64.deb


Затем, нужно удалить все версии библиотек установленных ранее (если установлены): libopenjpeg2 и libcap2:i386.

Произвести автопочинку системы:
apt-get install -f --dry-run
скорее всего будет затянут обратно ia32-libs, то есть возврат на старую модель multlib. Опцию --dry-run убрать, если довольны результатом.

Форсировано установить библиотеки:
dpkg --force-conflicts --dry-run -i libasound2_1.0.23-2.1_amd64.deb libasound2-plugins_1.0.23-1+b1_amd64.deb lib32asound2_1.0.23-2.1_amd64.deb
lib32asound2-plugins_1.0.23-1+b1_amd64.deb
опять же, уберите --dry-run, если он не "выносит пол системы", а действует разумно. Звук должен опять появится, как и соответствующий вывод в pavucontrol для wine при воспроизведении.

Инструкция касательно более старого релиза - 1.0.23 и подходит также при возврате на него, "покуда погода не посветлеет".

apt-get install lib32asound2
Скачаем вручную lib32asound2-plugins (версии 1.0.23) Она, по неясным причинам, отстутствует в репах LMDE64. Для тех кто в замешательстве, да LMDE имеет собственные репы, а не дебиановские. Можно сходить по ниже описанному адресу вручную и проверить наличие последней версии. Интересует - lib32asound-plugins, причем именно под 64битную архитектуру.

cd /tmp wget http://ftp.us.debian.org/debian/pool/main/a/alsa-plugins/lib32asound2-plugins_1.0.23-1+b1_amd64.deb 
dpkg -i lib32asound2-plugins_1.0.23-1+b1_amd64.deb 

Все должно встать без конфликтов.

Шаг 4. Доисправим интеграцию ALSA и PulseAudio

поправим конфиги:
nano /etc/asound.conf

приведите к этой форме:
pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
 Есть еще один вариант, использующий dmix - для случаев когда есть приложения, конфликующие с PulseAudio. Вот он:
pcm.paul {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"  
        period_time 0
        period_size 1024
        buffer_size 8192
       #format "S32_LE"
       #periods 128
        rate 44100
    }
}
pcm.dsp0 {
    type plug
    slave.pcm "paul"
}
pcm.dsp1 {
    type plug
    slave.pcm "pulse"
}
ctl.mixer0 {
    type hw
    card 0
}
pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
[Ctrl-O, Ctrl-X] 

Скопируйте этот файл заместо устаревшего:
cp /etc/asound.conf /usr/share/alsa/pulse-alsa.conf 

Теперь, перегрузите ALSA:
/etc/init.d/alsa-util restart 
 вывод не должен содержать ошибок.

Запустив настройки, если Вы все сделали правильно, то внутри конфигурации wine для вывода будет доступно поле "out:default".

Его и стоит выбрать для вывода.

Запустив параллельно pavucontrol можно убедится, что звук WINE выводит через ALSA канал для Pulse.










Все, успехов!