diff --git a/board/qemu/x86_64/linux.config b/board/qemu/x86_64/linux.config index 4214b70..65e7fd1 100644 --- a/board/qemu/x86_64/linux.config +++ b/board/qemu/x86_64/linux.config @@ -10,7 +10,6 @@ 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 @@ -26,54 +25,99 @@ CONFIG_SMP=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_SPINLOCKS=y +# CONFIG_X86_MCE_AMD is not set +CONFIG_X86_CPUID=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_ACPI_DOCK=y +CONFIG_INTEL_IDLE=y # CONFIG_GCC_PLUGINS is not set CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_NET_KEY=y CONFIG_INET=y CONFIG_NETFILTER=y CONFIG_BRIDGE_NETFILTER=y CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=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_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_RAW=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_NAT=y +CONFIG_IP6_NF_TARGET_MASQUERADE=y CONFIG_BRIDGE=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_CGROUP_NET_PRIO=y +CONFIG_CGROUP_NET_CLASSID=y # CONFIG_WIRELESS is not set CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_MSI=y +CONFIG_PCI_REALLOC_ENABLE_AUTO=y +CONFIG_PCI_IOV=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMI_SYSFS=y CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_DRBD=m +CONFIG_BLK_DEV_DRBD=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=1 CONFIG_VIRTIO_BLK=y -CONFIG_BLK_DEV_RBD=m +CONFIG_BLK_DEV_RBD=y CONFIG_BLK_DEV_NVME=y +CONFIG_NVME_MULTIPATH=y CONFIG_BLK_DEV_SD=y CONFIG_SCSI_VIRTIO=y CONFIG_ATA=y +CONFIG_SATA_AHCI=y CONFIG_ATA_PIIX=y +CONFIG_MD=y CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +CONFIG_TUN=y CONFIG_VETH=y CONFIG_VIRTIO_NET=y +CONFIG_E1000E=y +CONFIG_IGB=y +CONFIG_IGC=y CONFIG_NE2K_PCI=y CONFIG_8139CP=y +CONFIG_PHYLIB=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_SENSORS_CORETEMP=y +CONFIG_INTEL_POWERCLAMP=y +CONFIG_INTEL_PCH_THERMAL=y CONFIG_DRM=y +CONFIG_DRM_I915=y CONFIG_DRM_QXL=y CONFIG_DRM_VIRTIO_GPU=y CONFIG_DRM_BOCHS=y +CONFIG_FB=y +CONFIG_FB_EFI=y +CONFIG_FB_SIMPLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=120 +CONFIG_DUMMY_CONSOLE_ROWS=50 +CONFIG_LOGO=y CONFIG_SOUND=y CONFIG_SND=y CONFIG_SND_HDA_INTEL=y @@ -89,15 +133,20 @@ CONFIG_VIRTIO_INPUT=y CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y CONFIG_EXT4_FS=y +CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=y CONFIG_OVERLAY_FS=y +# CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set 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_EFIVAR_FS=y CONFIG_SQUASHFS=y CONFIG_SQUASHFS_XATTR=y CONFIG_CRYPTO_DEFLATE=y +CONFIG_DEBUG_FS=y CONFIG_UNWINDER_FRAME_POINTER=y +CONFIG_X86_MSR=y +CONFIG_CPU_FREQ_STAT=y diff --git a/board/qemu/x86_64/post-build.sh b/board/qemu/x86_64/post-build.sh old mode 100644 new mode 100755 index bf83a00..84fd068 --- a/board/qemu/x86_64/post-build.sh +++ b/board/qemu/x86_64/post-build.sh @@ -1,11 +1,21 @@ #!/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 +# echo "[nimux] Enabling getty on tty1 (graphical) and ttyS0 (serial)..." + +# # Ensure target directories exist +# mkdir -p "${TARGET_DIR}/etc/systemd/system/getty.target.wants" + +# # Create or refresh symlinks for tty1 and ttyS0 getty services +# ln -sf /usr/lib/systemd/system/getty@.service \ +# "${TARGET_DIR}/etc/systemd/system/getty.target.wants/getty@tty1.service" + +# ln -sf /usr/lib/systemd/system/getty@.service \ +# "${TARGET_DIR}/etc/systemd/system/getty.target.wants/getty@ttyS0.service" + +# # Optional: also ensure getty.target is enabled (some minimal setups need this) +# mkdir -p "${TARGET_DIR}/etc/systemd/system/multi-user.target.wants" +# ln -sf /usr/lib/systemd/system/getty.target \ +# "${TARGET_DIR}/etc/systemd/system/multi-user.target.wants/getty.target" + +# echo "[nimux] Getty services linked successfully." \ No newline at end of file diff --git a/configs/nimux_x86_defconfig b/configs/nimux_x86_defconfig index b053cbf..09282b7 100644 --- a/configs/nimux_x86_defconfig +++ b/configs/nimux_x86_defconfig @@ -1,5 +1,6 @@ BR2_x86_64=y BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_GLOBAL_PATCH_DIR="board/qemu/patches" BR2_DOWNLOAD_FORCE_CHECK_HASHES=y BR2_RELRO_PARTIAL=y @@ -30,9 +31,17 @@ BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_ZFS=y BR2_PACKAGE_ACPID=y +BR2_PACKAGE_ACPITOOL=y +BR2_PACKAGE_HDDTEMP=y BR2_PACKAGE_HDPARM=y -BR2_PACKAGE_HWDATA=y BR2_PACKAGE_HWDATA_IAB_OUI_TXT=y +BR2_PACKAGE_LM_SENSORS=y +BR2_PACKAGE_LM_SENSORS_FANCONTROL=y +BR2_PACKAGE_LM_SENSORS_PWMCONFIG=y +BR2_PACKAGE_LSHW=y +BR2_PACKAGE_MHZ=y +BR2_PACKAGE_NVME=y +BR2_PACKAGE_POWERTOP=y BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON_SETUPTOOLS=y BR2_PACKAGE_CA_CERTIFICATES=y @@ -40,8 +49,11 @@ BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_LIBGLIB2=y BR2_PACKAGE_BRIDGE_UTILS=y BR2_PACKAGE_IFTOP=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPUTILS=y BR2_PACKAGE_NTP=y BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_RSYNC=y BR2_PACKAGE_BASH_COMPLETION=y BR2_PACKAGE_INOTIFY_TOOLS=y BR2_PACKAGE_SUDO=y @@ -49,11 +61,12 @@ BR2_PACKAGE_CPULOAD=y BR2_PACKAGE_DOCKER_CLI=y BR2_PACKAGE_DOCKER_COMPOSE=y BR2_PACKAGE_DOCKER_ENGINE=y +BR2_PACKAGE_DOCKER_ENGINE_DOCKER_INIT_CATATONIT=y +BR2_PACKAGE_SYSTEMD_BOOT=y BR2_PACKAGE_SYSTEMD_ANALYZE=y +BR2_PACKAGE_SYSTEMD_LOGIND=y BR2_PACKAGE_NANO=y # BR2_PACKAGE_NANO_TINY is not set BR2_TARGET_ROOTFS_SQUASHFS=y # BR2_TARGET_ROOTFS_TAR is not set -BR2_PACKAGE_HOST_QEMU=y -BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y BR2_PACKAGE_PYTHON_XONSH=y diff --git a/external.mk b/external.mk index e31b10e..a47bbe3 100644 --- a/external.mk +++ b/external.mk @@ -1 +1,3 @@ include $(sort $(wildcard $(BR2_EXTERNAL_NIMUX_PATH)/package/*/*.mk)) + +BR2_ROOTFS_POST_BUILD_SCRIPT += $(BR2_EXTERNAL_NIMUX_PATH)/board/qemu/x86_64/post-build.sh \ No newline at end of file diff --git a/rootfs-overlay/etc/systemd/network/10-dhcp-all.network b/rootfs-overlay/etc/systemd/network/10-dhcp-all.network index 3594671..c1041c2 100644 --- a/rootfs-overlay/etc/systemd/network/10-dhcp-all.network +++ b/rootfs-overlay/etc/systemd/network/10-dhcp-all.network @@ -1,7 +1,8 @@ [Match] # Match all real Ethernet interfaces Type=ether -Name=!lo !docker* !veth* !br* !virbr* !tap* !tun* !vmnet* !zt* !tailscale* !wg* +# Prevent virtual devices to match (e.g. docker0 and veth should be left alone) +Name=en* eth* [Network] DHCP=yes diff --git a/rootfs-overlay/usr/lib/nimux/create-zfs.xsh b/rootfs-overlay/usr/lib/nimux/create-zfs.xsh new file mode 100755 index 0000000..71b4b33 --- /dev/null +++ b/rootfs-overlay/usr/lib/nimux/create-zfs.xsh @@ -0,0 +1,9 @@ +#!/bin/xonsh --no-rc +zpool create -o ashift=12 -O normalization=formD -O xattr=sa \ + -O atime=off -O acltype=posix -O mountpoint=none nimux-zfs mirror /dev/vda /dev/vdb +zfs create -o mountpoint=/mnt/data nimux-zfs/data +zfs create -o mountpoint=/var/lib/docker nimux-zfs/docker +zfs create -o mountpoint=/var/lib/docker/volumes -o compression=zstd nimux-zfs/docker/volumes +zfs create -o mountpoint=none nimux-zfs/root +zfs create -o mountpoint=/run/nimux/overlay/etc/persist nimux-zfs/root/etc +zfs create -o mountpoint=/home nimux-zfs/root/home