General Satellite

На главную Отправить письмо Карта сайта
Добро пожаловатьКорпорация Дженерал Сателайт — российская научно-производственная компания, представ­ляющая на российском и международном рынке высокотехнологичное радиоэлектронное обору­дование, характеристики которого отвечают самым высоким стандартам. Надежность и про­фессионализм за многие годы успешной работы позволили компании занять место лидера в телекоммуникационном бизнес-сообществе Рос­сии.

подробнее

Цифровой спутниковый ресивер GS-8300



 

Как запустить интернет через DVB-S под Linux 2.4

Что нужно:

  1. Нужны исходники ядра 2.4, что бы скомпилировать драйвера для DVB-S
  2. Драйвера DVB-S версии 0.9.x (исходники)

Распаковываем драйвера, например, в /usr/src/DVB, заходим в /usr/src/DVB/driver

$ make

Если все скомпилилось без проблем, идем дальше.
В этом же каталоге говорим

$ make insmod

Эта операция просто загружает все необходимые модули.
Если все загрузилось, то DVB-S уже работает и можно смотреть телевизор.
В каталоге /usr/src/DVB/apps есть несколько полезных программ. Нас интересует, в первую очередь, те, что переключают каналы. Проще всего скомпилировать szap.

Заходим в /usr/src/DVB/apps/szap и говорим

$ gcc -o szap szap.c

Там же лежит channels.conf. В нем каждая строка - настройка на канал.
Формат строки следующий:

<имя_канала>: <частота_в_MHz>: <поляризация>: <номер_сутника_dseq>: <сим_рейт_в_kS/s>: <video_pid>: <audio_pid>: <**>: <service_id>

szap использует параметры только до audio_pid. Т.е. от <**> ничего не читает. Этот формат принимает много программ, у VDR <**> - это номер DVB карты которая может декодировать шифрованный канал. 0 - открытый (FTA). <service_id> - ???.

Надо добавить настройку на транспондер в channels.conf:

Например EON103:

12461:h:0:27500:0x1fff:0x1fff:0:28006

Копируем channels.conf в каталог ~/.szap.
Если это первая строка в channels.conf, то переключаем на нее szap -n 1 
Драйвера загружены, но интерфейса dvb0 нет.
Нужно скомпилировать маленькую програмку (положить ее в /usr/src/DVB или поправить третий include):

// gcc -o netdvb netdvb.c
#include <fcntl.h>
#include <sys/ioctl.h>
#include "ost/include/ost/net.h"
int main(int argc, char **argv)
{
char devnamen[80];
int dev, fdn;
struct dvb_net_if netif;

dev = 0;
netif.pid = 512;
netif.if_num = 0;

sprintf(devnamen,"/dev/ost/net%d",dev);
printf("Open %s\n",devnamen);

if((fdn = open(devnamen,O_RDWR|O_NONBLOCK)) < 0){
perror("DVB NET DEVICE: ");
return;
}
ioctl( fdn,NET_ADD_IF,&netif);
}

Запускаем ее - появляется сетевой интерфейс dvb0_0 (проверить ifconfig -a), но он пока в down состоянии. Далее к интерфейсу надо привязать IP адрес и hardware адрес -MAC (в стиле ethernet). EOL вычисляет аппаратный адрес клиента по IP адресу, с которого идут исходящие пакеты. Т.е. аппаратный адрес должен быть равен 00:02:<ip_byte1>:<ip_byte2>:<ip_byte3>:<ip_byte4>. IP адрес интерфейса dvb0_0 может быть любым, неконфликтующим с другими адресами в собственной сети.

Подняв интерфейс dvb0_0, добавляем команду

$ echo 0>/proc/sys/net/ipv4/conf/dvb0_0/rp_filter

(если было 1), иначе Linux не впустит пакеты из dvb0_0.
Описанные выше манипуляции (после загрузки драйверов make insmod) можно объединить в скрипт idvb:

#!/bin/sh
DVBDEV="dvb0_0"
DVBIP="192.168.1.1"
szap -n 1
netdvb &&\
ifconfig $DVBDEV $DVBIP hw ether `ifconfig $1 | awk '
/inet addr:/{split(gensub(/( *inet addr:)([^ ]+)( +.*)/,"\\\\2",1),ipb,".");\
printf "0:2:%X:%X:%X:%X\n",ipb[1],ipb[2],ipb[3],ipb[4]}'`
echo "0">/proc/sys/net/ipv4/conf/$DVBDEV/rp_filter

Запускаем так ./idvb ppp0
ppp0 - имя интерфейса для исходящих пакетов. Скрипт активирует интерфейс, переключит канал и привяжет dvb0_0 аппаратный адрес, вычисленный по исходящему интерфейсу.

Замечания:

  1. Драйвера 0.9.x примерно с 15 сентября имеют проблемы с активацией сетевого интерфейса. Лучше использовать драйвер 0.9.3 (файл siemens_dvb-0.9.3.tar.gz).
  2. dvbd демон не работает с драйверами 0.9.х. В принципе он делает тоже самое, что описано в этом mini-howto, плюс умеет добавляет multicast фильтры для DD и Stream Center.

Ссылки:

12.04.02

Мазенков Сергей

he4le@hotmail.com

 

Комментарии? Поправки? Дополнения? 
dvbnet@msk.gs.ru
О корпорации| Продукция| Техническая информация| Онлайн поддержка| Новости| Статьи| Сервисное обслуживание
Copyright © 2004 «General Satellite».
All rights reserved.


Rambler's Top100 Яндекс цитирования