Minimal Image

From Yocto Project
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Introduction

A core run-time component of any Linux-based system is the C standard library. The C standard library (otherwise referred to as "libc" in this wiki page) contains a collection of headers and library routines used to implement operations (I/O and string handling, for example) in the C programming language. There are numerous implementations of libc. GNU libc (glibc) is ubiquitous while other libcs, in particular embedded glibc (eglibc) is designed for embedded systems.

eglibc strives to be source and binary compatible with glibc. eglibc's goals include reduced footprint, configurable components, better support for cross-compilation and cross-testing. In particular, eglibc's component configuration system allows embedded developers to build customized versions of the library that include only the features their application uses, reducing its space requirements.

Yocto provides eglibc's component configuration system by commit fbc60cc5ba2284bfcaea8c82001a49b7795cc2a2

This wiki page try to describe how to use eglibc component configuration system to create a really minimal image based on Yocto core-image-minimal.

eglibc component configuration system

eglibc's component configuration system categorizes the library's functions into "option groups", and allows you to include or exclude option groups individually. Some option groups depend on others; eglibc tracks these relationships, and ensures that the selected configuration yields a functioning library.

eglibc currently provides 38 option groups, documented in the file 'option-groups.def' in eglibc source code. Yocto support eglibc component configuration system in meta/recipes-core/eglibc/eglibc-options.inc, and provides distro features corresponding to eglibc configurable options there. It checks DISTRO_FEATURES whether contain the option then set it to Y or N in the ${B}/option-groups.config.

meta-yocto/conf/local.conf.sample.extended has a sample to enable all the eglibc configurable options. You should define DISTRO_FEATURES_LIBC and DISTRO_FEATURES in your own conf/local.conf, and set the options what you want to enable in DISTRO_FEATURES_LIBC.

For example, write the following line to your conf/local.conf to only enable OPTION_EGLIBC_LIBM,

DISTRO_FEATURES_LIBC = "libc-libm"

DISTRO_FEATURES = "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci ${DISTRO_FEATURES_LIBC}"

Then you can build eglibc.

Dependencies

Current build core-image-minimal image need enable the following 15 options list in the following table. And the table show the dependecies between these eglibc component configuration system and Yocto core-image-minimal installed packages.

eglibc configuration option Required by
libc-libm gcc-runtime busybox
libc-crypt busybox tinylogin perl sysvinit
libc-posix-clang-wchar libc-posix-wchar-io libc-locale-code
libc-posix-wchar-io ncurses util-linux
libc-locale-code gettext
libc-posix-regexp busybox module-init-tools-depmod update-alternatives-cworth linux-yocto(perf)
libc-nsswitch libc-inet
libc-inet pciutils sysvinit openssl util-linux perl busybox libc-sunrpc libc-nis
libc-sunrpc libc-nis sysvinit
libc-nis perl
libc-utmp tinylogin busybox perl libc-getlogin
libc-getlogin busybox gettext tinylogin
libc-fcvt perl
libc-spawn gettext
libc-ftraverse elfutils


Process

Packages list

core-image-minimal

Walk through the meta/recipes-core/image/core-image-minimal.bb, and we'll see: IMAGE_INSTALL = "task-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}"

Looking at file meta/recipes-core/tasks/task-core-boot.bb:

 RDEPENDS_task-core-boot = "\
   base-files \
   base-passwd \
   busybox \
   initscripts \
   ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \
   modutils-initscripts \
   netbase \
   sysvinit \
   tinylogin \
   udev \
   ${VIRTUAL-RUNTIME_update-alternatives} \
   ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
 RRECOMMENDS_task-core-boot = "\
   ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"

Then we disable all network related packages, drop "keymaps", netbase, tinylogin and update-alternatives, use busybox init replace sysvinit, use busybox mdev replace udev.

Leaving:

   base-files \
   base-passwd \
   busybox \
   initscripts \
   modutils-initscripts

by using patch task-core-boot_minimal.patch

 diff --git a/meta/recipes-core/tasks/task-core-boot.bb b/meta/recipes-core/tasks/task-core-boot.bb
 index eb2b548..0220c9e 100644
 --- a/meta/recipes-core/tasks/task-core-boot.bb
 +++ b/meta/recipes-core/tasks/task-core-boot.bb
 @@ -28,14 +28,7 @@ RDEPENDS_task-core-boot = "\
      base-passwd \
      busybox \
      initscripts \
 -    ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \
 -    modutils-initscripts \
 -    netbase \
 -    sysvinit \
 -    tinylogin \
 -    udev \
 -    ${VIRTUAL-RUNTIME_update-alternatives} \
 -    ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
 +    modutils-initscripts"

  RRECOMMENDS_task-core-boot = "\
      ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"

EXTRA_IMAGE_FEATURES

The variable EXTRA_IMAGE_FEATURES in locale configuration file default is "build/conf/local.conf" define some more image feature that will install more packages to image. We don't need this right now, so comment this line with sharp(#):

 #EXTRA_IMAGE_FEATURES = "debug-tweaks"

busybox related dependencies

shrink busybox

According table above, busybox depends on "libc-libm libc-crypt libc-posix-regexp libc-inet libc-utmp libc-getlogin". And "libc-libm libc-crypt" can not be disabled currently, and the following patch for busybox to remove all that depends on the left options.

busybox-defconfig.patch for Yocto 1.2

diff --git a/meta/recipes-core/busybox/busybox-1.19.3/defconfig b/meta/recipes-core/busybox/busybox-1.19.3/defconfig
index 1990f28..67d0291 100644
--- a/meta/recipes-core/busybox/busybox-1.19.3/defconfig
+++ b/meta/recipes-core/busybox/busybox-1.19.3/defconfig
@@ -39,7 +39,7 @@ CONFIG_LAST_SUPPORTED_WCHAR=0
 CONFIG_LONG_OPTS=y
 CONFIG_FEATURE_DEVPTS=y
 # CONFIG_FEATURE_CLEAN_UP is not set
-CONFIG_FEATURE_UTMP=y
+# CONFIG_FEATURE_UTMP is not set
 # CONFIG_FEATURE_WTMP is not set
 CONFIG_FEATURE_PIDFILE=y
 CONFIG_FEATURE_SUID=y
@@ -49,7 +49,7 @@ CONFIG_FEATURE_SUID_CONFIG_QUIET=y
 # CONFIG_FEATURE_PREFER_APPLETS is not set
 CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
 CONFIG_FEATURE_SYSLOG=y
-CONFIG_FEATURE_HAVE_RPC=y
+# CONFIG_FEATURE_HAVE_RPC is not set
 
 #
 # Build Options
@@ -182,7 +182,7 @@ CONFIG_TR=y
 CONFIG_FEATURE_TR_CLASSES=y
 # CONFIG_FEATURE_TR_EQUIV is not set
 # CONFIG_BASE64 is not set
-CONFIG_WHO=y
+# CONFIG_WHO is not set
 CONFIG_USERS=y
 # CONFIG_CAL is not set
 # CONFIG_CATV is not set
@@ -213,7 +213,7 @@ CONFIG_ENV=y
 CONFIG_FEATURE_ENV_LONG_OPTIONS=y
 # CONFIG_EXPAND is not set
 # CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
-CONFIG_EXPR=y
+# CONFIG_EXPR is not set
 # CONFIG_EXPR_MATH_SUPPORT_64 is not set
 CONFIG_FALSE=y
 # CONFIG_FOLD is not set
@@ -224,7 +224,7 @@ CONFIG_HEAD=y
 # CONFIG_INSTALL is not set
 # CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
 CONFIG_LN=y
-CONFIG_LOGNAME=y
+# CONFIG_LOGNAME is not set
 CONFIG_LS=y
 CONFIG_FEATURE_LS_FILETYPES=y
 CONFIG_FEATURE_LS_FOLLOWLINKS=y
@@ -370,14 +370,14 @@ CONFIG_FEATURE_VI_USE_SIGNALS=y
 CONFIG_FEATURE_VI_WIN_RESIZE=y
 # CONFIG_FEATURE_VI_ASK_TERMINAL is not set
 CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
-CONFIG_AWK=y
+# CONFIG_AWK is not set
 # CONFIG_FEATURE_AWK_LIBM is not set
 CONFIG_CMP=y
 CONFIG_DIFF=y
 # CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
 CONFIG_FEATURE_DIFF_DIR=y
 # CONFIG_ED is not set
-CONFIG_SED=y
+# CONFIG_SED is not set
 CONFIG_FEATURE_ALLOW_EXEC=y
 
 #
@@ -403,13 +403,13 @@ CONFIG_FEATURE_FIND_SIZE=y
 CONFIG_FEATURE_FIND_PRUNE=y
 # CONFIG_FEATURE_FIND_DELETE is not set
 CONFIG_FEATURE_FIND_PATH=y
-CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_REGEX is not set
 # CONFIG_FEATURE_FIND_CONTEXT is not set
 # CONFIG_FEATURE_FIND_LINKS is not set
-CONFIG_GREP=y
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-CONFIG_FEATURE_GREP_CONTEXT=y
+# CONFIG_GREP is not set
+# CONFIG_FEATURE_GREP_EGREP_ALIAS is not set
+# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set
+# CONFIG_FEATURE_GREP_CONTEXT is not set
 CONFIG_XARGS=y
 # CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
 # CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
@@ -425,8 +425,8 @@ CONFIG_XARGS=y
 CONFIG_HALT=y
 # CONFIG_FEATURE_CALL_TELINIT is not set
 CONFIG_TELINIT_PATH=""
-# CONFIG_INIT is not set
-# CONFIG_FEATURE_USE_INITTAB is not set
+CONFIG_INIT=y
+CONFIG_FEATURE_USE_INITTAB=y
 # CONFIG_FEATURE_KILL_REMOVED is not set
 CONFIG_FEATURE_KILL_DELAY=0
 # CONFIG_FEATURE_INIT_SCTTY is not set
@@ -561,12 +561,12 @@ CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
 CONFIG_LOSETUP=y
 # CONFIG_LSPCI is not set
 # CONFIG_LSUSB is not set
-# CONFIG_MDEV is not set
+CONFIG_MDEV=y
 # CONFIG_FEATURE_MDEV_CONF is not set
 # CONFIG_FEATURE_MDEV_RENAME is not set
 # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
 # CONFIG_FEATURE_MDEV_EXEC is not set
-# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
 CONFIG_MKSWAP=y
 # CONFIG_FEATURE_MKSWAP_UUID is not set
 CONFIG_MORE=y
@@ -575,12 +575,12 @@ CONFIG_MOUNT=y
 # CONFIG_FEATURE_MOUNT_VERBOSE is not set
 # CONFIG_FEATURE_MOUNT_HELPERS is not set
 # CONFIG_FEATURE_MOUNT_LABEL is not set
-CONFIG_FEATURE_MOUNT_NFS=y
+# CONFIG_FEATURE_MOUNT_NFS is not set
 # CONFIG_FEATURE_MOUNT_CIFS is not set
 CONFIG_FEATURE_MOUNT_FLAGS=y
 CONFIG_FEATURE_MOUNT_FSTAB=y
 CONFIG_PIVOT_ROOT=y
-CONFIG_RDATE=y
+# CONFIG_RDATE is not set
 # CONFIG_RDEV is not set
 # CONFIG_READPROFILE is not set
 # CONFIG_RTCWAKE is not set
@@ -622,10 +622,10 @@ CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
 # Miscellaneous Utilities
 #
 # CONFIG_CONSPY is not set
-CONFIG_LESS=y
-CONFIG_FEATURE_LESS_MAXLINES=9999999
-CONFIG_FEATURE_LESS_BRACKETS=y
-CONFIG_FEATURE_LESS_FLAGS=y
+# CONFIG_LESS is not set
+CONFIG_FEATURE_LESS_MAXLINES=0
+# CONFIG_FEATURE_LESS_BRACKETS is not set
+# CONFIG_FEATURE_LESS_FLAGS is not set
 # CONFIG_FEATURE_LESS_MARKS is not set
 # CONFIG_FEATURE_LESS_REGEXP is not set
 # CONFIG_FEATURE_LESS_WINCH is not set
@@ -717,17 +717,17 @@ CONFIG_TIME=y
 # CONFIG_NAMEIF is not set
 # CONFIG_FEATURE_NAMEIF_EXTENDED is not set
 # CONFIG_NBDCLIENT is not set
-CONFIG_NC=y
+# CONFIG_NC is not set
 # CONFIG_NC_SERVER is not set
 # CONFIG_NC_EXTRA is not set
 # CONFIG_NC_110_COMPAT is not set
-CONFIG_PING=y
-CONFIG_PING6=y
-CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_PING is not set
+# CONFIG_PING6 is not set
+# CONFIG_FEATURE_FANCY_PING is not set
 # CONFIG_WHOIS is not set
-CONFIG_FEATURE_IPV6=y
+# CONFIG_FEATURE_IPV6 is not set
 # CONFIG_FEATURE_UNIX_LOCAL is not set
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
 # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
 # CONFIG_ARP is not set
 # CONFIG_ARPING is not set
@@ -743,7 +743,7 @@ CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
 # CONFIG_FTPGET is not set
 # CONFIG_FTPPUT is not set
 # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-CONFIG_HOSTNAME=y
+# CONFIG_HOSTNAME is not set
 # CONFIG_HTTPD is not set
 # CONFIG_FEATURE_HTTPD_RANGES is not set
 # CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
@@ -757,22 +757,22 @@ CONFIG_HOSTNAME=y
 # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
 # CONFIG_FEATURE_HTTPD_PROXY is not set
 # CONFIG_FEATURE_HTTPD_GZIP is not set
-CONFIG_IFCONFIG=y
-CONFIG_FEATURE_IFCONFIG_STATUS=y
+# CONFIG_IFCONFIG is not set
+# CONFIG_FEATURE_IFCONFIG_STATUS is not set
 # CONFIG_FEATURE_IFCONFIG_SLIP is not set
 # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-CONFIG_FEATURE_IFCONFIG_HW=y
+# CONFIG_FEATURE_IFCONFIG_HW is not set
 # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
 # CONFIG_IFENSLAVE is not set
 # CONFIG_IFPLUGD is not set
-CONFIG_IFUPDOWN=y
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+# CONFIG_IFUPDOWN is not set
+CONFIG_IFUPDOWN_IFSTATE_PATH=""
 # CONFIG_FEATURE_IFUPDOWN_IP is not set
 # CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-CONFIG_FEATURE_IFUPDOWN_IPV6=y
-CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
 # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
 # CONFIG_INETD is not set
 # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
@@ -781,11 +781,11 @@ CONFIG_FEATURE_IFUPDOWN_MAPPING=y
 # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
 # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
 # CONFIG_FEATURE_INETD_RPC is not set
-CONFIG_IP=y
-CONFIG_FEATURE_IP_ADDRESS=y
-CONFIG_FEATURE_IP_LINK=y
-CONFIG_FEATURE_IP_ROUTE=y
-CONFIG_FEATURE_IP_TUNNEL=y
+# CONFIG_IP is not set
+# CONFIG_FEATURE_IP_ADDRESS is not set
+# CONFIG_FEATURE_IP_LINK is not set
+# CONFIG_FEATURE_IP_ROUTE is not set
+# CONFIG_FEATURE_IP_TUNNEL is not set
 # CONFIG_FEATURE_IP_RULE is not set
 # CONFIG_FEATURE_IP_SHORT_FORMS is not set
 # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
@@ -797,62 +797,62 @@ CONFIG_FEATURE_IP_TUNNEL=y
 # CONFIG_IPCALC is not set
 # CONFIG_FEATURE_IPCALC_FANCY is not set
 # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
-CONFIG_NETSTAT=y
+# CONFIG_NETSTAT is not set
 # CONFIG_FEATURE_NETSTAT_WIDE is not set
 # CONFIG_FEATURE_NETSTAT_PRG is not set
-CONFIG_NSLOOKUP=y
+# CONFIG_NSLOOKUP is not set
 # CONFIG_NTPD is not set
 # CONFIG_FEATURE_NTPD_SERVER is not set
 # CONFIG_PSCAN is not set
-CONFIG_ROUTE=y
+# CONFIG_ROUTE is not set
 # CONFIG_SLATTACH is not set
 # CONFIG_TCPSVD is not set
-CONFIG_TELNET=y
+# CONFIG_TELNET is not set
 # CONFIG_FEATURE_TELNET_TTYPE is not set
-CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
 # CONFIG_TELNETD is not set
 # CONFIG_FEATURE_TELNETD_STANDALONE is not set
 # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
-CONFIG_TFTP=y
+# CONFIG_TFTP is not set
 # CONFIG_TFTPD is not set
 
 #
 # Common options for tftp/tftpd
 #
-CONFIG_FEATURE_TFTP_GET=y
-CONFIG_FEATURE_TFTP_PUT=y
+# CONFIG_FEATURE_TFTP_GET is not set
+# CONFIG_FEATURE_TFTP_PUT is not set
 # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
 # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
 # CONFIG_TFTP_DEBUG is not set
-CONFIG_TRACEROUTE=y
+# CONFIG_TRACEROUTE is not set
 # CONFIG_TRACEROUTE6 is not set
 # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
 # CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
 # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
 # CONFIG_TUNCTL is not set
 # CONFIG_FEATURE_TUNCTL_UG is not set
-CONFIG_UDHCPD=y
+# CONFIG_UDHCPD is not set
 # CONFIG_DHCPRELAY is not set
-CONFIG_DUMPLEASES=y
+# CONFIG_DUMPLEASES is not set
 # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
 # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
-CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
-CONFIG_UDHCPC=y
-CONFIG_FEATURE_UDHCPC_ARPING=y
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
 # CONFIG_FEATURE_UDHCP_PORT is not set
 CONFIG_UDHCP_DEBUG=0
 # CONFIG_FEATURE_UDHCP_RFC3397 is not set
 # CONFIG_FEATURE_UDHCP_8021Q is not set
-CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
-CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
 # CONFIG_UDPSVD is not set
 # CONFIG_VCONFIG is not set
-CONFIG_WGET=y
-CONFIG_FEATURE_WGET_STATUSBAR=y
-CONFIG_FEATURE_WGET_AUTHENTICATION=y
-CONFIG_FEATURE_WGET_LONG_OPTIONS=y
-CONFIG_FEATURE_WGET_TIMEOUT=y
+# CONFIG_WGET is not set
+# CONFIG_FEATURE_WGET_STATUSBAR is not set
+# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
+# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
+# CONFIG_FEATURE_WGET_TIMEOUT is not set
 # CONFIG_ZCIP is not set
 
 #
@@ -996,7 +996,7 @@ CONFIG_FEATURE_SH_HISTFILESIZE=y
 #
 CONFIG_SYSLOGD=y
 CONFIG_FEATURE_ROTATE_LOGFILE=y
-CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_REMOTE_LOG is not set
 # CONFIG_FEATURE_SYSLOGD_DUP is not set
 CONFIG_FEATURE_SYSLOGD_CFG=y
 CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256


busybox-defconfig.patch for Yocto 1.1

 diff --git a/meta/recipes-core/busybox/busybox-1.18.5/defconfig b/meta/recipes-core/busybox/busybox-1.18.5/defconfig
 index 5327a64..46090fc 100644
 --- a/meta/recipes-core/busybox/busybox-1.18.5/defconfig
 +++ b/meta/recipes-core/busybox/busybox-1.18.5/defconfig
 @@ -37,7 +37,7 @@ CONFIG_FEATURE_SUID_CONFIG_QUIET=y
  # CONFIG_FEATURE_PREFER_APPLETS is not set
  CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
  CONFIG_FEATURE_SYSLOG=y
 -CONFIG_FEATURE_HAVE_RPC=y
 +# CONFIG_FEATURE_HAVE_RPC is not set
  
  #
  # Build Options
 @@ -178,7 +178,7 @@ CONFIG_ENV=y
  CONFIG_FEATURE_ENV_LONG_OPTIONS=y
  # CONFIG_EXPAND is not set
  # CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
 -CONFIG_EXPR=y
 +# CONFIG_EXPR is not set
  # CONFIG_EXPR_MATH_SUPPORT_64 is not set
  CONFIG_FALSE=y
  # CONFIG_FOLD is not set
 @@ -191,7 +191,7 @@ CONFIG_ID=y
  # CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
  # CONFIG_LENGTH is not set
  CONFIG_LN=y
 -CONFIG_LOGNAME=y
 +# CONFIG_LOGNAME is not set
  CONFIG_LS=y
  CONFIG_FEATURE_LS_FILETYPES=y
  CONFIG_FEATURE_LS_FOLLOWLINKS=y
 @@ -258,7 +258,7 @@ CONFIG_USLEEP=y
  # CONFIG_UUENCODE is not set
  CONFIG_WC=y
  # CONFIG_FEATURE_WC_LARGE is not set
 -CONFIG_WHO=y
 +# CONFIG_WHO is not set
  CONFIG_WHOAMI=y
  CONFIG_YES=y
  
 @@ -321,7 +321,7 @@ CONFIG_WHICH=y
  #
  # Editors
  #
 -CONFIG_AWK=y
 +# CONFIG_AWK is not set
  # CONFIG_FEATURE_AWK_LIBM is not set
  CONFIG_CMP=y
  CONFIG_DIFF=y
 @@ -329,7 +329,7 @@ CONFIG_DIFF=y
  CONFIG_FEATURE_DIFF_DIR=y
  # CONFIG_ED is not set
  CONFIG_PATCH=y
 -CONFIG_SED=y
 +# CONFIG_SED is not set
  CONFIG_VI=y
  CONFIG_FEATURE_VI_MAX_LEN=1024
  CONFIG_FEATURE_VI_8BIT=y
 @@ -368,13 +368,13 @@ CONFIG_FEATURE_FIND_SIZE=y
  CONFIG_FEATURE_FIND_PRUNE=y
  # CONFIG_FEATURE_FIND_DELETE is not set
  CONFIG_FEATURE_FIND_PATH=y
 -CONFIG_FEATURE_FIND_REGEX=y
 +# CONFIG_FEATURE_FIND_REGEX is not set
  # CONFIG_FEATURE_FIND_CONTEXT is not set
  # CONFIG_FEATURE_FIND_LINKS is not set
 -CONFIG_GREP=y
 -CONFIG_FEATURE_GREP_EGREP_ALIAS=y
 -CONFIG_FEATURE_GREP_FGREP_ALIAS=y
 -CONFIG_FEATURE_GREP_CONTEXT=y
 +# CONFIG_GREP is not set
 +# CONFIG_FEATURE_GREP_EGREP_ALIAS is not set
 +# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set
 +# CONFIG_FEATURE_GREP_CONTEXT is not set
  CONFIG_XARGS=y
  # CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
  # CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
 @@ -384,15 +384,16 @@ CONFIG_XARGS=y
  #
  # Init Utilities
  #
 -# CONFIG_INIT is not set
 -# CONFIG_FEATURE_USE_INITTAB is not set
 +CONFIG_INIT=y
 +CONFIG_FEATURE_USE_INITTAB=y
  # CONFIG_FEATURE_KILL_REMOVED is not set
  CONFIG_FEATURE_KILL_DELAY=0
 -# CONFIG_FEATURE_INIT_SCTTY is not set
 -# CONFIG_FEATURE_INIT_SYSLOG is not set
 -# CONFIG_FEATURE_EXTRA_QUIET is not set
 -# CONFIG_FEATURE_INIT_COREDUMPS is not set
 -# CONFIG_FEATURE_INITRD is not set
 +CONFIG_FEATURE_INIT_SCTTY=y
 +CONFIG_FEATURE_INIT_SYSLOG=y
 +CONFIG_FEATURE_EXTRA_QUIET=y
 +CONFIG_FEATURE_INIT_COREDUMPS=y
 +CONFIG_FEATURE_INITRD=y
 +CONFIG_INIT_TERMINAL_TYPE="linux"
  CONFIG_HALT=y
  # CONFIG_FEATURE_CALL_TELINIT is not set
  CONFIG_TELINIT_PATH=""
 @@ -418,7 +419,7 @@ CONFIG_FIRST_SYSTEM_ID=0
  CONFIG_LAST_SYSTEM_ID=0
  # CONFIG_DELUSER is not set
  # CONFIG_GETTY is not set
 -CONFIG_FEATURE_UTMP=y
 +# CONFIG_FEATURE_UTMP is not set
  # CONFIG_FEATURE_WTMP is not set
  # CONFIG_LOGIN is not set
  # CONFIG_PAM is not set
 @@ -518,12 +519,12 @@ CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
  CONFIG_LOSETUP=y
  # CONFIG_LSPCI is not set
  # CONFIG_LSUSB is not set
 -# CONFIG_MDEV is not set
 +CONFIG_MDEV=y
  # CONFIG_FEATURE_MDEV_CONF is not set
  # CONFIG_FEATURE_MDEV_RENAME is not set
  # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
  # CONFIG_FEATURE_MDEV_EXEC is not set
 -# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
 +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
  CONFIG_MKSWAP=y
  # CONFIG_FEATURE_MKSWAP_UUID is not set
  CONFIG_MORE=y
 @@ -551,12 +552,12 @@ CONFIG_MOUNT=y
  # CONFIG_FEATURE_MOUNT_VERBOSE is not set
  # CONFIG_FEATURE_MOUNT_HELPERS is not set
  # CONFIG_FEATURE_MOUNT_LABEL is not set
 -CONFIG_FEATURE_MOUNT_NFS=y
 +# CONFIG_FEATURE_MOUNT_NFS is not set
  # CONFIG_FEATURE_MOUNT_CIFS is not set
  CONFIG_FEATURE_MOUNT_FLAGS=y
  CONFIG_FEATURE_MOUNT_FSTAB=y
  CONFIG_PIVOT_ROOT=y
 -CONFIG_RDATE=y
 +# CONFIG_RDATE is not set
  # CONFIG_RDEV is not set
  # CONFIG_READPROFILE is not set
  # CONFIG_RTCWAKE is not set
 @@ -617,10 +618,10 @@ CONFIG_DC=y
  # CONFIG_LAST is not set
  # CONFIG_FEATURE_LAST_SMALL is not set
  # CONFIG_FEATURE_LAST_FANCY is not set
 -CONFIG_LESS=y
 -CONFIG_FEATURE_LESS_MAXLINES=9999999
 -CONFIG_FEATURE_LESS_BRACKETS=y
 -CONFIG_FEATURE_LESS_FLAGS=y
 +# CONFIG_LESS is not set
 +CONFIG_FEATURE_LESS_MAXLINES=0
 +# CONFIG_FEATURE_LESS_BRACKETS is not set
 +# CONFIG_FEATURE_LESS_FLAGS is not set
  # CONFIG_FEATURE_LESS_MARKS is not set
  # CONFIG_FEATURE_LESS_REGEXP is not set
  # CONFIG_FEATURE_LESS_WINCH is not set
 @@ -658,9 +659,9 @@ CONFIG_TIME=y
  #
  # Networking Utilities
  #
 -CONFIG_FEATURE_IPV6=y
 +# CONFIG_FEATURE_IPV6 is not set
  # CONFIG_FEATURE_UNIX_LOCAL is not set
 -CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
 +# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
  # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
  # CONFIG_ARP is not set
  # CONFIG_ARPING is not set
 @@ -676,7 +677,7 @@ CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
  # CONFIG_FTPGET is not set
  # CONFIG_FTPPUT is not set
  # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
 -CONFIG_HOSTNAME=y
 +# CONFIG_HOSTNAME is not set
  # CONFIG_HTTPD is not set
  # CONFIG_FEATURE_HTTPD_RANGES is not set
  # CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
 @@ -689,22 +690,22 @@ CONFIG_HOSTNAME=y
  # CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
  # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
  # CONFIG_FEATURE_HTTPD_PROXY is not set
 -CONFIG_IFCONFIG=y
 -CONFIG_FEATURE_IFCONFIG_STATUS=y
 +# CONFIG_IFCONFIG is not set
 +# CONFIG_FEATURE_IFCONFIG_STATUS is not set
  # CONFIG_FEATURE_IFCONFIG_SLIP is not set
  # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
 -CONFIG_FEATURE_IFCONFIG_HW=y
 +# CONFIG_FEATURE_IFCONFIG_HW is not set
  # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
  # CONFIG_IFENSLAVE is not set
  # CONFIG_IFPLUGD is not set
 -CONFIG_IFUPDOWN=y
 -CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
 +# CONFIG_IFUPDOWN is not set
 +CONFIG_IFUPDOWN_IFSTATE_PATH=""
  # CONFIG_FEATURE_IFUPDOWN_IP is not set
  # CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
 -CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
 -CONFIG_FEATURE_IFUPDOWN_IPV4=y
 -CONFIG_FEATURE_IFUPDOWN_IPV6=y
 -CONFIG_FEATURE_IFUPDOWN_MAPPING=y
 +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
 +# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
 +# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
 +# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
  # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
  # CONFIG_INETD is not set
  # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
 @@ -713,11 +714,11 @@ CONFIG_FEATURE_IFUPDOWN_MAPPING=y
  # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
  # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
  # CONFIG_FEATURE_INETD_RPC is not set
 -CONFIG_IP=y
 -CONFIG_FEATURE_IP_ADDRESS=y
 -CONFIG_FEATURE_IP_LINK=y
 -CONFIG_FEATURE_IP_ROUTE=y
 -CONFIG_FEATURE_IP_TUNNEL=y
 +# CONFIG_IP is not set
 +# CONFIG_FEATURE_IP_ADDRESS is not set
 +# CONFIG_FEATURE_IP_LINK is not set
 +# CONFIG_FEATURE_IP_ROUTE is not set
 +# CONFIG_FEATURE_IP_TUNNEL is not set
  # CONFIG_FEATURE_IP_RULE is not set
  # CONFIG_FEATURE_IP_SHORT_FORMS is not set
  # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
 @@ -731,57 +732,59 @@ CONFIG_FEATURE_IP_TUNNEL=y
  # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
  # CONFIG_NAMEIF is not set
  # CONFIG_FEATURE_NAMEIF_EXTENDED is not set
 -CONFIG_NC=y
 +# CONFIG_NBDCLIENT is not set
 +# CONFIG_NC is not set
  # CONFIG_NC_SERVER is not set
  # CONFIG_NC_EXTRA is not set
 -CONFIG_NETSTAT=y
 +# CONFIG_NETSTAT is not set
  # CONFIG_FEATURE_NETSTAT_WIDE is not set
  # CONFIG_FEATURE_NETSTAT_PRG is not set
 -CONFIG_NSLOOKUP=y
 +# CONFIG_NSLOOKUP is not set
  # CONFIG_NTPD is not set
  # CONFIG_FEATURE_NTPD_SERVER is not set
 -CONFIG_PING=y
 -CONFIG_PING6=y
 -CONFIG_FEATURE_FANCY_PING=y
 +# CONFIG_PING is not set
 +# CONFIG_PING6 is not set
 +# CONFIG_FEATURE_FANCY_PING is not set
  # CONFIG_PSCAN is not set
 -CONFIG_ROUTE=y
 +# CONFIG_ROUTE is not set
  # CONFIG_SLATTACH is not set
 -CONFIG_TELNET=y
 +# CONFIG_TELNET is not set
  # CONFIG_FEATURE_TELNET_TTYPE is not set
 -CONFIG_FEATURE_TELNET_AUTOLOGIN=y
 +# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
  # CONFIG_TELNETD is not set
  # CONFIG_FEATURE_TELNETD_STANDALONE is not set
  # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
 -CONFIG_TFTP=y
 +# CONFIG_TFTP is not set
  # CONFIG_TFTPD is not set
 -CONFIG_FEATURE_TFTP_GET=y
 -CONFIG_FEATURE_TFTP_PUT=y
 +# CONFIG_FEATURE_TFTP_GET is not set
 +# CONFIG_FEATURE_TFTP_PUT is not set
  # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
  # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
  # CONFIG_TFTP_DEBUG is not set
 -CONFIG_TRACEROUTE=y
 +# CONFIG_TRACEROUTE is not set
  # CONFIG_TRACEROUTE6 is not set
  # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
  # CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
  # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
 -CONFIG_UDHCPD=y
 +# CONFIG_UDHCPD is not set
  # CONFIG_DHCPRELAY is not set
 -CONFIG_DUMPLEASES=y
 +# CONFIG_DUMPLEASES is not set
  # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
 -CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
 -CONFIG_UDHCPC=y
 -CONFIG_FEATURE_UDHCPC_ARPING=y
 +CONFIG_DHCPD_LEASES_FILE=""
 +# CONFIG_UDHCPC is not set
 +# CONFIG_FEATURE_UDHCPC_ARPING is not set
  # CONFIG_FEATURE_UDHCP_PORT is not set
  CONFIG_UDHCP_DEBUG=0
  # CONFIG_FEATURE_UDHCP_RFC3397 is not set
 -CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
 -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
 -CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
 +CONFIG_UDHCPC_DEFAULT_SCRIPT=""
 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
  # CONFIG_VCONFIG is not set
 -CONFIG_WGET=y
 -CONFIG_FEATURE_WGET_STATUSBAR=y
 -CONFIG_FEATURE_WGET_AUTHENTICATION=y
 -CONFIG_FEATURE_WGET_LONG_OPTIONS=y
 +# CONFIG_WGET is not set
 +# CONFIG_FEATURE_WGET_STATUSBAR is not set
 +# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
 +# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
 +# CONFIG_FEATURE_WGET_TIMEOUT is not set
  # CONFIG_ZCIP is not set
  # CONFIG_TCPSVD is not set
  # CONFIG_TUNCTL is not set
 @@ -914,7 +917,7 @@ CONFIG_FEATURE_SH_EXTRA_QUIET=y
  #
  CONFIG_SYSLOGD=y
  CONFIG_FEATURE_ROTATE_LOGFILE=y
 -CONFIG_FEATURE_REMOTE_LOG=y
 +# CONFIG_FEATURE_REMOTE_LOG is not set
  # CONFIG_FEATURE_SYSLOGD_DUP is not set
  CONFIG_FEATURE_IPC_SYSLOG=y
  CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16

init script

When boot image, it doesn't mount /proc /sys and doesn't create devices under /dev(Yocto #1210). The following patch busybox-mount_proc.patch is to fix this:

 diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
 index d46c135..f9ff7bb 100644
 --- a/meta/recipes-core/busybox/busybox.inc
 +++ b/meta/recipes-core/busybox/busybox.inc
 @@ -214,6 +214,16 @@ pkg_postinst_${PN} () {
       
         # This adds the links, remember that this has to work when building an image too, hence the $D
         while read link; do case "$link" in /*/*/*) to="../../bin/busybox";; /bin/*) to="busybox";; /*/*) to="../bin/busybox";; esac; bn=`basename $link`; update-alternatives --install $link $bn $to 50; done <$D/etc/busybox.links
 +  
 +    mkdir -p $D/etc/init.d
 +    cat > $D/etc/init.d/rcS << EOF
 +#!/bin/sh
 +mount -t proc none /proc
 +mount -t sysfs none /sys
 +/sbin/mdev -s
 +EOF
 +  
 +    chmod +x $D/etc/init.d/rcS
  }
  
  pkg_postinst_${PN}-syslog () {

linux-yocto related dependencies

perf

perf requires python perl elfutils as runtime dependency, but we don't need perf in minimal image, so drop them.

 diff --git a/meta/recipes-kernel/linux/linux-tools.inc b/meta/recipes-kernel/linux/linux-tools.inc
 index ef81650..991a827 100644
 --- a/meta/recipes-kernel/linux/linux-tools.inc
 +++ b/meta/recipes-kernel/linux/linux-tools.inc
 @@ -25,4 +25,4 @@ PERFDEPENDS_libc-uclibc = ""
  PERFRDEPENDS = "python perl elfutils"
  PERFRDEPENDS_libc-uclibc = ""
  do_compile_perf[depends] = "${PERFDEPENDS}"
 -RDEPENDS_perf += "${PERFRDEPENDS}"
 +#RDEPENDS_perf += "${PERFRDEPENDS}"

elfutils

When build linux-yocto(perf) will need libelf, so patch to elfutils only build libelf and remove depency "gettext"

 diff --git a/meta/recipes-devtools/elfutils/elfutils_0.148.bb b/meta/recipes-devtools/elfutils/elfutils_0.148.bb
 index 2bedc05..2644687 100644
 --- a/meta/recipes-devtools/elfutils/elfutils_0.148.bb
 +++ b/meta/recipes-devtools/elfutils/elfutils_0.148.bb
 @@ -41,7 +41,7 @@ SRC_URI += "\
          file://i386_dis.h \
          file://x86_64_dis.h \
  "
 -inherit autotools gettext
 +inherit autotools

  EXTRA_OECONF = "--program-prefix=eu-"
  EXTRA_OECONF_append_libc-uclibc = " ${@[, '--enable-uclibc']['${PN}' == '${BPN}']}"
 @@ -57,6 +57,7 @@ do_configure_prepend() {
  # build only libelf for uclibc case

  EXTRA_OEMAKE_libc-uclibc = "-C libelf"
 +EXTRA_OEMAKE = "-C libelf"
  EXTRA_OEMAKE_virtclass-native = ""
  EXTRA_OEMAKE_virtclass-nativesdk = ""

Result

We only enabled eglibc "libc-libm libc-crypt libc-posix-regexp(perf requires it)" by adding one line to local configuration file, default is build/conf/local.conf:

 DISTRO_FEATURES_LIBC = "libc-libm libc-crypt libc-posix-regexp"

and then build minimal image:

 bitbake core-image-minimal

At last we will get the rootfs image looks like "core-image-minimal-mpc8315e-rdb-20110621065105.rootfs.tar.bz2", it takes 2.9M disk space after extraction.

Update

eglibc

Commit f0cd776e in Jul 8 2011 add dependency bash to eglibc, and bash depends on

  • ncurse: ncurse requires eglibc option libc-posix-wchar-io
  • gettext: requires libc-spawn libc-locale-code and libc-getlogin

So right now we have two choice:

  1. put "libc-posix-wchar-io libc-spawn libc-locale-code libc-getlogin" to DISTRO_FEATURES_LIBC in conf/local.conf, then you could succeed to build eglibc.
  2. remove the dependency bash from eglibc by patch
diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index 5308bb9..205818b 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -69,7 +69,7 @@ FILES_${PN}-utils = "${bindir}/* ${sbindir}/*"
 FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"
 FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
 RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
-RDEPENDS_${PN}-utils += "bash"
+#RDEPENDS_${PN}-utils += "bash"
 FILES_${PN}-pcprofile = "${base_libdir}/libpcprofile.so"
 FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db.so.* ${base_libdir}/libthread_db-*.so"
 RPROVIDES_${PN}-dev += "libc-dev"

Then we can get the previous result.

bus-native

Commit 9d086cd1519b95bff27ca1cda4555ffae92c5ce3 on Fri Oct 21, 2011

inherit a new class useradd, then import dependency shadow which need eglibc provides more options. So remove useradd from inheritance.

diff --git a/meta/recipes-core/dbus/dbus.inc b/meta/recipes-core/dbus/dbus.inc
index 9ea42c2..9c10a0e 100644
--- a/meta/recipes-core/dbus/dbus.inc
+++ b/meta/recipes-core/dbus/dbus.inc
@@ -14,7 +14,7 @@ SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
            file://tmpdir.patch; \
            file://dbus-1.init"

-inherit useradd autotools pkgconfig gettext update-rc.d
+inherit autotools pkgconfig gettext update-rc.d

 INITSCRIPT_NAME = "dbus-1"
 INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ."

MIPS

Another update is about mips. Because the code to support mips architecture use macro "GLRO(dl_debug_mask)" in file ports/sysdeps/mips/dl-lookup.c, and this needs eglibc rtld debug support. So if you want to build minimal image for mips, please put "libc-rtld-debug" to DISTRO_FEATURES_LIBC.