Browse Source

goodbye systemd, never worked fully on a openadk emulator or device. Use simple static device nodes with devtmpfs as default. mdev is to bloated for some devices

Waldemar Brodkorb 4 months ago
parent
commit
6122629eeb

+ 15 - 15
docs/running-openadk.txt

@@ -60,8 +60,6 @@ OpenADK is generated while producing the +base-files+ package.  The main job
 the default inittab does is to start the +/etc/init.d/rcS+ shell script, and
 start one or more +getty+ programs (which provides a login prompt).
 
-Support for systemd and s6 is very experimental at the moment.
-
 /dev management
 ~~~~~~~~~~~~~~~
 
@@ -73,19 +71,21 @@ hardware devices, even if they are properly recognized by the Linux
 kernel.
 
 In OpenADK you can choose between different types of device managements.
-OpenADK defaults to *dynamic device nodes using devtmpfs and mdev*. This method
-relies on the _devtmpfs_ virtual filesystem in the kernel, which is enabled by
-default for all OpenADK generated kernels, and adds the +mdev+ userspace
-utility on top of it. +mdev+ is a program part of Busybox that the kernel will
-call every time a device is added or removed. Thanks to the +/etc/mdev.conf+
-configuration file, +mdev+ can be configured to for example, set specific
-permissions or ownership on a device file, call a script or application
-whenever a device appears or disappear, etc. Basically, it allows _userspace_
-to react on device addition and removal events. +mdev+ is also important if you
-have devices that require a firmware, as it will be responsible for pushing the
-firmware contents to the kernel. +mdev+ is a lightweight implementation (with
-fewer features) of +udev+. For more details about +mdev+ and the syntax of its
-configuration file, see http://git.busybox.net/busybox/tree/docs/mdev.txt.
+OpenADK defaults to *static device nodes using devtmpfs*. That is the simplest
+way available. Most users might like to change it to *dynamic device nodes
+using devtmpfs and mdev*. This method relies on the _devtmpfs_ virtual
+filesystem in the kernel, which is enabled by default for all OpenADK generated
+kernels, and adds the +mdev+ userspace utility on top of it. +mdev+ is a
+program part of Busybox that the kernel will call every time a device is added
+or removed. Thanks to the +/etc/mdev.conf+ configuration file, +mdev+ can be
+configured to for example, set specific permissions or ownership on a device
+file, call a script or application whenever a device appears or disappear, etc.
+Basically, it allows _userspace_ to react on device addition and removal
+events. +mdev+ is also important if you have devices that require a firmware,
+as it will be responsible for pushing the firmware contents to the kernel.
++mdev+ is a lightweight implementation (with fewer features) of +udev+. For
+more details about +mdev+ and the syntax of its configuration file, see
+http://git.busybox.net/busybox/tree/docs/mdev.txt.
 
 initscripts
 ~~~~~~~~~~~

+ 0 - 1
mk/build.mk

@@ -24,7 +24,6 @@ DEFCONFIG=		ADK_DEBUG=n \
 			ADK_USE_CCACHE=n \
 			ADK_RUNTIME_START_SERVICES=n \
 			ADK_PACKAGE_BASE_FILES=y \
-			ADK_PACKAGE_DBUS_WITH_SYSTEMD=n \
 			ADK_PACKAGE_KEXECINIT=n \
 			ADK_PACKAGE_CLASSPATH=n \
 			ADK_PACKAGE_LM_SENSORS_DETECT=n \

+ 0 - 6
mk/image.mk

@@ -78,12 +78,6 @@ image-prepare-post:
 	-rm -f ${TARGET_DIR}/bin/sh
 	ln -sf ${BINSH} ${TARGET_DIR}/bin/sh
 
-ifeq ($(ADK_RUNTIME_INIT_SYSTEMD),y)
-	ln -fs ../usr/${ADK_TARGET_LIBC_PATH}/systemd/systemd $(TARGET_DIR)/sbin/init
-	ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/halt
-	ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/poweroff
-	ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/reboot
-endif
 	test -z $(GIT) || \
 	     $(GIT) log -1|head -1|sed -e 's#commit ##' \
 		> $(TARGET_DIR)/etc/.adkgithash

+ 0 - 9
mk/package.mk

@@ -224,15 +224,6 @@ endif
 ifneq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
 	-@rm -rf $${IDIR_$(1)}/etc/network
 endif
-ifeq (${ADK_RUNTIME_INIT_SYSTEMD},y)
-	@for file in $$$$(ls ./files/*.service 2>/dev/null); do \
-		fname=$$$$(echo $$$$file| sed -e "s#.*/##"); \
-		mkdir -p $$(IDIR_$(1))/usr/lib/systemd/system && cp $$$$file $$(IDIR_$(1))/usr/lib/systemd/system/$$$$fname; \
-		mkdir -p $$(IDIR_$(1))/etc/systemd/system/multi-user.target.wants; \
-		ln -sf ../../../../usr/lib/systemd/system/$$$$fname \
-			$$(IDIR_$(1))/etc/systemd/system/multi-user.target.wants; \
-	done
-endif
 endif
 	@mkdir -p $${PACKAGE_DIR} '$${STAGING_PKG_DIR}/stamps' \
 	    '$${STAGING_TARGET_DIR}/scripts'

+ 2 - 2
package/Config.in.options

@@ -47,7 +47,7 @@ config ADK_LEAVE_ETC_ALONE
 
 config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
 	bool "ship custom init-scripts along with packages"
-	default y if !ADK_RUNTIME_INIT_SYSTEMD
+	default y
 	depends on !ADK_LEAVE_ETC_ALONE
 	help
 	  Turning this option to false will prevent the ADK from
@@ -59,7 +59,7 @@ config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
 
 config ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS
 	bool "ship custom network-scripts along with packages"
-	default y if !ADK_RUNTIME_INIT_SYSTEMD
+	default y
 	depends on !ADK_LEAVE_ETC_ALONE
 	help
 	  Turning this option to false will prevent the ADK from

+ 0 - 2
package/base-files/Makefile

@@ -40,7 +40,6 @@ do-install:
 	ln -sf ../run $(IDIR_BASE_FILES)/var/run
 	chmod 600 $(IDIR_BASE_FILES)/etc/shadow
 	chmod 1777 ${IDIR_BASE_FILES}/tmp
-ifeq ($(ADK_RUNTIME_INIT_SYSTEMD),)
 	echo $(ADK_RUNTIME_TMPFS_SIZE) > $(IDIR_BASE_FILES)/etc/tmpfs
 	mkdir -p $(IDIR_BASE_FILES)/etc/init.d
 	cp ./files/init.d/* $(IDIR_BASE_FILES)/etc/init.d
@@ -64,7 +63,6 @@ ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y)
 else
 	(cd $(IDIR_BASE_FILES)/etc; ln -sf ../tmp/resolv.conf .)
 endif
-endif
 ifeq ($(ADK_RUNTIME_DEV_MDEV),y)
 	$(CP) ./files/rcdev.mdev $(IDIR_BASE_FILES)/etc/init.d/rcdev
 	$(SED) "s#@ADK_RUNTIME_DEV_MDEV_LOGGING@#"$(ADK_RUNTIME_DEV_MDEV_LOGGING_LINE)"#g" $(IDIR_BASE_FILES)/etc/init.d/rcdev

+ 0 - 2
package/busybox/Makefile

@@ -69,7 +69,6 @@ do-build:
 do-install:
 	PATH='$(HOST_PATH)' $(MAKE) ${BB_MAKE_FLAGS} -C ${WRKBUILD} install $(MAKE_TRACE)
 	$(CP) $(WRKINST)/* $(IDIR_BUSYBOX)/
-ifeq ($(ADK_RUNTIME_INIT_SYSTEMD),)
 ifeq ($(BUSYBOX_IFUP),y)
 	$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/init.d
 ifeq ($(ADK_RUNTIME_WAIT_FOR_ETHERNET),y)
@@ -78,7 +77,6 @@ else
 	$(INSTALL_BIN) ./files/network $(IDIR_BUSYBOX)/etc/init.d/network
 endif
 endif
-endif
 ifeq ($(ADK_DEBUG),y)
 	${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \
 		$(IDIR_BUSYBOX)/bin/busybox

+ 3 - 17
package/dbus/Makefile

@@ -5,7 +5,7 @@ include ${ADK_TOPDIR}/rules.mk
 
 PKG_NAME:=		dbus
 PKG_VERSION:=		1.10.20
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_HASH:=		e574b9780b5425fde4d973bb596e7ea0f09e00fe2edd662da9016e976c460b48
 PKG_DESCR:=		desktop bus daemon
 PKG_SECTION:=		sys/misc
@@ -24,10 +24,6 @@ PKGSD_LIBDBUS:=		DBUS library
 PKGSC_LIBDBUS:=		libs/misc
 PKGSS_LIBDBUS:=		libexpat libuuid
 
-PKG_FLAVOURS_DBUS:=	WITH_SYSTEMD
-PKGFD_WITH_SYSTEMD:=	enable systemd support
-PKGFB_WITH_SYSTEMD:=	systemd
-
 include ${ADK_TOPDIR}/mk/package.mk
 
 $(eval $(call PKG_template,DBUS,dbus,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -36,14 +32,8 @@ $(eval $(call PKG_template,LIBDBUS,libdbus,${PKG_VERSION}-${PKG_RELEASE},${PKGSS
 TARGET_LDFLAGS+=	-luuid
 
 AUTOTOOL_STYLE:=	autoreconf
-ifeq ($(ADK_PACKAGE_DBUS_WITH_SYSTEMD),y)
-CONFIGURE_ARGS+=	--enable-systemd --with-systemdsystemunitdir=/usr/lib/systemd/system
-TARGET_LDFLAGS+=	-lsystemd
-else
-CONFIGURE_ARGS+=	--disable-systemd
-endif
-
-CONFIGURE_ARGS+=	--disable-tests \
+CONFIGURE_ARGS+=	--disable-systemd \
+			--disable-tests \
 			--disable-asserts \
 			--enable-abstract-sockets \
 			--with-dbus-user=dbus \
@@ -76,10 +66,6 @@ dbus-install:
 	${CP} ${WRKINST}/etc/dbus-1 ${IDIR_DBUS}/etc
 	${CP} ${WRKINST}/usr/share/dbus-1 ${IDIR_DBUS}/usr/share
 	${CP} ${WRKINST}/usr/bin/dbus-* ${IDIR_DBUS}/usr/bin
-ifeq ($(ADK_PACKAGE_DBUS_WITH_SYSTEMD),y)
-	${INSTALL_DIR} ${IDIR_DBUS}/usr/lib/systemd
-	${CP} ${WRKINST}/usr/lib/systemd/* ${IDIR_DBUS}/usr/lib/systemd
-endif
 	# workaround for dev subpackage
 	${INSTALL_DIR} $(IDIR_DBUS_DEV)/usr/include/dbus-1.0/dbus
 	$(CP) $(WRKBUILD)/dbus/dbus-arch-deps.h \

+ 0 - 11
package/dropbear/files/dropbear.service

@@ -1,11 +0,0 @@
-[Unit]
-Description=Dropbear SSH daemon
-After=syslog.target network.target
-
-[Service]
-EnvironmentFile=-/etc/default/dropbear
-ExecStart=/usr/sbin/dropbear -F -R $DROPBEAR_ARGS
-ExecReload=/bin/kill -HUP $MAINPID
-
-[Install]
-WantedBy=multi-user.target

+ 0 - 9
package/fwupdate/files/fwupdate.service

@@ -1,9 +0,0 @@
-[Unit]
-Description=Firmware Update Validation
-After=dropbear.service
-
-[Service]
-ExecStart=/usr/sbin/fwvalidate
-
-[Install]
-WantedBy=multi-user.target

+ 0 - 155
package/systemd/Makefile

@@ -1,155 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:=		systemd
-PKG_VERSION:=		250
-PKG_RELEASE:=		1
-PKG_HASH:=		389935dea020caf6e2e81a4e90e556bd5599a2086861045efdc06197776e94e1
-PKG_DESCR:=		system and service manager
-PKG_SECTION:=		base/init
-PKG_DEPENDS:=		libcap libmount libuuid libblkid libncurses libkmod
-PKG_BUILDDEP:=		intltool-host gperf-host libcap util-linux
-PKG_BUILDDEP+=		python3-host gettext-host kmod meson-host ninja-host
-PKG_BUILDDEP+=		python3-jinja2-host
-PKG_KDEPENDS:=		inotify-user cgroups namespaces fhandle tmpfs-posix-acl tmpfs-xattr
-PKG_KDEPENDS+=		uts-ns autofs4-fs fanotify
-PKG_LIBC_DEPENDS:=	glibc
-PKG_NEEDS:=		locale intl
-PKG_URL:=		https://wiki.freedesktop.org/www/Software/systemd/
-PKG_SITES:=		https://github.com/systemd/systemd/archive/
-
-PKG_CFLINE_SYSTEMD:=	select BUSYBOX_SULOGIN if ADK_RUNTIME_BASE_BUSYBOX
-
-PKG_FLAVOURS_SYSTEMD:=	WITH_PAM WITH_XZ WITH_ZLIB
-PKGFD_WITH_PAM:=	enable pam support
-PKGFS_WITH_PAM:=	pam
-PKGFB_WITH_PAM:=	pam
-PKGFD_WITH_XZ:=		enable xz support
-PKGFS_WITH_XZ:=		xz
-PKGFB_WITH_XZ:=		xz
-PKGFD_WITH_ZLIB:=	enable zlib support
-PKGFS_WITH_ZLIB:=	zlib
-PKGFB_WITH_ZLIB:=	zlib
-
-DISTFILES:=             v$(PKG_VERSION).tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,SYSTEMD,systemd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-WRKBUILD=               $(WRKDIR)/$(PKG_NAME)-obj
-
-CONFIG_STYLE:=		meson
-BUILD_STYLE:=		meson
-INSTALL_STYLE:=		meson
-
-MESON_FLAGS+=		-Drootlibdir='/usr/lib' \
-			-Dsysvinit-path='' \
-			-Dsplit-bin=true \
-			-Dsplit-usr=true \
-			-Dman=false \
-			-Dima=false \
-			-Dlibcryptsetup=false \
-			-Defi=false \
-			-Dgnu-efi=false \
-			-Dldconfig=false \
-			-Ddefault-dnssec=no \
-			-Dtests=false \
-			-Dkmod-path=/usr/bin/kmod \
-			-Dkexec-path=/usr/sbin/kexec \
-			-Dsulogin-path=/sbin/sulogin \
-			-Dmount-path=/bin/mount \
-			-Dumount-path=/bin/umount \
-			-Dacl=false \
-			-Daudit=false \
-			-Didn=false \
-			-Dmode=release \
-			-Dnss-systemd=true \
-			-Dresolve=false \
-			-Dseccomp=false \
-			-Dxkbcommon=false \
-			-Dbzip2=false \
-			-Dlz4=false \
-			-Dlibcurl=false \
-			-Dgcrypt=false \
-			-Dqrencode=false \
-			-Dmicrohttpd=false \
-			-Dselinux=false \
-			-Dhwdb=false \
-			-Dportabled=false \
-			-Dbinfmt=false \
-			-Dvconsole=false \
-			-Dquotacheck=false \
-			-Dbacklight=false \
-			-Drfkill=false \
-			-Dmachined=false \
-			-Dimportd=false \
-			-Dhostnamed=false \
-			-Dlocaled=false \
-			-Dcoredump=false \
-			-Dsmack=false \
-			-Dsysusers=false \
-			-Dhibernate=false \
-			-Dpolkit=true \
-			-Dnetworkd=true \
-			-Dtimesyncd=true \
-			-Dtmpfiles=true \
-			-Dnss-systemd=true \
-			-Dfirstboot=true \
-			-Drandomseed=true \
-			-Dlogind=true \
-			-Dtimedated=true
-
-
-ifeq ($(ADK_PACKAGE_SYSTEMD_WITH_PAM),y)
-MESON_FLAGS+=		-Dpam=true
-else
-MESON_FLAGS+=		-Dpam=false
-endif
-
-ifeq ($(ADK_PACKAGE_SYSTEMD_WITH_XZ),y)
-MESON_FLAGS+=		-Dxz=true
-else
-MESON_FLAGS+=		-Dxz=false
-endif
-
-ifeq ($(ADK_PACKAGE_SYSTEMD_WITH_ZLIB),y)
-MESON_FLAGS+=		-Dzlib=true
-else
-MESON_FLAGS+=		-Dzlib=false
-endif
-
-systemd-install:
-	$(INSTALL_DIR) $(IDIR_SYSTEMD)/etc
-	touch $(IDIR_SYSTEMD)/etc/machine-id
-	$(CP) $(WRKINST)/etc/* \
-		$(IDIR_SYSTEMD)/etc
-	$(INSTALL_DIR) $(IDIR_SYSTEMD)/lib/systemd
-	$(CP) $(WRKINST)/lib/systemd/* \
-		$(IDIR_SYSTEMD)/lib/systemd
-	$(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/lib
-	$(CP) $(WRKINST)/usr/lib/*.so* \
-		$(IDIR_SYSTEMD)/usr/lib
-	$(CP) $(WRKINST)/usr/lib/{systemd,kernel,sysctl.d,tmpfiles.d} \
-		$(IDIR_SYSTEMD)/usr/lib
-	$(INSTALL_DIR) $(IDIR_SYSTEMD)/sbin
-	$(CP) $(WRKINST)/sbin/* \
-		$(IDIR_SYSTEMD)/sbin
-	$(INSTALL_DIR) $(IDIR_SYSTEMD)/bin
-	$(CP) $(WRKINST)/bin/* \
-		$(IDIR_SYSTEMD)/bin
-	$(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/bin
-	$(CP) $(WRKINST)/usr/bin/* \
-		$(IDIR_SYSTEMD)/usr/bin
-	$(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/share
-	$(CP) $(WRKINST)/usr/share/* \
-		$(IDIR_SYSTEMD)/usr/share
-	$(CP) ./files/*.network \
-		$(IDIR_SYSTEMD)/etc/systemd/network
-	(cd $(IDIR_SYSTEMD)/lib/systemd/system && ln -sf multi-user.target default.target)
-	$(CP) $(WRKBUILD)/systemd $(IDIR_SYSTEMD)/usr/lib/systemd/
-	mv $(IDIR_SYSTEMD)/lib/systemd/libsystemd-shared-250.so $(IDIR_SYSTEMD)/lib
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 0 - 27
package/systemd/files/systemd.postinst

@@ -1,27 +0,0 @@
-#!/bin/sh
-. $IPKG_INSTROOT/etc/functions.sh
-gid=$(get_next_gid)
-add_group utmp $gid
-gid=$(get_next_gid)
-add_group systemd-journal $gid
-gid=$(get_next_gid)
-add_group systemd-bus-proxy $gid
-add_user systemd-bus-proxy $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-journal-gateway $gid
-add_user systemd-journal-gateway $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-journal-remote $gid
-add_user systemd-journal-remote $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-journal-upload $gid
-add_user systemd-journal-upload $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-network $gid
-add_user systemd-network $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-resolve $gid
-add_user systemd-resolve $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-timesync $gid
-add_user systemd-timesync $(get_next_uid) $gid /

+ 0 - 5
package/systemd/files/wired.network

@@ -1,5 +0,0 @@
-[Match]
-Name=en*
-
-[Network]
-DHCP=ipv4

+ 1 - 3
target/Makefile

@@ -56,7 +56,7 @@ ifeq ($(ADK_RUNTIME_VERBOSE_KERNEL_VGA_ONLY),y)
 		$(BUILD_DIR)/.kernelconfig.board
 endif
 ifeq ($(ADK_RUNTIME_VERBOSE_KERNEL_SERIAL_ONLY),y)
-	$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 console=$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE),$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)" systemd.log_level=debug systemd.log_target=console#' \
+	$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 console=$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE),$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)"#' \
 		$(BUILD_DIR)/.kernelconfig.board
 endif
 ifeq ($(ADK_RUNTIME_VERBOSE_KERNEL_VGA_SERIAL),y)
@@ -71,14 +71,12 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_M68K_Q800)$(ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208),
 	@$(SED) 's#^\(CONFIG_.*BOOTPARAM_STRING="\)\(.*\)"#\1\2 ro $(FS_CMDLINE)"#' \
 		$(BUILD_DIR)/.kernelconfig.board
 endif
-ifneq ($(ADK_RUNTIME_INIT_SYSTEMD),y)
 ifeq ($(ADK_TARGET_ROOTFS_NFSROOT),)
 	@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 ro"#' \
 		$(BUILD_DIR)/.kernelconfig.board
 else
 	@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 rw"#' \
 		$(BUILD_DIR)/.kernelconfig.board
-endif
 endif
 	@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 $(FS_CMDLINE)"#' \
 		$(BUILD_DIR)/.kernelconfig.board

+ 9 - 36
target/config/Config.in.runtime

@@ -24,52 +24,35 @@ config ADK_RUNTIME_INIT_SIMPLEINIT
 	bool "Use a very simple init"
 	select ADK_PACKAGE_SIMPLEINIT
 
-config ADK_RUNTIME_INIT_SYSTEMD
-	bool "Use systemd init and supervision"
-	select ADK_PACKAGE_SYSTEMD
-	select ADK_PACKAGE_DBUS
-	select ADK_PACKAGE_DBUS_WITH_SYSTEMD
-	select ADK_TARGET_LIBC_WITH_LOCALE if ADK_TARGET_LIB_UCLIBC_NG
-	select ADK_TARGET_LIBC_WITH_LIBINTL_STUB if ADK_TARGET_LIB_UCLIBC_NG
-	depends on ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_UCLIBC_NG
-
 endchoice
 
 choice
 prompt "system for /dev management"
 depends on !ADK_APPLIANCE_TOOLCHAIN
-default ADK_RUNTIME_DEV_STATIC if ADK_TARGET_ARCH_CRIS || !ADK_TARGET_WITH_MMU
-default ADK_RUNTIME_DEV_MDEV
+default ADK_RUNTIME_DEV_STATIC
+
+config ADK_RUNTIME_DEV_STATIC
+	bool "Use static /dev (devtmpfs)"
+	select ADK_LINUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_LINUX
+	select ADK_LINUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_LINUX
 
 config ADK_RUNTIME_DEV_MDEV
-	bool "Use mdev"
+	bool "Use dynamic /dev with mdev"
 	select ADK_LINUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_LINUX
 	select ADK_LINUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_LINUX
 	depends on ADK_PACKAGE_BUSYBOX
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 
 config ADK_RUNTIME_DEV_MDEV_LOGGING
 	bool "Log mdev events into /dev/mdev.log"
 	depends on ADK_RUNTIME_DEV_MDEV
 
 config ADK_RUNTIME_DEV_UDEV
-	bool "Use udev"
+	bool "Use dynamic /dev with udev"
 	select ADK_PACKAGE_UDEV
 	# needs depmod for module dependency generation on host
 	select ADK_HOST_BUILD_KMOD
 	select ADK_LINUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_LINUX
 	select ADK_LINUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_LINUX
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
-
-config ADK_RUNTIME_DEV_SYSTEMD_UDEV
-	bool "Use systemd udev"
-	select ADK_LINUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_LINUX
-	select ADK_LINUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_LINUX
-	depends on ADK_RUNTIME_INIT_SYSTEMD
-
-config ADK_RUNTIME_DEV_STATIC
-	bool "Use static /dev"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 
 endchoice
 
@@ -170,13 +153,11 @@ config ADK_RUNTIME_USER_SHELL
 
 config ADK_RUNTIME_MOUNT_DEBUGFS
 	bool "mount debugfs"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 	help
 	  mount debugfs under /sys/kernel/debug
 
 config ADK_RUNTIME_START_SERVICES
 	bool "start services by default"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 	default n
 	help
 	  Enable this option to start selected services on boot.
@@ -197,7 +178,7 @@ config ADK_RUNTIME_TMPFS_SIZE
 	default "16384" if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default "8192" if ADK_TARGET_SYSTEM_MIKROTIK_RB532
 	default "1024"
-	depends on !ADK_RUNTIME_INIT_SIMPLEINIT && !ADK_RUNTIME_INIT_SYSTEMD
+	depends on !ADK_RUNTIME_INIT_SIMPLEINIT
 	help
 	  Size of /tmp in memory in Kilobyte.
 
@@ -285,7 +266,6 @@ endchoice
 
 choice
 prompt "start getty or shell after bootup"
-depends on !ADK_RUNTIME_INIT_SYSTEMD
 default ADK_RUNTIME_GETTY
 
 config ADK_RUNTIME_GETTY
@@ -307,7 +287,6 @@ endchoice
 
 config ADK_RUNTIME_GETTY_VGA
 	bool "start getty on VGA console (tty1-tty6)"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 	depends on ADK_RUNTIME_GETTY \
                 && (ADK_TARGET_WITH_VGA || ADK_TARGET_GENERIC)
 	default y if ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY
@@ -330,7 +309,6 @@ config ADK_RUNTIME_GETTY_VGA
 
 config ADK_RUNTIME_GETTY_SERIAL
 	bool "start getty on serial console"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 	depends on ADK_RUNTIME_GETTY && ( ADK_TARGET_WITH_SERIAL \
 		|| ADK_TARGET_QEMU \
 		|| ADK_TARGET_GENERIC \
@@ -351,19 +329,16 @@ config ADK_RUNTIME_GETTY_SERIAL
 
 config ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN
        bool "run autologin on serial getty"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
        depends on ADK_RUNTIME_GETTY_SERIAL
        select ADK_PACKAGE_AUTOLOGIN
 
 config ADK_RUNTIME_CONSOLE_VGA_DEVICE
 	string "VGA console device"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 	depends on ADK_TARGET_WITH_VGA || ADK_TARGET_GENERIC
 	default "tty0"
 
 config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
 	string "serial console device"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 	depends on ADK_TARGET_WITH_SERIAL \
 		|| ADK_TARGET_QEMU \
 		|| ADK_TARGET_GENERIC \
@@ -400,7 +375,6 @@ config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
 
 config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
 	string "serial console speed"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 	depends on ADK_TARGET_WITH_SERIAL \
 		|| ADK_TARGET_QEMU \
 		|| ADK_TARGET_GENERIC \
@@ -542,7 +516,6 @@ config ADK_RUNTIME_WAIT_FOR_ETHERNET
 
 config ADK_SIMPLE_NETWORK_CONFIG
 	bool "simple network configuration"
-	depends on !ADK_RUNTIME_INIT_SYSTEMD
 	help
 	  Manually change network config