Видео ролики бесплатно онлайн

Смотреть 4k видео

Официальный сайт forexnw 24/7/365

Смотреть видео бесплатно

Cronus 27.08.2010 13:43

How-to`sДомашний медиацентр на основе ArchLinux и XBMC

Мне давно не дает покоя идея замены надоевшего телевизора на связку 24" монитор + нормальный медиацентр с автообновлениями, рейтингом, возможностью смотреть YouTube, TED Talks, Discovery...
В этой статье я остановлюсь на програмной части. Базой для создаваемой системы я решил выбрать ArchLinux из-за его минималистичности. По сути, для медиацентра не нужны крутые DE — достаточно чистых иксов для запуска оболочки да пары скриптов для управления с пульта.
Итак, программная часть в себя включает:
— ArchLinux 2010.05 с Xorg 1.8 и ядром 2.6.35;
— Облочку медиацентра XBMC;
— AnyRemote для управления медиацентром при помощи мобильного телефона с Bluetooth.

Ну что, поехали?
0. Устанавливаем на будущий медиацентр чистый Арч (детали см. в арчевики). Настраиваем звук, интернет, обновляем систему до актуального состояния:
# pacman -Syu

1. Устанавливаем необходимые пакеты: Xorg, видеодрайвер, стек Bluetooth и компилятор (зачем — обьясню ниже).
# pacman -S xorg-server xg86-video-radeonnv/mesa/etc...> bluez gcc

Если вы желаете пользоваться проприетарными драйверами ATI, то они доступны в пользовательском репозитории AUR. Для доступа к AUR необходимо установить yaourt:
# pacman -S yaourt
# yaourt -S catalyst

Для уменьшения головной боли в последствии не забудьте включить автосборку модуля ядра:
# catalyst_build_module auto

2. Оболочка XBMC находится в репозитории Community, но я рекомендую собрать ее SVN-версию из AUR — она имеет гораздо больше возможностей, в частности, доступ к YouTube, TED Talks и Discovery, а также неплохой выбор пользовательский расширений (например, для записи дисков).
# yaourt -S xbmc-svn

Сборка длится достаточно долго — за это время вполне можно выпить не одну чашку чаю :)
3. Также необходимо установить все аудио/видеокодеки, с которыми придется иметь дело:
# pacman -S gstreamer0.10-{base,good,bad,ugly}-plugins gstreamer0.10-ffmpeg

Подробности — см. в арчевики.
4. Для управления с оснащенного Bluetooth телефона необходимо поставить программу AnyRemote, которая есть в AUR:
# yaourt -S anyremote

Не забудьте также скачать и установить J2ME-клиент на мобильный телефон.

Ну что ж, весь необходимый софт в системе установлен. Займемся настройкой.
0. Создадим пользователя с именем, например, xbmc:
# useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power -s /bin/bash xbmc
# passwd xbmc

1. Добавим в /etc/rc.conf в секцию DAEMONS необходимый нам демон Bluetooth:
DAEMONS=(... @blueooth)

2. Надо создать файл ~/.anyremote.cfg, который осуществлял бы контроль XBMC. Содержимое этого файла примерно такое:
% STATUS unknown
% XTEST yes
% SOUND no
% ENV no

GuiAppName=XBox_Media_Center
GuiAppBinary=xbmc
GuiAppRun=echo 'A=`ps -ef|grep xbmc|grep -v grep`; if < "x$A" == "x" >; then echo NOK; else echo OK; fi' | bash -f -s
GuiAppIcon=xbmc.png
GuiAppType=Application
GuiAppProtocols=Server

=Server

% redefine joystick keys
UP =Macro(XBMC_UP)
DOWN =Macro(XBMC_DOWN)
LEFT =Macro(XBMC_LEFT)
RIGHT =Macro(XBMC_RIGHT)
FIRE =Macro(XBMC_OK)

% redefine side-buttons
% 4118=Macro(VOLUM_UP)
% 4119=Macro(VOLUM_DOWN)
% VOLUM_UP=Emulate(key,+)
% VOLUM_DOWN=Emulate(key,-)
% 4144=Macro(CALL)
% CALL=Emulate(key,Escape)
% 4101=Macro(OK)
% OK=Emulate(key,o)

XBMC_RUN=Exec(echo 'P=`ps -ef|grep "/usr/share/xbmc/xbmc.bin"|grep -v grep|grep -v edit|grep -v anyremote`; if < "x$P" == "x" >; then xbmc& fi' |bash -f -s);
XBMC_RUN_STOP=Exec(echo 'P=`ps -ef|grep "/usr/share/xbmc/xbmc.bin"|grep -v grep|grep -v edit|grep -v anyremote`; if < "x$P" == "x" >; then xbmc& else killall xbmc; fi' |bash -f -s);

XBMC_UP =Emulate(key,Up);
XBMC_DOWN =Emulate(key,Down);
XBMC_LEFT =Emulate(key,Left);
XBMC_RIGHT =Emulate(key,Right);
XBMC_OK =Emulate(key,Return)

XBMC_NOWPLAYING =Emulate(key,space)
XBMC_INFO =Emulate(key,i)
XBMC_VISUALIZAT =Emulate(key,Tab)
XBMC_ZOOM =Emulate(key,z)
XBMC_FULLSCREEN =Emulate(key,backslash)

XBMC_PLAY_PAUSE =Emulate(key,P)
XBMC_STOP =Emulate(key,X)
XBMC_ACTIONS =Emulate(key,m)
XBMC_OPTIONS =Emulate(key,c)
XBMC_PREVIOUS =Emulate(key,comma)
XBMC_NEXT =Emulate(key,period)

XBMC_SUBTITLE =Emulate(key,t)
XBMC_RESTART =Emulate(key,r)
XBMC_MAINMENU =Emulate(key,Escape)
XBMC_CANCEL =Emulate(key,BackSpace)
XBMC_EXIT_MENU =Emulate(key,s)

XBMC_MUTE =Exec(amixer -c $(MixerCard) sset $(MixerChannel),0 toggle -q)
XBMC_VOL_UP =Exec(amixer -c $(MixerCard) sset $(MixerChannel),0 5%+ -q)
XBMC_VOL_DOWN =Exec(amixer -c $(MixerCard) sset $(MixerChannel),0 5%- -q)

% XBMC_VOL_UP =Emulate(key,plus,key,plus,key,plus)
% XBMC_VOL_DOWN =Emulate(key,minus,key,minus,key,minus)

(Init)=Include($(CfgDir)/Utils/aliases-server.cfg);

(Connect)=Set(icons,XBMC,1,refresh,2,file,3,fit,4,play,5,fullscreen,6,stop,7,vol_down,8,minus,9,vol_up,*,file,0,folder,#,no);\
Set(skin,default,keypad_only);\
Macro(ALLIN1MENU);\
Macro(XBMC_RUN);

Cancel=Exit

Back=Set(text,close);Macro(ALLIN1MENU)

1=Macro(XBMC_NOWPLAYING)
2=Macro(XBMC_INFO);
3=Macro(XBMC_VISUALIZAT);

4=Macro(XBMC_PLAY_PAUSE);
5=Macro(XBMC_OK);
6=Macro(XBMC_STOP);

7=Macro(XBMC_VOL_DOWN)
8=Macro(XBMC_CANCEL);
9=Macro(XBMC_VOL_UP)

* *=Set(text,replace,Help, *0 Options\n *2 Page up\n *8 Page down\n ** Help\n 0 Main menu\n #0 Exit from menu\n ## Run/Quit);
* 0=Macro(XBMC_OPTIONS);
* 2=Emulate(key,Page_Up)
* 8=Emulate(key,Page_Down)
0=Macro(XBMC_MAINMENU);
# 0=Macro(XBMC_EXIT_MENU);
* #=Macro(XBMC_RUN_STOP)
# #=Macro(XBMC_RUN_STOP)


3. Отредактируем стартовый скрипт иксов (~/.xinitrc) так, чтобы сначала запускался AnyRemote, а затем XBMC:
#!/bin/bash
exec anyremote -log -s bluetooth:19 &
exec xbmc

4. Теперь надо настроить автовход пользователя xbmc в систему, чтобы не приходилось всякий раз подключать клавиатуру при загрузке медиацентра.
Для осуществления задуманного нам понадобится поставить mingetty, в которой есть функция автовхода. Она доступна в AUR:
# yaourt -S mingetty

После чего нам надо отредактировать /etc/inittab:
изменить:
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux

на:
c1:2345:respawn:/sbin/mingetty --autologin xbmc tty1 linux

Также следует автоматически запускать иксы при логине. Для этого надо отредактировать файл ~/.bash_profile следующим образом:
if << -z "$DISPLAY" >> && << $(tty) = /dev/tty1 >>; then
xinit
logout
fi

Если этого файла еще нет, можно скопировать шаблон их /etc/skel/.bash_profile. После внесенных изменений сразу после логина пользователя будут запущены иксы, которые, в свою очередь, запустят AnyRemote и XBMC.
5. Перезагружаемся, проверяем, всё ли в порядке. Отключаем клавиатуру и мышь, осваиваемся с управлением при помощи AnyRemote. Наслаждаемся полученным результатом!

О недостатках предлагаемого решения:
1. За рамками этой статьи остается вопрос об организации хранилища медиаданных. Если остановиться на варианте встроенного винчестера, неясным становится вопрос о заливке новой музыки/видео. Я предлагаю сам медиацентр строить на основе небольшого SSD (8/16 Гб хватит за глаза) или вообще флешки (тут придется позаботиться об отключении swap-раздела для продления времени жизни носителя), а для хранения фильмов/музыки использовать переносной USB-диск — это позволит вам как с легкостью как заливать новые файлы с основного рабочего компьютера, так и делиться ими с друзьями. Учтите, что если фильмы/музыка будут храниться на NTFS-разделе, вам придется поставить пакет ntfs-3g и настроить соответствующим образом fstab.
Если вы решите остановиться всё-таки на встроенном винчестере, одним из вариантов организации обновления медиасодержимого может стать создание беспроводной домашней сети. Мне это видится в виде такой схемы:
— Медиацентр подключается напрямую к интернету, в него ставится WiFi-адаптер, настраивается NFS, iptables и раздача интернета.
— Все прочие ПК/ноутбуки/КПК/телефоны/айпады выходят в интернет через этот импровизированный роутер, который можно настраивать через SSH.
Данный вариант является довольно трудоемким и подразумевает достаточно высокий уровень подготовки пользователя. Пока что все эти настройки выходят за рамки этой статьи ввиду отсутствия требуемой аппаратуры.
2. Подразумевается, что медиацентр является универсальной заменой телевизору, поэтому я и предлагаю настроить автовход пользователя в систему и отключить клавиатуру/мышь для уменьшения количества проводов и управлять системой при помощи мобильного телефона. Но оптимальным, ИМХО, всё-таки был бы вариант управления при помощи ИК-пульта. Настройка пульта описана в этой статье.
3. При желании обновить систему придется подключать клавиатуру, жать Ctrl+Alt+F1 и производить настройку из консоли. Ввиду отсутствия какого-либо DE/WM это может вызвать определенные трудности у начинающего пользователя, но, в то же время, и стать отличным стимулом для более детального изучения тонкостей линукса вообще и Арча в частности :)

В завершение скажу пару слов об аппаратной части. Лично моя мечта — небольшая barebone-система на подобии MacMini, но хорошим выходом станет покупка неттопа с возможностью крепления его за монитором, например, Acer Aspire REVO. Как вариант — собрать медиацентр в любом Medium Tower и спрятать в близлежащий шкаф. При таком подходе, в случае управления с ИК-пульта, не забудьте купить удлинитель для вынесения приемника поближе к монитору. Если вы пользуетесь Bluetooth, никаких лишних телодвижений делать не придется.

В этой статье я вкратце описал свой dream setup. Хотелось бы увидеть в комментариях ваши мысли по поводу возможных программно-аппаратных вариантов обустройства линукс-медиацентров и прочие лайфхаки.
Благодарю за внимание. Если есть советы по улучшению статьи — напишите мне, я с удовольствием исправлю и дополню это мини-руководство.


Тэги: anyremote arch XBMC медиацентр
+ 3 -
Похожие Поделиться

Shtsh 27.08.2010 13:51 #
+ 0 -
читать
Cronus 27.08.2010 13:57 #
+ 0 -
В итоге мы получим полновесную Убунту с Гномом. Зачем тянуть лишний софт и лишние демоны? Конечно, всё это можно отключить/удалить, но это займет дополнительное время.
Shtsh 27.08.2010 14:03 #
+ 0 -
не в этом дело. Если посмотреть повнимательнее, там много полезных рекомендаций и инструкций для настройки практически всего, что может понадобиться. Там много мануалов. И не всё относится к убунте
Cronus 27.08.2010 13:59 #
+ 0 -
Впрочем, за ссылку спасибо — возьму на вооружение.
evg 27.08.2010 14:06 #
+ 0 -
На какой железке крутиться?
Cronus 27.08.2010 14:13 #
+ 0 -
Пока что — только на домашнем ПК (C2D E4500 @ 2.2 GHz, 4 Gb RAM, RadeonHD 2600XT). Покупка железа для центра будет чуть позже, скорее всего, будет самосборный barebone. Хотелось бы увидеть советы от людей, уже осуществивших что-то подобное.
main 27.08.2010 14:59 #
+ 0 -
А картинки?
Shtsh 27.08.2010 15:40 #
+ 1 -
а смысл? тут же не рассказывается об xbmc (одна строчка на него :), а просто руководство по настройке арча.

Нужны скриншоты? Можно наваять обзор xbmc, если его не было
Shtsh 27.08.2010 16:00 #
+ 2 -
Кстати, уточнение. В PKGBUILD xbmc-svn зачем-то жёстко прописана ревизия.
Вот, что было (строка 45)

cd "${srcdir}/"
if < -d "$_svnmod/.svn" >; then
msg "SVN tree found, reverting changes and updating to -r$pkgver"
(cd "$_svnmod" && svn revert -R . && (make distclean || :); svn up -r "$pkgver")
else
msg "Checking out SVN tree of -r$pkgver"
svn co "$_svntrunk" --config-dir ./ -r "$pkgver" "$_svnmod"
fi



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

cd "${srcdir}/"
if < -d "$_svnmod/.svn" >; then
msg "SVN tree found, updating"
(cd "$_svnmod" && (make distclean || :); svn up)
else
msg "Checking out SVN tree"
svn co "$_svntrunk" --config-dir ./ "$_svnmod"
fi

aiva 27.08.2010 17:13 #
+ 0 -
Себе сделал проще: купил ASRock NetTop ION 330, через HDMI подключил к широкоформатному телевизору, в качестве ОС поставил убунту, из репозитория поставил XBMC. Решение, конечно, попсовое, но зато быстро и эффективно. Неттоп подключен по езернету к локалке, фильмотека хранится на внешнем винте, хотя в XBMC есть возможность размещения фильмотеки в сети.
Erb 28.08.2010 21:42 #
+ 0 -
А кто-нибудь станавливает в медиацентр тв-тюнер?
Есть какие-нибудь рекомендации по выбору?
Erb 28.08.2010 21:43 #
+ 0 -
*устанавливает
dr_lo 30.08.2010 02:48 #
+ 1 -
Для уменьшения головной боли в последствии не забудьте включить автосборку модуля ядра:
# catalyst_build_module auto


реквестирую топик об установке и настроке catalyst'a
Cronus 30.08.2010 10:18 #
+ 0 -
Зачем сразу топик? На арчевики же всё прекрасно расписано: http://wiki.archlinux.org/index.php/ATI_Catalyst
Если хотите, вот краткая выжимка оттуда, которой я пользуюсь:
Ставим yaourt, затем:
# yaourt -S catalyst
# catalyst_build_module auto
# aticonfig --initial

Перезагружаемся, дописываем в GRUB к строке kernel /boot/vmzlinuz26 ... в конец параметр single, указываем рутовый пароль, выполняем:
# aticonfig --set-pcs-str=DDX,ForceXAA,TRUE — это включит старый метод рендеринга и избавит от артефактов в KDE System Settings.

Опять перезагружаемся.
Вроде бы всё :)

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн