Установка TVLINK на роутер «D-Team Newifi D2» (OpenWRT).
Роутер «D-Team Newifi D2 (Newifi3)» был выбран не случайно. Очень мало моделей в этой ценовой категории (50$) могут похвастаться 512 Мб оперативной памяти на борту, что в сочетании с USB-3 портом дает возможность устанавливать множество программ. Начиная с Торрент-клиента, Samba-сервера и заканчивая тем же «TVLINK» …
Даже если все это Вам и не нужно, все равно советую обратить внимание на эту модель, потому как характеристики за такую цену впечатляют. Если коротко:
- Процессор MediaTek MT7621AT 880MHz 2 ядра/4 потока
- Оперативная память DDR3 512MB
- Flash память 32MB
- 5 гигабитных портов RJ45
- Порт USB 3.0
- Wi-Fi 2.4GHz 802.11n up to 300Mbps
- Wi-Fi 5GHz 802.11ac up to 867Mbps
- 4 антенны x 5dBi
- Поддержка прошивок OpenWRT/Padavan/AsusWRT/PandoraBox/DDWRT
Купить роутер можно на Aliexpress: в родной упаковке или без таковой (я брал без упаковки c OpenWRT-19.07 Clean).
Разметка и подключение USB-флешки.
Так как устройство имеет на борту всего 32 Мб флеш-памяти, нам понадобиться дополнительное место для установки программ. Я взял USB-3 флешку на 8 Гб. Вы можете использовать любую USB 2.0/3.0 флешку объемом от 2-х Гб. Как Вы понимаете, чем быстрее флешка — тем выше производительность системы.
С помощью программы «MiniTool Partition Wizard» на флешке было создано и отформатировано два раздела:
- 1 Гб для подкачки — Linux Swap
- 6.4 Гб (все остальное место) под основной раздел (overlay) — ext4
Подключим подготовленную флешку к роутеру. Предполагается, что у Вас установлена прошивка OpenWRT-19.07 и настроен доступ в интернет.
Я буду приводить команды для работы в терминале (по SSH), но большинство действий по установке программ, Вы можете делать из веб-интерфейса OpenWRT. Кому как удобнее…
Обновим список пакетов, установим нужные модули ядра для USB и перезагрузим устройство.
opkg update
opkg install block-mount kmod-fs-ext4 kmod-usb-storage e2fsprogs kmod-usb-ohci kmod-usb-uhci
reboot
Откроем в веб-интерфейсе раздел «System -> Mount Points» который появился после перезагрузки.
Добавим точки монтирования для «/overlay» и Swap-раздела.
Должно получиться примерно так. Не забывайте сохранять изменения.
На снимке экрана выше, Вы должны были заметить, что каталог «/tmp» (tmpfs) у нас объемом всего 250 Мб. «TVLINK» активно работает с этим каталогом, когда создает EPG, а как Вы знаете XMLTV-файлы могут достигать и 400 Мб. То есть нам нужен размер побольше.
На вкладке «System -> Startup -> Local Startup» перед строкой «exit 0» вставим
mount -t tmpfs -o remount,size=1G tmpfs /tmp
Эта команда увеличит размер «/tmp» до 1-го Гб.
Теперь перенесем «overlay»-раздел на «ext4»-раздел нашей флешки.
mount /dev/sda1 /mnt
cp -a -f /overlay/. /mnt
umount /mnt
Здесь «/dev/sda1» это ext4-раздел флешки. Дополнительную информацию по переносу «Корневой файловой системы на внешнее устройство» Вы можете найти здесь.
Если все сделано верно, то после перезагрузки Вы можете убедиться, что теперь хватает места для установки любых программ.
Установка «TVLINK».
В OpenWRT-19.07 несколько устаревшая версия «Sqlite-3.31».
Там ограничение на количество аргументов (999) в запросе. Это может вызвать проблему если Ваш плейлист содержит больше тысячи каналов. Я специально собрал более новую версию (3.33) где этот лимит составляет 65000.
Установим ее:
opkg install tar wget
wget —no-check-certificate https://raw.githubusercontent.com/AlexELEC/NanoPi-R1/ae/libsqlite3-0_3330000-2_mipsel_24kc.ipk
opkg install libsqlite3-0_3330000-2_mipsel_24kc.ipk
rm -f libsqlite3-0_3330000-2_mipsel_24kc.ipk
Установим «Python» и нужные модули:
opkg install python3 python3-certifi python3-chardet python3-cryptodome python3-pip python3-requests python3-six
cd /usr/bin
ln -sf python3.7 python
cd ~
python -m pip install —upgrade pip
pip install pycountry
pip install isodate
pip install pysocks
Скачаем и распакуем «TVLINK». Актуальную версию Вы можете найти здесь. На сегодня это версия 2.1.7.
wget —no-check-certificate https://github.com/AlexELEC/TVLINK-mips/releases/download/2.1.7/TVLINK-2.1.7.tar.bz2
mkdir -p /opt/tvlink
tar -jxf TVLINK-2.1.7.tar.bz2 -C /opt/tvlink
rm -f TVLINK-2.1.7.tar.bz2
Запустим и проверим все ли в порядке (Ctrl+C — выход из программы):
/opt/tvlink/tvlink
Если проблем не обнаружено, активируем сервис:
cd /etc/init.d
wget —no-check-certificate https://raw.githubusercontent.com/AlexELEC/NanoPi-R1/ae/tvlink && chmod +x tvlink
cd ~
/etc/init.d/tvlink enable
/etc/init.d/tvlink start
Когда что-то пошло не так, Вы всегда можете откатить систему к настройкам «по-умолчанию». Для этого нужно зажать на 5 секунд кнопку «WPS» (она не подписана на моей модели) и подождать пока роутер перезагрузиться. Вторая кнопка (Reset) используется для загрузки в Breed. Это если нужно сменить прошивку.