#Для каких интерфейсов и сетей открыт доступ
interfaces = lo eth0 wlan0 192.168.0.1/24
hosts allow = 127. 192.168.0.
#Пример публичной шары открытой на запись и чтение
[Video]
comment = Video
path = /mnt/Video
public = yes
guest ok = yes
browseable = yes
writable = yes
read only = no
create mask = 0666
directory mask = 0777
4. Не забудьте проверить права папки на запись и чтение
5. Добавим правила в iptables для доступа к самбе
-A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
Все XBMC установлен и готов к работе пока его не трогаем.
2. HTS Tvheadend — программа с удобным web – интерфейсом, которая позволяет расшарить тюнер по локальной сети, и уже имеет camd клиент (и даже сервер), для хитрого просмотра.
Качаем самые свежие исходники по ссылке
Распаковываем в удобное место, например в /opt/tvheadend
./configure –disable-ahavi –release
Если config на что то ругается значит не установлены кодеки. Ставим что он хочет еще раз config
./make
Если все прошло успешно то в папке /opt/tvheadend/build.Lnux появится бинарник tvheadend
Добавляем его в автозагрузку от обычного пользователя, главное чтобы пользователь являлся членом группы video
Первый раз запускать его нужно так
./tvheadend -C
Ключ -C сбросит пароль на вход в вебинтерфейс. Далее запускаем браузер, и заходим на сервер HTS например http://127.0.0.1:9981 или используем другой IP если он установлен на сетевой машине и видим
Настраиваем Tvheadend.
Начинаем с настройки LNB.
Жмём: Configuration-> TV Adapters-> Select TV adapter... -> Выбираем Вашу карту → Satellite config-> Add entry-> LNB type выбираем-> Cirlular 10750-> Можете поменять Name (например 36) -> Save changes
Прописываем параметры шаринга Code Wordl Client → Add entry → Hostname (адрес сервера) → Port → Username (имя) → Password (пароль) → DES Key (обычно 01:02:03:04:05:06:07:08:09:10:11:12:13:14 можно без двоеточий, он потом сам поставит) → Update Card (поставить галочку) → Enabled (поставить галочку) → Save changes ( Если несколько пакетов, то добавляем ещё). Если сервер законнектился, то данные сервера станут зелёными, если нет — красными.
Переходим к сканированию. У HTS Tvheadend есть список спутников, но в списке нет EutelsatW4W7. Добавить в список его нетрудно, но HTS tvheadend некорректно сканирует список транспондеров с круговой поляризацией . Он забывает переключить частоту гетеродина на 10750 мгц , но при ручном вводе параметров транспондеров , делает это правильно.
Последовательность операций такова.
Отключаем автоматический поиск транспондеров:
Configuration -> TV Adapters -> General -> Убираем все галочки -> делаем Save.
Для того , чтобы Tvheadend нашел все каналы нужно прописать по одному транспондеру каждого провайдера, остальные он найдёт сам. Прописываем транспондер провайдера New Media Legend.
Multiplexes -> Add muxe(es) manually... Прописываем транспондер провайдера New Media Legend ( у них два транспондера 12054000 R и 12015180 R ).
Прописываем транспондер НТВ+ (S 11785020 R , S2 11823000 R , S 11862000 R , S2 12073000 H , S 12245000 R . S 12265000 H , S 12284000 R , S 12322000 R , S 12380000 H , S 12399000 R , S2 12418000 H , S 12437000 R , S 12456000 H , S 12476000 R).
Frequency (khz): 11785000
Symbolrate (baud): 27500000
FEC: 3/4
Delivery System: SYS_DVBS
Constellation: QPSK
Polarisation: Circular right
Satellite config: 36
ADD
Теперь поставьте галочки Configuration-> TV Adapters-> General-> Autodetect muxes ( поиск транспондеров ), Idle scanning , Monitor signal qualiti , сделайте Save, и в списке Multiplexes сразу правильно пропишутся все транспондеры.
Могут случайно прописаться дубликаты некоторых транспондеров.
Отключаем автосканирование транспондеров, оно больше не нужно.
Для этого убираем галочку Configuration-> TV Adapters-> General-> Autodetect muxes ( поиск транспондеров ) -> делаем Save.
Удаляем дубликаты транспондеров , если они прописались. Для этого выделяем ненужный транспондер и жмём Delete selected… . Выглядеть он должен так:
Для этого нужно подождать несколько минут пока полность просканируются все каналы, а для проверки периодически обновлять браузер.
Теперь Мапим все каналы , т. е. Включаем их в список каналов.
General -> Map DVB services to channels... -> Ждем когда в System log закончится процесс Now idle. Проверяем в Services все ли каналы промапились. Если не все повторите.
Теперь эти программы есть в списке Channels и могут быть переданы в XBMC.
Делаем автозагрузку Tvheadend, если не хотите запускать из терминала. Система -> Параметры -> Запускаемые приложения -> Добавить -> Название (Tvheadend) -> Команда tvheadend -> Комментарий (любой ).
Либо кидаем символическую ссылку на бинарник в /home/user_name/.kde/Autostart
После перезагрузки Tvheadend будет загружаться автоматически.
Когда Tvheadend загружен, Kaffeine или другие SatTV программы работать не будут.
3. Теперь запускаем xbmc и в категории «видео» добавляем новый источник
Имя: ‘Спутник’ – или любое другое, которое вам нравится.
Путь: http://127.0.0.1:9982 (127.0.0.1 — в случае если HTS установлен на локальной машине, или IP адрес сетевой машины, как у меня)Внимание! Проверьте настройки доступа в HTS. Разрешите доступ из LAN если у Вас возникла ошибка.
‘*’ – значит любой юзер или пароль
И так, мы видим каналы «прямой трансляции»
Жмем на любой канал и наслаждаемся результатом
4. Устанавливаем Lirc и утилиту для настройки пульта
В моем случае пульт это ComproVideomate. Значит наше устройство будет event5 и оно определилось,
теперь запускаем
gnome-lirc-properties
В появившемся окне выбираем наш пульт и жмем автоконфиг.
/etc/init.d/lirc restart
В результате в файле /etc/lirc/lirc.conf.gnome будет наш конфиг
# LIRC configuration file for linux-input-layer
# Generated by GNOME LIRC properties on Tue Apr 5 17:50:06 2011
# from linux-input-layer-lircd.conf
#
# brand: Generic
# model no. of remote control: Linux Input Layer compatible Remote
#
begin remote
name COMPRO
bits 32
begin codes
BTN_0 0x10100
BTN_1 0x10101
BTN_2 0x10102
BTN_3 0x10103
BTN_4 0x10104
...
Там где name написано название нашего пульта запомните его оно понадобится дальше.
Теперь нужно привязать пульт с XBMC для этого копируем файл Lircmap.xml из /usr/share/xbmc/system в /home/user_name/.xbmc/userdata
Осталось только настроить, открываем файл видим
Теперь в remote device пишем название пульта то что мы выше смотрели
дальше команды в тегах типа это команды XBMC между тегами нужно писать название кнопки вашего пульта что бы посмотреть как называется кнопка в консоли запускаем
irw
и жмем нужные кнопки на пульте в консоль будет выдана инфа по кнопке
$('#sidebar'); // выбор элемента с id = sidebar
$('.post'); // выбор элементов с class = post
$('div#sidebar'); // выбор элемента div с id = sidebar
$('div.post'); // выбор элементов div с class = post
$('div span'); // выбор всех span элементов в элементах div
$('div').find('span'); // выбор всех span элементов в элементах div
$('div > span'); // выбор всех span элементов в элементах div, где span является прямым потомком div'a
$('div, span'); // выбор всех div и span элементов
$('span + img'); // выбор всех img элементов перед которыми идут span элементы
$('span ~ img'); // выбор всех img элементов после первого элемента span
$('#banner').prev(); // выбор предыдущего элемента от найденого
$('#banner').next(); // выбор следующего элемента от найденого
$('*'); // выбор всех элементов
$('p > *'); // выбор всех потомков элементов p
$('p').children(); // --
$('p').parent(); // выбор всех прямых предков элементов p
$('* > p'); // выбор всех предков элементов p (скорей всего Вам не понадобится)
$('p').parents(); // --
$('p').parents('div'); // выбор всех предков элемента p которые есть div (parents принимает в качестве параметра селектор)
$('div:first'); // выбираем первый div в доме
$('div:last'); // выбираем последний div в доме
$('div:not(.red)'); // выбираем div'ы у которых нету класса red
$('div:even'); // выбираем четные div'ы
$('div:odd'); // выбираем нечетные div'ы
$('div:eq(N)'); // выбираем div идущим под номером N в DOMe
$('div:gt(N)'); // выбираем div'ы, индекс которых больше чем N в DOMe
$('div:lt(N)'); // выбираем div'ы, индекс которых меньше чем N в DOMe
$(':header'); // выбо заголовоков h1, h2, h3 и т.д.
$('div:animated'); // выбор элементов с активной анимацией
$('div:contains(text)'); // выбираем div'ы содержащие текст
$('div:empty'); // выбираем пустые div'ы
$('div:has(p)'); // выбираем div'ы которые содержат p
$('div.red').filter('.bold') // выбираем div'ы которые содержат класс red и класс bold
$('div:hidden'); // выбираем скрытые div'ы
$('div:visible'); // выбираем видимые div'ы
$("div[id]"); // выбор всех div с атрибутом id
$("div[title='my']"); // выбор всех div с атрибутом title=my
$("div[title!='my']"); // выбор всех div с атрибутом title не равного my
$("div[title^='my']"); // выбор всех div с атрибутом title начинающихся с my
$("div[title$='my']"); // выбор всех div с атрибутом title заканчивающихся на my
$("div[title*='my']"); // выбор всех div с атрибутом title содержащим my
$("a[rel~='external']"); // выбор всех A с атрибутом rel содержащим external в списке значений разделенных пробелом
$(":text"); // выбор всех input элементов с типом =text
$(":radio"); // выбор всех input элементов с типом =radio
// и так далее
$("input:enabled"); // выбор всех включенных элементов input
$("input:checked"); // выбор всех отмеченных чекбоксов
$("div[name=city]:visible:has(p)"); // выбор видимого div'a с именем city, который содержит тег p
$("form select[name=city] option:selected").val(); // получение выбранного(-ых) элементов в селекте city
$("form :radio[name=some]:checked").val(); // получение выбранного значения радиобатона с именем some
$("form :checkbox:checked"); // выбор всех выбранных чекбоксов