пятница, 15 октября 2010 г.

Меня не будет неделю...

Я готовлюсь к кругосветке на яхте.

Сегодня ухожу на катамаране через средиземное море.

Отчет, как всегда будет размещен на топе моего блога.

Увидимся через неделю.

HDX BD-1. Новая версия прошивки 4.22 rc3

Вчера появилась новая версия прошивки. Это еще release cadidate, поэтому некоторая функциональность, в основном связанная с локализацией, не работает. Но то, что сделано уже очень даже неплохо.

А именно:
Улучшен вид главного экрана за счет повышения контраста иконок и надписей.
Внешняя USB или BT клавиатура работает во всех режимах: и в браузере, и в окне.
В разделе Internet появились новые пункты меню:
  • Online video - можно смотреть клипы Youtube
  • Online music - пока заглушка в виде браузера уходящего на китайский сайт

Скорость проводного интерфейса пока без изменений.
На скриншоте midnight commander, установленный в BD-1 копирует с ReadyNas Duo.

Я поставил, мне нравится

Как установить firmware

Midnight Commander v 4.7.4-54 для HDX BD-1.

Эта статья устарела. Для установки используйте ipkg.

Собрал текущую версию Midnight Commander. Архив качать отсюда: mc-4.7.4-bd1.tar.gz
Инструкции по самостоятельной сборке здесь.








Устанавливать так: sh-3.00# mv /opt /opt_org sh-3.00# mkdir -p /HD_Media/hda3/.opt/opt sh-3.00# ln -s /HD_Media/hda3/.opt/opt / sh-3.00# ln -s /HD_Media/hda3/sybhttpd /opt sh-3.00# cd / sh-3.00# tar -xzvf /path-to-archive/mc-4.7.4-bd1.tar.gz sh-3.00# cat >> "/persistfs/senv.sh" <<\EOF > #!/bin/sh > > if [ ! -d /opt_org ] > then > mv /opt /opt_org > ln -s /HD_Media/hda3/.opt/opt / > fi > > export PATH=/opt/bin:$PATH > export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH > alias mc="mc -c" > EOF sh-3.00# chmod +x /persistfs/senv.sh sh-3.00#
Запускать так: sh-3.00# source /persistfs/senv.sh sh-3.00# mc

среда, 13 октября 2010 г.

HDX BD-1. Hack. порядок загрузки.


Все это еще находится на стадии исследования и отладки!

На диаграмме показан порядок запуска скриптов при старте HDX BD-1.

Все проверки на условия запуска для простоты опущены.

Идеологически правильно будет вставлять код запуска OptWare в скрипт run_mbox непосредственно перед вызовом /flash/netapp/run_netapp.sh &. Потому как установка окружения OptWare это более низкий уровень, нежели запуск приложений.
Но жесткий диск успевает смонтироваться только к концу скрипта
Скрипт run_mbox. Добавленный код окрашен коричневым цветом.
#!/bin/bash

ulimit -s 2048
export LD_LIBRARY_PATH=/flash/lib:/flash/bdj/jvm/lib:/flash/bdj/bdj/lib:/flash/bdj:$LD_LIBRARY_PATH:/opt/lib
export PATH=/flash/bdj/jvm/bin:/flash/bin:$PATH:/opt/bin
export DFB_CONFIG_DIR=/flash/sample_config
export CDROM_DEVICE_NAME="/dev/srsata0"
export CDROM_MOUNT_POINT="/cdrom"
export APPSTOREFS="/persistfs"
export PERSISTFS="/persistfs"
export BDJ_PROVIDER_DIR="/flash/bdj"
export DCCHD_LOG_CFG="/flash/bdj/dcchdlog.cfg"
export QT_INSTALL_DIR=/flash/qt

cd /flash/bdj
source bdj.env

cd  /flash
export LLAD_PARAMS='max_dmapool_memory_size=0x800000 max_dmabuffer_log2_size=19'
source run.env
./unload_imat.bash
fw_reload_t3.bash
cd  /flash/qt
source qt.env
mkdir -p /home/iso/
#mkdir  -p /home/robin/sigma/8643/sdk371/qt_SMP86xx_src_4.5.0-1.2/
#ln -s /flash/qt  /home/robin/sigma/8643/sdk371/qt_SMP86xx_src_4.5.0-1.2/install
mkdir -p /home/robin/sigma/8643/SMP8642-BDSDK-20100430/qt_SMP86xx_src_4.5.2-1.1/
ln -s /flash/qt /home/robin/sigma/8643/SMP8642-BDSDK-20100430/qt_SMP86xx_src_4.5.2-1.1/install



ln -s /flash/qt/arora/Settings /Settings
export QTWEBKIT_PLUGIN_PATH=/flash/qt/arora/plugins

cd /flash/lib

#mkdir /dev/usb
#mknod /dev/usb/lmedev_usb c 180 201
#insmod lydev.ko
insmod zhd_hdp.ko
mknod /dev/zhd-hdp c 223 0
insmod zhdi2c_drv.ko
mknod /dev/zhd_i2c c 221 0

mknod /dev/ir c 254 0
mknod /dev/fip c 253 0
mknod /dev/fipkernel c 250 0
insmod fipkernelzhd.ko
mkdir -p /dev/mapper
mknod /dev/mapper/loop0 b 254 0

insmod zhdbus.ko
insmod dvb-core.ko 
insmod lgs8g52.ko
insmod zhdsoftdvb.ko
mkdir -p /dev/dvb/adapter0
mknod /dev/dvb/adapter0/demux0 c 212 0
mknod /dev/dvb/adapter0/dvr0 c 212 1
mknod /dev/dvb/adapter0/frontend0 c 212 3
mknod /dev/dvb/adapter0/net0 c 212 2

#/flash/bin/osdbuf_control -Ftc:32bpp -0 0 -1 255 -a 1 -cs rgb_0_255 -c1280x720 -no_disp
#insmod em8xxxfb.ko  videomemory=0x8ef72bac videomemorysize=3686400 palette=0x79000 mode=1280:720:32

mkdir /DVD_Media
mkdir -p /NETPLAY_Media/UPNP/
mkdir -p /Web_Media/My_Browser
mkdir -p /Web_Media/My_Music
mkdir -p /Web_Media/My_Movie
mkdir -p /Web_Media/My_Photo
mkdir -p /Hdtv_Media/My_Hdtv
 
cd /flash/bin
./irserver ./key_rc.conf ./fip.conf ./fip_gpio_lme.conf ./zhd_driver.conf &
export HD_PATH=/HD_Media/
export ROM_PATH=/DVD_Media/
export WEB_PATH=/Web_Media/
export USB_PATH=/USB_Media/
export NETPLAY_PATH=/NETPLAY_Media/

fsck.ext3 -p /dev/sigmablock8;mount -t ext3 -o noatime /dev/sigmablock8 /mnt/ || (mkfs.ext3 -b 2048 /dev/sigmablock8; tar xjvf /flash/sigma.bin.tar -C /tmp/; dd of=/dev/sigmablock8 if=/tmp/sigma.bin; sync; mount -t ext3 -o noatime /dev/sigmablock8 /mnt/; rm -f /tmp/sigma.bin )
fsck.ext3 -p /dev/sigmablock9;mount -t ext3 -o noatime /dev/sigmablock9 /zhddata/ || (mkfs.ext3 -b 2048 /dev/sigmablock9; sync; mount -t ext3 -o noatime /dev/sigmablock9 /zhddata/; cp /flash/setting.cfg_org /zhddata/setting.cfg; sync )
mkdir -p /persistfs
mount -o noatime /dev/sigmablock17 /persistfs
mkdir -p /persistfs/bdj/buda
mkdir -p /persistfs/bdj/ada

./httpdownload &
./frontpanel &
#./set_outports  -analog -asp 16 9 -f NTSC_M -component -f 720p59 -asp 16 9 -digital -f  HDMI_720p59  -asp 16 9 -audio_engine 0 
./av_shell.sh &


/flash/netapp/run_netapp.sh &

sleep 5
for i in $( ps | grep av_shell | grep -v grep | cut -f 1 -d 'r' );
        do /flash/bdj/mychpr -pid $i -prio 1 -sched 2;
done 


########################################################
# Setting /opt for OptWare
if [ -e /HD_Media/hda3/.opt/opt/bin/optware_start.sh ]
then
  /HD_Media/hda3/.opt/opt/bin/optware_start.sh
fi
########################################################

В терминале создать на диске структуру каталогов /opt
#!/bin/bash

# This for setup opt directory. Not needed for starting
mkdir -p /HD_Media/hda3/.opt/opt
mkdir -p /HD_Media/hda3/.opt/opt/bin
mkdir -p /HD_Media/hda3/.opt/opt/lib
В /HD_Media/hda3/.opt/opt/bin создать файл optware_start.sh с таким содержимым:
#!/bin/bash

mv /opt /opt_org
ln -s /HD_Media/hda3/.opt/opt / 
Теперь после загрузки BD-1 жесткий диск будет смонтирован в /opt и будут установлены соответствующие пути.

По результатам обновил OptWare project timeline


Полезные ссылки:

понедельник, 11 октября 2010 г.

HDX BD-1. OptWare project

В процессе работы мое понимание будет меняться. Данная статья тоже будет обновляться. На данном этапе мне видится так:
  1. Спроектировать файловую систему


    Громко сказано, для этого нужно всего-навсего

  2. Проверить работу существующего репозитория для Asus WL500gP

    • http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/Packages
      На Dune используют репозиторий, скомпилированный под роутер Asus WL500gP
      И Asus, и Dune и HDX BD-1 сделаны на процессорах MIPSel.

      В Asus установлен процессор BCM4704, в Dune 1 и Dune 2 - SMP8634 (MIPS32 version 1), а в HDX BD-1 и Dune 3 - SMP8642 (MIPS32 rel2 version 1).

      В свое время я пытался запускать программы из репозитория WL500gP на HDX1000 (SMP8634). Некоторые запускались, некоторые давали ошибку типа "... overflow".

      Полагаю, что на Dune 3 и HDX BD-1 репозиторий от Asus работать не будет. Нужно проверять.
      Александр Александров (AVATARA) ответил, что для Dune 3 (8642) он использовал "костыль" в виде библиотеки загрузчика ld-uClibc.so.0
      Для совместимости он установил пакет из репозитория WL500gP uclibc-opt_0.9.28-13_mipsel.ipk.

    • Поизучав немного, что сделал AVATARA меня терзают смутные сомнения в необходимости переходить к следующему пункту.

    Оказалось, что портирование программ и библиотек не такой уж сложный процесс. Я за 3 дня упорной работы успешно спортировал два десятка программ. Если кто проявит желание установить и отладить uclibc - велкам. А я двинусь в сторону собственного репозитория.

  3. Собрать систему установки дистрибутивов ipkg.


    Во многих устройствах подобного класса применятся система управления дистрибутивами ipkg. Думаю, не стоит выдумывать ничего лишнего и нового. Она проверена и работает: В зависмости от результатов проверки возможности работы репозитория на HDX BD-1
    потребуется пересобрать ipkg или использовать существующую.

  4. Написать инструкцию по сборке и установке пакетов.


    Инструкции уже написаны:
  5. Возможно их нужно будет адаптировать под этот проект.

  6. Спортировать репозиторий optware для mipsel r2, Sigma 864x


  7. Определиться с местом хранения репозитория.


    В зависмости от результатов проверки возможности работы репозитория на HDX BD-1
    потребуется собирать новый репозиторий.

    Нужно двигаться эволюционно:
    1. Обеспечить совместимость с репозиторием от Asus WL500gP
    2. Начать портирование в репозиторий под Mipsel V2 Sigma 864x/865x

    3. Создать локальный репозиторий

    4. Разместить репозиторий на публичном хостинге
Дополнения, замечания, критика приветствуются.
Если Вы хотите поучавствовать - всегда добро пожаловать.


Полезные ссылки:

Похожие проекты

  • http://forum.hdtv.ru - Dune: Установка Optware, а так же Midnight Commander, OpenSSH, Transmission...
  • http://playonhd.ucoz.ru/ - Проект podware для медиаплееров на базе Realteck, предполагающий нативную компиляцию на плеере.
  • http://www.azbox-enigma.eu/ - Enigma 2 - проект создания открытой прошивки для AzBox
  • http://www.opentvix.com/ - OpenTViX is a community which aims on building a free environment for the tvix mediaplayer
  • http://nmt200.ru/ - Оригинальный сайт поддержки оборудования Networked Media Tank. Автором разработана своя модификация прошивки, включающая в себя некоторое количество популярных linux программ.

Разное

  • http://forum.ixbt.com/topic.cgi?id=62:16871-122 - сюда стоит смотреть только из любопытства, инструкции изобилуют ошибками, ну и срач по поводу авторства присутствует.
  • http://www.dietpc.org/build.html - DIET-PC Component Compilation Notes. Замечания по компиляции программ для бездисковых станций

Upd 13/10/10. обновлена timeline, поставлена отметка о начале портирования репо
Upd 15/10/10. Выполнена работа по созданию локального репозитория
Upd 24/10/10. Написан скрипт установки ipkg и инструкция по его использованию.
Upd 26/10/10. Произведена ревизия работ.