Поиск по блогу :

    21 сентября 2009 г.

    Настройка HSDPA модема Alcatel MBD-100HU + Utel

    На днях попался мне в руки USB-модем MBD-100HU (он же Nuton 3.5G), с пакетом 3G от Utel. Ну мне, как всегда, захотелось проверить этот девайс на совместимость с убунту. Ниже я описал подробную настройку этого девайса в убунту 9.04.

    15 сентября 2009 г.

    Настройка SHOUTcast online-радио

    Это моя первая статья на этом блоге и в ней я хочу рассказать, как настроить сервер вещания SHOUTcast online-радио.



    Настройка online-радио

    1. Для начала нам потребуется 2 пакета. Непосредственно само ядро создаваемой потоковой аудиосистемы (SHOUTcast server, его можно скачать на сайте SHOUTcast), и пакет направляющий аудио-поток на сервер SHOUTcast.
    Я использовал: SHOUTcast Linux server v1.9.4 и SHOUTcast DSP Plug-In for Mac OS X, Linux and FreeBSD v0.40
    2. После скачивания пакетов нам требуется их распаковать:
    $ $
    tar xzvf shoutcast-1-9-4-linux-glibc6.tar.gz
    tar xzvf sc_trans_posix_040.tgz

    3. Теперь настроим сам сервер, для подачи аудиопотока на него.
    3.1. После распаковки, в каталоге 'shoutcast-1-9-4-linux-glibc6' расположен конфиг сервера SHOUTcast - sc_serv.conf:
    ; Максимальное количество пользователей, которые могут одновременно
    ; находится на сервере.
    MaxUser=16
    ; Пароль для broadcasting-программ. Подробнее см. ниже. Это поле не может
    ; быть пустым.
    Password=qwera3
    ; Порт аудиосервера.
    PortBase=8000
    ; Файл, куда будут записываться все логи сервера.
    LogFile=sc_serv.log
    ; Отображение статусной строки, которая будет ежесекундно обновляться и
    ; показывать последнюю информацию о сервере.
    RealTime=0
    ; Вывод логируемых сообщений на экран. Полезно отключить, если сервер
    ; работает в фоновом режиме.
    ScreenLog=0
    ; Количество песен, отображаемых в списке на www-странице /played.html
    ; (последние проигранные на сервере). Принимает значения от 1 до 20.
    ShowLastSongs=10
    ; TchLog определяет, должен ли DNAS-лог записывать подключения
    ; yp.shoutcast.com к серверу.
    TchLog=yes
    ; Не учитывать посещения www-странички.
    WebLog=no
    ; Включение W3C-логирования. Информацию этого лога можно просматривать
    ; с помощью, например, Analog или WebTrends.
    W3CEnable=Yes
    ; Название файла с W3C-логами.
    W3CLog=sc_w3c.log
    ; Определяет IP допущенных к вещанию источников аудипотока.. В нашем случае
    ; аудиосигнал на сервер будет подаваться с этой же машины.
    SrcIP=127.0.0.1
    ; Определяет IP допущенных к серверу слушателей.
    DestIP=ANY
    ; Порт для подключения к yp.shoutcast.com. Менять, только если стоит proxy-сервер.
    Yport=80
    ; Не смотреть DNS-имя у подключающихся к серверу.
    NameLookups=0
    ; Дополнительные настройки, нужные, если сервер будет пересылать получаемый
    ; аудиопоток на другой.
    ; RelayPort=8000
    ; RelayServer=192.168.1.58
    ; Пароль для администрирования через Web-интерфейс. Подробнее см. ниже.
    AdminPassword=qwerty2
    ; Отключать слушателей, если источник аудиопотока отсоединяется.
    AutoDumpUsers=1
    ; Время в секундах, которое источник аудиопотока может молчать (idle).
    AutoDumpSourceTime=10
    ; Директория на жестком диске, где расположены стандартные аудиофайлы.
    ; См. следующие переменные.
    ContentDir=./content
    ; MP3-файл, который будут слышать только подключившиеся к аудиосерверу
    ; пользователи. Во избежание глюков строго рекомендуется, чтобы параметры
    ; файла соответствовали качеству вещания. (%d определяет текущий bitrate.)
    ; IntroFile=intro%d.mp3
    ; MP3-файл, который будут слышать подключившиеся пользователи, если источник
    ; аудиопотока отключится. Уместны те же примечания, что и для IntroFile.
    ; AutoDumpUsers должен быть равен нулю.
    ; BackupFile=C:\intro%d.mp3
    ; Формат строки, отображаемый в клиентах пользователях во время прослушивания
    ; радио. %s определяет строку, которая берется у источника аудиопотока.
    TitleFormat=MyRadio: %s
    ; Формат строки, посылаемого слушателю URL'а.
    ; URLFormat=http://www.server.com/redirect.cgi?url=%s
    ; Является ли сервер публичным? Принимает значения always, never и default
    ; (для последнего информация берется у источника).
    PublicServer=default
    ; Другие серверы не могут пересылать свой сигнал через этот.
    AllowRelay=No
    ; Этот сервер не подлежит публикации в каталоге SHOUTcast.
    AllowPublicRelay=No
    ; Частота отсылаемых данных (в байтах). Рекомендуется оставить значение
    ; по умолчанию (32768).
    MetaInterval=32768
    ; Максимальное время (в минутах), которое слушатель может находится на сервере.
    ; Если не определено, то ограничений нет.
    ; ListenerTimer=600
    ; Текстовый файл, используемый для работы с забаненными пользователями.
    ; (Автоматически создается Web-интерфейсом.)
    ; BanFile=sc_serv.ban

    ; Текстовый файл, используемый для работы со списком клиентских IP-адресов,
    ; которые всегда могут подключиться к серверу.
    ; RipFile=sc_serv.rip
    ; Если включить, то к серверу смогут подключаться только клиенты с IP-адресами
    ; из файла RipFile.
    ; RIPOnly=No
    ; Подключение дополнительного общего конфига.
    ; Include=/usr/local/shoutcast/common.conf
    ; Следующие опции нужны для ускорения работы сервера. Менять их не рекомендуется.
    ; Количество процессоров.
    ; CpuCount=1
    ; Время "сна" процессора (в мс) в промежутках между отправлением данных
    ; пользователям. Значение по умолчанию (833) оптимально для 128kbps.
    ; Sleep=833
    ; Удаление некоторых лишних пробелов и строк в выводе XML.
    ; CleanXML=No
    3.2. Исполняемый файл для запуска самого сервера - sc_serv. Вызывается он с одним параметром, указывающим на путь к конфигу:
    $
    ./sc_serv sc_serv.conf

    4. Теперь настраиваем подачу аудиопотока.
    После распаковки, в каталоге 'sc_trans_040' расположен конфиг для вещания на SHOUTcast-сервере - sc_trans.conf. Он и отвечает за создание вышеупомянутого аудиопотока.
    4.1. Настройки конфига:
    ; Файл со списком проигрываемых mp3. Создать его можно с помощью find, введя в терминал:
    ; find /указать/путь/к/каталогу/ -type f -name *.mp3 > /путь/в/который/создасться плейлист/playlist.txt (Ну или можете вручную прописывать прямой путь к мр3 файлу :) )
    PlaylistFile=/указать/путь/к/плейлисту/playlist.txt
    ; IP и порт для сервера, на котором будет вещание.
    ServerIP=127.0.0.1
    ServerPort=8000
    ; Пароль для broadcasting'а. (См. конфиг сервера.)
    Password=qwera3
    ; Информация о музыке. Название аудиопотока, его адрес, жанр музыки.
    StreamTitle=Testing
    StreamURL=http://127.0.0.1:8000/
    Genre=Classic
    ; Название файла для логирования.
    LogFile=sc_trans.log
    ; Включение случайной выборки песен.
    Shuffle=1
    ; Настройки воспроизводимого сигнала (обычно прямо пропорционально зависят
    ; от пропускной способности сети).
    Bitrate=80000
    SampleRate=44100
    Channels=1
    ; "Качество". Значения от 1 (лучшее) до 10.
    Quality=6
    ; Режим "затухания". Песня по завершении проигрывания затихает.
    ; 0: отключение, 1: 100/100->100/0, 2: 0/100->100/0
    CrossfadeMode=0
    ; Продолжительность этого "затухания" (в мс).
    CrossfadeLength=0
    ; Читать ID3-теги.
    UseID3=1
    ; Данная станция не является публичной.
    Public=0
    ; Контакты для обратной связи.
    AIM=---
    ICQ=---
    IRC=---
    5. Запускаем сервер:
    $
    ./sc_trans_linux sc_trans.conf

    Теперь по вашему внешнему IP (если есть) или локальному - http://127.0.0.1:8000/, будет доступно online-радио, которое будет проигрывать mp3-файлы, перечисленные в '/path/to/playlist/playlist.txt'.
    Для того чтобы прослушать, что же получилось, достаточно в любом айдиоплеере (будь то Audacious, XMMS, Zinf или mpg123) ввести http://127.0.0.1:8000/ (для XMMS нажимаем Ctrl+L и в появившемся окне вводим URL).
    Если зайти на этот же URL каким-нибудь браузером, то можно увидеть www-страничку с информацией об аудио-сервере (текущий статус, последние проигранные песни). Там же есть ссылка на 'Admin', по которой можно управлять списком подключенных слушателей (удалять их и банить), а также просматривать лог.

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

    Трансляция сигнала с аналогового входа

    Для трансляции сигнала с аналогового входа звуковой карты с помощью sc_trans необходимо в плейлист (тот самый 'PlaylistFile' в конфиге sc_trans.conf, по умолчанию это example.lst) добавить следующие строки:
    DSP:/dev/dsp
    DSP:/dev/dsp
    где /dev/dsp- устройство аудио-карты, с которой и будет идти поток (cтроку обязательно надо указать именно два раза, т.к. по необъяснимым причинам, первая строка playlist'а попросту игнорируется).

    Вот, собственно мы уже сделали всё, чтобы трансляция заработала. Для большего удобства, рекомендую поместить содержимое папок sc_serv и sc_trans_posix_040 в одну папку. Программы конфликтовать не будут. Забыл ещё упомянуть, о том что трансляция буквально сразу же после запуска sc_trans обычно не работает, требуется подождать немного времени (максимум текущую песню, играющую песню можете глянуть в своём админ листе).

    13 сентября 2009 г.

    Настройка pyvk-транспорта в pidgin

    Статья больше не актуальна, так как Vkontakte, теперь поддерживает передачу быстрых сообщений с помощью протокола XMMP - http://vk.com/help.php?page=jabber

    Наконец-то, я дождался того момента, когда в pidgin появилась поддержка jabber-транспортов.
    В этой статье я расскажу как, только с помощью pidgin, подключить к нему jabber-транспорт. Для примера был выбран pyvk-транспорт (кто не в курсе, это транспорт для поддержки сообщений из социальной сети vkontakte.ru).


    Начиная с версии 2.6.1, в пиджине появился официальный плагин XMPP Service Discovery. С помощью него и происходит добавление нового транспорта.
    В качестве сервера, предоставляющего pyvk-транспорт, буду использовать наиболее стабильный hartois.info.

    Добавление jabber-транспорта

    1. Добавляем модуль XMPP Service Discovery:
    Заходим в 'Инструменты' -> 'XMPP Service Discovery'
    1.1. В открывшемся окне, нажимаем 'Browse' и вписываем в поле XMPP Server - 'hartois.info'.
    1.2. Из списка полученных сервисов нам нужен vkontakte.hartois.info. Выбираем его и жмем 'Зарегистрировать'.
    1.3. В появившемся окне вводим e-mail и пароль, с которыми вы зарегистрированы vkontakte.ru, после чего снова жмем 'Зарегистрировать'. Транспорт должен автоматически добавиться вам в список контактов, если этого не произошло, то в этом же окне жмем кнопку 'Добавить'.
    2. После добавления, vkontakte.hartois.info - может быть не виден, если не сработал автологин. Если такое произошло, то включите параметр 'Собеседники'->'Показывать'->'Показывать собеседников не в сети'.
    Найдите в списке собеседников добавленный транспорт 'vkontakte.hartois.info', кликните по нему правой кнопкой мыши и нажмите 'Войти' - сервис должен перейти в статус - подключен.
    Если транспорт вдруг не подключился, то на это может быть несколько причин (касается всех серверов поддерживающих этот протокол):
    a) Не работает сервер. Профилактика или другие причины.
    б) Различные глюки серверов, в том числе и самого транспорта.
    в) Не срабатывает кнопка 'Войти' в пиджине. Такое бывает частенько. Чтобы залогиниться, отправьте сообщение добавленному транспорту .login.
    3. Теперь для получения списка друзей из vkontakte.ru, нам нужно выполнить команду .getroster, для этого сервиса.
    4. Теперь должен произойти процесс авторизации и у вас в окне pidgin появятся уведомления авторизации от ваших друзей из vkontakte.
    Авторизируем их всех (ох и долгое это занятие, когда у вас более сотни друзей :) )

    Вот и все, теперь вы можете общаться со своими друзьями vkontakte через pidgin.
    Если со временем у вас добавятся еще друзья vkontakte, просто повторите пункт с '.getroster'.

    Переименование друзей из vkontakte

    У многих, кто будет добавлять pyvk-транспорт, после добавления друзей, их имена будут отображаться в виде '14546624@vkontakte.hartois.info', что согласитесь - неприятно (например у меня JID - это мыло от gmail.com и у меня с именами проблем не было). Да и переименовывать всех в ручную - это долгое занятие. Тут на помощь вам прийдет автоматическое переименование. В шаблонах выберите vkontakte.hartois.info.

    P.S. Список работающих серверов с поддержкой pyvk-t можно посмотреть здесь. Более подробную информацию про протокол можно узнать в группе транспорта

    P.S.S. Подобный метод добавления, можно применять и для других транспортов, например mrim (mail.ru агент) и т.п.


    Обновлено 19.11.2010г. в 19:59

    1 сентября 2009 г.

    Два монитора + видеокарта от NVidia

    Решил написать эту статью, так как недавно обзавелся вторым монитором (оба монитора у меня формата 4:3, каждый с разрешением 1280x1024), чему я безмерно рад :) Вот решил поделиться своими впечатлениями о работе за двумя мониторами в убунту.
    Сразу оговорюсь, что у меня видеокарточка от NVidia, поэтому и заголовок статьи соответствующий, и некоторые описанные ниже действия подходят только для владельцев NVidia карт.


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

    Настройка второго монитора

    Для настройки мониторов открываем 'Система'->'Параметры'->'Экран'.
    Если в предыдущих версиях убунты, в гноме, за настройку мониторов подключенных к nvidia, всегда отвечала программа 'gnome-display-properties', то в 9.04, система предложит вам, воспользоваться специализированной программой 'nvidia-settings'. В программе сразу видны оба монитора и второй обозначен как 'Disabled' (Отключен), выбираем его и в настройках выставляем то, что хотим в итоге получить. В моем случае, это TwinView, чтобы на обоих мониторах был общий рабочий стол. Но тут есть один нюанс, 'nvidia-settngs' открывается от имени пользователя, поэтому все ваши изменения будут действовать только в течении текущего сеанса. Чтобы полностью запомнить настройки, запускайте программу от имени администратора:
    $

    тогда, после нажатия 'Save to X Configuration File', ваши изменения сохранятся в '/etc/X11/xorg.conf'.

    Панель задач и Compiz

    Многие, кто раньше работал под виндой, использовали для двух мониторов утилиту 'UltraMon'. Эта программа создавала на втором мониторе панель задач со списком окон расположенных в области второго монитора, а также она позволяла с помощью кнопок перемещать окна из области одного монитора в область другого и наоборот, плюс другие полезности. Многие, после перехода с винды на линукс, сразу же пытаются найти аналог этой программе, но увы ее нет.
    Но не все так плохо, в убунту уже многое есть по-умолчанию. Например, вы можете добавить панель в область второго монитора и разместить на ней апплет 'Список окон', который будет отображать окна относящиеся к этому монитору. А если вы используете Compiz-Fusion, то в его менеджере есть плагин 'Put' в разделе 'Управление окнами', с помощью которого можно назначить на любую комбинацию клавиш или на кнопку мыши - перемещение окна с одного монитора на второй и обратно (настраиваете комбинацию клавиш 'Put To Next Output').
    Put To Next Output в действии -
    Согласитесь, основная часть функционала 'UltraMon', у нас уже есть :)

    Игры

    Работать за двумя мониторами прекрасно, но вот если вы решили поиграть в какую-нибудь игру на полный экран, то тут вас может ждать разочарование. Многие игры не поддерживают такого разрешения экрана, которое в сумме дают два монитора, а также в большинстве случаев еще и располагают основную область игры посредине и в этом случае играть невозможно, так как глазам мешают стыки мониторов.
    Как вариант можно отключать второй монитор на время игры. с помощью 'nvidia-settings', но тогда быдет ругаться 'gnome-panel', так как при отключении второго монитора, он не может найти позиции для размещения панелей (если есть панели в области второго монитора). Иногда это вообще может привести к зависанию иксов. Так что этот вариант отпадает.
    Покапавшись в интернете, ничего толкового по поводу игр, найти не смог. Остановился только на одном варианте, и то не идеальном, но все же. Вариант состоит в том, чтобы для отключения второго монитора, использовать утилиту 'xrandr'

    1. Устанавливаем 'xrandr', если она еще не установлена
    $
    sudo apt-get install xrandr

    2. При запуске программы без параметров, я получил следующие данные:
    Screen 0: minimum 2560 x 1024, current 2560 x 1024, maximum 2560 x 1024
    default connected 2560x1024+0+0 0mm x 0mm
    2560x1024 50.0*
    что означает, что у меня в списке размеров экрана 'metamodes', только одно разрешение '2560x1024'.
    3. Чтобы игра запускалась в области одного монитора, надо добавить соответствующий 'metamode', который будет сужать область экрана до нужного нам разрешения 1280x1024 (или другого, например 800x600, 640x480).
    4. Для этого редактируем файл '/etc/X11/xorg.conf'
    $
    sudo nano /etc/X11/xorg.conf

    ищем там строку, типа:
    Option "metamodes" "DFP-0: 1280x1024 +0+0, DFP-1: 1280x1024 +1280+0"
    и изменяем ее на
    Option "metamodes" "DFP-0: 1280x1024 +0+0, DFP-1: 1280x1024 +1280+0;DFP-0: 1280x1024 +0+0, DFP-1: 1280x1024 +0+0"
    Здесь немного поясню. DFP-0 и DFP-1 - первый и второй монитор соответственно.
    Ну, а во втором metamod'е, я для второго монитора поставил разрешение '1280x1024 +0+0', потому-что, если поставить '0x0 +0+0' - то будет глюк с панелями гнома, как я уже описывал выше. Но при '1280x1024 +0+0' - второй монитор будет дублировать вывод с первого монитора, кому-то это может не понравиться, мне как-то все равно, главное что игра выводится на одном мониторе :)
    5. Теперь перезапускаем иксы и пробуем менять разрешение с помощью 'xrandr'
    $
    xrandr -s 1280x1024

    Все, теперь у вас используется область только первого монитора, можете приступать к игре.
    Единственный минус такого переключения, состоит в том, что если у вас в области второго монитора есть гномовские панели, они перелетают в область первого монитора, а после того, как вы снова включаете второй монитор, их надо перемещать на свое прежнее место. Правда это касается только панелей с включенным параметром 'Расширять до предела', если он отключен и панель зафиксирована по координатам, то такая панель возвращается на свое прежнее место.
    6. После игры, возвращаем прежнее разрешение экрана:
    $
    xrandr -s 2560x1024


    Вообще 'xrandr' много чего еще умеет, я только привел то, что было нужно мне. Кстати кому не нравится использовать консольный 'xrandr', могут использовать графический 'grandr'.

    P.S. Если кто-то знает еще какие-то приемы работы с двумя мониторами, буду очень признателен если вы их опишите в комментах, я их с удовольствием включу в статью.