Differences

This shows you the differences between two versions of the page.

ru:doc:devel:packages [2012/12/07 17:47]
unomano
ru:doc:devel:packages [2013/12/12 14:44] (current)
unomano
Line 126: Line 126:
Причина того, что некоторые из блоков define имеют префикс "Package/", а другие просто "Build" заключается в возможности получения нескольких пакетов из одного Makefile. OpenWrt работает в предположении, что одному исходному коду соответствует один Makefile пакета, но вы можете повторно использовать этот исходный код для нескольких пакетов. Так как вам нужно собрать исходный код один раз, то есть один глобальный набор блоков define "Build", но вы можете добавить несколько блоков define "Package/", по одному для каждого вызова BuildPackage - см. пакет dropbear для примера. Причина того, что некоторые из блоков define имеют префикс "Package/", а другие просто "Build" заключается в возможности получения нескольких пакетов из одного Makefile. OpenWrt работает в предположении, что одному исходному коду соответствует один Makefile пакета, но вы можете повторно использовать этот исходный код для нескольких пакетов. Так как вам нужно собрать исходный код один раз, то есть один глобальный набор блоков define "Build", но вы можете добавить несколько блоков define "Package/", по одному для каждого вызова BuildPackage - см. пакет dropbear для примера.
-=== ЗАМЕЧАНИЯ ===+=== ПРИМЕЧАНИЯ ===
Все переменные в ваших pre/post install/removal скриптах должны начинаться с двух символов ($$) вместо одного символа ($). Это будет информировать "make", чтобы он не интерпретировал строку как переменную и соответственно не подставлял значение, а просто заменял две $$ на один $ -- [[https://forum.openwrt.org/viewtopic.php?pid=85197#p85197|Подробнее]] Все переменные в ваших pre/post install/removal скриптах должны начинаться с двух символов ($$) вместо одного символа ($). Это будет информировать "make", чтобы он не интерпретировал строку как переменную и соответственно не подставлял значение, а просто заменял две $$ на один $ -- [[https://forum.openwrt.org/viewtopic.php?pid=85197#p85197|Подробнее]]
Line 134: Line 134:
Переменная DESCRIPTION устарела, используйте Package/PKG_NAME/description. Переменная DESCRIPTION устарела, используйте Package/PKG_NAME/description.
-===== Adding configuration options ===== +===== Добавление конфигурационных опций  ===== 
-If you would like configure your package installation/compilation in the menuconfig you can do the following+Если вы хотите иметь возможность конфигурировать сборку или установку пакета через menuconfig, вы можете сделать следующее
-Add MENU:=1 to your package definition like this:+Добавьте MENU:=1 в блок define Package пакета:
define Package/mjpg-streamer define Package/mjpg-streamer
Line 148: Line 148:
-Create a config key in the Makefile:+Создайте блок config в Makefile:
define Package/mjpg-streamer/config define Package/mjpg-streamer/config
Line 155: Line 155:
-Create a Config.in file directory where the Makefile is located with the content like this:+Создайте файл Config.in в том же каталоге, где находлится Makefile, с аналогичным содержанием:
# Mjpg-streamer configuration # Mjpg-streamer configuration
Line 211: Line 211:
endmenu endmenu
-Above you can see examples for various type config parameters.+Выше вы можете видеть примеры конфигурируемых параметров различных типов.
-And finally you can check your configuration parameters in your Makefile in the following way+Далее вы можете проверить ваши конфигурируемые параметры в Makefile следующим образом
-(Note that you can reference to the parameters value with it name prefixed with CONFIG_)+(Заметьте, что обращение к параметрам выполняется с префисом CONFIG_)
ifeq ($(CONFIG_MJPEG_STREAMER_INPUT_UVC),y) ifeq ($(CONFIG_MJPEG_STREAMER_INPUT_UVC),y)
Line 220: Line 220:
endif endif
 +===== Создание пакетов для модулей ядра =====
 +[[http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html|Модуль ядра]] - это дополнительный программный модуль, который расширяет возможности ядра Linux. Модуль ядра загружается после самого ядра, (например, с помощью insmod).
 +Многие модули ядра включены в дистрибутив исходников Linux; обычно сборка ядра может быть сконфигурирована для каждого программного модуля:
 +  * скомпилировать его в ядро​​, как встроенный,
 +  * скомпилировать его как загружаемый модуль ядра, или
 +  * игнорировать его.
-===== Creating packages for kernel modules ===== 
-A [[http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html|kernel module]] is an installable program which extends the behavior of the linux kernel. A kernel module gets loaded after the kernel itself, (e.g. using insmod). 
-Many kernel programs are included in the linux source distribution; typically the kernel build may be configured to, for each program,  +Чтобы включить один из этих программных модулей, как загружаемый модуль, выберите соответствующую опцию ядра в конфигурации OpenWRT (см. [[ru:doc:howto:build#configuration|Build Configuration]]). Если ваш любимый модуль ядра не появляется в меню конфигурации OpenWRT, необходимо добавить строку в однин из файлов в каталоге package/kernel/modules. Вот пример взятый из package/kernel/modules/block.mk:
-  - compile it into the kernel as a built-in,  +
-  - compile it as a loadable kernel module, or  +
-  - ignore it. +
-See //**FIX:Customizingthekerneloptions customizing the kernel options**// for including it in the kernel. +
- +
-To include one of these programs as a loadable module, select the corresponding kernel option in the OpenWrt configuration (see [[doc:howto:build#configuration|Build Configuration]]). If your favorite kernel module does not appear in the OpenWrt configuration menus, you must add a stanza to one of the files in the package/kernel/modules directory. Here is an example extracted from package/kernel/modules/block.mk:+
<code> <code>
define KernelPackage/loop define KernelPackage/loop
Line 249: Line 247:
</code> </code>
- +Вы также можете добавить модули ядра, которые //не// являются частью дистрибутива исходников Linux. В этом случае модуль ядра появляется в каталоге package/ так же как любой другой пакет. В package/Makefile используются блоки <code>KernelPackage/xxx</code> вместо <code>Package/xxx</code>. Например, package/madwifi/Makefile:
-You can also add kernel modules which are //not// part of the linux source distribution. In this case, a kernel module appears in the package/ directory, just as any other package does. The package/Makefile uses <code>KernelPackage/xxx</code> +
- definitions in place of <code>Package/xxx</code> +
-. For example, here is package/madwifi/Makefile:+
<code> <code>
# #
Line 394: Line 389:
</code> </code>
-=== NOTES ===+=== ПРИМЕЧАНИЯ ===
-INSTALL_DIR, INSTALL_BIN, INSTALL_DATA are used for creating a directory, copying an executable, or a data file. +x is set on the target file for INSTALL_BIN, independent of it's mode on the host.+Параметры INSTALL_DIR, INSTALL_BIN, INSTALL_DATA используются для создания каталогов, копирования исполняемых и обычных файлов. Атрибут +x выставляется для файла при использовании INSTALL_BIN, вне зависимости от атрибутов файла в сборочной системе.
-From the big document:+Из большого документа:
Package/<name>/install: Package/<name>/install:
-A set of commands to copy files out of the compiled source and into the ipkg which is represented by the $(1) directory. Note that there are currently 4 defined install macros: +Набор команд для копирования файлов из сборочного каталога в ipkg, который представлен в виде каталога $(1). Обратите внимание, что в настоящее время существует 4 макроса для установки:
<code> <code>
INSTALL_DIR INSTALL_DIR

Back to top

ru/doc/devel/packages.1354898828.txt.bz2 · Last modified: 2012/12/07 17:47 by unomano