Налаштування Скайстар 2 під Лінукс (Suse Лінукс 10.1.)
Хочу сказати що я довго грався із цим всім поки воно все в мене запрацювало. В мене дома встановлений SUSE Linux 10.1 . Драйвери до Скайстар у ньому уже вбудовані в ядро і їх не потрібно встановлювати, тому для тих щасливих людей що мають цей Лінукс розділ 1 не є необхідним. Також всі налаштування торкаються ядра 2.6. Якщо треба під 2.4 спитайте, я відпишу.
1. Перш за все потрібно додати в /usr/src/linux/.config наступні налаштування:
#
# Digital Video Broadcasting Devices
#
CONFIG_DVB=y
CONFIG_DVB_CORE=m
#
# Supported FlexCopII (B2C2) Adapters
#
CONFIG_DVB_B2C2_FLEXCOP=m
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
CONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
CONFIG_DVB_B2C2_SKYSTAR=m
#
# DVB-S (satellite) frontends
#
CONFIG_DVB_STV0299=m
CONFIG_DVB_MT312=m
Що ж тепер наберем в директорії cd /usr/src/linux/ && make mrproper && make modules && make modules_install. Модулі готові.
Потрібно всього три з них: -core, stv0299, skystar2. dvb-core необхідно завантажувати із параметром dvb_shutdown_timeout=0. В іншому випадку сигналу ви просто не побачите.
Ось так: modprobe dvb-core dvb_shutdown_timeout=0 dvb_net_debug=1 && modprobe stv0299 && modprobe skystar2. dmesg повинен показати наступне (MAC-адреса повинна бути такою ж як і MAC-адреса на мітці вашої карти):
drivers/media/dvb/b2c2/skystar2.c: FlexCopIIB(rev.195) chip found
drivers/media/dvb/b2c2/skystar2.c: the chip has 38 hardware filters
driver_initialize MAC address = 00:d0:d7:0c:d3:1d:34:cf
DVB: registering new adapter (SkyStar2).
DVB: registering frontend 0 (ST STV0299 DVB-S)...
Якщо ви бачите щось подібне у себе то значить драйвери налаштовані успішно.
2. Мережевий інтерфейс.
Якщо у вам встановлена devfs, то вам прийдеться створити відповідні інтерфейси. Краще всього це можна зробити за допомогою скрипта, який пропонує Nuclear Cat
http://www.gs.ru/info/si/ss2lin24.html «Інструкція по налаштуванню Скайстар 2 під Лінукс 2.4». Чомусь у драйверах linuxtv-1.1.1.tar.bz2 (
http://www.linuxtv.org/downloads/linuxtv-1.1.1.tar.bz2) скрипт так і не підправлений, так що копіюйте його у Nuclear Cat і запускайте ./makedev-dvb.sh (
http://carpenter.bofh.ru/texts/sat-ssx/files/makedev-dvb.sh) . Але все-таки я думаю що краще використовувати devfs.
Тепер настає досить важкий і відповідальний момент: вам необіхдно буде налаштувати карту для прийому інформації. Для цього вам знадобиться набір утиліт linuxtv-dvb-apps-1.1.0.tar.bz2 (
http://www.linuxtv.org/downloads/linuxtv-dvb-apps-1.1.0.tar.bz2) із того ж сайту Linux TV. (
http://www.linuxtv.org/) . Розпаковуємо їх, заходимо в директорію linuxtv-dvb-apps-1.1.0/util/ і набираємо make. Після компіляції, получаться такі от файли:
inuxtv-dvb-apps-1.1.0/utils/av7110_loadkeys/evtest
linuxtv-dvb-apps-1.1.0/utils/av7110_loadkesy/av7110_evtest
linuxtv-dvb-apps-1.1.0/utils/dvbdate/dvbdate
linuxtv-dvb-apps-1.1.0/utils/dvbnet/dvbnet
linuxtv-dvb-apps-1.1.0/utils/dvbtraffic
linuxtv-dvb-apps-1.1.0/utils/scan/dvb-c
linuxtv-dvb-apps-1.1.0/utils/scan/dvb-s
linuxtv-dvb-apps-1.1.0/utils/scan/dvb-t
linuxtv-dvb-apps-1.1.0/utils/szap/czap
linuxtv-dvb-apps-1.1.0/utils/szap/szap
linuxtv-dvb-apps-1.1.0/utils/szap/tzap
копіюємо або в локальний ~/bin, в /usr/local/bin або ще куда-небудь. В цій «забаві» нам потрібно буде всього три утілітки: szap, dvbnet и dvbtraffic.
Тепер нам необхідно розповісти карті про те, з яким транспондером і з яким каналом їй потрібно працювати. В даному випадку я використовую сервіс Satgate, супутник Sirius 2 Nordic Beam:
Частота 12322 Ghz
Поляризація Вертикальна
Швидкість передачі 27670 Msps
PID 402
Формат файлу, який має в собі опис каналів S-діапазону такий:
Поле Значення Опис
Назва каналу\сервісу - Якщо є символи, які відрізняються від буквенно-цифрових, то назву треба брати в подвійні лапки.
Частота GHz Частота передачі каналу в GHz
Поляризація v\h Поляризація: v – вертикальна, h – горизонтальна (відповідно, для кругової h- ліва кругова, v- права кругова)
Diseqc 0\1 Якщо приймаюча головка одна, то «0», якщо більше то «1»
Symbol rate Msps Швидкість символьної передачі даних (symbol rate — Mega symbols per rate)
V-PID Номер Ідентифікатор пакетів відеопотоку (Video Packet Identificator)
A-PID Номер Ідентифікатор Аудіо Пакетів (Audio Packet Identificator)
SID Номер Ідентифікатор Сервісу (використовується тільки в цифровому мовленні) для використання ресівером певного сервісу (Service ID)
Відповідно, створюєм файл /etc/channels.conf і робимо в ньому запис:
Satgate:12322:v:0:27670:0:0:0
Пробуємо налаштувати карту на прийом даних: bin/szap -c /etc/channels.conf(
http://carpenter.bofh.ru/texts/sat-ssx/files/channels.conf). Якщо все було зроблено правильно то ми побачимо на екрані наступне:
reading channels from file '/etc/channels.conf'
zapping to 1 'Satgate':
sat 1, frequency = 12322 MHz V, symbolrate 27670000, vpid = 0x0000, apid = 0x0000
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
status 01 | signal 9bc4 | snr 7188 | ber 000001fa | unc 00000000 |
status 1f | signal ba7d | snr aa82 | ber 00001d5b | unc 00000000 | FE_HAS_LOCK
Зрозуміло, що якщо сигнал пропав по якійсь причині, наприклад сталось затемнення відбивача, то цю процедуру необхідно повторити.
Залишилось активувати мережевий інтерфейс. Будьте уважні – все залежить від того, який тип фільтрації використовує ваш Інтернет провайдер. Якщо фільтрація пакетів іде по MAC-адресі, то виправляти нічого не потрібно. Якщо фільтрація іде по IP-адресі, то необхідно встановити MAC-адресу карти в потрібне значення. Наприклад виданий провайдером IP-адрес 10.252.155.40, то його необхідно перевести в шістнадцяткову форму: 0A:FC:9B:28 і прибавити ще два нулі: 00:00:0A:FC:9B:28. Інколи правда, провайдер додає спеціальний префікс. Наприклад 02:00:0A:FC:9B:28. Але взагалі-то цю інформацію ви самі можете в нього взнати.
Наприклад мені оператором Satgate призначено адрес 172.16.3.50 – відповідно я його і вводжу.
1. Налаштовуємо фільтрація по PID, вказаному провайдером (ідентифікатору пакетів) і створюємо мережевий інтерфейс. Наприклад dvbnet -p 402.
linux-x0vn # dvbnet -p 402
DVB Network Interface Manager
Version 1.1.0-TVF (Build Fri Aug 12 14:12:43 2005)
Copyright (C) 2003, TV Files S.p.A
Device: /dev/dvb/adapter0/net0
Status: device dvb0_0 for pid 402 created successfully.
2. Присвоюємо інтерфейсу IP-адресу і MAC-адресу. Тут будьте уважні – якщо ви зробите щось невірно, то tcpdump буде показувати наявність трафіку, але працювати нічого не буде.
ifconfig dvb0_0 172.16.3.50 netmask 255.255.255.255 broadcast 255.255.255.255
ifconfig dvb0_0 hw ether 00:00:0A:FC:9B:28
route add 172.16.3.50 dev dvb0_0
Тепер ifconfig повинен показати щось типу:
linux-x0vn:~ # ifconfig
dvb0_0 Link encap:Ethernet HWaddr 00:D0:D7:0F:CC:A8
inet addr:172.16.3.50 Bcast:255.255.255.255 Mask:255.255.255.255
inet6 addr: fe80::2d0:d7ff:fe0f:cca8/64 Scope:Link
UP BROADCAST RUNNING NOARP MULTICAST MTU:4096 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:236 (236.0 b) TX bytes:0 (0.0 b)
Base address:0x192
А в таблиці маршрутизації повинна з’явитись наступна строка
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.3.50 * 255.255.255.255 UH 0 0 0 dvb0_0
212.58.163.130* 255.255.255.255 UH 0 0 0 ppp0
loopback * 255.0.0.0 U 0 0 0 lo
default 212.58.163.130 0.0.0.0 UG 0 0 0 ppp0
Настав трепетний момент провірки працездатності мережевого інтерфейсу. Варіантів є два. Самий простий:
# tcpdump -ni dvb0_0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dvb0_0, link-type EN10MB (Ethernet), capture size 96 bytes
21:42:01.020568 IP 217.10.39.84.80 > <GW_IP>88.2909: . 1195548608:1195549945(1337)
ack 1701755686 win 57491
21:42:01.020584 IP 217.10.39.84.80 > <GW_IP>88.2909: . 1337:2674(1337) ack 1 win
57491
21:42:01.020586 IP 217.16.19.219.80 > 10.252.246.254.2394: S 3017247152:3017247152(0)
ack 4146269160 win 5840 <mss 1460>
Другий варіант провірки ще простіший:
linux-x0vn # dvbtraffic
0365 10 p/s 1 kb/s 15 kbit
1029 89 p/s 16 kb/s 134 kbit
1030 166 p/s 30 kb/s 250 kbit
1031 774 p/s 142 kb/s 1164 kbit
1036 312 p/s 57 kb/s 469 kbit
1037 616 p/s 113 kb/s 926 kbit
1038 1035 p/s 190 kb/s 1557 kbit
1039 678 p/s 124 kb/s 1020 kbit
1040 91 p/s 16 kb/s 137 kbit
1042 119 p/s 21 kb/s 180 kbit
1050 1 p/s 0 kb/s 2 kbit
1051 2161 p/s 396 kb/s 3250 kbit
1056 5 p/s 0 kb/s 8 kbit
1057 359 p/s 65 kb/s 540 kbit
1058 961 p/s 176 kb/s 1445 kbit
1059 5 p/s 0 kb/s 8 kbit
1101 244 p/s 44 kb/s 367 kbit
1102 222 p/s 40 kb/s 334 kbit
1103 9 p/s 1 kb/s 14 kbit
1104 166 p/s 30 kb/s 249 kbit
1105 49 p/s 8 kb/s 73 kbit
1109 1095 p/s 201 kb/s 1647 kbit
2000 9177 p/s 1684 kb/s 13802 kbit
-PID--FREQ-----BANDWIDTH-BANDWIDTH-
0365 9 p/s 1 kb/s 14 kbit
Тепер було-би добре скласти все в один скрипт наприклад skystar.sh
!bin/sh
/usr/local/bin/szap -c /etc/channels.conf -n 1 -x
/usr/local/bin/dvbnet -a 0 -p402
ifconfig dvb0_0 172.16.1.53 netmask 255.255.255.255 broadcast 255.255.255.255
ifconfig dvb0_0 hw ether 00:D0:D7:0F:CC:AB
route add 172.16.1.53 dev dvb0_0
echo 0 > /proc/sys/net/ipv4/conf/dvb0_0/rp_filter
Щоб цей скрипт став запускаємим, робимо chmod a+x skystar.sh
3. Зворотній канал.
Зверніть увагу що у вас вже повинен бути налатований зворотній канал. Особисто я використую GPRS – підключення від стільникового оператора Life:) . В мене воно відповідно працює через інтерфейс ppp0 . Саме налаштування цього інтерфейсу я поки-що не буду описувати.
Також слід зауважити що я не використовую саме OpenVpn підключення, а використувую Slonax(
http://www.onlyslon.org/slonax/). Остання версія в момент написання 2.00.07
Опис OpenVPN підключення з’явиться, але трошки пізніше.
4. Маскарадінг.
Відповідно щоб використовувати наші 2 підключення разом, потрібно замаскарадити два мережеві інтерфейси.
В моєму випадку це робиться наступними командами :
modprobe ipt_MASQUERADE
iptables -F; iptables -t nat -F; iptables -t mangle -F
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Ці строки можна сміливо дописати у наш скрипт зверху.
5. Слонакс.
Далі необіхдно провести налаштування власне слонакса і запустити його.
Приведу свій конфігураційний файл slonax_conf
# SlonAx client configuration file
[NETWORK]
remote_server_ip 212.44.94.246
remote_server_port 3444
[PROXY]
local_proxy_enabled yes
local_proxy_bind_to 127.0.0.1
local_proxy_port 8080
[SOCKS]
local_socks_enabled yes
local_socks_bind_to 127.0.0.1
local_socks_port 1080
[PORT_MAPPING]
port_map_bind 127.0.0.1
#port_map local_port->remote_ip:remote_port
port_map
port_map 110->pop3.mail.ru:110
port_map 6667->wenet.ru:6667
[AUTHENTICATION]
login ******
password *******
[SPEED]
# 'speed_auto' Works only with SatGate service.
speed_auto yes
# All speed in Kbyte/s.
speed_in 32
speed_out 1
[HTTP_SPEC_FLAGS]
http_econom_flags 65535
http_use_prefetch no
[TRANSPORT]
ptoto_type udp
mtu 1400
mru 1400
[WIN32]
set_ie_proxy yes
set_loopback no
safe_mode no
[DEBUG]
debug_level 5
debug_file debug.log
Дані настройки швидкостей виставлені для швидкості 256 кбіт\с і GPRS – підключення.
Що ж, нам залишається запустити самого слона. При правильному підключенні, версія 2.00.07 напише наступне
linux-x0vn:/home # linux-x0vn:/home/lin_dist # ./slnx_client
[2006.09.17 17:21:08] DEBUG Find PORTMAP: 110->pop3.mail.ru:110
[2006.09.17 17:21:08] DEBUG Find PORTMAP: 6667->wenet.ru:6667
[2006.09.17 17:21:08] MARK F:main: SlonAx v.2.0.7 (beta) 2006 SatGate LLC. All rights reserved.
[2006.09.17 17:21:08] MARK F:main: v.2_00_07 Build Tue, 29 Aug 2006 16:45:25 +0400 @papa-slon
[2006.09.17 17:21:08] MARK F:main: Starting standby service...
[2006.09.17 17:21:08] MARK F:xmit_thread: Created xmit thread....speed_limit =1
[2006.09.17 17:21:08] DEBUG F:service_thread: Im in alive service...
[2006.09.17 17:21:09] MARK F:try_register: Use magic key=49676 use sess_id=5510011
[2006.09.17 17:21:12] DEBUG F:try_register: Got register reply
[2006.09.17 17:21:12] DEBUG F:try_register: Got test alive packet.
[2006.09.17 17:21:12] DEBUG F:try_register: Success login 'dugjosat' to '212.44.94.246'
[2006.09.17 17:21:12] DEBUG F:try_register: Service info: 212.44.94.246:53482
[2006.09.17 17:21:12] DEBUG F:try_register: Transport parms: IP:172.16.1.53 HWaddr: 00:d0:d7:0f:cc:ab
[2006.09.17 17:21:12] MARK F:service_thread: got an alive...
[2006.09.17 17:21:12] MARK F:service_thread: got an alive...
[2006.09.17 17:21:12] MARK F:main: Starting PROXY service....
[2006.09.17 17:21:12] MARK F:main: Starting SOCKS service....
[2006.09.17 17:21:12] MARK F:main: Starting PORTMAP service....
[2006.09.17 17:21:13] MARK F:service_thread: got an alive...
[2006.09.17 17:21:13] DEBUG F:main: Map to: 110->194.67.23.102:110
[2006.09.17 17:21:18] DEBUG F:main: Map to: 6667->195.210.181.100:6667
[2006.09.17 17:21:18] MARK F:main: Start HTTP Economizer service...
Хоча я все-таки використовую більш стару версію 2.00.03 і вам поки-що рекомендую так як в момент написання http на порті 8080 не зовсім працював.
© Стражник Руслан . 2006 рік. Всі права захищено.