Table of Contents

OpenWrt İnşakökü - Teknik Referans

Ayrıca bakınız: Aletzinciri kullanımı

Çekirdekle ilgili seçenekler

Kullanılabilir çerikdek sürümleri include/kernel-version.mk'de listelenmiştir:

Örnek:

# Use the default kernel version if the Makefile doesn't override it

LINUX_RELEASE?=1

LINUX_VERSION-3.18 = .20
LINUX_VERSION-4.0 = .9
LINUX_VERSION-4.1 = .5

LINUX_KERNEL_MD5SUM-3.18.20 = 952c9159acdf4efbc96e08a27109d994
LINUX_KERNEL_MD5SUM-4.0.9 = 40fc5f6e2d718e539b45e6601c71985b
LINUX_KERNEL_MD5SUM-4.1.5 = f23e1d4ce8f63e46db81d56e36281885

ifdef KERNEL_PATCHVER
  LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
endif

split_version=$(subst ., ,$(1))
merge_version=$(subst $(space),.,$(1))
KERNEL_BASE=$(firstword $(subst -, ,$(LINUX_VERSION)))
KERNEL=$(call merge_version,$(wordlist 1,2,$(call split_version,$(KERNEL_BASE))))
KERNEL_PATCHVER ?= $(KERNEL)

# disable the md5sum check for unknown kernel versions
LINUX_KERNEL_MD5SUM:=$(LINUX_KERNEL_MD5SUM-$(strip $(LINUX_VERSION)))
LINUX_KERNEL_MD5SUM?=x

Çekirdek kodu gereic/files ve seçici <arch>/files/ altdizinlerinin içeriğiyle eklenir.

generic/patches-<Çekirdek sürümü> ve <arch>/patches-<Çekirdek sürümü> ile yamanır.

CONFIG_EXTERNAL_KERNEL_TREE

OpenWrt dosya sisteminde bir Çekirdek deposuna sembolik bağlantı yaratır.

Hedef bir yerel git çeirdek deposu olabilir.

:!: Ağacınızı OpwnWrt değişikliklerini içerecek şekilde yamamalısınız - inşalar derlemede veya önyüklemede başarısız olabilirler.

:!: Musl libc yeniden tanımlama hatalarını kullanıcı alanı başlıklarıyla onaran çekirdek başlığı yamaları gerektirir. uclibc ve glibc bu değişiklikleri gerektirmez.

Example:

095-api-fix-compatibility-of-linux-in.h-with-netinet-in..patch
270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch
271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch
272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch

bakın http://wiki.musl-libc.org/wiki/Building_Busybox

OpenWrt İnşakökü – İnşa sırası

  tools – automake, autoconf, sed, cmake
  toolchain/binutils – as, ld, …
  toolchain/gcc – gcc, g++, cpp, …
  target/linux – çekirdek modülleri
  package – temel ve besi paketleri
  target/linux – çekirdek imajı
  target/linux/image – bellenim imaj dosyası oluşumu

Yapma sırası

Üst komut make world şu sıralı komutları çağırır:
make target/compile
make package/cleanup
make package/compile
make package/install
make package/preconfig
make target/install
make package/index

Her bir komutu bağımsız olarak çalıştırabilirsiniz. Örneğin, eğer paketleri derleme süreci bir hatayla durursa, sorunu giderebilir ve ardından temizlik yapmadan devam edebilirsiniz:
make package/compile
make package/install
make package/preconfig
make target/install
make package/index

bakın packages

Uyarılar, hatalar ve iz sürme

V=x parametresi inşa sürecinde mesajların seviyesini belirtir.

    V=99 and V=1 are now deprecated in favor of a new verbosity class system,
    though the old flags are still supported.
    You can set the V variable on the command line (or OPENWRT_VERBOSE in the
    environment) to one or more of the following characters:
    
    - s: stdout+stderr (equal to the old V=99)
    - c: commands (for build systems that suppress commands by default, e.g. kbuild, cmake)
    - w: warnings/errors only (equal to the old V=1)

kaynak: https://dev.openwrt.org/changeset/31484

eski seçenekler:

Örnekler:

make V=sc
make V=sw