Как создать ipk пакет на десктопе

Материал из SynologyWiki

Перейти к: навигация, поиск

Содержание

[править] Введение

Данный материал является вольным пересказом статьи http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware и проверен автором на Ubuntu 10.04 и Mandriva 2010.0 под VirtualBox. Отличие кросскомпиляции под "настоящим" Linux от нативной компиляции на Diskstation минимальное - под "настоящим Linux" следует установить toolchain, а при нативной компиляции нужно установить пакеты для сборки. Статья о нативной сборке в этом wiki - Как создать ipk пакет на Synology Diskstation.

[править] Установка Linux

Нужно установить Ваш любимый дистрибутив Linux на компьютер. Если же Вы приверженец Windows - достаточно установить Linux под виртуальной машиной, например, VirtualBox. В установленном Linux Вам потребуются пакеты: gcc, cvs, flex, bison, make, pkg-config, rsync, gettext, libglib2.0-dev, autoconf, libtool, automake, patch, bzip2, gzip, wget, sed, texinfo, subversion и, возможно, другие.

[править] Установка системы сборки ipk

Выберем в папку, где будут храниться нужные файлы. Я использую $HOME:

cd $HOME

и выполним команду

svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware

После выполнения перейдем в созданную папку optware

cd optware

и выполним

make <имя платформы>-target

Например, для платформы Marvell Kirkwood mv6281 имя платформы cs08q1armel.

После этого все делается в папке, созданной для платформы:

cd <имя платформы>

Выполним команду

make directories toolchain ipkg-utils

Команда "make toolchain" скачает и установит toolchain. При нативной сборке она не нужна. После этого можно собирать свои пакеты, в том числе и вносить исправления в стандартные. Например, для сборки библиотеки zlib выполним

make zlib
make zlib-check

В результате в папке $HOME/optware/cs08q1armel/builds будет создан ipk пакет для библиотеки zlib.

[править] Создание собственного ipk пакета

Для создания собственного пакета "superproga" воспользуемся шаблоном "make/template.mk".

Скопируем шаблон под другим именем:

cp make/template.mk make/superpoga.mk

Заменим в файле make/superpoga.mk переменные <foo> и <FOO> на название программы

sed -i 's/<FOO>/SUPERPROGA/g' make/superproga.mk
sed -i 's/<foo>/superproga/g' make/superproga.mk

Отредактируем файл make/superproga.mk в соответвии с комментариями в этом файле и многочисленными примерами mk файлов в папке make.

Создадим директорию sources/superproga

mkdir sources/superpoga

и поместим в эту директорию, если необходимо, дополнительные файлы для ipk и патчи для исходных кодов. Теперь можно создать свой пакет:

make superproga
make superproga-check

[править] Несколько слов о разных дистрибутивах Linux

При выполнении команды

make toolchain

для некоторых платформ (ARM и PowerPC) происходит скачивание готового "тулчейна" и распаковка его в нужные директории. Для некоторых платформ PowerPc "тулчейн" не скачивается, а собирается. Такая сборка может занять довольно продолжительное (более часа) временя. Под Ubuntu мне не удалось собрать toolchain для powerpc, а под Mandriva такая сборка прошла без проблем.

Если у Вас не собирается toolchain - проще попробовать другой дистрибутив Linux. К рекомендованным дистрибутивам, кроме указанных Ubuntu и Mandriva, относятся Debian и CentOS. Набор необходимых для сборки пакетов (он разный для разных дистрибутивов) можно узнать проанализировов master Makefile: http://www.nslu2-linux.org/Makefile . В нем есть секции setup-host-<дистрибутив> с указаниме нужных пакетов.