Not working, saving for today

This commit is contained in:
Gvidas Juknevičius 2025-11-02 22:01:36 +02:00
parent ac442e9f7c
commit 17c7e1d431
Signed by: MCorange
GPG Key ID: 5BE6B533CB76FE86
7 changed files with 6796 additions and 5 deletions

4
.gitmodules vendored
View File

@ -3,3 +3,7 @@
path = linux/kernel path = linux/kernel
url = https://github.com/torvalds/linux.git url = https://github.com/torvalds/linux.git
shallow = true shallow = true
[submodule "linux/busybox"]
path = linux/busybox
url = https://git.busybox.net/busybox/
shallow = true

View File

@ -1,19 +1,27 @@
MAKEFILE_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) MAKEFILE_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
BUILD_DIR ?= $(MAKEFILE_DIR)build BUILD_DIR ?= $(MAKEFILE_DIR)build
ARCH ?= x86 ARCH ?= x86_64
KERNEL_FILE_NAME ?= bzImage KERNEL_FILE_NAME ?= bzImage
INITRAMFS_FILE = $(BUILD_DIR)/linux/initramfs.cpio
KERNEL_FILE = $(BUILD_DIR)/linux/kernel/arch/$(ARCH)/boot/$(KERNEL_FILE_NAME)
export BUILD_DIR export BUILD_DIR
export ARCH export ARCH
export KERNEL_FILE_NAME export KERNEL_FILE_NAME
kernel: kernel:
$(MAKE) -C $(MAKEFILE_DIR)/linux $(MAKE) -C $(MAKEFILE_DIR)/linux kernel
initramfs:
$(MAKE) -C $(MAKEFILE_DIR)/linux initramfs -B
kernel-config: kernel-config:
$(MAKE) -C $(MAKEFILE_DIR)/linux kernel-config $(MAKE) -C $(MAKEFILE_DIR)/linux kernel-config
qemu:
qemu-system-x86_64 -kernel $(KERNEL_FILE) -initrd $(INITRAMFS_FILE) -append "rdinit=/usr/sbin/init console=ttyS0" -serial mon:stdio
clean: clean:

1242
linux/.busybox-config Normal file

File diff suppressed because it is too large Load Diff

5487
linux/.kernel-config Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,12 +7,61 @@ KERNEL_FILE_NAME ?= bzImage
KERNEL_PATH = $(BUILD_DIR)/arch/$(ARCH)/boot/$(bzImage) KERNEL_PATH = $(BUILD_DIR)/arch/$(ARCH)/boot/$(bzImage)
KERNEL_BUILD_DIR=$(BUILD_DIR)/linux/kernel KERNEL_BUILD_DIR=$(BUILD_DIR)/linux/kernel
all: $(KERNEL_PATH) BUSYBOX_BUILD_DIR=$(BUILD_DIR)/linux/busybox
BUSYBOX_BUILD_FILE=$(BUSYBOX_BUILD_DIR)/busybox
INITRAMFS_DIR=$(BUILD_DIR)/linux/initramfs
INITRAMFS_FILE_TMP=$(BUILD_DIR)/linux/initramfs.cpio
INITRAMFS_FILE=$(BUILD_DIR)/linux/initramfs.cpio.gz
.PHONY: initramfs initramfs_initiial initramfs_clean busybox all kernel __busybox_install
all: $(INITRAMFS_FILE)
initramfs:initramfs_clean initramfs_initiial __busybox_install $(INITRAMFS_FILE)
kernel: $(KERNEL_PATH)
busybox: $(BUSYBOX_BUILD_FILE)
$(KERNEL_PATH): $(KERNEL_PATH):
@mkdir -p $(KERNEL_BUILD_DIR) @mkdir -p $(KERNEL_BUILD_DIR)
$(MAKE) -C $(MAKEFILE_DIR)/kernel O=$(KERNEL_BUILD_DIR) KCONFIG_CONFIG="$(MAKEFILE_DIR)/.config" $(MAKE) -C $(MAKEFILE_DIR)/kernel O=$(KERNEL_BUILD_DIR) KCONFIG_CONFIG="$(MAKEFILE_DIR)/.kernel-config"
kernel-config: kernel-config:
$(MAKE) -C $(MAKEFILE_DIR)/kernel O=$(KERNEL_BUILD_DIR) KCONFIG_CONFIG="$(MAKEFILE_DIR)/.config" menuconfig $(MAKE) -C $(MAKEFILE_DIR)/kernel O=$(KERNEL_BUILD_DIR) KCONFIG_CONFIG="$(MAKEFILE_DIR)/.kernel-config" menuconfig
$(BUSYBOX_BUILD_FILE):
@mkdir -p $(BUSYBOX_BUILD_DIR)
cp $(MAKEFILE_DIR)/.busybox-config $(BUSYBOX_BUILD_DIR)/.config
$(MAKE) -C $(MAKEFILE_DIR)/busybox O=$(BUSYBOX_BUILD_DIR) KCONFIG_CONFIG="$(MAKEFILE_DIR)/.busybox-config"
__busybox_install:
$(MAKE) -C $(MAKEFILE_DIR)/busybox O=$(BUSYBOX_BUILD_DIR) KCONFIG_CONFIG="$(MAKEFILE_DIR)/.busybox-config" CONFIG_PREFIX=$(INITRAMFS_DIR) install
$(INITRAMFS_FILE): initramfs_clean initramfs_initiial __busybox_install
find $(INITRAMFS_DIR) | cpio -o -H newc > $(INITRAMFS_FILE_TMP)
# gzip -f $(INITRAMFS_FILE_TMP)
initramfs_clean:
@rm -rf $(INITRAMFS_DIR)
initramfs_initiial: #$(BUSYBOX_BUILD_FILE)
mkdir -p $(INITRAMFS_DIR)
mkdir -p $(INITRAMFS_DIR)/{etc,mnt,proc,run,srv,tmp,var,boot,dev,home,media,opt,root,sbin,sys,usr/bin,usr/lib}
bash -c "pushd $(INITRAMFS_DIR); ln -s usr/bin bin; popd"
bash -c "pushd $(INITRAMFS_DIR); ln -s usr/lib lib; popd"
echo "#!/bin/sh" >> $(INITRAMFS_DIR)/init
echo "mount -t proc none /proc" >> $(INITRAMFS_DIR)/init
echo "mount -t sysfs none /sys" >> $(INITRAMFS_DIR)/init
echo "echo 'Successfully booted'" >> $(INITRAMFS_DIR)/init
echo "exec /bin/sh" >> $(INITRAMFS_DIR)/init
chmod +x $(INITRAMFS_DIR)/init
chmod +x $(INITRAMFS_DIR)/sbin/init

1
linux/busybox Submodule

@ -0,0 +1 @@
Subproject commit b99a529177b4adbe3b3f5a86f46b9cf386d4cbe4