Приятного времени суток.
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)
#!/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 ..
#!/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