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