Как создать 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-<дистрибутив> с указаниме нужных пакетов.