initd version
This commit is contained in:
103
board/qemu/x86_64/linux.config
Normal file
103
board/qemu/x86_64/linux.config
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
CONFIG_SYSVIPC=y
|
||||||
|
CONFIG_POSIX_MQUEUE=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
|
CONFIG_BPF_SYSCALL=y
|
||||||
|
CONFIG_BPF_JIT=y
|
||||||
|
CONFIG_IKCONFIG=y
|
||||||
|
CONFIG_IKCONFIG_PROC=y
|
||||||
|
CONFIG_CGROUPS=y
|
||||||
|
CONFIG_MEMCG=y
|
||||||
|
CONFIG_BLK_CGROUP=y
|
||||||
|
CONFIG_CGROUP_SCHED=y
|
||||||
|
CONFIG_CFS_BANDWIDTH=y
|
||||||
|
CONFIG_RT_GROUP_SCHED=y
|
||||||
|
CONFIG_CGROUP_PIDS=y
|
||||||
|
CONFIG_CGROUP_RDMA=y
|
||||||
|
CONFIG_CGROUP_FREEZER=y
|
||||||
|
CONFIG_CPUSETS=y
|
||||||
|
CONFIG_CGROUP_DEVICE=y
|
||||||
|
CONFIG_CGROUP_CPUACCT=y
|
||||||
|
CONFIG_CGROUP_PERF=y
|
||||||
|
CONFIG_CGROUP_BPF=y
|
||||||
|
CONFIG_CGROUP_MISC=y
|
||||||
|
CONFIG_USER_NS=y
|
||||||
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
|
CONFIG_SMP=y
|
||||||
|
CONFIG_HYPERVISOR_GUEST=y
|
||||||
|
CONFIG_PARAVIRT=y
|
||||||
|
CONFIG_PARAVIRT_SPINLOCKS=y
|
||||||
|
# CONFIG_GCC_PLUGINS is not set
|
||||||
|
CONFIG_MODULES=y
|
||||||
|
CONFIG_MODULE_UNLOAD=y
|
||||||
|
CONFIG_NET=y
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
CONFIG_INET=y
|
||||||
|
CONFIG_NETFILTER=y
|
||||||
|
CONFIG_BRIDGE_NETFILTER=y
|
||||||
|
CONFIG_NF_CONNTRACK=y
|
||||||
|
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
|
||||||
|
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
|
||||||
|
CONFIG_IP_NF_IPTABLES=y
|
||||||
|
CONFIG_IP_NF_FILTER=y
|
||||||
|
CONFIG_IP_NF_NAT=y
|
||||||
|
CONFIG_IP_NF_TARGET_MASQUERADE=y
|
||||||
|
CONFIG_IP_NF_RAW=y
|
||||||
|
CONFIG_BRIDGE=y
|
||||||
|
# CONFIG_WIRELESS is not set
|
||||||
|
CONFIG_PCI=y
|
||||||
|
CONFIG_DEVTMPFS=y
|
||||||
|
CONFIG_DEVTMPFS_MOUNT=y
|
||||||
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
|
CONFIG_BLK_DEV_DRBD=m
|
||||||
|
CONFIG_BLK_DEV_RAM=y
|
||||||
|
CONFIG_BLK_DEV_RAM_COUNT=1
|
||||||
|
CONFIG_VIRTIO_BLK=y
|
||||||
|
CONFIG_BLK_DEV_RBD=m
|
||||||
|
CONFIG_BLK_DEV_NVME=y
|
||||||
|
CONFIG_BLK_DEV_SD=y
|
||||||
|
CONFIG_SCSI_VIRTIO=y
|
||||||
|
CONFIG_ATA=y
|
||||||
|
CONFIG_ATA_PIIX=y
|
||||||
|
CONFIG_NETDEVICES=y
|
||||||
|
CONFIG_VETH=y
|
||||||
|
CONFIG_VIRTIO_NET=y
|
||||||
|
CONFIG_NE2K_PCI=y
|
||||||
|
CONFIG_8139CP=y
|
||||||
|
# CONFIG_WLAN is not set
|
||||||
|
CONFIG_INPUT_EVDEV=y
|
||||||
|
CONFIG_SERIAL_8250=y
|
||||||
|
CONFIG_SERIAL_8250_CONSOLE=y
|
||||||
|
CONFIG_VIRTIO_CONSOLE=y
|
||||||
|
CONFIG_HW_RANDOM_VIRTIO=m
|
||||||
|
CONFIG_DRM=y
|
||||||
|
CONFIG_DRM_QXL=y
|
||||||
|
CONFIG_DRM_VIRTIO_GPU=y
|
||||||
|
CONFIG_DRM_BOCHS=y
|
||||||
|
CONFIG_SOUND=y
|
||||||
|
CONFIG_SND=y
|
||||||
|
CONFIG_SND_HDA_INTEL=y
|
||||||
|
CONFIG_SND_HDA_GENERIC=y
|
||||||
|
CONFIG_USB=y
|
||||||
|
CONFIG_USB_XHCI_HCD=y
|
||||||
|
CONFIG_USB_EHCI_HCD=y
|
||||||
|
CONFIG_USB_UHCI_HCD=y
|
||||||
|
CONFIG_USB_STORAGE=y
|
||||||
|
CONFIG_VIRTIO_PCI=y
|
||||||
|
CONFIG_VIRTIO_BALLOON=y
|
||||||
|
CONFIG_VIRTIO_INPUT=y
|
||||||
|
CONFIG_VIRTIO_MMIO=y
|
||||||
|
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
||||||
|
CONFIG_EXT4_FS=y
|
||||||
|
CONFIG_FUSE_FS=y
|
||||||
|
CONFIG_OVERLAY_FS=y
|
||||||
|
CONFIG_OVERLAY_FS_INDEX=y
|
||||||
|
CONFIG_OVERLAY_FS_XINO_AUTO=y
|
||||||
|
CONFIG_OVERLAY_FS_METACOPY=y
|
||||||
|
CONFIG_TMPFS=y
|
||||||
|
CONFIG_TMPFS_POSIX_ACL=y
|
||||||
|
CONFIG_SQUASHFS=y
|
||||||
|
CONFIG_SQUASHFS_XATTR=y
|
||||||
|
CONFIG_CRYPTO_DEFLATE=y
|
||||||
|
CONFIG_UNWINDER_FRAME_POINTER=y
|
||||||
|
|
||||||
11
board/qemu/x86_64/post-build.sh
Normal file
11
board/qemu/x86_64/post-build.sh
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -u
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Add a console on tty1
|
||||||
|
if [ -e ${TARGET_DIR}/etc/inittab ]; then
|
||||||
|
grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \
|
||||||
|
sed -i '/GENERIC_SERIAL/a\
|
||||||
|
tty1::respawn:/sbin/getty -L tty1 0 vt100 # QEMU graphical window' ${TARGET_DIR}/etc/inittab
|
||||||
|
fi
|
||||||
73
configs/nimux_x86_defconfig
Normal file
73
configs/nimux_x86_defconfig
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
BR2_x86_64=y
|
||||||
|
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y
|
||||||
|
BR2_GLOBAL_PATCH_DIR="board/qemu/patches"
|
||||||
|
#BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_NIMUX_PATH)/patches"
|
||||||
|
BR2_RELRO_PARTIAL=y
|
||||||
|
BR2_FORTIFY_SOURCE_2=y
|
||||||
|
BR2_TARGET_GENERIC_HOSTNAME="nimux"
|
||||||
|
BR2_TARGET_GENERIC_ISSUE="Welcome to Nimux!"
|
||||||
|
BR2_TARGET_GENERIC_PASSWD_SHA512=y
|
||||||
|
BR2_TARGET_ROOTFS_CPIO=y
|
||||||
|
BR2_TARGET_ROOTFS_CPIO_GZIP=y
|
||||||
|
BR2_TARGET_ENABLE_ROOT_LOGIN=y
|
||||||
|
BR2_TARGET_GENERIC_ROOT_PASSWD="hellotux"
|
||||||
|
BR2_TARGET_ROOTFS_INITRAMFS=y
|
||||||
|
BR2_TARGET_ROOTFS_ISO9660=y
|
||||||
|
BR2_TARGET_ROOTFS_ISO9660_ISOLINUX=y
|
||||||
|
BR2_TARGET_SYSLINUX=y
|
||||||
|
BR2_TARGET_SYSLINUX_LEGACY_BIOS=y
|
||||||
|
BR2_TARGET_SYSLINUX_ISOLINUX=y
|
||||||
|
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
|
||||||
|
BR2_SYSTEM_BIN_SH_BASH=y
|
||||||
|
BR2_SYSTEM_BIN_SH="bash"
|
||||||
|
BR2_ENABLE_LOCALE_WHITELIST="C C.UTF-8 en_US en_US.UTF-8"
|
||||||
|
BR2_GENERATE_LOCALE="C en_US"
|
||||||
|
BR2_TARGET_TZ_INFO=y
|
||||||
|
BR2_TARGET_LOCALTIME="Europe/Amsterdam"
|
||||||
|
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_NIMUX_PATH)/rootfs-overlay"
|
||||||
|
BR2_LINUX_KERNEL=y
|
||||||
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||||
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.27"
|
||||||
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||||
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_NIMUX_PATH)/board/qemu/x86_64/linux.config"
|
||||||
|
#BR2_LINUX_KERNEL_XZ=y
|
||||||
|
#BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
|
||||||
|
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
|
||||||
|
BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y
|
||||||
|
#BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_NIMUX_PATH)/board/pc/busybox.config"
|
||||||
|
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
|
||||||
|
BR2_PACKAGE_SQUASHFS=y
|
||||||
|
BR2_PACKAGE_SQUASHFS_GZIP=y
|
||||||
|
BR2_PACKAGE_SSHFS=y
|
||||||
|
BR2_PACKAGE_ZFS=y
|
||||||
|
BR2_PACKAGE_ACPID=y
|
||||||
|
BR2_PACKAGE_EUDEV_RULES_GEN=y
|
||||||
|
BR2_PACKAGE_HDPARM=y
|
||||||
|
BR2_PACKAGE_HWDATA=y
|
||||||
|
BR2_PACKAGE_HWDATA_IAB_OUI_TXT=y
|
||||||
|
BR2_PACKAGE_CA_CERTIFICATES=y
|
||||||
|
BR2_PACKAGE_LIBCURL=y
|
||||||
|
BR2_PACKAGE_LIBCURL_CURL=y
|
||||||
|
BR2_PACKAGE_LIBCAP=y
|
||||||
|
BR2_PACKAGE_BRIDGE_UTILS=y
|
||||||
|
BR2_PACKAGE_IFTOP=y
|
||||||
|
BR2_PACKAGE_NTP=y
|
||||||
|
BR2_PACKAGE_NANO=y
|
||||||
|
BR2_PACKAGE_NANO_TINY=n
|
||||||
|
BR2_PACKAGE_BASH=y
|
||||||
|
BR2_PACKAGE_BASH_COMPLETION=y
|
||||||
|
BR2_PACKAGE_INOTIFY_TOOLS=y
|
||||||
|
BR2_PACKAGE_SUDO=y
|
||||||
|
BR2_PACKAGE_CPULOAD=y
|
||||||
|
BR2_PACKAGE_DOCKER_CLI=y
|
||||||
|
BR2_PACKAGE_DOCKER_COMPOSE=y
|
||||||
|
BR2_PACKAGE_DOCKER_ENGINE=y
|
||||||
|
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
|
||||||
|
BR2_SYSTEM_DHCP="eth0"
|
||||||
|
BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86_64/post-build.sh"
|
||||||
|
#BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
|
||||||
|
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
|
||||||
|
# BR2_TARGET_ROOTFS_EXT2=y
|
||||||
|
# BR2_TARGET_ROOTFS_TAR is not set
|
||||||
|
BR2_PACKAGE_HOST_QEMU=y
|
||||||
|
BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
|
||||||
2
external.desc
Normal file
2
external.desc
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
name: NIMUX
|
||||||
|
desc: The custom buildroot overlay for nimux
|
||||||
1
external.mk
Normal file
1
external.mk
Normal file
@@ -0,0 +1 @@
|
|||||||
|
include $(sort $(wildcard $(BR2_EXTERNAL_NIMUX_PATH)/package/*/*.mk))
|
||||||
10
rootfs-overlay/etc/fstab
Normal file
10
rootfs-overlay/etc/fstab
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# <file system> <mount pt> <type> <options> <dump> <pass>
|
||||||
|
proc /proc proc defaults,nosuid,nodev,noexec 0 0
|
||||||
|
devpts /dev/pts devpts defaults,nosuid,noexec,gid=5,mode=620,ptmxmode=000 0 0
|
||||||
|
tmpfs /dev/shm tmpfs nosuid,nodev,mode=0777 0 0
|
||||||
|
tmpfs /tmp tmpfs nosuid,nodev,mode=1777 0 0
|
||||||
|
tmpfs /run tmpfs nosuid,nodev,mode=0755 0 0
|
||||||
|
tmpfs /mnt tmpfs nosuid,nodev,mode=0755 0 0
|
||||||
|
tmpfs /var/log tmpfs nosuid,nodev,mode=0775 0 0
|
||||||
|
sysfs /sys sysfs defaults,nosuid,nodev,noexec 0 0
|
||||||
|
cgroup2 /sys/fs/cgroup cgroup2 defaults,nosuid,nodev,noexec 0 0
|
||||||
62
rootfs-overlay/etc/inittab
Normal file
62
rootfs-overlay/etc/inittab
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# /etc/inittab
|
||||||
|
#
|
||||||
|
# Copyright
|
||||||
|
#
|
||||||
|
# Note: BusyBox init doesn't support runlevels. The runlevels field is
|
||||||
|
# completely ignored by BusyBox init. If you want runlevels, use
|
||||||
|
# sysvinit.
|
||||||
|
|
||||||
|
# Format for each entry: <id>:<runlevels>:<action>:<process>
|
||||||
|
#
|
||||||
|
# id == tty to run on, or empty for /dev/console
|
||||||
|
# runlevels == ignored
|
||||||
|
# action == one of sysinit, respawn, askfirst, wait, and once
|
||||||
|
# process == program to run
|
||||||
|
|
||||||
|
|
||||||
|
# Startup the system.
|
||||||
|
|
||||||
|
::sysinit:/bin/mount /proc # Lightwhale requires the pseudo file systems for setup-persistence...
|
||||||
|
::sysinit:/bin/mount /sys # ...and since the rootfs is already mounted in RAM at this point...
|
||||||
|
::sysinit:/bin/mount /run # ...we have /etc/fstab present which is used for mount options...
|
||||||
|
::sysinit:/bin/mount /tmp # ...so we are mounting them as intended.
|
||||||
|
::sysinit:/bin/mount /mnt #
|
||||||
|
::sysinit:/bin/mount /var/log
|
||||||
|
::sysinit:/bin/mount -t cgroup2 none /sys/fs/cgroup
|
||||||
|
|
||||||
|
::sysinit:/bin/mkdir -p /dev/pts /dev/shm /run/lock /run/db # Subdirs in pseudo file system required by init scripts.
|
||||||
|
|
||||||
|
#::sysinit:/lib/lightwhale/rescue-shell
|
||||||
|
#::sysinit:/lib/lightwhale/setup-persistence
|
||||||
|
|
||||||
|
# create a read-only mapping of the rootfs
|
||||||
|
::sysinit:mkdir -p /mnt/root.squashfs
|
||||||
|
::sysinit:mount --bind / /mnt/root.squashfs
|
||||||
|
::sysinit:mount --make-rprivate /mnt/root.squashfs/
|
||||||
|
|
||||||
|
# create overlay
|
||||||
|
::sysinit:/usr/sbin/zpool import nimux-zfs
|
||||||
|
::sysinit:/bin/mount -t overlay overlay-etc -o lowerdir=/mnt/root.squashfs/etc/,upperdir=/mnt/overlays/root/etc/upper,workdir=/mnt/overlays/root/etc/work /etc
|
||||||
|
::sysinit:/bin/mount -t overlay overlay-home -o lowerdir=/mnt/root.squashfs/home/,upperdir=/mnt/overlays/root/home/upper,workdir=/mnt/overlays/root/home/work /home
|
||||||
|
|
||||||
|
null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
|
||||||
|
null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
|
||||||
|
null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
|
||||||
|
null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
|
||||||
|
|
||||||
|
::sysinit:/bin/mount -a
|
||||||
|
#::sysinit:/sbin/swapon -a
|
||||||
|
::sysinit:/bin/hostname -F /etc/hostname # Because a custom hostname may have been mounted at this point.
|
||||||
|
|
||||||
|
# Now run all the lovely rc scripts.
|
||||||
|
::sysinit:/etc/init.d/rcS
|
||||||
|
|
||||||
|
# Put a getty on the serial port.
|
||||||
|
tty1::respawn:/sbin/getty -L tty1 0 vt100 # First console
|
||||||
|
tty2::respawn:/sbin/getty -L tty2 0 vt100 # Extra console, for good measure.
|
||||||
|
console::respawn:/sbin/getty -L console 0 vt100 # Serial console, for headless QEMU.
|
||||||
|
|
||||||
|
# Stuff to do before rebooting.
|
||||||
|
::shutdown:/etc/init.d/rcK
|
||||||
|
#::shutdown:/sbin/swapoff -a
|
||||||
|
::shutdown:/bin/umount -a -r
|
||||||
1
rootfs-overlay/etc/modules-load.d/zfs.conf
Normal file
1
rootfs-overlay/etc/modules-load.d/zfs.conf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
zfs
|
||||||
2
rootfs-overlay/etc/profile.d/editor.sh
Normal file
2
rootfs-overlay/etc/profile.d/editor.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# change the default editor to nano
|
||||||
|
export EDITOR='/bin/nano'
|
||||||
8
rootfs-overlay/etc/profile.d/prompt.sh
Normal file
8
rootfs-overlay/etc/profile.d/prompt.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# overrule the default prompt to make it more usefull
|
||||||
|
if [ "$PS1" ]; then
|
||||||
|
if [ "`id -u`" -eq 0 ]; then
|
||||||
|
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]# "
|
||||||
|
else
|
||||||
|
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
|
||||||
|
fi
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user