пятница, 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

четверг, 22 апреля 2010 г.

Программы для Android. Джентельментский набор.

Здесь просто программы, которые стоят на моем Android и откуда их скачать.

Игры
Gem Miner версия 1.1.2 Full
.
r3c1r3c2r3c3
.
Приложения
FBReaderJ
.
Handcent SMS
.
A Online Radio
.
Documents To Go
.
Contacts GroupU
.
secrets-for-android
.
ASTRO File Manager
.

понедельник, 19 апреля 2010 г.

Tree of life Linux

Какой линукс откуда взялся? Куда делся? В этом многообразии дистрибутивов вряд ли кто разбирается.

Вот историки линукса создали хорошую картинку. На досуге интересно будет поизучать.



Полная история Linux, как всегда в википедии

воскресенье, 18 апреля 2010 г.

Подключение Transmission Remote GUI к ReadyNas Duo

  1. На ReadyNas Duo выключить встроенный BitTorrent Client:
    • снять галку напротив "BitTorrent"
    • нажать кнопку Save

  2. Установить последнюю стабильную версию Torrent Transmission v. 2.42 и включить его:
    • установить галку напротив "Transmission",
    • нажать кнопку Save

  3. Transmission Remote GUI выбрать меню Tools->Options
    и установить
    ПараметрЗначение
    Remote host<адрес-ReadyNasDuo-в-вашей-сети>
    Port8181
    User nameadmin
    Passwordpassword1


  4. Port forwarding.
    • Asus WL-500gP
      На вкладке NAT Setting - Virtual Server добавить порт 51413 (определяется в файле конфигурации transmission):
      ПолеЗначение
      Port Range51413
      Local IPip-readyNas
      Local Port51413
      ProtocolBOTH
      Protocol No
      DescriptionTransmission RND

    • ZyXEL NBG460N EE
      Настройка переброски портов описана здесь.
    Можно и не настраивать переброску, но тогда будет медленно раздаваться.

Основные настройки Transmission по умолчанию:
ПолеЗначение
Web interface on port8181
Default useradmin
Default passwordpassword1
Bittorrent port is51413
Default Download path/c/media/BitTorrent/
Файл настроек/addons-config/Transmission/transmission-daemon/settings.json

Прежде чем менять настройки в файле /addons-config/Transmission/transmission-daemon/settings.json обязательно остановите демон из web интерфейса.

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


Upd 13/03/2011
Upd 08/07/2011