Как превратить медиаплеер в неттоп?

в 8:42, , рубрики: realtek, Железо, медиаплеер, Медиаплееры, Неттоп, метки: , ,

Приятного времени суток.

FullHD медиаплееры уже перестали быть новинкой среди устройств воспроизведения медиаконтента. На рынке можно найти огромное количество устройств и моделей с различными характеристиками аппаратной части и разными прошивками ПО.

В данной статье речь пойдет о том, как научить медиаплеер не только воспроизводить видео и музыку, качать торренты и быть сетевой «шарой», но и поддерживать сервисы, различной степени надобности.

В качестве подопытного кролика будет медиаплеер на базе чипсета Realtek RTD1186DD. Разновидностей плееров на данном чипсете просто дикое количество. В магазинах представлены модели таких фирм как iNeXT, iconBIT, BlueTimes, Evaaa, Dune, Xtreamer, Digma, 3Q, Egreat и множество других. У каждого есть обзоры в интернете.

Мой домашний медиаплеер, который успешно прошел экзекуцию, называется BlueTimes Eva Vision. Спустя какое-то время после покупки медиаплеера, желание крутить и вертеть все таки взяло верх.

Основные характеристики устройства, которые интересны в рамках данной статьи:

  • Процессор: Realtek 1186DD SoC, 1200 DMIPS MIPS Processor 750MHz
  • Память: 512MB DDR3
  • Flash: 4GByte NAND Flash
  • Операционная система: Linux + Android 2.2
  • HDD: SATA 2Тб WD 5400rpm 64Mb Caviar Green (в стандартную комплектацию не входит)
  • Поддержка файловых систем: EXT3, FAT32, NTFS
  • LAN: RJ-45 Gigabit LAN 10/100/1000
  • WiFi: a/g/n до 300 Мбит/с

Жутко неудобным оказалось управление плеером по telnet, и я стал искать как бы запилить на медиаплеер ssh. Проведя в поисках какое-то время, мне на глаза попала система управления пакетами Ipkg. Благодаря ipkg можно в привычном виде устанавливать пакеты, собранные под архитектуру mipsel.

Файловая система медиаплеера состоит из двух файловых систем: yaffs (/data) и squashfs (/system).

Все пакеты Ipkg устанавливает в /opt, который изначально смотрит на /system/rtl_rootfs/bin/opt (упомянутый read only squashfs). Поэтому нужно перенести /opt на файловую систему yaffs. Сделать это можно путем внесения изменений в прошивку.

Для работы с прошивкой нужно установить несколько утилит:

~#sudo apt-get install subversion cvs
~#svn checkout http://unyaffs.googlecode.com/svn/trunk/ unyaffs-read-only
~#cd unyaffs-read-only
~/unyaffs-read-only#gcc -o unyaffs unyaffs.c
~/unyaffs-read-only#sudo cp unyaffs /usr/local/sbin
~/unyaffs-read-only#sudo apt-get install mtd-utils
~/unyaffs-read-only#export CVSROOT=:pserver:anonymous@cvs.aleph1.co.uk:/home/aleph1/cvs cvs logon
~/unyaffs-read-only#cvs checkout yaffs2
~/unyaffs-read-only#cd yaffs2/utils
~/unyaffs-read-only/yaffs2/utils#make
~/unyaffs-read-only/yaffs2/utils#sudo cp mkyaffs2image mkyaffsimage /usr/local/sbin

~#sudo apt-get install zlib1g-dev
~#wget http://internode.dl.sourceforge.net/project/squashfs/squashfs/squashfs4.0/squashfs4.0.tar.gz
~#tar xzvf squashfs4.0.tar.gz
~#cd squashfs4.0/squashfs-tools
~/squashfs4.0/squashfs-tools#make install

Для удобства я сделал два скрипта (положил в /tmp)

unpack.sh

#!/bin/bash
rm -rf install
rm -rf squashfs1
rm -rf yaffs2_2
mkdir install
cd install
tar -xf ../install.img
cd ..
unsquashfs -dest squashfs1 ./install/package5/squashfs1.img
rm ./install/package5/squashfs1.img
cd ..

pack.sh

#!/bin/bash
rm ./install/package5/squashfs1.img
mksquashfs squashfs1 ./install/package5/squashfs1.img
cd install
rm ../install_new.img
tar -cf ../install_new.img *
cd ..

Копируем загруженную прошивку в /tmp install.img и запускаем ./unpack

Далее нужно перенести /opt на read-write раздел. Открываем файл vim squashfs1/etc/init.venus.sh и делаем следующие изменения:

24,25c24,27
< 
< ln -s /system/rtk_rootfs/bin/opt /opt 
---
> if [ ! -d /data/opt ]; then
> cp -R /system/rtk_rootfs/bin/opt /data/
> fi
> ln -s /data/opt /opt

Запаковываем прошивку обратно, запустив скрипт ./pack.sh

Устанавливаем прошивку на плеер обычным для него способом.

Пример установки пакета выглядит так:

/opt/bin#./ipkg update
/opt/bin#./ipkg list
/opt/bin#./ipkg install openssh

Ну, а после того как механизм налажен, были добавлены bash, svn.
Далее варианты использования расходятся. Можно хостить небольшой сайт, можно устроить svngit репозиторий. В общем в ipkg достаточно много пакетов и каждый наверняка найдет для себя что-то полезное. Я прокинул на своем dir-615 несколько портов до медиаплеера и сейчас имею свой закрытый мини репозиторий SVN.

Естественно не стоит забывать что памяти на медиаплеере не сильно много, да и процессор не i7. Всегда стоит использовать в меру, но мера у каждого своя.

Автор: iklementiev

* - обязательные к заполнению поля