Ещё одна попытка решить проблему со звуком на ASUS A7U. Решение обнаружил здесь: http://www.linux.org.ru/view-message.jsp?msgid=3706331
Звук на ASUS A7U, A7K с Intel HDA (SBx00 Azalia, Realtek ALC660-VD)
Хочу поделиться решением неприятной проблемы со звуком на некоторых моделях ноутбуков ASUS. Подвержены как минимум две модели: A7U и A7K. Проблема довольно старая (я бы даже сказал, застарелая), и до недавнего времени красивого решения не имевшая (кроме как использовать старые версии ядра и alsa-driver). Была замечена даже на ЛОРе.
Звуковая карта определяется lspci так:
# lspci | grep "Intel HDA"
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
Версия кодека:
# cat /proc/asound/card0/codec#0 | grep Codec
Codec: Realtek ALC660-VD
Симптомы: звук работает только со старыми версиями alsa-driver <= 1.0.15. Все последующие версии либо вообще не выдают звука, либо выдают очень тихий, шипящий и щёлкающий звук (слышно если выкрутить все регуляторы на максимум и хорошо прислушаться). Манипуляции с параметрами модуля snd-hda-intel (model, position_fix, enable_msi, probe_mask) не помогают.
Причина: эти модели используют один и тот же выход для вывода и аналогового, и цифрового сигнала (S/PDIF). По идее, драйвер должен сам определять, какое оборудование подключено к устройству, и в зависимости от этого выдавать либо аналоговый, либо цифровой сигнал. Но по какой-то причине это перестало работать начиная с alsa-driver 1.0.16.
Решение: заставить HDA-кодек выдавать аналоговый сигнал. Для этого нужно:
прописать в modprobe.conf
options snd-hda-intel model=auto position_fix=1
скачать и собрать утилиту hda-verb;
добавить в rc.local (или что у вас там) следующие строки:
/usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 3
/usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 1
/usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 1
наслаждаться звучанием.
Это элегантное решение было найдено пользователем dfm7a с багтрекера ALSA (баг #0004380), за что ему огромный респект и уважуха. Работает для моего ASUS A7U, возможно сработает также для некоторых похожих моделей.
Наконец-то я смог без потерь обновить ядро, до этого приходилось сидеть на древнем 2.6.23 — с более новыми ядрами alsa-driver 1.0.15 не собирался.
Спасибо за внимание (-;
theSoul (*) (15.05.2009 11:59:52)
Asus A7U звук
external amplifier нужно отключить галочкой на младших ASUS
может и на A7U также..
Silvy (*) (23.10.2009 13:59:43)
Решение проблем со звуком на ASUS A7U и новым ядром ubuntu 9.04
>P.S. На моем слабосильном A7U стандартное ядро собиралось около 4 часов (((
Да лана. На атоме ядро 30-40 минут собирается с -j2.
Dimez (*) (22.10.2009 23:11:53)
Решение проблем со звуком на ASUS A7U и новым ядром ubuntu 9.04
В дополнение к этой http://www.linux.org.ru/view-message.jsp?msgid=3706331 теме.
Все было хорошо и замечательно, пока не обновился до последней версии ядра.
В /dev/snd по умолчанию нет девайса hwC0D0. При раскапывании корней данной проблемы выяснилось, чтоб сей девайс появился необходимо пересобрать ядро с включенной опцией HWDEP.
P.S. На моем слабосильном A7U стандартное ядро собиралось около 4 часов (((
Markusha (*) (22.10.2009 18:56:28)
Re: [Solution] Звук на ASUS A7U, A7K с Intel HDA (SBx00 Azalia, Realtek ALC660-VD)
ох. надо б на моей аудиджи испытать, а то там тоже самое, звук вроде есть, но похоже только на цифровой выход.
iSage (*) (15.05.2009 18:04:12)
Re: [Solution] Звук на ASUS A7U, A7K с Intel HDA (SBx00 Azalia, Realtek ALC660-VD)
Этот способ подойдёт только для встроенных карточек на базе Intel HDA. Прога hda-verb предназначена для работы c HDA-кодеком напрямую. А для Аудиджи, если мне не изменяет амнезия, предназначен драйвер emu10k1.
theSoul (*) (15.05.2009 18:20:17)
Re: [Solution] Звук на ASUS A7U, A7K с Intel HDA (SBx00 Azalia, Realtek ALC660-VD)
>ох. надо б на моей аудиджи испытать, а то там тоже самое, звук вроде есть, но похоже только на цифровой выход.
AudigySE? Тогда запускай альтернативную ОСь и переключи режим digital/analog, должно после этого все заработать в лялеге.
linux4ever (*) (15.05.2009 23:12:41)
Re: [Solution] Звук на ASUS A7U, A7K с Intel HDA (SBx00 Azalia, Realtek ALC660-VD)
нет у меня альтернативной оси
iSage (*) (16.05.2009 13:02:16)
Решение проблем со звуком на ASUS A7U и новым ядром ubuntu 9.04
>>ядро собиралось около 4 часов (((
O_o на трипневом селероне не больше часа собиралось
madcore (*) (22.10.2009 22:28:38)
Решение проблем со звуком на ASUS A7U и новым ядром ubuntu 9.04
Хм... странно. Именно что 4 часа. В итоге получилось весом в 280Мб.
Исходники брал с официального репа, конфиг из /boot , поправил только один пункт. Что я не так сделал?
Markusha (*) (22.10.2009 23:19:58)
Решение проблем со звуком на ASUS A7U и новым ядром ubuntu 9.04
cat /etc/modprobe.d/modprobe.conf в студию!
nanofon (*) (23.10.2009 21:35:55)
Решение проблем со звуком на ASUS A7U и новым ядром ubuntu 9.04
=) Поздно, я уже снес 9.04, с ATI x1200 проблемы были. Поставил interpid из сохранившегося дистрибутива.
Markusha (*) (23.10.2009 21:50:08)
Asus A7U звук
Легендарный солюшн: http://www.linux.org.ru/view-message.jsp?msgid=3706331#comment-3707588
Сделал все как написано, звука нет. Если в алсамиксере включаю на максимум фронт, то колонки, подключенные в разъем наушников на полной громкости, играют тихо и хреново. Если перезапустить alsa, звука уже нет
Куда копать?
$ uname -a Linux megafon 2.6.31-ARCH #1 SMP PREEMPT Tue Oct 13 13:36:23 CEST 2009 i686 AMD Athlon(tm) 64 X2 Dual-Core Processor TK-53 AuthenticAMD GNU/Linux
$ lspci |grep HDA 00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
nanofon (*) (23.10.2009 0:50:17)
Re: [Solution] Звук на ASUS A7U, A7K с Intel HDA (SBx00 Azalia, Realtek ALC660-VD)
Наверное, это бы надо в FAQ
ist76 (*) (15.05.2009 12:36:13)
Re: [Solution] Звук на ASUS A7U, A7K с Intel HDA (SBx00 Azalia, Realtek ALC660-VD)
Для фака оно может слишком специфично, а вот в индексе гугла пусть будет — там пока только вопросы без ответов. Неплохо бы запостить на ubuntuforums.org да на forums.gentoo.org.
theSoul (*) (15.05.2009 13:08:17)
Вот такие-вот неприятности... А воз и ныне там...
воскресенье, 31 января 2010 г.
Настройка звука в Ubuntu
Имеется: Ubuntu 9.10 на ноутбуке ASUS A7U со звуковой картой:
ATI Technologies Inc Radeon X1200 Series Audio Controller.
После установки системы звука нет. После долгих поисков наткнулся на статью
http://ubuntueasy.com/oborudovanie/nastrojka-zvuka-v-ubuntu-904-na-noutbuke-toshiba-satellite-l30-114
Статья помогла частично: звук появился, но встроенный микрофон так и не заработал. Причём, самое неприятное, после перезагрузки звук снова пропал. Да ещё так пропал, что в Gnom'е пропали все звуковые карты вообще. Тогда я повторно провёл идентификацию аудиокарты, как описано в первой статье, а затем воспользовался советами из второй статьи (занёс в blacklist "неправильное" оборудование)...
Вот первая статья:
Вот следующая статья:
http://lamskoy.livejournal.com/tag/sound
Однако, микрофон по-прежнему не работает...
Ищу информацию дальше...
ATI Technologies Inc Radeon X1200 Series Audio Controller.
После установки системы звука нет. После долгих поисков наткнулся на статью
http://ubuntueasy.com/oborudovanie/nastrojka-zvuka-v-ubuntu-904-na-noutbuke-toshiba-satellite-l30-114
Статья помогла частично: звук появился, но встроенный микрофон так и не заработал. Причём, самое неприятное, после перезагрузки звук снова пропал. Да ещё так пропал, что в Gnom'е пропали все звуковые карты вообще. Тогда я повторно провёл идентификацию аудиокарты, как описано в первой статье, а затем воспользовался советами из второй статьи (занёс в blacklist "неправильное" оборудование)...
Вот первая статья:
ATI Technologies Inc IXP SB4x0 High Definition Audio Controller
(HDA ATI SB (ALC861))...
В наличии имею Ubuntu 9.04 на ноутбуке Toshiba Satellite L30-114 со звуковой картой:
HDA ATI SB (ALC861)
ATI Technologies Inc IXP SB4x0 High Definition Audio Controller
Кто является обладателем ноутбука с такой звуковой картой знают, что есть проблема с драйверами.
Предистория
Начал я свое знакомство я с Ubuntu 8.04, там звук не заработал после установки, но 1-2 часа полазив по форумах я нашел решение на http://forum.ubuntu.ru/ где было достаточно в /etc/modprobe.d/alsa-base.conf дописать строку
options snd-hda-intel model=asus-laptop
или
options snd-hda-intel model=asus
причем значение параметра может меняться в зависимости от вида ALC..... , но для данного ноутбука полноценно работающими являются только эти 2.
У меня наступило счастье все работает — я был доволен …..
Но время идет и я решил перейти на Ubuntu 8.10, но там этот метод не помог. Вернее помог, звук появился, но он был прерывистый, тормозил и т.д. Что я только не пробовал (и сносил pulseaudio), но толком ничего не помогало. Хотя потом понял, что пульс не причем (специально ставил Debian 5.0 где пульса нет — там такая же проблема). Короче потратив на поиски кучу времени я так и не смог заставить нормально работать звук. Пришлось откатиться на Ubuntu 8.04.
Начал я день за днем ждать выхода Ubuntu 9.04, но какое было мое разочарование, что там такая же проблема как в Ubuntu 8.10. Короче с пол месяца у меня стоял Ubuntu 9.04 (откат на 8.04 решил не делать), но без нормального звука — постоянные перезагрузки с sudo alsa force-reload и ловля нормального звука — нет, снова перезагрузка.
И потом я подумал про мудрецов которые говорили: «Зашел в тупик — вернись на начало и начни все заново».
Настройка
Вот я и начал заново. Начал искать информацию как собрать alsa c нуля. Поиски мои закончились на сайте http://wiki.ubuntu.com/RussianDocumentation/AlsaHda-intel
В принципе практически сделал все как там описано, но есть нюансы с которыми пришлось столкнуться. Решил описать, что бы другие не мучились как я. :)
И начал все с того, что снес абсолютно все, что касалось звука (alsa, pulseaudio). В итоге после перезагрузки у меня не определилась звуковая.
Дальше я начал выполнять установку, как описано в ссылке, только вместо 1.0.16 сборки взял уже 1.0.20 (я взял 1.0.22 - прим. автора)
1.Для начала следует установить необходимые пакеты для сборки ПО из исходных текстов:
sudo apt-get install linux-headers-`uname -r` build-essential gcc gawk libgettext-ruby-util libgettext-ruby1.8 libncurses5-dev
2.Нужно скачать исходные тексты ALSA с официального сайта, желательно самые последние:
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.20.tar.bz2
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.20.tar.bz2
wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.20.tar.bz2
3.Распаковать каждый архив и перейти в директорию ./alsa-driver-1.0.20:
tar jxvf alsa-driver-1.0.20.tar.bz2
tar jxvf alsa-lib-1.0.20.tar.bz2
tar jxvf alsa-utils-1.0.20.tar.bz2
cd ./alsa-driver-1.0.20
4.Собираем ALSA с поддержкой звуковой карты HDA-Intel:
./configure -with-cards=hda-intel
make
sudo make install
5.Собираем alsa-lib:
cd ../alsa-lib-1.0.20
./configure
make
sudo make install
6.Собираем alsa-utils:
cd ../alsa-utils-1.0.20
./configure
make
а вот здесь у меня выдало ошибку (/bin/bash: xmlto: command not found). Для того что бы все было нормально нужно в консоли выполнить
sudo apt-get install xmlto
После этого сново выполнить
make
Потом
sudo make install
7.Теперь пришло время настроить alsa.
sudo alsaconf
(да причем не asoundconf, а именно alsaconf )
Выбираем нужную звуковую карту, в нашем случае это hda-intel, далее просто нажимаем OK:
В процессе нахождения звуковой карты он создаст файл etc/modprobe.d/50-sound.conf а файл alsa-base.conf я создал сам путем копированием файла etc/modprobe.d/50-sound.conf (так как я снес его вначале, когда удалял все что связано со звуком :) )
8.Добавляем в /etc/modrpobe.d/alsa-base.conf и /etc/modrpobe.d/50-sound.conf следующую строчку (на самом деле на счет файла 50-sound.conf — может он и не нужен, но я уже не экспериментировал):
options snd-hda-intel model=asus-laptop
9.Перезапускаем alsa и наслаждаемся звуком:
sudo /etc/init.d/alsasound reload
Но здесь нужно еще перезагрузить машину, и настроить регуляторы в alsamixer. И тогда все работает как нужно, даже исчез треск с колонок когда звук ставишь на 0 а проигрыватель играет (раньше трещало как будту короткое замыкание)
P.S. Если будет время попробую pulseaudio поставить назад.
Также извините за ошибки и т.д (писал ночью)
Вот следующая статья:
http://lamskoy.livejournal.com/tag/sound
Я перепробовал несколько дистрибутивов линукса на своем ноуте - ни на одном из них звук сам не заработал.
Аидоустройства ядро и alsa операционной системы видели, но звук не выдавали хоть ты тресни.
Вот что выдала команда lspci | grep -i audio:
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
01:05.2 Audio device: ATI Technologies Inc Radeon X1200 Series Audio Controller
Перепробовал кучу решений (в основном с настройками / пересборкой alsa), ничего не помогало.
Оказалось проблема в том, что alsa не может правильно установить режим выхода звука - по умолчанию он идет на HDMI выход, а нужно пускать его на аналоговый.
Помогло следующее решение (запускать от root-а):
wget http://www.kr.xemacs.org/pub/linux/kernel/people/tiwai/misc/hda-verb/hda-verb-0.3.tar.gz (прим. автора: ссылка оказалась нерабочая... Я то же самое нашёл здесь: ftp://ftp.suse.com/pub/people/tiwai/misc/ )...
tar -xf hda-verb-0.3.tar.gz
cd hda-verb-0.3
make -s
cp hda-verb /usr/local/sbin/
cat > /usr/local/sbin/sound.sh << EOF #!/bin/bash /usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 3
/usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 1
/usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 1
EOF
chmod a+x /usr/local/sbin/sound.sh
echo blacklist snd-hda-codec-atihdmi >> /etc/modprobe.d/blacklist.conf
echo blacklist snd-hda-codec-si3054 >> /etc/modprobe.d/blacklist.conf
echo /usr/local/sbin/sound.sh >> /etc/conf.d/local.start
Последняя строка специфична для Gentoo, в Debian-based дистрибутивах нужно писать в /etc/rc.local
Чтобы устройства определились правильно и заработал микрофон, иногда приходится добавлять две строки в blacklist.conf и перезапустить alsa. Пример тому Ubuntu 9.10.
Запускаем /usr/local/sbin/sound.sh, если все проходит успешно, видим чтото в духе:
nid = 0x1, verb = 0x716, param = 0x3 value = 0x0
nid = 0x1, verb = 0x717, param = 0x1 value = 0x0
nid = 0x1, verb = 0x715, param = 0x1 value = 0x0
Радуемся, проверяем наличие звука :)
Если ядро собранно без включенной опции конфига CONFIG_SND_HDA_HWDEP=y (например во всех версиях generic-ядра Ubuntu 9.04 эта опция выключена по дефолту), видим ошибку:
Hardware device was not found: /dev/snd/hwC0D0
В этом случае необходимо пересобрать ядро с CONFIG_SND_HDA_HWDEP=y
Тем кто привык пользоватся make menuconfig:
Зайти в Device Drivers -> Sound Support -> Advanced Linux Sound Architecture -> Pci Sound Devices -> Intel HD Audio
Выбрать Build hwdep interface for HD-audio driver
Остается только пересобрать ядро и перезапустить систему.
Сборку ядра смотрите в хендбуке для своего дистрибутива линукса.
Однако, микрофон по-прежнему не работает...
Ищу информацию дальше...
понедельник, 9 ноября 2009 г.
Создание списка установленных пакетов в Linux Ubuntu, Debian, Mint, и работа с ним
Взято с http://sudouser.com/sozdanie-spiska-ustanovlennyx-paketov-v-linux-ubintu-debian-mint-i-rabota-s-nim.html (4 апреля 2009 12:45)
В терминале, или в консоли набираем команду:
Данная команда выведет список всех пакетов в файл /media/disk/my_packages.txt (в примере описана флэшка с именем disc примонтированная стандартными средствами, тоесть автоматически) вы должны указать свой путь, или просто имя файла, тогда он будет создан в текущей директории.
Для установки пакетов из полученного файла на другой машине набираем следующуие команды:
Первая команда скормит список пакетов из файла /media/disk/my_packages.txt (указывайте путь до вашего файла) пакетному менеджеру, вторая начнет их установку.
Надеюсь, описанный способ вам поможет сэкономить массу времени на установке пакетов и пригодится в работе.
Оригинал (English version):
В терминале, или в консоли набираем команду:
sudo dpkg --get-selections "*" > /media/disk/my_packages.txt
Данная команда выведет список всех пакетов в файл /media/disk/my_packages.txt (в примере описана флэшка с именем disc примонтированная стандартными средствами, тоесть автоматически) вы должны указать свой путь, или просто имя файла, тогда он будет создан в текущей директории.
Для установки пакетов из полученного файла на другой машине набираем следующуие команды:
sudo dpkg --set-selections < /media/disk/my_packages.txt
sudo apt-get -u dselect-upgrade
Первая команда скормит список пакетов из файла /media/disk/my_packages.txt (указывайте путь до вашего файла) пакетному менеджеру, вторая начнет их установку.
Надеюсь, описанный способ вам поможет сэкономить массу времени на установке пакетов и пригодится в работе.
Оригинал (English version):
четверг, 29 октября 2009 г.
Аутентификация с помощью USB-флешки под Ubuntu
22.09.2008
Если надоело постоянно вводить пароль при аутентификации, при запуске команды sudo под ubuntu, и уровень безопасности позволяет, возможно настроить систему на аутентификацию с помощью usb-флешки.
Для этого у вас должна быть флешка, которой никто, кроме вас, не пользуется, т.к. при вставленной такой флешки каждому, кто получит доступ к машине, будут предоставлены все ваши имеющиеся в системе права.
Для начала установим библиотеку и утилиты, необходимые для работы модуля pamusb:
sudo aptitude install libpam-usb pamusb-tools
Далее вставим флешку в usb-порт, и добавим её следующей командой:
sudo pamusb-conf --add-device MyFlashka
Выберите из списка доступных дисков, если у вас в этот момент подключено несколько флешек.
Далее укажем пользователя, который может аутентифицироваться с помощью этой флешки:
sudo pamusb-conf --add-user user_login
где user_login - ваш логин в системе, при этом свяжите данного пользователя с указанной ранее флешкой.
Всё, проверить аутентификацию можно командой:
sudo pamusb-check user_login
И последняя часть, нужно прописать необязательную возможность аутентификации (т.е. если не будет флешки, будет по паролю как обычно), для этого в начале файла /etc/pam.d/common-auth до строки:
auth requisite pam_unix.so nullok_secure
вставьте строку:
auth sufficient pam_usb.so
Теперь всё, можете пользоваться.
На оффсайте описано, как с помощью pamusb-agent сделать так, что при отключении флешки будет автоматом запускаться хранитель экрана, и наоборот.
Для этого у вас должна быть флешка, которой никто, кроме вас, не пользуется, т.к. при вставленной такой флешки каждому, кто получит доступ к машине, будут предоставлены все ваши имеющиеся в системе права.
Для начала установим библиотеку и утилиты, необходимые для работы модуля pamusb:
sudo aptitude install libpam-usb pamusb-tools
Далее вставим флешку в usb-порт, и добавим её следующей командой:
sudo pamusb-conf --add-device MyFlashka
Выберите из списка доступных дисков, если у вас в этот момент подключено несколько флешек.
Далее укажем пользователя, который может аутентифицироваться с помощью этой флешки:
sudo pamusb-conf --add-user user_login
где user_login - ваш логин в системе, при этом свяжите данного пользователя с указанной ранее флешкой.
Всё, проверить аутентификацию можно командой:
sudo pamusb-check user_login
И последняя часть, нужно прописать необязательную возможность аутентификации (т.е. если не будет флешки, будет по паролю как обычно), для этого в начале файла /etc/pam.d/common-auth до строки:
auth requisite pam_unix.so nullok_secure
вставьте строку:
auth sufficient pam_usb.so
Теперь всё, можете пользоваться.
На оффсайте описано, как с помощью pamusb-agent сделать так, что при отключении флешки будет автоматом запускаться хранитель экрана, и наоборот.
Автор: Nick F0x
Строим почтовую систему(postfix, dovecot, postfixadmin) – часть третья, установка dovecot
Взято с: http://www.hilik.org.ua
Апр 20 2009
После того, как установлены PostfixAdmin (Строим почтовую систему(postfix, dovecot, postfixadmin) – часть первая, установка PostfixAdmin) и Postfix (Строим почтовую систему(postfix, dovecot, postfixadmin) – часть вторая, установка Postfix) можно начинать финальную часть, установку dovecot.
Теперь перейдем к установке dovecot из портов:
Теперь перейдем к установке dovecot из портов:
cd /usr/ports/mail/dovecot make install clean
В начале диалог настройки сборки dovecot:
┌────────────────────────────────────────────────────────────────────┐ │ Options for dovecot 1.1.11 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ [X] KQUEUE kqueue(2) support │ │ │ │ [X] SSL SSL support │ │ │ │ [ ] IPV6 IPv6 support │ │ │ │ [X] POP3 POP3 support │ │ │ │ [X] LDA LDA support │ │ │ │ [ ] MANAGESIEVE ManageSieve support │ │ │ │ [ ] GSSAPI GSSAPI support │ │ │ │ [ ] VPOPMAIL VPopMail support │ │ │ │ [ ] BDB BerkleyDB support │ │ │ │ [ ] LDAP OpenLDAP support │ │ │ │ [ ] PGSQL PostgreSQL support │ │ │ │ [X] MYSQL MySQL support │ │ │ │ [ ] SQLITE SQLite support │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘
#Директория для работы Dovecot base_dir = /var/run/dovecot #Протоколы по которым будет работать Dovecot protocols = imap pop3 #Разрешаем plain text авторизацию disable_plaintext_auth = no #Месторасположение пользовательской почты %d - имя домена, %u - емайл пользователя mail_location = maildir:/usr/mail/%d/%u/ mail_privileged_group = mail dotlock_use_excl = yes verbose_proctitle = yes first_valid_gid = 65534 maildir_copy_with_hardlinks = yes ssl_disable = yes #Описание работы IMAP и POP3 протоколов protocol imap { login_greeting_capability = yes imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep } protocol pop3 { pop3_uidl_format = %08Xu%08Xv pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } #Доставщик клиентской почты protocol lda { postmaster_address = hilik@hilik.org.ua sendmail_path = /usr/sbin/sendmail } #Секция отвечающая за авторизацию пользователей auth_username_format = %Lu auth default { mechanisms = plain login #Авторизация через MySQL passdb sql { args = /usr/local/etc/dovecot-sql.conf } userdb sql { args = /usr/local/etc/dovecot-sql.conf } #Пользователь от имени которого dovecot выполняет действия с почтой user = nobody socket listen { master { path = /var/run/dovecot/auth-master mode = 0666 } client { #Эти настройки отвечают за авторизацию клиентов, в нашей ситуации клиентом выступает Postfix #когда отвечает на SMTP AUTH path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } } dict { } plugin { }
driver = mysql connect = host=127.0.0.1 dbname=postfix user=postfix password=postfix-777 default_pass_scheme = MD5-CRYPT password_query = SELECT password FROM mailbox WHERE username = '%u' user_query = SELECT maildir, 65534 AS uid, 65534 AS gid FROM mailbox WHERE username = '%u'
echo "dovecot_enable=YES" >> /etc/rc.conf
/usr/local/etc/rc.d/dovecot start
Строим почтовую систему(postfix, dovecot, postfixadmin) – часть вторая, установка Postfix
Взято с: http://www.hilik.org.ua
Апр 20 2009
Переходим к установке postfix. Всю подготовительную часть (создание баз авторизации, настройка PostfixAdmin) мы провели в первой части статьи Строим почтовую систему(postfix, dovecot, postfixadmin) – часть первая, установка PostfixAdmin и теперь начинаем разбираться непосредственно с Postfix.
Установим postfix конечно же из портов:
Установим postfix конечно же из портов:
cd /usr/ports/mail/postfix/ make install clean
┌────────────────────────────────────────────────────────────────────┐ │ Options for postfix 2.5.6,1 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │[X] PCRE Perl Compatible Regular Expressions │ │ │ │[ ] SASL2 Cyrus SASLv2 (Simple Auth. and Sec. Layer) │ │ │ │[X] DOVECOT Dovecot SASL authentication method │ │ │ │[ ] SASLKRB If your SASL req. Kerberos select this option │ │ │ │[ ] SASLKRB5 If your SASL req. Kerberos5 select this option │ │ │ │[ ] SASLKMIT If your SASL req. MIT Kerberos5 select this option│ │ │ │[ ] TLS Enable SSL and TLS support │ │ │ │[ ] BDB Berkeley DB (choose version with WITH_BDB_VER) │ │ │ │[X] MYSQL MySQL maps (choose version with WITH_MYSQL_VER) │ │ │ │[ ] PGSQL PostgreSQL maps (choose with DEFAULT_PGSQL_VER) │ │ │ │[ ] OPENLDAP OpenLDAP maps (choose ver. with WITH_OPENLDAP_VER)│ │ │ │[ ] CDB CDB maps lookups │ │ │ │[ ] NIS NIS maps lookups │ │ │ │[ ] VDA VDA (Virtual Delivery Agent) │ │ │ │[ ] TEST SMTP/LMTP test server and generator │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘
Мы включили настройки, для авторизации SMTP через dovecot и возможность проверять наличие пользователей, алиасы, домены и тп в базе MySQL.
Теперь сделаем такой файл настроек posfix main.cf:
queue_directory = /var/spool/postfix command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix data_directory = /var/db/postfix mail_owner = postfix myhostname = mail.hilik.org.ua mydomain = hilik.org.ua myorigin = $myhostname inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost relay_domains = local_recipient_maps = unix:passwd.byname $alias_maps unknown_local_recipient_reject_code = 550 mynetworks_style = host mynetworks = 127.0.0.0/8 192.168.1.0/24 alias_maps = hash:/usr/local/etc/postfix/aliases alias_database = hash:/usr/local/etc/postfix/aliases smtpd_banner = $myhostname ESMTP $mail_name debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/local/sbin/sendmail newaliases_path = /usr/local/bin/newaliases mailq_path = /usr/local/bin/mailq setgid_group = maildrop html_directory = no manpage_directory = /usr/local/man sample_directory = /usr/local/etc/postfix readme_directory = no #Корневая директория для клиентских почтовых ящиков virtual_mailbox_base = /usr/mail/ #Путь к файлу настроек подключения к MySQL для получения виртуальных алиасов virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf #Путь к файлу настроек подключения к MySQL для получения виртуальных доменов virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf #Путь к файлу настроек подключения к MySQL для получения виртуальных пользователей virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf #Работать dovecot будет от nobody virtual_minimum_uid = 65534 virtual_uid_maps = static:65534 virtual_gid_maps = static:65534 #Для доставки в локальные почтовые ящики будем использовать доставщик dovecота virtual_transport = dovecot dovecot_destination_recipient_limit = 1 #Включаем smtp авторизацию через dovecot smtpd_sasl_auth_enable = yes smtpd_sasl_exceptions_networks = $mynetworks smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth #Устанавливаем разрешения smtpd smtpd_recipient_restrictions = #локальная сеть permit_mynetworks #smtp авторизация permit_sasl_authenticated #всем остальным релай запрещаем reject_unauth_destination
#Имя пользователя для подключения к базе MySQL user = postfix #Пароль подключения к MySQL password = postfixpass #Адрес сервера MySQL hosts = localhost #Имя базы MySQL dbname = postfix #Запрос на получения адреса aliasа query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
user = postfix password = postfixpass hosts = localhost dbname = postfix #Запрос на получение списка виртуальных доменов query = SELECT domain FROM domain WHERE domain='%u'
user = postfix password = postfixpass hosts = localhost dbname = postfix #Запрос отвечающий за получение информации о виртуальном пользователе query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
dovecot unix - n n - - pipe flags=DRhu user=nobody:nobody argv=/usr/local/libexec/dovecot/deliver -d ${recipient}
Добавим разрешение на запуск postfix:
echo "postfix_enable=YES" >>/etc/rc.conf
Финальная часть: Строим почтовую систему(postfix, dovecot, postfixadmin) – часть третья, установка dovecot
Строим почтовую систему(postfix, dovecot, postfixadmin) – часть первая, установка PostfixAdmin
Взято с: http://www.hilik.org.ua
Создать легкую, быструю, да и еще и легко управляемую почтовую систему, это почти недосягаемый идеал. Это все потому, что легко управляемые и удобные средства, как правило потребляют запредельные ресурсы.
Вариант с MySQL, как хранилище авторизационных данных, является наименьшим из зол, поскольку простые селекты он отрабатывает очень быстро, так что для простой сети этого вполне хватит. И панель управления postfixadmin проста и удобна в использовании.
По итогу, что бы построить почту нам нужны установленный Apache c PHP, MySQL, и соответственно настроенный ДНС, который указывает MX-сы для нашего домена на тот сервер, где вы будете строить почтовую систему.
Настройку начнем с того, что установим PostfixAdmin, установим его из портов:
В начале небольшой конфигурационный диалог:
После того, как установка закончится, первым делом нужно настроить виртуальный домен апача, что бы получить доступ к панели управления PostfixAdmin. К примеру так:
Далее нужно создать базу и пользователя MySQL:
Теперь нужно изменить файл настроек postfixadmin /usr/local/www/postfixadmin/config.inc.php.
Изменим
на
Эта установка означает, что мы создали базы и пользователя MySQL.
Укажем URL на котором будет отвечать наш постфиксадмин:
Далее в этом же файле установим языком по умолчанию русский:
И установим параметры подключения к базе MySQL:
И можно открывать в браузере установку:
Там вы увидите примерно такое:
В самом низу находится диалог создания главного админа системы управления:

и на этом настройка PostfixAdmin закончена
Следом за этим, нужно удалить setup.php:
И можно войти непосредственно в систему управления:

и далее создадим домен и пользователя в нем. Что бы было на чем проверять настройки постфикс и dovecot.
При использовании PostfixAdmin вы можете столкнуться с такой ошибкой:
Я решил эту проблему путем изменения настроек полей таблиц базы postfix, сделал это я для каждого поля text и varchar. В общем для каждого поля выполнял такие команды:
то есть поменял character set по умолчанию.
Создадим домен, для этого перейдем в меню «Список доменов» подменю «Новый домен», выбрав этот пункт, появится диалог добавления домена:

пункт «Почтовый сервер является резервным MX», означает, что почтовый сервер будет работать только на пересылку почты для этого домена. не доставляя почту в локальные почтовые ящики.
Создадим пользователя, для этого в меню «Обзор» выберем подменю «Создать Ящик»:

Теперь, когда мы добавили пользователя и домен, можно наконец то переходить к установке и настройке Postfix.
Об этом мы поговорим во второй части нашей статьи Строим почтовую систему(postfix, dovecot, postfixadmin) – часть вторая, установка Postfix
Вариант с MySQL, как хранилище авторизационных данных, является наименьшим из зол, поскольку простые селекты он отрабатывает очень быстро, так что для простой сети этого вполне хватит. И панель управления postfixadmin проста и удобна в использовании.
По итогу, что бы построить почту нам нужны установленный Apache c PHP, MySQL, и соответственно настроенный ДНС, который указывает MX-сы для нашего домена на тот сервер, где вы будете строить почтовую систему.
Настройку начнем с того, что установим PostfixAdmin, установим его из портов:
cd /usr/ports/mail/postfixadmin/ make install clean
┌────────────────────────────────────────────────────────────────────┐ │ Options for postfixadmin 2.2.1.1 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ [X] MYSQL MySQL back-end (use mysql PHP extension) │ │ │ │ [ ] MYSQLI MySQL 4.1+ back-end (use mysqli PHP extension) │ │ │ │ [ ] PGSQL PostgreSQL back-end (use pgsql PHP extension) │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘
<VirtualHost *:80> ServerAdmin postmaster@hilik.org.ua DocumentRoot /usr/local/www/postfixadmin ServerName postmaster.hilik.org.ua <Directory /usr/local/www/postfixadmin> AllowOverride All Directory> VirtualHost>
mysql -uroot -p create database postfix; grant all on postfix.* to 'postfix'@'localhost' identified by 'postfixpass';
Изменим
$CONF['configured'] = false;
$CONF['configured'] = true;
Укажем URL на котором будет отвечать наш постфиксадмин:
$CONF['postfix_admin_url'] = 'http://postmaster.hilik.org.ua';
$CONF['default_language'] = 'ru';
$CONF['database_type'] = 'mysql'; $CONF['database_host'] = '127.0.0.1'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = 'postfixpass'; $CONF['database_name'] = 'postfix'; $CONF['database_prefix'] = '';
http://postmaster.hilik.org.ua/setup.php
Postfix Admin Setup Checker
Running software:
* PHP version 5.2.9
* Apache/1.3.41 (Unix) PHP/5.2.9 with Suhosin-Patch
Checking for dependencies:
* Warning: Magic Quotes: ON (internal workaround used)
* Depends on: presence config.inc.php - OK
* Checking $CONF['configured'] - OK
* Depends on: MySQL 3.23, 4.0 - OK
* Depends on: MySQL 4.1 - OK (change the database_type to 'mysqli' in config.inc.php!!)
* Testing database connection - OK - mysql://postfix:xxxxx@127.0.0.1/postfix
* Depends on: session - OK
* Depends on: pcre - OK
* Depends on: multibyte string - OK
* Depends on: IMAP functions - OK
Everything seems fine... attempting to create/update database structure
Updating database:
old version: 0; target version: 397
updating to version 1 (all databases)...upgrade_1 done
updating to version 1 (MySQL)... done
updating to version 2 (MySQL)... done
updating to version 3 (MySQL)... done
updating to version 4 (MySQL)... done
updating to version 5 (MySQL)... done
updating to version 79 (MySQL)... done
updating to version 81 (MySQL)... done
updating to version 90 (all databases)... done
updating to version 169 (MySQL)... done
updating to version 318 (MySQL)... done
updating to version 344 (MySQL)... done
updating to version 373 (MySQL)... doneи на этом настройка PostfixAdmin закончена
Следом за этим, нужно удалить setup.php:
rm /usr/local/www/postfixadmin/setup.php
и далее создадим домен и пользователя в нем. Что бы было на чем проверять настройки постфикс и dovecot.
При использовании PostfixAdmin вы можете столкнуться с такой ошибкой:
Invalid query: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp1251_general_ci,IMPLICIT) for operation '='
alter table fetchmail change src_user src_user varchar(255) character set latin1 NOT NULL default '';
Создадим домен, для этого перейдем в меню «Список доменов» подменю «Новый домен», выбрав этот пункт, появится диалог добавления домена:
пункт «Почтовый сервер является резервным MX», означает, что почтовый сервер будет работать только на пересылку почты для этого домена. не доставляя почту в локальные почтовые ящики.
Создадим пользователя, для этого в меню «Обзор» выберем подменю «Создать Ящик»:
Теперь, когда мы добавили пользователя и домен, можно наконец то переходить к установке и настройке Postfix.
Об этом мы поговорим во второй части нашей статьи Строим почтовую систему(postfix, dovecot, postfixadmin) – часть вторая, установка Postfix
Подписаться на:
Сообщения (Atom)