Почесал я репу и начал ковырять. Для продолжения истории хочу оговориться, что я заказал внешнюю USB DVB-карту, так как внутренние в windows частенько вызывали «синюю смерть» и стоял, да и стоит, Ubuntu 6.06 LTS, опыт работы и настройки в Linux к тому моменту был близок к нулю.
Итак, полез я во всемирную паутину искать как этого черта настроить, вычитал что необходимы dvb-утилиты dvbnet, szap, dvbtraffic кои были найдены в репозиториях Ubuntu под названием dvb-utils.
Дальше народ писал что надо запустить dvbnet -p PID, где PID предоставляет спутниковый провайдер, для рассказа я возьму его равным 500. Итак, запускаю я
Код: Выделить всё
sudo dvbnet -p 500
и получаю в ответ:
Код: Выделить всё
Device: /dev/dvb/adapter0/net0
Error: couldn't open device /dev/dvb/adapter0/net0: 2 No such file or directory
Я задумался, выходит утилитка не нашла мою карту, полез смотреть в менеджер оборудования, там карточка присутствовала, это было еще интереснее, да и к слову сказать на форумах где я был описаны только внутренние карточки. Спас меня один итальянский пост на каком-то форуме. адрес уже не помню, там советовали для USB-карт ручками создать устройство и подгрузить модули, вот текст скрипта start_dvb:
Код: Выделить всё
#!/bin/sh
mkdir /dev/dvb
chmod 755 /dev/dvb
for i in `seq 0 3`; do
echo "Creating DVB devices in /dev/dvb/adapter$i"
mkdir /dev/dvb/adapter$i
chmod 755 /dev/dvb/adapter$i
mknod -m 0660 /dev/dvb/adapter$i/video0 c 212 `expr 64 \* $i + 0`
mknod -m 0660 /dev/dvb/adapter$i/audio0 c 212 `expr 64 \* $i + 1`
mknod -m 0660 /dev/dvb/adapter$i/frontend0 c 212 `expr 64 \* $i + 3`
mknod -m 0660 /dev/dvb/adapter$i/demux0 c 212 `expr 64 \* $i + 4`
mknod -m 0660 /dev/dvb/adapter$i/dvr0 c 212 `expr 64 \* $i + 5`
mknod -m 0660 /dev/dvb/adapter$i/ca0 c 212 `expr 64 \* $i + 6`
mknod -m 0660 /dev/dvb/adapter$i/net0 c 212 `expr 64 \* $i + 7`
mknod -m 0660 /dev/dvb/adapter$i/osd0 c 212 `expr 64 \* $i + 8`
chown root.video /dev/dvb/adapter$i/*
done
cp -a /dev/dvb /etc/udev/devices
modprobe dvb_core dvb_shutdown_timeout=0
modprobe b2c2-flexcop-usb
modprobe mt312
После этого у меня появились нужные устройства и вызов dvbnet прошел удачно:
Код: Выделить всё
Device: /dev/dvb/adapter0/net0
Status: device dvb0_0 for pid 500 created successfully.
Дальше нужно было поднять интерфейс dvb0_0:
Код: Выделить всё
ifconfig dvb0_0 192.168.X.X up
ifconfig dvb0_0 hw ether 01:02:03:04:05:06
IP-адрес походу может быть любым. Вторая строчка не обязательна если у вас после выполнения первой MAC уже будет правильным.
Дальше надо было выполнить утилиту szap, но перед этим надо было написать конфиг для нее, в котором прописаны параметры спутника. Методом «научного тыка» был получен следующий конфиг channels.conf:
Код: Выделить всё
#формат имя:частота:поляризация:0:символьная скорость:PID:PID:1:символьная скорость
AM1:11043:h:0:39999:500:500:1:39999
Выполняем szap:
Код: Выделить всё
# szap -c /etc/channels.conf -n 1 -x
reading channels from file '/etc/channels.conf'
zapping to 1 'AM1':
sat 0, frequency = 11043 MHz H, symbolrate 39999000, vpid = 0x01f4, apid = 0x01f4
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
status 1f | signal 85c2 | snr c1ec | ber 00000100 | unc 00000000 | FE_HAS_LOCK
Чтобы проверить работу запускаем dvbtraffic и видим бегущие циферки:
Код: Выделить всё
....
023d 26 p/s 4 kb/s 39 kbit
023e 35 p/s 6 kb/s 53 kbit
023f 9 p/s 1 kb/s 14 kbit
0241 2 p/s 0 kb/s 4 kbit
0242 22 p/s 4 kb/s 33 kbit
0244 61 p/s 11 kb/s 91 kbit
0309 307 p/s 56 kb/s 462 kbit
0378 247 p/s 45 kb/s 371 kbit
03e7 113 p/s 20 kb/s 170 kbit
2000 5214 p/s 957 kb/s 7842 kbit
-PID—FREQ-----BANDWIDTH-BANDWIDTH-
Значит всё ок.
Далее выполняем строчку смысл которой мне так и остался непонятен (потому что чайник ):
Код: Выделить всё
echo 0 > /proc/sys/net/ipv4/conf/dvb0_0/rp_filter
Как выяснилось позже можно было сделать капельку по другому, в скрипте start_dvb при подключении модуля dvb_core никаких параметров не писать, а чтобы карта не умирала через пару секунд после запуска запускать szap в фоне с выводом на null:
Код: Выделить всё
szap -c /etc/channels.conf -n 1 > /dev/null &
Теперь карточка работает и настроена, осталось организовать наземный канал.
Провайдер предлагал несколько вариантов – VPN fake, VPN best, OpenVPN, GRE (к названиям не придирайтесь. так написано у них на сайте). Решил попробовать VPN fake (так была организована земля в Windows) и новый для себя OpenVPN. Тут были небольшие грабли по вине провайдера, они прислали файлы для OpenVPN в win-кодировке с 0A0D на концах строк, из-за этого у меня почему-то не поднимался OpenVPN, поковырявшись около часа я понял в чем проблема и всё заработало .
Но, проработав около получаса всё умерло, я начал разбираться, но ничего не нашел, оказалось банально кончились деньги на счету ))
Вот всё, может этот рассказ кому-то поможет, например такому же как я.
Прошу громко не пинать, я всего лишь делаю первые шаги в Линуксе.