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

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

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

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

27.08.10 13:43 Cronus

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-ati/xg86-video-radeon/nv/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

[Protocol]=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)

[End]

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. Хотелось бы увидеть в комментариях ваши мысли по поводу возможных программно-аппаратных вариантов обустройства линукс-медиацентров и прочие лайфхаки.
Благодарю за внимание. Если есть советы по улучшению статьи — напишите мне, я с удовольствием исправлю и дополню это мини-руководство.



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

Нужны скриншоты? Можно наваять обзор xbmc, если его не было
Shtsh 27.08.10 16:00 # +2
Кстати, уточнение. В PKGBUILD xbmc-svn зачем-то жёстко прописана ревизия.
Вот, что было (строка 45)
1
2
3
4
5
6
7
8
9
10
11

    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  

 


Для того, чтобы получить самую последнюю ревизию, можно заменить на это
1
2
3
4
5
6
7
8
9
10
11

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


реквестирую топик об установке и настроке catalyst'a
Cronus 30.08.10 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.

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

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 140)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2776 из 213 городов)
            Топ пользователей Топ блогов
            В сети: Vzlom, doraneko

            Новенькие: NightSovereign, paxlo, ormaturi, Joker, waterfly
            welinux.ru
            ноутбуки sony цены. Купить ноутбук sony vpc S13S9R S недорого.

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

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


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

            Online video HD

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

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

            Full HD video online

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

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

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