среда, 11 августа 2010 г.

Win7 и принтеры

сегодня наткнулся на одну интересную особенность 7-ки, при попытки установить принтер она ругалась:
"Не удалось открыть мастер добавления принтеров. Локальная подсистема печати не выполняется. Перезапустите подсистему или перезагрузите компьютер."
Чтобы полечить - либо в службах находим "Диспетчер очереди печати" и стартуем если остановлена, либо из командной строки net start spooler
абажаю винду ;)


пятница, 28 мая 2010 г.

Asterisk. Установка и начальная настройка

качаем пакеты:
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.1.20.tar.gz
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.6.2.1.tar.gz
http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.3.0+2.3.0.tar.gz
http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.tar.gz
http://downloads.asterisk.org/pub/telephony/libss7/releases/libss7-1.0.2.tar.gz

распаковываем и ставим в следующем порядке:
1.dahdi
make all
make install
make config
2.libpri
make
make install
3.libss7
make
make install
4.asterisk
sh contrib/scripts/get_ilbc_source.sh (добавляем кодек ilbc)
./configure
make menuselect (зайти и включить кодек ilbc)
make
make install
make samples
asterisk -vvvc
stop now
5.asterisk-addons
./configure
make
make install

apt-get install subversion
1. svn co http://svn.digium.com/svn/asterisk-gui/branches/2.0 asterisk-gui
2. cd asterisk-gui
3. sh configure && make && make install

в /etc/asterisk/http.conf
[general]
enabled=yes
enablestatic=yes

в /etc/asterisk/manager.conf
[general]
displaysystemname = yes
enabled = yes
webenabled = yes
port = 5038
;httptimeout = 60
bindaddr = 0.0.0.0

[admin]
secret = admin
read = system,call,log,verbose,command,agent,config
write = system,call,log,verbose,command,agent,config


Checking configuration...
make checkconfig

теперь через браузер заходим:
http://(ip_машины с астериском):8088/static/config/index.html







вторник, 13 апреля 2010 г.

Перекодирование аудио файлов

WAV -> MP3

пример использования:

lame -V 0 input_file.wav output_file.mp3

ключи:

-V - качество записи (от 0 до 9, 0 - высокое, 9 - низкое)
-h - наилучшее качество

при возникновении ошибки Unsupported data format: 0x0055 используйте ключ --mp3input


Уменьшение битрейта

find . -iname "*.mp3" -exec lame '{}' ';'
(128 установлено по умолчанию)

find . -iname "*.mp3" -exec lame '-b 320 -q 0' '{}' ';'
(с указанием битрейта)

среда, 24 марта 2010 г.

Печать на шаровый матричный принтер через самбу

1. Снести CUPS (если установлен) напрочь
2. поставить lprng, magicfilter
3. запуститить magicfilter и отконфигурить принтер
4. в самбе:
printcap name = /etc/printcap
printing = lprng
print command =
lpq command = %p
lprm command =


[epson]
comment = epson
path = /var/spool/lpd/lp
printer name = epson
guest ok = Yes
printable = Yes
print command = lpr -r -h -P %p %s
use client driver = Yes
force printername = Yes


5. в /etc/printcap (формируетс при запуске магикфильтра):
lp|epson|epson:\
:lp=/dev/lp0:sd=/var/spool/lpd/lp:\
:sh:pw#80:pl#72:px#1440:mx#0:\
:if=/etc/magicfilter/epson9-filter:\
:af=/var/log/lp-acct:lf=/var/log/lp-errs:


6. добавить в /etc/rc2.d/ файл S20lps0
#!/bin/sh
/sbin/modprobe lp
/bin/chmod 777 /var/spool/lpd/lp


7. смотреть логи
8.по хорошему надо сделать чтобы модуль порта лпт цеплялся автоматом (echo "lp" >> /etc/modules ), но чот как то изначально стратил... :)


На практике вам нужно знать всего три команды: lpq, lprm,lpc
Lpq - это команда просмотра очереди печати.
Lprm - команда удаляет задания из очереди.
Синтаксис команды lprm:
Lprm - удаляет последнее задание в очереди;
Lprm - 14, 15 - удаляет задания 14 и 15 из очереди;
Lprm - username - удаляет задания конкретного пользователя из очереди;
Lprm - all - удаляет все задания из очереди.
Lpc - команда, позволяющая контролировать работу принтера, необходимости в ее использовании практически не возникает.





Samba - корзина+расширенные логи

http://www.opennet.ru/base/net/samba_tune_auth.txt.html


Вместе с Samba поставляется ряд так называемых "VFS-модулей" (Virtual
File System), с их помощью становится возможным выполнение таких
действий как протоколирование процесса работы на сетевых папках,
организация сетевой корзины, теневое копирование (shadow copy) данных,
подключение антивирусных модулей и т.п. В частности, для
протоколирования действий пользователей в Samba имеется три VFS-модуля:
audit, extd_audit, full_audit. Для поставленной нами задачи
мы будем использовать последний из них.

У данного модуля, впрочем как и у других, есть ряд параметров, с помощью
которых производится его конфигурирование и настройка. Указание
параметров производится в следующем виде:

имя_модуля:параметр1
имя_модуля:параметр2=значение1
имя_модуля:параметр3=значение2 значение3 значение4


Все настройки производятся в главном конфигурационном фале Samba -
smb.conf. Полный список параметров можно, вернее даже лучше
всего, посмотреть в исходном коде модуля, который находится в директории
samba-3.0.23d/source/vfs. Давайте построчно рассмотрим
вышеприведенный конфиг:

vfs objects = full_audit

Подключает использование данного модуля при работе с указанной сетевой
папкой

full_audit:prefix= %m|%U

Задает возможность с помощью макропеременных Samba подставлять нужные
значения в качестве источника события на сетевой папке при
протоколировании действий. В нашем случае в качестве источника будет
производится подстановка вида
NetBIOS_имя_комьютера|имя_пользователя и в log-файл будет
записываться что-то вроде:

Mar 5 08:47:51 calypso smbd_audit: comp1|username|mkdir|ok|/mnt/hdd1/new folder


full_audit:success=write rename unlink mkdir rmdir
full_audit:failure=write rename unlink mkdir rmdir


Модуль протоколирует действия которые завершились успешно - параметр
success и закончились неудачей - failure
соответственно. Как, наверное уже понятно, для данной сетевой папки мы
будем фиксировать как "успех" так и "неудачу" создания, переименования и
удаления файлов и директорий. Если же, например, нужно протоколировать
ВСЕ неудачные действия на шаре то параметр full_audit:failure
нужно не указывать и по умолчанию он будет фиксировать все "неудачи".

full_audit:facility=LOCAL5
full_audit:priority=INFO


Здесь мы остановимся немного подробнее.

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

Для определения источника журналируемых записей Syslog имеет
такие понятия как "категория" - facility и "приоритет" -
priority. Категория - это ряд предописанных значений,
событий, вроде сообщений о регистрации пользователей, сообщений от
системного планировщика, ядра, почтовой системы и т.п. Применительно к
нашей задаче имеются зарезервированные категории local0 -
local7, которые не привязаны ни к какому системному событию и
могут быть свободно использованы администратором.

Понятие "приоритет" означает уровень важности поступаемых сообщений.
Имеется 8 уровней приоритета: debug, info, warning, notice,
warning, err, crit, alert, emerg.

Нам необходимо настроить протоколирование таким образом, чтобы протоколы
с сетевых папок велись в отдельные файлы: каждая "шара" - в свой файл
журнала. Вот здесь нам на помощь и приходят вышеописанные уровни
приоритета. Мы каждой системной папке присвоим свой уникальный уровень
приоритета в пределах выбранной категории, а syslog
сконфигурируем таким образом, чтобы он разделял протоколы, поступающие
от сетевых папок. Т.е. будут использоваться приоритеты INFO и
NOTICE категории LOCAL5.

Приступим к настройке syslogd.

По умолчанию во FreeBSD все сообщения класса notice
перенаправляются в файл /var/log/messages. Нам сие не нужно,
поэтому нужно переконфигурировать syslog дабы разделить поступаемые
классы сообщений. Сделаем это следующим образом: строку

*.notice ...


заменим на

local5.=info /var/log/samba/docs.log
local5.=notice /var/log/samba/pub.log
local0.notice;local1.notice;local2.notice;local3.notice /var/log/messages
local4.notice;local6.notice;local7.notice /var/log/messages



Таким образом мы выделили приоритеты info и notice
категории local5 и перенаправили их в соответствующие файлы
журналов и, на всякий случай, для других приложений перенаправили
остальные категории local0-local7 приоритета
notice в /var/log/messages


Теперь очередь за настройкой сетевой корзины. За это
отвечает VFS-модуль recycle. У него имеются следующие
параметры:

recycle:repository=/mnt/hdd2/lost_n_found

Абсолютный путь к папке, в которую будут перемещаться удаленные на
сетевой шаре файлы и директории.

recycle:exclude = *.tmp | *.TMP | ~$* | ~WRL*
Список регулярных выражений для имен файлов которые при удалении будут
удаляться, а не перемещаться в корзину. Каждое выражение отделяется от
соседних символом "|".
ВНИАНИЕ! Маска файла и символ "|" обязательно должны
разделяться символом пробела.

recycle:excludedir = /mnt/hdd1/temp
Список директорий удаление файлов и директорий из которых не переместит
их в сетевую корзину и они на самом деле будут удалены.

recycle:maxsize=104805760
Максимальный размер файла в байтах, который может помещаться в корзину,
если размер больше - файл будет удален. В данном случае в корзину будут
попадать файлы размером не более 10 Мб.

recycle:keeptree
При удалении файла сохранять весь файловый путь относительно сетевой
папки. Т.е. например при удалении файла file.txt,
находящегося по пути path/to/file относительно сетевой шары
[pub] с абсолютным путем /mnt/hdd2, в сетевой
корзине будет создан файловый путь/mnt/hdd2/path/to/file и в
эту директорию будет помещен file.txt.

recycle:versions
При удалении одного и того же файла filename, находящегося по
одному и тому же сетевому пути, в сетевой корзине будут создаваться
копии файла с именами Copy #1 filename, Copy #2 filename и
т.д.




среда, 24 февраля 2010 г.

Настройка DynDNS на Debian

Взято здесь: Ещё один блог сисадмина: Настройка DynDNS на Debian

1. Регистрация на сервисе DynDNS

http://www.dyndns.com/ - На этом сайте можно заказать за деньги DNS-хостинг, мониторинг серверов и многие другие услуги. Есть также бесплатный DNS-сервис, ограниченный 864000 запросами к DNS в месяц и бесплатный домен третьего уровня, позволяющий производить динамические обновления зоны.

Для начала регистриуемся на сайте и подтверждаем регистрацию по почте.

Выбираем доменное имя второго уровня, где будем размещать свою зону. Полный список доменов второго уровня, в которых Вы можете застолбить свой домен третьего уровня, можно посмотреть здесь: http://www.dyndns.com/services/dns/dyndns/domains.html Я выбрал домен homelinux.org.

Затем подписываемся на услугу Dynamic DNS, где выбираем тип узла - custom.

На этом сайт можно покинуть, больше он нам не понадобится.

2. Настройка ddclient с помощью мастера настройки

Устанавливаем ddclient:

aptitude install ddclient

Сразу во время установки запускается мастер настройки ddclient с ncurses-интерфейсом:
1. Выбираем сервис, на котором зарегистрировали учётную запись. Я выбрал www.dyndns.com
2. Вводим имя домена, который выбрали при регистрации на DynDNS
3. Вводим имя пользователя, с которым регистрировались на сервисе DynDNS
4. Пароль для этой учётной записи
5. Указываем имя интерфейса, к IP-адресу которого будет привязываться выбранное доменное имя. Можно оставить это поле пустым, тогда IP-адрес будет определяться автоматически, исходя из того, какой IP-адрес был использован клиентом при подключении к сервису.
6. Здесь можно указать, будет ли запускаться ddclient при запуске PPP-соединений и отключаться при закрытии PPP-соединений.
7. Если выбрать запуск ddclient в режиме демона, он будет автоматически запускаться при загрузке системы и работать постоянно. Если вы выбрали этот режим, то в предыдущем пункте можно отключить запуск демона при поднятии PPP-канала связи.

Если вы ошиблись в настройках, запустить мастер настройки ddclient снова можно в любое время, для этого можно воспользоваться следующей командой:

dpkg-reconfigure ddclient

3. Конфигурационные файлы и настройка без мастера

Все указанные мной настройки уместились в двух файлах. /etc/ddclient.conf:

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

pid=/var/run/ddclient.pid
protocol=dyndns2
use=if, if=
server=members.dyndns.org
login=www2
password='password'
ufadeb.homelinux.org


В этом файле можно указать имя интерфейса, имя и пароль учётной записи на DynDNS и доменное имя, которые вы выбрали при регистрации.

И второй файл - /etc/default/ddclient:


# Configuration for ddclient scripts
# generated from debconf on Срд Фев 25 20:17:16 YEKT 2009
#
# /etc/default/ddclient

# Set to "true" if ddclient should be run every time a new ppp connection is
# established. This might be useful, if you are using dial-on-demand
run_ipup="true"

# Set to "true" if ddclient should run in daemon mode
run_daemon="false"

# Set the time interval between the updates of the dynamic DNS name in seconds.
# This option only takes effect if the ddclient runs in daemon mode.
daemon_interval="300"


В нём можно указать режимы запуска и период обновления информации:

1. run_ipup соответствует запуску демона при установлении PPP-подключения и его остановке при разрыве PPP-подключения, принимает два значения - true (запускать) и false (не запускать),

2. run_daemon - запускать ddclient в режиме демона (true) или нет (false),

3. daemon_interval - интервал обновления привязки доменного имени и IP-адреса в секундах (300 - 5 минут).

4. Более сложный случай настройки

Мне понадобился несколько более экзотический случай настройки: мне нужно обновлять две доменные записи и привязывать их к двум интерфейсам. С помощью мастера настройки и обычных режимов работы ddclient, предусмотренных скриптами в /etc/init.d/ddclient это настроить нельзя. Поэтому я настроил немного по-другому.

Нужно прописать в файле конфигурации обычные настройки для одного домена, но указать их два. Для каждого домена обновлять записи следует из командной строки, указывая название интерфейса и доменное имя, для которых производится обновление. Теоретически можно было бы вызывать эти скрипты единожды при поднятии PPP-интерфейсов, однако на практике такая схема обновления записей себя не оправдала: если ddclient не срабатывал сразу при поднятии интерфейса, то новых попыток обновить адрес не предпринималось до тех пор, пока PPP-соединение не будет переподключено вновь. Если каждое обновление записей в DynDNS требует личного контроля, автоматизацией это не назовёшь. Поэтому был выбран другой вариант - обновление записей по cron'у.

Сначала я отключил режим демона и режим запуска для PPP-соединений:

run_ipup="false"
run_daemon="false"
daemon_interval="1m"

Настроил в файле /etc/ddclient.conf два доменных имени:

pid=/var/run/ddclient.pid
protocol=dyndns2
server=members.dyndns.org
login=www2
password='password'
ufadeb.homelinux.org
stupin.homelinux.org


И настроил запуск ddclient по cron'у каждую минуту:

crontab -e

Добавив в таблицу две строчки:

* * * * * /usr/sbin/ddclient -file /etc/ddclient.conf -host stupin.homelinux.org -use if -if ppp0
* * * * * /usr/sbin/ddclient -file /etc/ddclient.conf -host ufadeb.homelinux.org -use if -if ppp1

Интерфейсы ppp0 и ppp1 всегда привязаны к определённым соединениям с помощью опции unit демона pppd.

Теперь можно перезапустить демон cron, чтобы он заново считал свои настройки (хотя вроде бы и так он перечитывает их каждую минуту):


/etc/init.d/cron restart


ddclient хранит текущие настройки в файле /var/cache/ddclient/ddclient.cache, иногда для того, чтобы принудительно обновить настройки на DynDNS-сервере может потребоваться удалить этот файл (ddclient не отправляет запрос на обновление, если текущие настройки интерфейсов совпадают с сохранёнными в этом файле).

суббота, 6 февраля 2010 г.

Настройка Wifi Atheros AR242x(AR5007EG‭) ‬в Debian Lenny‭ (‬5.0‭) ‬/‭ ‬Ubuntu intrepid‭ (‬8.10‭)‬,‭ ‬jaunty‭ (‬9.04‭)

взято тут http://debianworld.ru/articles/nastrojka-wifi-atheros-ar242xar5007eg-v-debian-lenny-50-ubuntu-intrepid-810-jaunty-904/

У обладателей таких ноутбуков,‭ ‬как:‭ ‬Asus X51RL,‭ ‬Fujitsu-Siemens s6420,‭ ‬Toshiba a201,‭ ‬Samsung NC10,‭ ‬Amilo Mini‭ ‬3520,‭ ‬Acer Aspire‭ ‬5315‭ ‬и еще многих других,‭ ‬есть одна общая проблема‭ ‬-‭ ‬Wifi карточка Atheros AR5007EG‭ ‬/‭ ‬AR242x,‭ ‬работоспособность которой после установки Linux-системы,‭ ‬как правило,‭ ‬оставляет желать лучшего.‭ ‬Благодаря проекту‭ ‬madwifi,‭ ‬установка драйверов Atheros не доставляет много проблем.‭

Диагностика оборудования:‭ ‬наличие Atheros AR5007EG‭ ‬/AR242x

В первую очередь необходимо убедиться,‭ ‬что в системе действительно установлена Wifi карта Atheros AR5007EG‭ ‬/AR242x:‭
$‎ ‏lspci‭ | ‬grep Atheros‭
‬18:00.0‭ ‬Ethernet controller:‭ ‬Atheros Communications Inc.‭ ‬AR242x‭ ‬802.11abg Wireless PCI Express Adapter‭ (‬rev‭ ‬01‭)


Установка пакетов для сборки драйверов для Atheros AR5007EG‭ ‬/AR242x

Следующим шагом,‭ ‬необходимо установить пакеты для успешной компиляции драйвера:‭
$‎ ‏sudo aptitude update‭
‬$‭ ‬sudo aptitude install build-essential linux-headers-$‭(‬uname‭ ‬-r‭)


Установка MadWifi драйверов для для Atheros AR5007EG‭ ‬/AR242x

Далее,‭ ‬необходимо скачать драйвер для Atheros AR5007EG‭ ‬/AR242x:‭
$‎ ‏mkdir‭ ‬./mad-wifi‭
‬$‭ ‬cd‭ ‬./mad-wifi‭
‬$‭ ‬wget http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6/madwifi-hal-0.10.5.6-r3942-20100201.tar.gz‭

После того,‭ ‬как драйвер скачан,‭ ‬его необходимо разархивировать и скомпилировать:‭
#‎ ‏Разархивируем драйвер‭
‬$‭ ‬zxvf madwifi-hal-0.10.5.6-r3942-20100201.tar.gz‭
‬$‭ ‬cd madwifi-hal-0.10.5.6-r3942-20100201

‬#‭ ‬Компилируем драйвер‭
‬$‭ ‬make‭
‬$‭ ‬sudo make install‭

Теперь драйвер скомпилирован.‭ ‬Необходимо проверить работу wifi-карты с новым драйвером:‭
#‎ ‏включаем модуль ядра‭
‬$‭ ‬sudo modprobe ath_pci‭

‬#‭ ‬включаем wifi-интерфейс‭
‬$‭ ‬sudo ifconfig ath0‭ ‬up‭

‬#‭ ‬проверяем настройки wifi‭
‬$‭ ‬iwconfig
lo‭ ‬no wireless extensions.‭

‬eth0‭ ‬no wireless extensions.‭

‬wifi0‭ ‬no wireless extensions.‭

‬ath0‭ ‬IEEE‭ ‬802.11g‭ ‬ESSID:‭"‬XXXXXXXXXXXXX‭" ‬Nickname:‭""
‬Mode:Managed‭ ‬Frequency:2.437‭ ‬GHz‭ ‬Access Point:‭ ‬XX:XX:XX:XX:XX:XX‭
‬Bit Rate:6‭ ‬Mb/s‭ ‬Tx-Power:17‭ ‬dBm‭ ‬Sensitivity‭=‬1/1‭
‬Retry:off‭ ‬RTS thr:off‭ ‬Fragment thr:off‭
‬Power Management:off‭
‬Link Quality‭=‬21/70‭ ‬Signal level‭=‬-74‭ ‬dBm‭ ‬Noise level‭=‬-95‭ ‬dBm‭
‬Rx invalid nwid:848‭ ‬Rx invalid crypt:0‭ ‬Rx invalid frag:0‭
‬Tx excessive retries:0‭ ‬Invalid misc:0‭ ‬Missed beacon:0‭

Если вывод последней команды похож на приведенный,‭ ‬то можно констатировать,‭ ‬что wifi карта работает.

#‭ ‬перезагрузка‭
‬$‭ ‬reboot‭

Единственным недостатком такого метода является необходимость пересобирать драйвер после каждого обновления ядра.‭

Удаление MadWifi драйверов для для Atheros AR5007EG‭ ‬/AR242x

В случае,‭ ‬если что-либо не получилось,‭ ‬либо появилось желание установить более свежий драйвер,‭ ‬то текущую установку можно без труда удалить:‭
$‎ ‏cd‭ ‬./mad-wifi/madwifi-hal-0.10.5.6-r3942-20100201
‬$‭ ‬sudo make uninstall‭