Показаны сообщения с ярлыком optware. Показать все сообщения
Показаны сообщения с ярлыком optware. Показать все сообщения

четверг, 2 июня 2011 г.

Samba for HDX BD-1. Part 2.

Пересобрал полный пакет.
Теперь он ставит сразу правильный smb.conf и после установки автоматически стартует самбу сервер.
Если вы уже установили Samba, то нужно сделать upgrade # ipkg update # ipkg upgrade Если Samba еще не стоит, то просто установите ее: # ipkg update # ipkg install samba
На скриншоте показаны ресурсы, которые отдает HDX BD-1 в группу WORKGROUP:

При этом тесте использовался компьютер с Athlon 1,6 GHZ и сетевой картой Reaktek RTL8139 10/100 MB на сети с максимальной пропускной способностью 1 GB.

После перезагрузки hdx bd-1 самба сама не поднимаются.
Нужно в терминале дать команду: # /opt/etc/init.d/samba start Автостарт сделаю чуть попозже в рамках маленького патча autostart-opt.ipk

В общем жду от вас баг-репортов.

вторник, 31 мая 2011 г.

Samba for HDX BD-1

Ночью спортировал на HDX BD-1 Samba с отключенным ldap.

Пакет большой. Установочный размер 44 MB. На диске займет 230 MB. Залил на сервер.

Ничего не настраивал. Просто попробовал позапускать пару команд.
params.c:Parameter() - Ignoring badly formed line in configuration file: *passwd:*all*authentication*tokens*updated*successfully* Enter root's password: WORKGROUP \\SUN \\SUN\C$ Стандартный общий ресурс \\SUN\ADMIN$ Удаленный Admin \\SUN\F$ Стандартный общий ресурс \\SUN\Games \\SUN\D$ Стандартный общий ресурс \\SUN\IPC$ Удаленный IPC \\SUN\E$ Стандартный общий ресурс \\BRW002269A5682D cli_start_connection: failed to connect to BRW002269A5682D<20> (0.0.0.0). Error NT_STATUS_CONNECTION_REFUSED VOLUME \\READYNAS1 ReadyNas1 \\READYNAS1\backup Backup Share \\READYNAS1\media Media Server Share \\READYNAS1\webroot \\READYNAS1\addons-config \\READYNAS1\IPC$ IPC Service (ReadyNas1)
\\SUN - Компьютер с Windows XP
\\BRW002269A5682D - MFU Brother 7840wr
\\READYNAS1 - Nas NetGear ReadyNas Duo

Если есть отважные - вперед.

Установка

Ставится как обычно: ipkg update ipkg install samba Сетевые ресурсы нормально монтируются и пишутся. sh-3.00# mount.cifs 192.168.1.65:media /opt/tmp/samba Password: sh-3.00# ls /opt/tmp/samba BitTorrent Pictures Videos tmp Books Splatter Brushes nas3d0 x200s.backup Music Src stuff sh-3.00#


Баги

№ п/пБагСтатус
11. Переместить /opt/lib/smb.conf в /opt/etc/smb.conf
2. Переместить log.nmbd и log.smbd в /var/log
closed
3.5.8.7
2Не видны разделяемые ресурсы.
Команда smbtree вает ошибку :
Receiving SMB: Server stopped responding
log.smbd :
check_ntlm_password: Authentication for user [root] -> [root] FAILED with error NT_STATUS_LOGON_FAILURE
Установить пароль для пользователя root, выполнив команду smbpasswd
closed
3.5.8.5
3Для проверки обмена в асинхронном режиме для ускорения работы собрать с опцией --with-aio-supportclosed
3.5.8.6
4Команда testparm дает предупреждение
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
В /opt/etc/init.d/samba добавлена команда ulimit -n 16384
сlosed
3.5.8.7
5log.smbd:
[2011/06/03 10:11:24.438878, 0] printing/pcap.c:178(pcap_cache_reload)
Unable to open printcap file /etc/printcap for read!
Решено. Добавить в smb.conf
[global]
printcap name = /dev/null
load printers = no
сlosed
3.5.8.7
6Очень! низкая скорость копирования.
open
7После монтирования ресурса hdx на ReadyNAS Duo, в hdx:/var/log/log.smbd появилась запись:
[2011/06/03 10:40:50.282519, 1] smbd/service.c:1070(make_connection_snum)
192.168.1.65 (192.168.1.65) connect to service Downloads initially as user root (uid=0, gid=0) (pid 20442)
[2011/06/03 10:40:50.311690, 1] smbd/dosmode.c:255(get_ea_dos_attribute)
get_ea_dos_attributes: Cannot get attribute from EA on file .: Error = Operation not supported
open
8--
9--
10--

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

среда, 25 мая 2011 г.

ruTorrent на HDX BD-1

Завершил портирование связки торрент клиента rTorent и web морды к нему ruTorrent на HDX BD-1
Забрал он у меня 10 дней. Взамен дал интересную задачку.
В рамках проекта я портировал на нашу железку 22 пакета.





Установка

Для того, чтобы установить систему на устройство убедитесь, что у вас установлена система управления пакетами ipkg

Введите в терминале последовательно следующие команды: # ipkg update # ipkg upgrade # ipkg install -force-overwrite rutorrent Автоматически будут установлены необходимые пакеты, файлы конфигурации и будет запущен ruTorrent.

Проверка

Чтобы проверить, что все пучком, можно ввести в терминале следующую команду: # rutorrent chk There is a screen on: 1859.rTorrent (Detached) 1 Socket in /tmp/screens/S-root. rtorrent - 1873 lighttpd - 1861 Вывод показывает, что зпущен screen и в нем одна сессия rtorrent. Еще запущены rtorrent и lighttpd. Цифры показывают PID процесса. У вас они будут другими.

После старта автоматически останавливается штатный http сервер mini_httpd и вместо него, как вы поняли запускается lighttpd
Чтобы подключиться к ruTorren-у в url наберите: http://<ip-addres-hdxbd1>:8081
Доступ к внутреннему диску из браузера можно получить, набрав в адресной строке http://<ip-addres-hdxbd1>:8081/hdd


Немного технической информации.

Файлы конфигурации .rtorrent.rc и lighttpd-rtorrent.conf лежат в /opt/etc
Перед их правкой остановите rutorrent командой # rutorrent stop Соответсвенно запускать ruTorrent нужно командой # rutorrent start
Хорошее и полное описание параметров файла конфигурации rtorrent.rc есть в русской wiki: http://ru.wikibooks.org/wiki/RTorrent

Скорость скачки у этого клиента высокая, но и процессор он грузит тоже неплохо:

Когда я поставил на закачу 4 торрента с размерами около 10 GB, скорость была в районе 3-4 MB. При этом, естественно, устройство "отзывается" плохо и может повиснуть.
Лучше ограничить скорости передачи. У меня на скорости 1 MB все живет стабильно.

Дисклаймер

Ни за что не отвечаю 8)
Если что не так - пишите. Разберемся.
Да и если все так - тоже пишите. Фидбеки очень важны.
Практически полная информация о том, как самостоятельно собрать все пакеты и ссылки на патчи, есть в форуме.
Viola - это не сыр.

Вкусности Transdroid

Владельцы телефонов на базе Android могут еще больше расширить фукциональность ruTorrent установив на телефон приложение Transdroid.
Для начала работы досаточно ввести ip-адрес устройства, на котором установлен торрент клиент, адрес порта и выбрать тип сервера.
Программа позволяет посмотреть состояние скачиваемых торрентов ...
... и детализацию каждого торрента.
Кроме указанных базовых возможностей можно предварительно настроив поисковый сервер и торрент-сервер осуществить поиска и постановку на скачивание найденного торрента
Я не буду пересказывать все возможности. Лучше ознакомиться с ними на странице проекта Transdroid

воскресенье, 15 мая 2011 г.

rtorrent для HDX BD1

Собрал пакет rtorrent и поместил его в репозиторий.

Устанавливать так:
sh-3.00# ipkg update sh-3.00# ipkg install rtorrent
Дальше ipkg сам найдет необходимые пакеты и установит их: Installing rtorrent (0.8.6) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/rtorrent_0.8.6_mipsel-rel2.ipk Installing curl (7.21.6) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/curl_7.21.6_mipsel-rel2.ipk Installing openssl (0.9.8k) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/openssl_0.9.8k_mipsel-rel2.ipk Installing libtorrent (0.12.6) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/libtorrent_0.12.6_mipsel-rel2.ipk wget: /opt/lib/libcrypto.so.0.9.8: no version information available (required by wget) wget: /opt/lib/libssl.so.0.9.8: no version information available (required by wget) Configuring curl Configuring libtorrent Configuring openssl Configuring rtorrent Successfully terminated. sh-3.00#
Запуск из командной строки: sh-3.00# rtorrent


Нужно тестировать.
Кто попробует?

Есть мелкие баги, не влияющие на работу (в основном ощибки связанные с номером версии). Вреда они нанести не должны.
Но, тем не менее, как всегда я ни за что не отвечаю. :D

ЗЫ. Процесс компиляции описан в форуме: http://antisclerosis.forumup.com/viewtopic.php?p=376&mforum=antisclerosis#376

PS2. Цель собрать связку rtorrent/rutorrent. Работа относительно объемная. Если, кто желает присоединиться к проекту порта rtorrent/rutorrent на HDX BD-1 - велкам.

среда, 8 декабря 2010 г.

HDX BD-1. Интернет TV

WEB TV было на китайском языке. Сделал гуглоперевод.
Смотрится грубо, но стало возможно хотя бы ориентироватся.

Переведенный файл упаковал вместе со списком радиоканалов, поэтому, если ранее был поставлен пакет ip-radio-list, то просто обновитесь: # ipkg update # ipkg upgrade А если пакет ip-radio-list установлен не был, то установите его.

Если Вы хотите помочь себе и другим отредактируйте файл net_tv_channel.list, изменив назавние канала так, чтобы оно было не более 10 символов.
Если название канала состоит из двух слов между ними лучше поставить дефис "-".

Upd. 12.12.2010

вторник, 7 декабря 2010 г.

Радио в HDX BD-1

Прошивка 4.25.rc2 поддерживает online радио. Но в составе прошивки список радиостанций совершенно не пригодный для использования.

Я подготовил список из более чем 100 станций разных жанров и направлений. Его основу составляет список радиостанций от Radio-101.



Как установить новый список радиостанций в HDX BD-1 можно с помощью ipkg.

  1. Установите ipkg, если еще не установлен.
  2. Установите новый список радиостанций sh-3.00# ipkg update sh-3.00# ipkg install ip-radio-list
Если Вы захотите восстановить исходный список, поставляемый с прошивкой, то выполните команду: sh-3.00# ipkg remove ip-radio-list

Если у Вас есть адрес станции, которого нет в пакете - поделитесь

Список станций, их категоризация сделаны достаточно быстро и далеко небезупречно.
Я буду его периодически обновлять.
Если у вас есть список проверенных станций, просто пришлите мне его по почте, или введите в базу с помощью этой формы. Я включу эти станции в пакет.

Здесь можно посмотреть какие станции ввели Вы и другие пользователи.

Как установить вручную

Если Вы по религиозным соображениям не хотите устанавливать ipkg, ниже приведены короткие инструкции, как вручную обновить список радиостанций.
Список радиостанций нужно положить в /flash/bin и /zhddata.
Каталог /flash/bin смонтирован с правами "только на чтение".
Чтобы записать туда что нибудь нужно перемонтировать его командой: # mount -o rw,remount /dev/sigmablock7 После того, как файл будет записан нужно вернуть каталогу права "только на чтение" # mount -o ro,remount /dev/sigmablock7 В каталог /zhddata файл записывается, как на обычный диск.
Сам список можно вытащить из пакета ip-radio-list_0.1_mipsel-rel2.ipk
Пакет находится здесь : http://axa-ru.blogspot.com/2010/11/hdx-bd-1-ncurses-screen-and-nano.html

Файл ipk представляет собой обычный tar архив.
Описание его можно посмотреть здесь: http://axa-ru.blogspot.com/2010/10/hdx-bd-1-how-to-build-distribution-with.html

среда, 1 декабря 2010 г.

HDX BD-1. Установка midnight commander из репозитория.

В октябре была опубликована статья по установке midnight commander на HDX BD-1.Эта статья уже устарела и пользоваться ей не нужно.
С ipkg все ставится значительно проще.




  1. Установите ipkg, если еще не установлен.
  2. Установите midnight commander sh-3.00# ipkg update sh-3.00# ipkg install mc
Вуаля! ... а не какая не Виола.

Updated 03/12/2010. При запуске mc возможно появление ошибки: sh-3.00# mc sh: mc: No such file or directory В этом случае нужно удалить остатки исполняемого модуля midnight commander, скопированные в директорию /bin при установке telnetd sh-3.00# rm /bin/mc

воскресенье, 28 ноября 2010 г.

HDX BD-1. Граббим диски.

Наше устройство может очень хорошо граббить диски. И хотя, пока еще из сети можно черта лысого скачать, бывает так, что самому сграбить будет лучше.
Приступим:
  1. Установите ipkg, если еще не установлен.
  2. Установите abcde sh-3.00# ipkg update sh-3.00# ipkg install abcde
Всё... Вставляем в привод аудио диск и граббим следующей командой: sh-3.00# abcde -c /opt/etc/abcde.conf Если диск не совсем голимый и описание его присутствует в интернет базе CDDB, то оно автоматически запишется в теги id3.
Вот пример граббинга диска Fireworks электронной команды Software Getting CD track info... Grabbing entire CD - tracks: 1 2 3 4 5 6 7 8 9 10 11 12 13 Retrieving 1 CDDB match...done. ---- Software / Fire-Works ---- 1: Salut 2: Lightning Bugs 3: Red Comets 4: Firefly Bouquet 5: Golden Rain 6: Flash Report 7: Bombette Party 8: Crisanthemum Beauty 9: Fireballs 10: Colourful Sphere 11: Software, Meteroits 12: Fireworks Tattoo 13: Final Lightning Edit selected CDDB data? [y/n] (n): Is the CD multi-artist? [y/n] (n): Программа считала исполнителя, названия диска и треков и спрашивает: "будем редактировать?"
Нажимаем Enter
На второй вопрос тоже отвечаем отрицательно и процесс пошел. Grabbing track 1: Salut... cdparanoia III release 10.2 (September 11, 2008) Ripping from sector 0 (track 1 [0:00.00]) to sector 13755 (track 1 [3:03.30]) outputting to /share/abcde.bd0f700d/track1.wav (== PROGRESS == [ | 013755 00 ] == :^D * ==) Done. Grabbing track 2: Lightning Bugs... cdparanoia III release 10.2 (September 11, 2008) Ripping from sector 13756 (track 2 [0:00.00]) to sector 37490 (track 2 [5:16.34]) outputting to /share/abcde.bd0f700d/track2.wav (== PROGRESS == [ > | 023279 00 ] == :-) 0 ==) . . . . . . . . . . . . . . . Программа будет любым способом пытаться считать треки с диска.

Если трек беспроблемный во время чтения напротив него будет нарисована веселая рожица :-).
После того, как трек считается, будет такая рожица :^D

После того, как все дорожки будут скопированы, крышка привода автоматически откроется и начнется кодирование треков.
В нашем случае в качестве кодера указан lame, но может быть установлен любой.
Encoding track 3 of 13: Red Comets... LAME 3.98.4 32bits (http://www.mp3dev.org/) Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz Encoding /share/abcde.bd0f700d/track3.wav to /share/abcde.bd0f700d/track3.mp3 Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0) qval=3 Frame | CPU time/estim | REAL time/estim | play/CPU | ETA 3900/11627 (34%)| 4:21/ 13:00| 4:27/ 13:16| 0.3891x| 8:49 32 [ 4] % 40 [ 0] 48 [ 0] 56 [ 0] 64 [ 0] 80 [ 0] 96 [ 0] 112 [ 0] 128 [ 0] 160 [ 3] % 192 [1033] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 224 [2366] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 256 [ 439] %%%%%%%%%%%%%%%% 320 [ 55] %% -------------------------------03:21------------------------------------------------------------- kbps LR MS % long switch short % 220.2 99.9 0.1 100.0 0.0 0.0 Кодирование - процесс не быстрый.
Дело в том что при использовании стандартных линуксовых кодеков не задействуется цифровой процессор Sigma.
Но прелесть этой железки в том, что можно запустить все операции из под screen и отключиться.

Когда все закончится в соотвествии с настройками /opt/etc/abcd/conf будет создан каталог /opt/tmp/music/Software/Fire-Works в ктором будут находится сграббленные треки: sh-3.00# ls /opt/tmp/music/Software/Fire-Works 01-Salut 06-Flash Report 11-Software, Meteroits 02-Lightning Bugs 07-Bombette Party 12-Fireworks Tattoo 03-Red Comets 08-Crisanthemum Beauty 13-Final Lightning 04-Firefly Bouquet 09-Fireballs 05-Golden Rain 10-Colourful Sphere В заключении скажу, что в Вашем каталоге /opt/etc лежит два файла: abcde.conf и abcde.conf.org. Как Вы уже догадались файл abcde.conf - является рабочим, а abcde.conf.org представляет собой шаблон.
Изучив его, что не сложно, можно достаточно тонко настроить поведение программы.

среда, 24 ноября 2010 г.

HDX BD-1. Установка ipkg

Для чего это нужно


Установка optware на HDX BD-1 дает возможность уже сейчас запускать на нашей железке более двух десятков программ, специально скомпилированных под архитектуру устройства, а в будущем, все программы из optware

Optware и CSI


Обе системы можно использовать на HDX BD-1.
Они великолепно уживаются и не мешают друг другу.

Прежде, чем Вы начнете:

  1. заклинание, что за все отвечаете сами;
  2. должен быть установлен CSI на HDX BD-1;
  3. должен быть установлен telnet из CSI;
  4. большинство программ репозитория я проверял на версии прошивки upgrade.zip_hdx_4.22.0.rc3. Но и с другими версиями, начиная с 4.18 optware работает.

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

  1. Зайти на HDX BD-1 telnet-ом и выполнить следующие команды. sh-3.00# cd /tmp sh-3.00# wget http://ipkg.sigmaplayer.com/optware/mipselr2/cross/Setup.tar.gz sh-3.00# tar xzvf Setup.tar.gz sh-3.00# ./setup.sh Скрипт автоматически подготовит систему для использования ipkg.
    Если что-то пойдет не так, работа скрипта будет остановлена.

Как пользоваться ipkg

  1. Обновить списки пакетов sh-3.00# ipkg update Проверить, что пакеты из репозитория доступны можно следующей командой: sh-3.00# ipkg list abcde - 1.9.10 - Frontend for Cdparanoia. abook - 0.5.6 - Abook is a text-based addressbook program designed to use with mutt mail client. binutils - 3.0 - The GNU diff, diff3, sdiff, and cmp utilities. bison - 2.4.3 - GNU bison is a parser generator that is part of the GNU Project. Bison converts a grammar description for a context-free gramma bzip2 - 1.0.6 - bzip2 is a freely available, patent free, high-quality data compressor. cdparanoia - 10.2 - Cdparanoia extracts audio from compact discs directly as data. chess - 5.07 - Chess game. coreutils - 8.6 - The GNU Core Utilities are the basic file, shell and text manipulation utilities of the GNU operating system. e2fsprogs - 1.41.12 - ext2/ext3/ext4 file system utilities findutils - 4.5.9 - The GNU find, xargs, and locate programs. flex - 2.3.5 - Flex is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns gettext - 0.18.1.1 - offers to programmers, translators and even users, a well integrated set of tools to provide support for producing packages wit glib - 2.22.5 - This is a set of function calls to support the reading and writing of PNG format files in a portable manner. gmp - 5.0.1 - GNU MP is a library for arbitrary precision arithmetic. hdparm - 9.35 - hdparm provides a command line interface to various hard disk ioctls supported by the stock Linux ATA/IDE device driver subsyst htop - 0.8.3 - htop is an ASCII full-screen performance monitor that is capable of reporting the activity of all processes. iperf - 2.0.5 - a modern alternative for measuring maximum TCP and UDP bandwidth performance. ipkg - 0.99.163.01 - Itsy Package Management System, is a lightweight package management system designed for embedded devices that tries to resemble iptables - 1.4.10 - Userland utilities for controlling firewalling rules lame - 3.98.4 - LAME is an educational tool to be used for learning about MP3 encoding. The goal of the LAME project is to improve the psycho a less - 418 - Less is a free, open-source file pager. libiconv - 1.13 - provides an iconv implementation for use on systems which don't have one or whose implementation cannot convert from/to Unicode libpng - 1.4.1 - This is a set of function calls to support the reading and writing of PNG format files in a portable manner. links - 1.00 - Links is text WWW browser with tables and frames. mc - 4.7.4 - Midnight Commander File Manager mp3info - 0.8.5a - MP3Info is a little utility used to read and modify the ID3 tags of MP3 files. mprf - 3.0.0 - A portable library written in C for arbitrary precision arithmetic on floating-point numbers. mutt - 1.5.21 - "All mail clients suck. This one just sucks less." nano - 2.2.5 - GNU nano is a small and friendly text editor. ncurses - 5.7 - The ncurses library routines give the user a terminal-independent method of updating character screens with reasonable optimiza nfs-utils - 1.2.3 - User space nfs utilities readline - 6.1 - Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed i screen - 4.0.3 - a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells). sed - 4.2 - Sed is a stream editor. slang - 2.2.2 - allows a developer to create robust multi-platform software and provides facilities required by interactive applications such a smartmontools - 5.40 - utility programs to control and monitor storage systems using the SMART. tar - 1.25 - is an archiver that creates and handles file archives in various formats. zlib - 1.2.5 - provides function calls which allow an application to compress or decompress data stored in a format similar to that used by th Successfully terminated.
  2. Установить нужный пакет, например mc: sh-3.00# ipkg install mc Installing mc (4.7.4) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/mc_4.7.4_mipsel-rel2.ipk Installing glib (2.22.5) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/glib_2.22.5_mipsel-rel2.ipk Installing gettext (0.18.1.1) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/gettext_0.18.1.1_mipsel-rel2.ipk Installing libiconv (1.13) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/libiconv_1.13_mipsel-rel2.ipk Installing zlib (1.2.5) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/zlib_1.2.5_mipsel-rel2.ipk Installing slang (2.2.2) to root... Downloading http://ipkg.sigmaplayer.com/optware/mipselr2/cross/slang_2.2.2_mipsel-rel2.ipk Configuring gettext Configuring glib Configuring libiconv Configuring mc Configuring slang Configuring zlib Successfully terminated. sh-3.00# Автоматически загрузятся пакеты, которые указаны в зависимостях. В данном примере загрузились и установились еще пять пакетов, необходимых для работы midnight commander-а.

Как удалить ipkg


Для того, чтобы полностью удалить ipkg из системы достаточно восстановить оригинальный скрипт запуска telnetd и удалить каталог, где располагается ipkg sh-3.00# cd /HD_Media/hda3/sybhttpd/localhost.drives/HARD_DISK/Apps/Telnetd sh-3.00# rm startscript.sh sh-3.00# mv startscript.sh.org startscript.sh sh-3.00# cd /HD_Media/hda3 sh-3.00# rm -P .opt

Как скомпилировать свою программу


Вы сами можете откомпилировать нужный Вам пакет. Я старался процесс максимально доступно описать в форуме "Разработка приложений для NMT".
Кроме того очень полезно посмотреть в эту Вики

Состояние репозитория


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

Хочу поблагодарить всех участников сообщества так или иначе помогавших собрать этот репозиторий и подготовить инструкции.

Любая критика приветствуется.


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

Upd 25/11/10. Upd: Добавил описание процедуры удаления ipkg
Upd 26/11/10. Upd: Переименовал setup.tar.gz в Setup.tar.gz
Upd 27/11/10. Upd: Добавлены пути в переменную $PATH. Добавлена синхронизация внутренних часов с сервером точного времени

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

HDX BD-1. Репозиторий на локальном диске

Обычно репозиторий размещается на сервере в интернете, но по желанию его можно разместить и на локальном диске.
В этом случае репозиторий будет доступен через встроенный в HDX BD-1 ftp сервер.
  1. Создать каталог, где будут размещаться пакеты репозитория # mkdir -p /HD_Media/hda3/sybhttpd/localhost.drives/HARD_DISK/tmp/8642/cross/stable
  2. Скопировать в него все ipk пакеты ссылки на которые можно взять на странице HDX BD-1. Репозиторий : Ncurses, Screen and Nano and cetera # cd /HD_Media/hda3/sybhttpd/localhost.drives/HARD_DISK/tmp/8642/cross/stable # wget http://www.opendrive.com/files/7910545_M0KKj_8a29/bison_2.4.3_mipsel-rel2.ipk http://www.opendrive.com/files/7912301_rd3gi_eacb/flex_2.3.5_mipsel-rel2.ipk http://www.opendrive.com/files/7885389_5yXbR_f0f4/gettext_0.18.1.1_mipsel-rel2.ipk http://www.opendrive.com/files/7885390_IvFGU_72d5/glib_2.22.5_mipsel-rel2.ipk http://www.opendrive.com/files/7885387_FwkMg_7384/hdparm_9.35_mipsel-rel2.ipk http://www.opendrive.com/files/7894187_rGvaj_3653/htop_0.8.3_mipsel-rel2.ipk http://www.opendrive.com/files/7904860_h91bj_35d6/iperf_2.0.5_mipsel-rel2.ipk http://www.opendrive.com/files/7906771_EvItv_b308/iptables_1.4.10_mipsel-rel2.ipk http://www.opendrive.com/files/7905402_gBovX_96d3/lame_3.98.4_mipsel-rel2.ipk http://www.opendrive.com/files/7896200_NkFm3_95ae/mc_4.7.4_mipsel-rel2.ipk http://www.opendrive.com/files/7885395_SJEQE_a461/nano_2.2.5_mipsel-rel2.ipk http://www.opendrive.com/files/7885397_24ucU_7747/ncurses_5.7_mipsel-rel2.ipk http://www.opendrive.com/files/7885386_qkJlo_d40f/screen_4.0.3_mipsel-rel2.ipk http://www.opendrive.com/files/7890907_ifrBb_df7a/sed_4.2_mipsel-rel2.ipk http://www.opendrive.com/files/7885393_iXbEG_73db/slang_2.2.2_mipsel-rel2.ipk http://www.opendrive.com/files/7885394_LfG7Y_cd6f/zlib_1.2.5_mipsel-rel2.ipk #
  3. Создать файл /HD_Media/hda3/.opt/opt/etc/ipkg.conf
    # This repositories for mips rel 1. Not yet implemented.
    #src wl500g http://wl500g.dyndns.org/ipkg
    #src optware http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable
    # This repositories for mips rel 2 on local drive. Must be started FTP server 
    src optware ftp://ftpuser:1234@localhost/HARD_DISK/tmp/8642/cross/stable
    
    # root filesystem for install
    dest root /HD_Media/hda3/.opt
    
    # Architecture match order
    arch mipsel-rel2 1
  4. Проиндексировать репозиторий # cd /opt/bin # wget http://www.opendrive.com/files/7348690_4DtrH_8256/ipkg-make-index # chmod +x ipkg-make-index # ipkg-make-index /HD_Media/hda3/sybhttpd/localhost.drives/HARD_DISK/tmp/8642/cross/stable
  5. Обновить список пакетов # ipkg update Проверить, что пакеты доступны. # ipkg list bison - 2.4.3 - GNU bison is a parser generator that is part of the GNU Project. Bison converts a grammar description for a context-free gramma flex - 2.3.5 - Flex is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns gettext - 0.18.1.1 - offers to programmers, translators and even users, a well integrated set of tools to provide support for producing packages wit glib - 2.22.5 - This is a set of function calls to support the reading and writing of PNG format files in a portable manner. hdparm - 9.35 - hdparm provides a command line interface to various hard disk ioctls supported by the stock Linux ATA/IDE device driver subsyst htop - 0.8.3 - htop is an ASCII full-screen performance monitor that is capable of reporting the activity of all processes. iperf - 2.0.5 - a modern alternative for measuring maximum TCP and UDP bandwidth performance. iptables - 1.4.10 - Userland utilities for controlling firewalling rules lame - 3.98.4 - LAME is an educational tool to be used for learning about MP3 encoding. The goal of the LAME project is to improve the psycho a libiconv - 1.13 - provides an iconv implementation for use on systems which don't have one or whose implementation cannot convert from/to Unicode libpng - 1.4.1 - This is a set of function calls to support the reading and writing of PNG format files in a portable manner. mc - 4.7.4 - Midnight Commander File Manager nano - 2.2.5 - GNU nano is a small and friendly text editor. ncurses - 5.7 - The ncurses library routines give the user a terminal-independent method of updating character screens with reasonable optimiza screen - 4.0.3 - a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells). sed - 4.2 - Sed is a stream editor. slang - 2.2.2 - allows a developer to create robust multi-platform software and provides facilities required by interactive applications such a unfs3 - 0.9.18 - is a user-space implementation of the NFSv3 server specification. It provides a unified mountd and nfsd program and so far runs zlib - 1.2.5 - provides function calls which allow an application to compress or decompress data stored in a format similar to that used by th Successfully terminated.

среда, 10 ноября 2010 г.

HDX BD-1. Репозиторий : Ncurses, Screen and Nano and cetera

Спортировал три программы под HDX BD-1
По мере портирования буду эту страницу обновлять.

Всеми этими программами можно пользоваться уже сейчас, но для завершения работ и получения полноценного репозитория необходим ftp сервер.
Прошу помощи.
Подскажите бесплатный хостинг с anonymous доступом от 50 MB.


Соратники с сервера Sigma Player любезно предоставили место для репозитория. Теперь эта статья будет обновляться автоматически при добавлении новых программ.
А сам репозиторий доступен по адресу http://ipkg.sigmaplayer.com/



Upd 12/11/10. добавлено: hdparm-9.35, libiconv-1.13, gettext-0.18.1.1, libpng-1.4.1, zlib-1.2.5, glib-2.22.5, slang-2.2.2
Upd 13/11/10. добавлено: mc-4.7.4, sed-4.2, atop-1.26, htop-0.8.3 ipkg пакеты для всех программ
Upd 14/11/10. добавлено: iperf-2.0.5, lame_3.98.4, iptables-1.4.10, bison-2.4.3, flex-2.5.35, unfs3-0.9.18
Upd 16/11/10. добавлено: abcde-1.9.10, cdparanoia-10.2, abook-0.5.6, mutt-1.5.21, readline-6.1, smartmontools-5.40, links-1.0
Upd 18/11/10. добавлено: coreutils-8.6, mp3info-0.8.5a
Upd 19/11/10. добавлено: less-418, gnuchess-5.07, binutils-3.0, findutils-4.5.9, mprf-3.0.0, gmp-5.0.1, bzip2-1.0.6
Upd 26/11/10. добавлено: libogg-1.2.1, libvorbis-1.3.2, vorbis-tools-1.4.0, id3lib_3.8.3, libid3tag_0.15.1b, libmad_0.15.1b
Upd 29/11/10. добавлено: diffutils-3.0, binutils-2.20
Upd 14/05/11. добавлено: libsigc++_2.2.9, libtorrent_0.12.6, openssl_0.9.8k, rsync_3.0.8
Upd 15/05/11. добавлено: curl_7.21.6, rtorrent_0.8.6
Upd 25/05/11. добавлено: rutorrent_0.0.5, libtorrent_0.12.8, lighttpd_1.4.28.2, libiconv_1.13.1, php_5.3.6.2, prce_8.12, rtorrent_0.8.8.3, curl_7.21.6, xmlrpc-c_1.16.35, openssl_1.0.8d, libxml2_2.7.8, bsdb_4.6.21, python_2.6.6, tcl_8.5.9, sqllite_3.7.6.2, tcllib_1.13, gdbm_1.8.3, gdb_7.2, termcap_1.3.1, readline_6.2, bzip2_1.0.6, ncurses_5.9

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

HDX BD-1. Как сделать дистрибутив ipkg

Что такое формат .ipk?


Файлы в формате .ipk являются архивами tar, сжатыми gzip (.tar.gz), которые содержат три части:
  • ./data.tar.gz: содержит собственно сами файлы, составляющие пакет. При установке эта часть распаковывается в корневой каталог /. То есть, имена файлов и каталогов, входящие в этот архив, должны начинаться с ./usr или ./opt.

  • ./control.tar.gz: содержит метаданные и скрипты пакета. Он должен содержать файл с названием control. Также он может содержать следующие файлы: conffiles, preinst, postinst, prerm, postrm. Кроме этого, в него могут входить другие файлы и каталоги, нужные для установки, но это не будет особо полезным в настоящее время. См. секцию 3 “Скрипты Ipk”.

  • ./debian-binary: в настоящее время игнорируется ipkg. Это должен быть текстовый файл, содержащий единственную строку: “2.0”

Сборка ipk


Ниже приведен пример как собрать пакет с названием foobar, который помещает файл myprog в каталог /opt/bin на HDX BD-1. Вам понадобится скрипт ipkg-build.sh.

  1. Создайте структуру каталогов и файлов, как они должны быть расположены в системе. Для нашего примера мы создадим каталог foobar, который будет считаться корневым. С точки зрения ipk любой файл внутри foobar будет в /, таким образом, /foobar/opt/bin/myprog будет установлен в /opt/bin/myprog на HDX BD-1.
    /foobar/opt/bin/myprog

  2. На верхнем уровне иерархии создайте каталог с именем CONTROL.
    /foobar/opt/bin/myprog
    /foobar/CONTROL/

  3. Внутри каталога CONTROL создайте файл под названием control, в который запишите необходимые данные в формате “Поле: значение”. В файле должны присутствовать следующие поля: Package, Version, Architecture, Maintainer, Section и Description. Опционально можете включить следующие поля: Priority и Depends.
    /foobar/opt/bin/myprog
    /foobar/CONTROL/control
    Вот пример этого файла, который вы можете использовать в качестве шаблона:
     ### Begin CONTROL/control example
     Package: foobar
     Priority: optional
     Section: Misc
     Version: 0.1
     Architecture: mipsel
     Maintainer: Familiar User famuser@foo.org
     Depends: libc6
     Description: foo is the ever-present example program -- it does
    everything foo is not a real package. This is simply an example.
    .
    Значения полей в файле CONTROL/control:
    • Package: название пакета, которое может состоять из строчных символов английского алфавита, цифр и дефиса (т.е. совпадать со следующим регулярным выражением: [[a-z0-9.+-]+)

    • Version: версия, должна содержать по крайней мере одну цифру и совпадать с регулярным выражением [[a-zA-Z0-9.+]*. Версия также может содержать в конце номер ревизии (ревизия должна сообтветствовать регулярному выражению ”-fam![[0-9]\+”. Ревизия должна увеличиваться каждый раз, когда пакет изменяется, а версия – нет (a packaging tweak). Она может сбрасываться (или просто опускаться) каждый раз, когда увеличивается номер версии.

    • Architecture: это поле должно специфицировать архитектуру, под которую собран пакет. Допустимые значения: “arm” и “all”.

    • Maintainer: должно содержать имя и адрес электронной почты ответственного за этот пакет (не обязательно автора самой программы).

    • Description: короткое (до 80 символов) описание программы. Оно также может включать длинное описание на следующих строках (каждая с отступом в один пробел). Пустые строки в длинном описании могут быть заданы как строки, состоящие из одного пробела и точки (т.е. ” .”).

    • Priority: должно быть одно из следующих значений: required, standard, important, optional или extra. Большинство программ должны использовать optional.

    • Section: категория, которой соответствует пакет:
      • Games (игры)
      • Multimedia (графика, видео, аудио, mp3-плеер)
      • Communications (коммуникации, эл. почта и т.п.)
      • Settings (утилиты резервного копирования, программа настройки беспроводной сети, короче, все, что модифицирует саму систему)
      • Utilities (база паролей, калькулятор) - чаще всего небольшие приложения
      • Applications (остальные приложения, не попадающие в другие категории)

      • Не имеют собственной закладки, но нуждаются в категоризации:
        • Console (fdisk, kismit, perl, boa, apache, smb и т.д.)
        • Misc (если невозможно отнести ни к какой другой категории, как например, Zaurus faq)
        Например:
        SeverManager должен быть в секции Settings
        Boa должен быть в секции Console


    • Depends: указывает пакеты, которые должны быть установлены, чтобы данная программа работала. Пакеты должны быть перечислены в одной строке через запятую.

      Некоторые не обязательные, но рекомендованные секции:

    • Installed-Size: указывает примерный размер пакета после установки. Позволит пользователю оценить, сколько свободного места понадобится для установки данного паекта (например, 150KB).
    • Cardinst: Параметр, показывающий возможна ли корректная работа пакета после установки его на внешние карты памяти. Например, пакет, содержащий в себе модули ядра будут корректно работать только при установки в основную напять. Возможные значения: yes, no.
  4. Если пакет имеет конфигурационные файлы, создайте файл CONTROL/conffiles, содержащий список таких файлов с указанием абсолютного пути для каждого (как они будут расположены в системе после установки). Тогда система управления пакетами не будет автоматически перезаписывать эти файлы когда пользователь будет обновлять пакет.

  5. Если требуется запустить скрипт в начале или конце установки, см. секцию 3 “Скрипты Ipk”.

  6. Теперь можно создать новый пакет: $ ipkg-build.sh directory [destination_directory] где
    directory – каталог, который должен быть создан.
    destination_directory является опциональным и если опущен, считается равным текущему каталогу.

    Скрипт ipkg-build.sh производит некоторые проверки целостности и правильности данных в каталоге пакета и должен помочь вам справиться с возможными проблемами.

Скрипты Ipk


Если нужно, пакет может включать скрипты, которые будут вызваны системой управления пакетами. Вызов скрипта возможен непосредственно перед установкой пакета, после установки, перед удалением пакета и после удаления. Эти скрипты называются, соответственно, preinst, postinst, prerm и postrm, и должны располагаться в каталоге CONTROL. Они должны возвращать 0 в случае успешного завершения (ненулевое значение, возвращаемое preinst отменяет установку пакета – иногда это может быть полезным). Поэтому рекомендуется явно вызывать exit 0 в конце пакета, иначе наружу будет передан код возврата последней выполненой команды, а он может быть и не нулевым. Типичный пример - вызыв команды depmod, которая может отработать нормально, но при этом выдать несколько предупреждений.

Эти скрипты не должны полагать, что доступен tty, т.е. они не должны ничего запрашивать у пользователя.

Переменная PKG_ROOT указывает на корневой каталог пакета, и может быть использована для ссылок на установленное содержимое пакета.


Дополнительные скрипты по управлению пакетами


Существует еще один скрипт, “mkipks”, но с ним могут быть проблемы, поэтому его не рекомендуется использовать.

Так же в Cacko feed (репозиторий для Zaurus) есть пакет ipkg-tools, который помимо скритпа ipkg-build содержит в себе другие необходимые инструменты для работы с IPK, такие как ipkg-expand (скрипт, для “разборки” пакета) и ipkg-make-index (генерация индекса для feed).

Данная статья с небольшими правками, учитывающими особенности HDX BD-1, взята отсюда http://oramezo.org/ru/man/ipk-howto.
Оригинал можно найти здесь: http://www.oesf.org/index.php?title=IPKG_Howto

Дополнительную информацию и более детальные объяснения можно найти по адресу http://handhelds.org/moin/moin.cgi/Ipkg

среда, 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. Произведена ревизия работ.

пятница, 23 апреля 2010 г.

Устанавливаем toolchain для HDX BD-1 (Sygma 8642/8643)

Как я писал ранее софт HDX BD-1 собран тулчейном Sourcery G++ компании CodeSourcery

Компанией предлагаются интегрированные системы разработки созданные на основе открытого набора утилит разработки GCC, открытого IDE Eclipce и проприетарной связки, которая интегрирует два предыдущих продукта.

Кроме того с сайта можно бесплатно загрузить уже собранный toolchain для конкретного процессора и окружения.

Нам именно это и нужно.

Итак:
$ cd ~/Downloads $ wget http://www.codesourcery.com/sgpp/lite/mips/portal/package3548/public/mips-linux-gnu/mips-4.3-51-mips-linux-gnu.bin $ /bin/sh mips-4.3-51-mips-linux-gnu.bin

На вопрос "Where Would You Like to Install" я указал "~/SGPP".
Ответы на остальные вопросы я оставил по умолчанию.

После выполнения установки toolchain будет развернут в каталоге ~/SGPP.

Установка на этом закончена. Осталось только проверить как все работает.

Установим переменные окружения:
$ PATH=$HOME/SGPP/bin:$PATH $ export PATH

Скомпилируем тестовый пример:
$ cd ~/Staff/test
В редакторе создадим файл hello.c:
#include <stdio.h>
int main()
{
  printf ("Hello Popcorn!\nThis cool!\n");
  return 0;
}
и компилируем его

$ mips-linux-gnu-gcc -EL -march=74kc -fPIC -o hello hello.c

копируем на BD-1 и запускаем.
Вот и все.


Как будем копилировать наши проекты


  1. Загрузить скрипты по управлению ipkg пакетами в директорию ~/bin. Эту операцию нужно сделать один раз. $ cd ~/bin $ wget http://axaru.opendrive.com/files/7348691_AlHrM_8dee/ipkg-build.sh $ wget http://axaru.opendrive.com/files/7348692_kbnnr_9794/ipkg-expand.sh $ wget http://axaru.opendrive.com/files/7348690_4DtrH_8256/ipkg-make-index.sh $ ln -s ipkg-build.sh ipkg-build $ ln -s ipkg-expand.sh ipkg-expand $ ln -s ipkg-make-index.sh ipkg-make-index $ cat > ipkg-repo.sh <<\EOF #!/bin/bash rm *.ipk ipkg-build install cp *rel2.ipk $REPO rm $REPO/Packages ipkg-make-index $REPO EOF $ chmod +x ipkg-repo.sh $ ln -s ipkg-repo.sh ipkg-repo
    Скрипт ipkg-repo.sh нужен для автоматического создания установочного павета ipkg, копирования его в локальный репозиторий и переиндексации репозитория.
  2. Установить пути и переменные окружения. Делается каждый раз при открытии нового окна терминала. export NODUS=~/stuff/bd/path-to-curent-project/ export PATH=~/SGPP/bin:~/bin:$PATH export REPO=~/stuff/bd/00__repo__00 export STAGE=~/SGPP/stage export PKG_CONFIG_PATH=~/SGPP/stage/lib/pkgconfig
    REPO - ссылка на локальный репозиторий. Он является копией репозитория, расположенного по адресу http://ipkg.sigmaplayer.com/optware/mipselr2/cross/

    STAGE - в это место устанавливаются библиотеки, необходимые для компиляции других программ.
    Например. Программа ххх требует при линковке библиотеку zlib. Я предварительно компилю библиотеку zlib с параметром --prefix=$STAGE
    Затем выполняю установку библиотеки ( обычно make install), и после указанных действий ссылки на билиотеку zlib при линковке программы xxx должны удовлетвориться.

    PKG_CONFIG_PATH - эта переменная окружения, которая часто требуется для правильной линковки программ.

    NODUS - место, где находятся дистрибутивы пакетов над которыми идет работа в данный момент. Ведь гораздо проще написать cd $NODUS, чем cd /home/user/stuff/bd/rutorrent

  3. Компиляция программы: $ CC='mips-linux-gnu-gcc -EL' \ CXX='mips-linux-gnu-g++ -EL' \ AR=mips-linux-gnu-ar \ LD=mips-linux-gnu-ld \ RANLIB=mips-linux-gnu-ranlib \ CFLAGS='-EL -mips32r2 -Wa,-mips32r2 -mtune=74kf2_1 -mdspr2 -pipe -fPIC -s' \ CXXFLAGS='-EL -mips32r2 -Wa,-mips32r2 -mtune=74kf2_1 -mdspr2 -pipe -fPIC -s' \ CPPFLAGS="-I${HOME}/CodeSourcery/stage/include" \ LDFLAGS="-L${HOME}/CodeSourcery/stage/lib" \ ./configure --prefix=/opt --host=mips-linux-gnu $ make $ make install DESTDIR=${PWD}/install $ tar -cvf chk_size_mipsel-rel2.tar -C install opt $ ls -la chk_size_mipsel-rel2.tar
    Первой длинной командой я осуществляю сонфигурирование пакета.
    --host - говорит, что будет выполнятся кросскомпиляция.
    --prefix - указывает куда будут инсталлироваться откомпилированные программы.
    Для репозитария указываем --prefix=/opt. Если компилируем библиотеку, необходимую для линковки пакета, то компилим и создаем установочный пакет с опцией --prefix=/opt, а затем снова компилим ее с опицей --prefix=$STAGE.
    Далее обычная компиляция и установка в директорию ~/install
    Команды tar и ls нужны для вычисления размера устанавливаемого пакета. Он нам пригодится при создании описания пакета необходимого для правильной работы ipkg.

  4. Создание установочного пакета: $ mkdir -p install/CONTROL $ cat > install/CONTROL/control <<\EOF Package: <name> Priority: optional Section: Utilities Version: <version> Architecture: mipsel-rel2 Maintainer: <address> Depends: Installed-Size: $lt;xxx> KB Description: <80 char>. EOF
    Здесь я создаю файл install/CONTROL/control, содержащий описание компилируемого пакета.
    Поля, выделенные угловыми скобками обязательны к заполнению.

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

    Все правки файла install/CONTROL/control я выполняю редактором gedit Затем я запускаю скрипт $ ipkg-repo
    Он сам создаст пакет ipkg, поместит его в локальный репозиторий, проиндексирует локальный репозиторий и создаст (обновит) файл $REPO/Packages

    На этом все. Осталось только синхронизировать локальный репозиторий с ftp

Документация по Sourcery G++ MIPS

Title Format
Assembler (PDF) PDF
Binary Utilities (PDF) PDF
C Library (Newlib) (PDF) PDF
Compiler (PDF) PDF
Debugger (PDF) PDF
Getting Started Guide (PDF) PDF
Linker (PDF) PDF
MIPS Toolchain (PDF) PDF
Math Library (Newlib) (PDF) PDF
Preprocessor (PDF) PDF
Profiler (PDF) PDF

Полезные ссылки:
17/06/2011 - добавил описание процесса создания пакета для optware