Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

пятница, 27 января 2012 г.

iriver e300 - кодирование видео с mencoder

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

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

Создаем файлик convert.sh следующего содержимого:
mencoder -noodml "$1" -o "$2" -vf-add dsize=320:240:0 -vf-add scale=0:0 -srate 44100 -ovc xvid -xvidencopts bitrate=1000 -oac mp3lame -lameopts vbr=0 -lameopts br=96 -lameopts mode=0 -lameopts aq=7 -af volnorm -xvidencopts max_bframes=0 -xvidencopts nogmc -xvidencopts noqpel -mc 1
Затем меняем права на файлик:
chmod u+x convert.sh
Теперь мы можем спокойно перекодировать наше видео:
./convert.sh source/spongebob/s01e01.avi spongebob_s01e01.avi
Копируем результат в папку Video на плеере и наслаждаемся результатом:
Приобрести iriver e300 можно на ozon.ru, как это сделал я, воспользовавшись баллами от предыдущей покупки, и тем самым снизив цену до самой выгодной :)

среда, 25 января 2012 г.

Android vs MeeGo: почему я перешел на Nokia N9

Больше года я провел на Android и честно говоря думал, что никогда не захочу что-то менять. Тем более на платформу, которая прошла столько болезненный путь - MeeGo. Так почему же я сейчас пользуюсь этим телефоном? Причин тут много. Пройдусь по ним.

  1. Я убедился, что по прежнему пользуюсь телефоном как телефоном. Возможность установить все что угодно и делать что угодно ничего не изменила. Телефон остался телефоном. Правда, в последнее время ездил на метро и мне помогли игрушки на Android - позволяют выйти из реальности на время поездки.
  2. Я люблю необычные вещи. iPhone - пошло и дорого. Android - пошло и дешево. Microsoft - да ни за что! MeeGo? А вот это выглядит интересным, дайте ка посмотреть, что это там у вас получилось?
  3. Он большой, но не страшный, можно назвать это - стильный. Кажется более легким по сравнению с legend.
  4. Мне нравится Nokia. Всегда нравилось, что часы у них на экране всегда и в этом телефоне это не исключение.
  5. Разработка происходит на Qt. На работе мы тоже пользуемся Qt. Шансы написать что-то возрастают.
В общем, как-то решил я посмотреть, почем сейчас Nokia N9. Оказалось, около 18 тысяч за версию с 16Гб, дорого конечно, но в прошлый раз, когда я смотрел, было больше 20 тысяч. Оказалось, что в ozon.ru проходила акция, и цена там получалась самой низкой и доставка бесплатная. Плюс, можно заплатить банковской карточкой. Пара кликов и новый телефон отправляется ко мне. Хорошо все же иметь иногда несколько сотен зеленых в каком-нибудь банке. Через дня три аккурат после православных праздников я получил заветную коробочку.

В аппарате используется microSIM - пришлось ножницами по металлу вырезать из своей симки микросимку :)

Включил, игрался, что-то там не получилось с обновлением. Решил сбросить все настройки в ноль и снова все начать. Тут я крупно прокололся - выбрал функцию очистки аппарата перед утилизацией (не специально!). В результате на экране только стрелочка крутилась и ничего не включалось. Думал все - придется менять. Оказалось, он просто очень тщательно очищался, минут 30.

Затем все настроил и начался кайф, глупо звучит, но телефон очень приятный на ощупь. Софт необходимый есть. Все социальные сети, нет такой глубокой интеграции с google, но та, что имеется вроде достаточна. Кнопок нет, интерфейс весь на экране. Это или очевидные кнопки, или не такие очевидные движения по экрану пальцем в разных направлениях. Подкачал twitter-клиент, он как-то плохо интегрируется с галереей и ломает кодировку при попытке воспользоваться вставкой изображения в сообщение. Зато есть родной терминал, никаких хаков - вполне стандартный функционал. Расстроило, что нет такой простой возможности использовать телефон как модем, как в Android. Здесь есть доступ к нему, как к модему, но надо специально настраивать соединение. Зато так же как и в Android можно превратиться в wi-fi точку, что в основном снимает вопросы. Остальное пока что только радует. Игры есть даже более продвинутые, чем у меня были на legend, но это просто потому что аппарат посильнее, трехмерные игрушки есть. В магазине приложений с приложениями не сильно густо, но парочку игрушек я доставил. Плюс появились идейки, что бы можно было понаписать, чтобы порадовать любителей N9 да и себя. Сейчас изучаю Qt применительно к написанию приложений для N9.

Отдельно напишу про ozon.ru: для меня этот магазин дорогой, но у него есть плюсы большой организации (как и минусы), он много чего поддерживает, там проходят акции и есть системы скидок. Для меня это вылилось в покупку телефона по выгодной цене - проходила акция. Для блогеров есть партнерская программа, так что теперь я буду рекламировать товары ссылками с озон, есть рациональный смысл и там иногда прикупать товары :) Поэтому вот ссылка на товар в озоне, заходите, смотрите, выбирайте:

пятница, 20 января 2012 г.

linux groups update

Достаточно часто сталкиваюсь с тем, что некое ПО ставит что-то, что можно запустить только будучи членом определенной группы. В этом случае до выхода из системы и повторного входа запустить это проблематично. Но нет, на самом деле никаких проблем, открываем терминал и вводим простую команду:
su - kilork

kilork - это собственно имя пользователя. После этого группы будут уже новые и приложение попробует запуститься :)

суббота, 24 декабря 2011 г.

Доступ к xD-Picture картам в Linux

Штука достаточно экзотичная. Но я оказался в ситуации, когда мне пригодился универсальный слот в ноутбуке. Единственное, хотя устройство ядром виделось и при подключении карточки появлялись все нужные сообщения - посмотреть содержимое упорно не получалось.
[kilork@mexidol ~]$ lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X1400
03:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
03:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
03:01.2 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
03:01.3 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
0b:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)


[51252.247071] r852: detected xD writeable card in slot
[51252.548097] NAND device: Manufacturer ID: 0x98, Chip ID: 0xd3 (Toshiba xD 1GiB 3,3V)


Но поскольку вариантов не было (файлик не копировался через подключение фотоаппарата - посередине отрубалось копирование), пришлось найти решение. В двух словах - надо загрузить модуль ssfdc. Я это сделал просто в терминале:
sudo modprobe ssfdc


Как обычно, уверен, что кто-то получит от этой информации выгоду :)

понедельник, 21 ноября 2011 г.

Сеть в розетке 2: TRENDnet TPL-402E2K 500 mbps

Как и обещал в прошлый раз - как только в продаже появилось что-то 500 mbps, я сразу же приобрел. Прошло всего 2 месяца, и я смог выполнить свое обещание. Встречайте: TRENDnet 500Mbps Powerline AV Adapter Kit with Bonus Outlet TPL-402E2K. По габаритам чуть больше уже приобритенного ранее ASUS PL-X32M:



Сразу же полез тестировать скорость копирования, получилось около 10 Мб/сек:
kilork@phoenix ~ $ ls ~/Downloads/nas/Oblako_2006.mkv -ls
4855056 -rw-r--r-- 1 nobody vboxusers 4971241193 Ноя 19 21:03 /home/kilork/Downloads/nas/Oblako_2006.mkv
kilork@phoenix ~ $ time cp ~/Downloads/nas/Oblako_2006.mkv .

real 8m17.032s
user 0m0.120s
sys 0m10.203s
Закачка из торрентов на сетевое хранилище показывала даже 12-13 Мб/сек. Но пока подтвержденные данные я получил только такие, а они меня более чем устраивают. Важный момент: с использованием этого адаптера не пропадает розетка (bonus outlet). Кроме этого, более скоростные адаптеры можно использовать в одной сети с старыми на 200 mbps, так что я для своего рабочего места с ноутбуком подцепил освободившуюся коробочку. Намного стабильнее и лучше по скорости, чем wi-fi. Остался один свободный адаптер, планирую подцепить его к телевизору на кухне, но для этого надо будет приобрести еще одну видео-коробочку, а это будет уже отдельная история.

Кстати, утилита dlanlist продолжила работать, что тоже приятно:
phoenix kilork # dlanlist
Type    MAC address        Mbps TX/RX       Version/Product
local   00:14:D1:A3:9F:46  ---.-- / ---.--  INT7400-MAC-5-0-5010-02-655-20101105-FINAL-B Atheros HomePlug AV Device
remote  00:14:D1:A3:9C:26  265.12 / 238.88  INT7400-MAC-5-0-5010-02-655-20101105-FINAL-B
remote  BC:AE:C5:E9:9B:B3    0.00 / 179.81  INT6000-MAC-4-2-4203-00-4211-20100311-FINAL-C


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

четверг, 10 ноября 2011 г.

Linux - 32 bit vs 64 bit

Многие задаются вопросом - что поставить на их машинку. 32 битную версию операционной системы, или 64 битную.

Если поглядеть ответы на форумах, то становится очевидно - 64 битную, работает быстрее, но кушает немного больше памяти.

Вот это и есть основной момент, память. К сожалению, быстрота 64 бит совершенно бесполезна, когда не хватает памяти. Так что если на вашей машине памяти меньше 4Гб - надо использовать 32 бита, тем самым у вас будет чуть больше шансов на безтормозную работу. Именно к этому я пришел после долгих мучений со своим ноутбуком от Dell. Там предел оперативки - 2Гб, но можно поставить 64 битную ОС. Вот я этой возможностью и воспользовался. После чего долго мучался, прежде чем осознал этот простой факт. Еще раз: меньше 4Гб - ставим 32 битную операционку.

P.S. Надеюсь, скоро компьютеров менеше чем с 32 Гб оперативки не будет, и будет вселенское счастье.

пятница, 21 октября 2011 г.

LXDE: регулировка яркости экрана

Поскольку Gnome 3 пользоваться на моем ноутбуке оказалось решительно невозможно - решил попробовать LXDE. Ноутбук у меня сейчас бегает на Fedora 16, поэтому ставил я все дело такой командой:
sudo yum install @LXDE

После этого в меню входа в систему появилась соответствующая опция. Радости моей не было предела, пока я не решил ненадолго отсоединить ноутбук от электросети. Экран уменьшил яркость, я привычно попробовал через Fn + клавиши отрегулировать яркость - но это не сработало. О боже! Fail! Поиски по панелькам ничего не дали. Форумы предлагали скрипты и прочие чудеса. В одном месте я нашел толковую команду:
echo "Y" > /sys/module/video/parameters/brightness_switch_enabled

Выполнение данной команды под полномочным пользователем позволило регулировать яркость кнопочками без каких-либо дополнительных хитростей. Просто кнопочки снова заработали. Ноутбук у меня Dell Inspiron 6400 2007 года выпуска, но может кому-то поможет мой рецепт ;)

четверг, 15 сентября 2011 г.

Сеть в розетке: ASUS PL-X32M

Давно присматривался к этой теме - сетка через розетку. Но где-то год назад меня то ли отговорили, то ли я не поверил. А тут еще раз посмотрел, цены на это добро стали уже совсем несерьезными, так что решил взять на пробу. И я полностью доволен. Набор состоит из двух розеток ASUS PL-X31M. Это действительно розетка. Т.е. устройство может подойти не всем. Я заказал на самом деле ASUS PL-X32, которая выглядит как отдельная коробочка, но меня как водится в нашей стране - накололи. Ну да ладно, M тоже оказалась ничего (обман я сразу заметил, просто решил сначала проверить - может и такой подойдет). Процедура инсталляции - простейшая. Мне правда пришлось вставить в компьютер дополнительную сетевую карту, но это только по причине сложности моей домашней сетевой инфраструктуры. Больше всего поразило, что я воткнул устройства в розетки, настроил ip-адрес, пробую пинговать, и о чудо - все сразу работает. Wi-fi отдыхает полностью. Соединение стабильное, включал все что можно дома, стиральную машину даже, все телевизоры, лампочки, с телефоном бегал. Видно у меня проводка не самая худшая, поэтому результаты линейного копирования файлов оказались на уровне 5.3 мбайт/сек. Я считаю, что это очень неплохо. Wi-fi такое не снилось. Точнее сказать, 802.11n у меня выдает и больше, но... нестабильно. Никогда не знаешь, что придет ему в голову. А тут - ровно и спокойно. Очень приятно. Вот как это выглядит со стороны компутера:
Как я уже упоминал, настройка практически не нужна. Тем не менее, пощупать устройство программно все же хочется. Но естественно, в комплекте программное обеспечение только под windows. К счастью, все устройства HomePlug построены на одном семействе чипов и одном стандарте. Поэтому, в частности - можно включать в одну сеть из розеток устройства от разных производителей. И поэтому - мы можем воспользоваться сторонней утилитой от компании devolo. Программка опенсурсная, так что можно изучить, если интересно. В gentoo в overlay rion есть пакет под это дело:
emerge -av dlan-linux
После установки мы можем запустить утилиту dlanlist:
phoenix kilork # dlanlist 
Type    MAC address        Mbps TX/RX       Version/Product
local   BC:AE:C5:E9:9B:B4  ---.-- / ---.--  INT6000-MAC-4-2-4203-00-4211-20100311-FINAL-C Atheros HomePlug AV Device
remote  BC:AE:C5:E9:9B:B3  189.00 / 189.00  INT6000-MAC-4-2-4203-00-4211-20100311-FINAL-C
Как видно, показывает почти 200 мбит обещанных, что и позволяет мне говорить о хорошем качестве моей проводки. Но то, что оно показываетс - это все же 5 мегабайт в секунду в реальности. Мне этого вполне достаточно пока. А не за горами устройства на 500 мбит. Как только станут доступными - обязательно прикуплю себе обновку. Ну а пока будем радоваться тому, что есть. Тем более, что повод для радости действительно есть.

З.Ы. Приобрел и 500 mbps адаптеры: статья.

вторник, 6 сентября 2011 г.

Не играет звук в Adobe Flash под Linux - поменяйте звуковую карту по умолчанию в Alsa

После перехода на 3-е ядро неожиданно стала определяться веб-камера, притом она стала первой в списке устройств в Alsa. Притом воспроизводить звук она не умеет, только микрофонить. Зато некоторые приложения пытаются его через нее воспроизводить. Вроде бы и сразу понятно, в чем проблема, но только сегодня решил таки починить флэш, чтобы на ютубе наслаждаться звуковым сопровождением. Итак, открываем терминал, смотрим, какие карточки у нас имеются:
kilork@phoenix ~ $ cat /proc/asound/cards
 0 [U0x46d0x89d    ]: USB-Audio - USB Device 0x46d:0x89d
                      USB Device 0x46d:0x89d at usb-0000:00:12.1-1, full speed
 1 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xf8ff4000 irq 16
 2 [SAA7134        ]: SAA7134 - SAA7134
                      saa7133[0] at 0xfbfff800 irq 20
На первом месте под индексом 0 как раз сидит веб-камера. А мне надо, чтобы играло через карточку 1. Точнее сказать, я хочу, чтобы играло через SB, индекс то может снова поменяться. Для этого создаем или редактируем файлик ~/.asoundrc, добавляем туда следующее:
pcm.!default {
    type hw
    card SB
}
ctl.!default  {
    type hw
    card SB
}
С помощью этих манипуляций Alsa берет нужную мне карточку как карточку по умолчанию, и в результате на ютубе снова звук. Только сегодня руки дошли с этим разобраться, а полная информация в официальном факе для тех, кому моей информации недостаточно: тут.

суббота, 19 марта 2011 г.

У Вас ещё не Linux? Тогда мы идём к Вам!

Популяризация Linux'а в массах дает плоды. Сестра сделала мне агитационную майку:


Все же, талантливость родни меня не перестает удивлять, очень нравится маечка!

воскресенье, 13 февраля 2011 г.

Мониторинг директорий в linux с использованием inotify: все выше и выше

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

Пришлось доточить до приличного состояния. Перво-наперво обнаружил глюк с зомбями, которые стали собираться в толпы после каждого вызова. Добавил wait(), это решило проблему.

Затем, добавил опции командной строки, мониторинг с использованием флагов и фильтрацию по маске или регулярному выражению. Для этого погрузился в документацию по glibc.

Результат:
kilork@pantogan:~/projects/notify$ ./inotify -?
Usage: inotify [OPTION...] CMD DIR1 [DIR2 ... DIRN]
inotify - simple file monitoring utility

  -s, --silent               Don't produce any output (no effect to
                             subprogramms)
  -v, --verbose              Produce verbose output
  -f, --filter=FILTER        Filter FILTER input on certain files
  -i, --ignore               Ignore case where possible
  -r, --regular              Filter use regular expression expansion
  -w, --wildcard             Filter use wildcard expansion (*.c for example)
  -e, --events=EVENTS        Events to monitor

 
 Possible flags for EVENTS:
  a - file was accessed
  A - metadata (permissions, timestamps, etc) changed
  W - file opened for writing closed
  N - file not opened for writing closed
  c - file/directory created
  d - file/directory deleted
  s - watched file/directory was itself deleted
  m - modify file
  v - watched file/directory was itself moved
  f - file moved out of watched directory
  t - file moved into watched directory
  o - file was opened

  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to <kilork@yandex.ru>.

Последняя версия доступна тут.

среда, 9 февраля 2011 г.

Мониторинг директорий в linux с использованием inotify

Совсем недавно я экспериментировал с dnotify - http://kilork.blogspot.com/2011/01/linux-dnotify.html. Штука уже вполне успешно работает, не требует кушать, но все же что-то не дает покоя. Ах вот оно что, интерфейс то устаревший, нормальные люди так не работают. Приходится признать, в своих познаниях по ядерным интерфейсам я отстаю лет на 10. Ну, надо как-то наверстывать.

Итак, inotify. Логичное развитие dnotify. Проще, лучше, надежнее. Вечер перед монитором, и готова новая версия утилиты для мониторинга:


Компилируется также просто, как и в прошлый раз:
gcc inotify.c -o inotify

Ну и поведение программки не отличается:
./inotify "echo hello" .
по прежнему запускает слушание текущей директории с выводом 'hello' при любом телодвижении в этой директории. Зато есть масса плюсов, да и просто, код значительно легче читается.

Исходные коды доступны в hg-репозитории по адресу http://kilork.org/public/notify/.

З.Ы. При первой публикации не хватало wait(), что приводило к толпам зомби, поправил.

суббота, 29 января 2011 г.

Мониторинг директорий в linux с использованием dnotify

Сижу, разрабатываю себе на javascript, но вот незадача, после каждой правки надо зайти в командную строку и запустить сборку проекта. И только потом можно наконец оценить результаты трудов. Мелочь, но раз за разом лишнее нажатие начинает раздражать. Привык ведь уже в eclipse - все подкомпилируется в фоне. А вот бы штуку, которая бы смотрела, меняется ли что-то в директории, и по изменении - запускала бы команду.

Конечно, решения из сети - это что-то. Скрипты в bash, которые делают ls директории, затем diff - и если различается, то - запускаем команду. Это круто. Постепенно находим очевидную вещь - сообщить нам об изменении директории должна ОС. Есть и механизм - dnotify. Ищем дальше, находим пример в 10 строк, как это пишется на C. Ну а чем мы хуже, добавим только чуть-чуть логики, чтобы польза была от утилитки. Несколько часов мудоханий Полчаса интеллектуального труда и результат готов:



Самая прелесть в этом, что компилируется все в одну команду:
gcc dnotify.c -o dnotify

Используется следующим образом: первый аргумент - это команда для выполнения, остальные - директории, при изменении который будет позвана команда. Например:

./dnotify "echo hello" .

запускает слушание текущей директории и при изменении в ней скажет нам "hello".

kilork@pantogan:~/projects/dnotify$ ./dnotify "echo hello" .
setting handlers:
.
done.
monitoring started...
... в другом терминале ...
kilork@pantogan:~/projects/dnotify$ touch dnotify.c
... возвращаемся в первый терминал ...
3
hello

Больше всего времени я потратил на то, чтобы заставить утилитку игнорировать события, пока работает дочерний процесс (в процессе компиляции в директории может много чего поменяться, поэтому изменения в процессе компиляции мы игнорируем, хоть это и не совсем корректно, но для нашей утилиты в 5 строчек - пойдет). Для этого пришлось делать fork, и ловить SIGCHLD. Вроде работает, немного фана получено - и снова за javascript...

Исходные коды доступны в hg-репозитории по адресу http://kilork.org/public/notify/.

З.Ы. Добавил статью по inotify - http://kilork.blogspot.com/2011/02/linux-inotify.html.

четверг, 14 октября 2010 г.

Western Digital My Book World Edition II: настройка, установка rtorrent

На этот раз я разбирался с устройством, которое декларирует себя как NAS. До взрослого NAS-а ему далековато, но кое что все же коробочка может.

Итак, что я сделал для использования этого хозяйства? Работает на linux, архитектура arm, есть сайт, с которого стоит начать знакомство с внутренностями после покупки: http://mybookworld.wikidot.com/.

Первым делом я подключил nfs, в "белой" редакции это делается через веб-интерфейс. Затем включил доступ по ssh. С ssh надо быть осторожным, если ваша сеть не является закрытой. Да и в таком случае лучше быть осторожным ;).

По-умолчанию коробочка запускает одного демона nfsd, в рекомендациях по производительности написано это число поменять на то, что будет лучше для вас. Я решил, что 1 - мало по любому, поэтому поставил сразу 4. Делается это следующим образом:

1. Заходим по ssh на коробочку (root'ом с логином welc0me):

kilork@phoenix ~ $ ssh wdmybookip -l root
root@wdmybookip's password: 

~ # 

2. Редактируем /etc/init.d/S80nfsd:

~ # vi /etc/init.d/S80nfsd

Строку
/usr/sbin/rpc.nfsd

заменяем на
/usr/sbin/rpc.nfsd 4

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

Далее, по инструкции ставим на коробочку пакетный менеджер ipkg. Для установки rtorrent достаточно сделать:
/opt/bin/ipkg install rtorrent

Далее, запуск через:
/opt/bin/rtorrent

Настройка в файле .rtorrent.rc. Вот мой:
directory = /shares/Public
session = /shares/Public/session
schedule = watch_directory,5,5,load_start=/shares/Public/torrent/*.torrent
port_range = 40890-40890
#port_random = no
#check_hash = yes
session_save = yes
encryption = allow_incoming,enable_retry,prefer_plaintext
use_udp_trackers = no
dht = auto
dht_port = 6881
encoding_list = UTF-8
bind = wdmybookip
ip = external_ip
scgi_port = localhost:5000
upload_rate = 100
download_rate = 1000
max_peers = 30
max_uploads = 10
max_uploads_global = 20
max_downloads_global = 60
send_buffer_size = 1M
receive_buffer_size = 1M
max_memory_usage = 128M

wdmybookip и external_ip - адрес коробочки в локальной сети и адрес внешний. Порты 40890 и 6881 должны быть проброшены с внешнего адреса на коробочку.

Вот и все, можно скачивать и сохранять пентабайты данных?

К сожалению, все не так просто. Дело в том, что метод соединения по-умолчанию через epoll у меня не заработал, и два - падает на больших торрентах. Обе проблемы известные, первая решается передачей параметра окружения для выбора метода select, вторая - через компиляцию libtorrent. Первое весьма просто:
export RTORRENT_POLL=select
/opt/bin/rtorrent

А вот второе уже сложнее. Для этого нам понадобится на другой машине выкачать репозитории ipkg и самостоятельно все собрать/поправить. Я сделал скрипт, который все делает, главное, на что надо обратить внимание - это удаление define'ов USE_EPOLL и USE_MADVISE:

#!/bin/bash
mkdir wd
cd wd
svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware
cd optware
make cs05q1armel-target
cd cs05q1armel
make directories ipkg-utils toolchain
make libtorrent
cd builds/libtorrent
sed -i '/USE_EPOLL/ d;/USE_MADVISE/ d' config.h
make
cd -
make libtorrent-ipk
mv builds/libtorrent*-1_arm.ipk builds/libtorrent.ipk

Полученый файл wd/optware/cs05q1armel/builds/libtorrent.ipk необходимо скопировать на коробочку, после чего на ней уже запустить команду:
/opt/bin/ipkg install path/to/libtorrent.ipk
.

Теперь все хорошо и запускать можно без всяких переменных окружения: /opt/bin/rtorrent. С чем я всех и поздравляю.

З.Ы. Скачать готовый скрипт и пакет.

пятница, 17 сентября 2010 г.

BSD fail

Решил тут снести gentoo со старенького dell inspiron 6400 (вроде бы 2007 года покупки). Сделал бэкап, и подумал, что хорошо бы разнообразить слегка свою жизнь bsd-системой. Разнообразил. Четыре дня секса с wifi-картой и два попробованных дистрибутива пока привели к установке ubuntu 10.10. Wifi там тоже из коробочки не завелся, но зато - хотя бы не вешал клавиатуру при коннекте (и это 21 век на дворе!). Так что все, ноутбук счастливо урчит свежей версией убунты. Все это следствие постепенного загибания gentoo, как интересного дистрибутива. И дело не в том, что ubuntu быстрее обновляется из бинарного репозитория ("...А где же старик gentoo? Он еще только собирается..."). Нет, все дело в том, что софт там более плотный и интегрированный в единое целое. Сравнивать целиком некомерческий проект с успешно монетизируемым не совсем корректно, но это сообщество gentoo-шников виновато в том, что не могут себя нормально поставить, и проводят все время в склоках и перетягивании одеяла. Загибаться такой большой проект может очень долго, и даже не загнуться никогда, но уровень его уже сильно отстал.

Идея поставить bsd-систему пока до конца не похоронена, будем мониторить ситуацию в стане wifi-дров broadcom'а. Когда это будет делаться без извращений (т.е. блобов, разворачивания виндовых дров и т.п.) с нормальными открытыми полностью дровами, тогда наверно и наступит счастье.

суббота, 26 июня 2010 г.

Lyx memo

По большей части для себя (приятно, что блог полезен не только мне, но сам я им часто пользуюсь как внешней памятью, своя не способная запомнить больше 2 слов из 5).

Lyx в ubuntu с поддержкой кириллицы:

sudo apt-get install lyx

и

sudo apt-get install texlive-lang-cyrillic
.

Первое очевидно, а вот второе забыл в этот раз...

воскресенье, 6 июня 2010 г.

Зависимости между службами в Gentoo: наводим порядок в net.ppp0, nginx и xdm/gdm

В gentoo иногда сталкиваешься с неприятными моментами в старте сервисов. После отключения hal, перестал стартовать xdm, так как dbus стартовал пойзже. А nginx стартовал раньше apache2 (что вообщем-то не так важно), но еще и хотел директории /var/tmp/nginx, а /var/tmp у меня - это раздел в памяти. Если отваливался net.ppp0, то останавливались все сетевые сервисы, хотя локальная сеть и вайфай вполне себе продолжали работать. Вообщем, так дальше жить было нельзя.

Первым делом идем в /etc/rc.conf и ставим:
rc_depend_strict="NO"

Тем самым мы говорим, что достаточно хотя бы одного поставщика net, а не всех сразу. Это решает проблему с net.ppp0.

Дальше, я добавил сервис для создания каталога для nginx, и для установки некоторого порядка в старте, у меня этот файлик я назвал /etc/init.d/kilork и выглядит он так:
#!/sbin/runscript

description="kilork"

depend()
{
 after apache2
 after dbus
}

start()
{
 ebegin "Starting local"

 mkdir /var/tmp/nginx

 eend $? "Failed to start local"
}

stop()
{
 ebegin "Stopping local"

 eend $? "Failed to stop local"
}

Здесь мы говорим, что запускаемся после apache2 (для nginx) и после dbus (для gdm).

Добавляем в сервисы в default (у меня они там все кучей):
rc-config add kilork default

Теперь создаем или правим настройки по порядку старта для nginx и xdm:
kilork@phoenix ~ $ cat /etc/conf.d/nginx 
rc_after="kilork"

kilork@phoenix ~ $ cat /etc/conf.d/xdm
CHECKVT=7
DISPLAYMANAGER="gdm"
rc_after="kilork"

В обоих скриптах добавляется строчка rc_after="kilork", которая говорит, что запускаемся мы после старта сервиса kilork.

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

К слову сказать, для целей, под которые я сделал kilork - есть стандартный local, но вот только у него стоит "after *", что немного идет в разрез с тем, что мне надо запустить после него gdm и nginx. Поэтому вот так.

суббота, 23 января 2010 г.

Домашний кинотеатр на базе ASUS O!Play HDP-R1

Многие задумываются, как лучше организовать трансляцию видео-контента дома. Ну я во всяком случае задумывался.

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

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

К сожалению, при ремонте квартиры я совершил один важный просчет: сеть я вывел только в одну комнату. Сильно проще было бы, если бы по квартире была бы проложена нормальная гигабитная сеть. А так как провода по полу - моветон, оставалось рассчитывать только на быстрое развитие wi-fi технологий.

Сначала я смотрел в сторону "полноценного" компьютера Acer Revo, компактный, с wi-fi (но старый wi-fi), не греется, маленький. На Linux, опять же таки. Но, это выходило за рамки бюджета. Да и скорость wi-fi вызывала подозрения. Начал смотреть в сторону специализированных коробочек. Смотрел на Western Digital TV, но в нем не было сетевых возможностей, поэтому переключился на решение от ASUS (есть оказывается и WD с сетью - следующего поколения, но цена еще выше). Притом, сначала, я планировал соединить все в сеть, но использовать ее лишь для передачи данных в локальное хранилище около плеера с дальнейшим воспроизведением. Все дело было в моей недоверии wi-fi. Оказалось, совершенно зря.

Итак, я купил коробочку ASUS O!Play HDP-R1, за 4510 рублей. Не дешево, но и не дорого. Нормально. Остальное оборудование, кроме нового телевизора, и обновленного компьютера состояло из:

- wi-fi роутер D-Link DL-624 rev.D (поддерживает 108+)
- wi-fi карточка в компьютере от D-Link с RaLink RT2561/RT61 rev.B 802.11g (написано, что тоже поддерживает 108+)

Роутер этот везде рекламируется как самое глючное из всех возможных устройств по передаче данных по wi-fi. И я это с готовностью подтверждаю. Да и с wi-fi карточкой приходилось помучиться.

Подключил O!Play к телевизору, пару дней смотрел с подключенного внешнего диска и флэшки по USB. Качество для моего неискушенного взгляда было просто удивительным. Ведь до этого я смотрел все на своем скромном 26" экранчике, а на 42" все стало чуть по другому, но без коробочки O!Play разница была только в размере помех, с ней же я узрел полноценное HD.

Вчера лень все же победила лень. Я обратил внимание на последний пункт своих требований с переподключением устройств. Это так лениво делать. Что я решил таки все же включить O!Play в сеть. Притащил коробочку роутера, поставил справа от телевизора, коробочку O!Play слева. Включил напрямую сетку на 100Mbit. До этого я провел некоторое исследование, поэтому знал что в моем доме, где все построено на Linux, а Windows даже не пахнет - придется помучаться с настройкой, ведь коробочка умеет соединяться с Windows-папочками. А этого мне очень не хотелось (мучаться с настройкой) - проще диск туда/сюда таскать. Но, не так страшен черт, как его малюют...

Настройка.

Чтобы облегчить настройку в gentoo для gnome есть пакет gnome-system-settings, если он у вас еще не стоит, то ставим:

USE="samba" emerge gnome-system-settings


Добавляем сервис в загрузку по умолчанию (либо запускаем руками):
rc-config add system-tools-backends default


Добавляем пользователя для администрирования папок (т.е. вашего текущего пользователя, как правило):
usermod -a -G stb-admin kilork


Перезаходим в gnome.

Теперь настраиваем "Система->Администрирование->Службы" и "Система->Администрирование->Опубликованные папки". Там важно поставить галочку для WINS (иначе нашу расшаренную папку не найти по сети), указать пользователя, под которым будет происходить соединение, добавить требуемые папки с требуемыми правами, определить имя сервера. Все это избавляет нас от необходимости копаться в настройках конфигов samba.

Итак, осталось только запустить samba:

rc-config start samba


Если все получилось, то в O!Play мы теперь увидим наш компьютер и расшаренные папки. Я во всяком случае думал увидеть. Но не увидел, пока как следует не покрутил антенну - оказалось, после переноса роутера в соседнюю комнату ее положение перестало давать достаточно качественный сигнал. Я подключи две папки, папку, куда обычно скачиваю все из сети, и /media/, куда монтируются внешние устройства. Думаю, пока мне этого будет достаточно.

Как видно, мне везет и все очень просто. Но мало того, я совершил небольшое открытие: 720p видео играет по wi-fi вообще без каких либо проблем! И даже 1080p играет, но надо следить, чтобы на пути следования сигнала не стояли лишние предметы или люди. Честно говоря, это было для меня шоком, я был готов перекачивать на воткнутую флэшку вполне, а тут оказалось, что это просто не нужно. То есть, если поставить свежий роутер 802.11n и такуе же карточку в комп - проблем вообще не будет. Но это пока отложим, я итак уже совершенно счастлив. Почти.

Осталось разобраться с тем, как нам все это видео выкачивать из сети. До этого я пользовался linuxdcpp, но был в этой программке один недостаток: она не работает с magnet ссылками. И firefox с ними не работает.
Т.е. получается надо решить 2 проблемы, научить firefox обрабатывать magnet-ссылки, и найти программу, которая сможет по magnet ссылке начать процесс поиска/скачивания.

Итак, для понимания firefox magnet протокола надо в about:config добавить ключ network.protocol-handler.expose.magnet логического типа с ложным (false) значением. При таком варианте при тыке на ссылку magnet выдастся диалог, с предложением выбрать приложение для обработки.

Ну а для обработки я нашел eiskaltdc, делают наши ребята, в gentoo устанавливается как всегда - в 2 строчки:
layman -a rion
emerge eiskaltdc


Теперь укажем этот /usr/bin/eiskaltdc при тыке на magnet-ссылку. Отлично, мы еще облегчили себе жизнь.

Надеюсь мое бестолковое руководство кому-то будет полезно. Приятного Вам HD-видео за минимум денег и в максимальном качестве.

UPD: Возможно, кому будет полезна и информация о том, как я убил firmware и восстановил, а также, как решил проблему скорости при доступе по wi-fi.

Update (2011/09): Еще один способ организовать сеть и отказаться от Wi-Fi: альтернатива.

пятница, 15 января 2010 г.

denyhosts вешает ssh!

Да, именно так.

Столкнулся тут, что после множества ошибок в работе операционки в период сбоя с памятью стал намертво вешаться sshd при обращении, притом вешаться со 100% нагрузкой на процессор.

Поскольку не люблю сложных решений, сделал несколько раз emerge -e world, однако это как-то не решило проблему.

Пришлось копаться. Копание делал с strace с опцией -p (цепляемся к корневому процессу sshd) и -f (следим за fork-ми). До этого так не извращался. Анализ вывода strace показал, что denyhosts портит файл /etc/hosts.deny, а sshd видимо не в состоянии прилично это обработать и вешается. Уж не знаю, ошибка ли это openssh, и стоит ли писать об таком типе атаки (ведь потенциально, эту строку можно сознательно заставить вставить в /etc/hosts.deny назначив себе такое имя хоста). Возникло все это от случайных сбоев в памяти, и реальную причину такого поведения denyhosts я пока не успел выяснить (отпишусь сюда же, когда доведу до конца). Есть подозрение, что есть какие-то завязки на версии python'а, и сбои, которые у меня с ними были. Пока пришлось подредактировать /etc/hosts.deny и отключить denyhosts на время разбирательств, что печально.

воскресенье, 29 ноября 2009 г.

Холивары

В субботу поставил сестре новый компьютер. Все как положено. Четыре ядра, четыре гигабайта, простейшая компоновка, дешево и сердито. И в очередной раз провел эксперимент по внедрению открытых технологий на местах. Виндовс поставил в виртуальную машину. Преодолели некоторое сопротивление. Но зато все было поставлено быстро и четко. Сканер заработал из коробочки. Теперь проверка временем покажет, удастся ли эксперимент на этот раз.

Но в целом, я конечно не совсем прав. Нельзя наставлять стадо на какой-то путь.

Так вот сижу я, размышляю на эту тему. И вижу очередную статью, где рассказывается, как все плохо в виндовсе, и как хорошо - в линуксе. Ну да, все так. Но я точно знаю, что это правда только с одной стороны. Люди привыкают к хорошему. Или к тому, что у них есть. И потом лишь малая часть может взглянуть на происходящее с другой стороны. И в этом нет ничего плохого. Наоборот, это же хорошо.

Т.е. я никому не буду рассказывать, как мне удобно пользоваться линуксом, и как неудобно - виндовсом. Я просто буду пользоваться тем, что мне удобно. Ну и может расскажу, как именно я делаю свою жизнь чуть проще. И склонять всех к тому же - неблагодарное занятие. Человек может сам выбирать, и выбор не обязательно обосновывать.