diff --git a/cfg/kernel_v6.14-rc7 b/cfg/kernel_v6.14-rc7 index bd7c8d0..0664d2a 100644 --- a/cfg/kernel_v6.14-rc7 +++ b/cfg/kernel_v6.14-rc7 @@ -2,9 +2,9 @@ # Automatically generated file; DO NOT EDIT. # Linux/arm64 6.14.0-rc7 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Gentoo 15.1.0 p1) 15.1.0" +CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Gentoo 15.1.1_p20250705-r1 p2) 15.1.1 20250705" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=150100 +CONFIG_GCC_VERSION=150101 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y CONFIG_AS_VERSION=24400 @@ -1864,7 +1864,10 @@ CONFIG_INPUT_VIVALDIFMAP=y # # Userland interfaces # -# CONFIG_INPUT_MOUSEDEV is not set +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_EVDEV=y @@ -1939,7 +1942,7 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set -CONFIG_TOUCHSCREEN_GOODIX=y +CONFIG_TOUCHSCREEN_GOODIX=m # CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set # CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI is not set # CONFIG_TOUCHSCREEN_HIDEEP is not set @@ -1969,7 +1972,7 @@ CONFIG_TOUCHSCREEN_GOODIX=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -CONFIG_TOUCHSCREEN_USB_COMPOSITE=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m CONFIG_TOUCHSCREEN_USB_EGALAX=y CONFIG_TOUCHSCREEN_USB_PANJIT=y CONFIG_TOUCHSCREEN_USB_3M=y @@ -2169,7 +2172,7 @@ CONFIG_DEVPORT=y # CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_CHARDEV is not set +CONFIG_I2C_CHARDEV=y CONFIG_I2C_MUX=y # @@ -2181,8 +2184,8 @@ CONFIG_I2C_MUX=y # CONFIG_I2C_MUX_LTC4306 is not set # CONFIG_I2C_MUX_PCA9541 is not set # CONFIG_I2C_MUX_PCA954x is not set -# CONFIG_I2C_MUX_PINCTRL is not set -# CONFIG_I2C_MUX_REG is not set +CONFIG_I2C_MUX_PINCTRL=y +CONFIG_I2C_MUX_REG=y # CONFIG_I2C_DEMUX_PINCTRL is not set # CONFIG_I2C_MUX_MLXCPLD is not set # end of Multiplexer I2C Chip support @@ -2259,7 +2262,7 @@ CONFIG_I2C_RK3X=y CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y -# CONFIG_SPI_MEM is not set +CONFIG_SPI_MEM=y # # SPI Master Controller Drivers @@ -2269,6 +2272,7 @@ CONFIG_SPI_MASTER=y # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set +# CONFIG_SPI_CADENCE_XSPI is not set # CONFIG_SPI_CH341 is not set # CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_GPIO is not set @@ -2282,12 +2286,14 @@ CONFIG_SPI_ROCKCHIP=y CONFIG_SPI_ROCKCHIP_SFC=y # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set +# CONFIG_SPI_SN_F_OSPI is not set # CONFIG_SPI_SUN4I is not set CONFIG_SPI_SUN6I=y # CONFIG_SPI_MXIC is not set # CONFIG_SPI_THUNDERX is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set +# CONFIG_SPI_ZYNQMP_GQSPI is not set # CONFIG_SPI_AMD is not set # @@ -2482,11 +2488,11 @@ CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_GPIO is not set # CONFIG_POWER_RESET_GPIO_RESTART is not set # CONFIG_POWER_RESET_LTC2952 is not set -# CONFIG_POWER_RESET_REGULATOR is not set -# CONFIG_POWER_RESET_RESTART is not set +CONFIG_POWER_RESET_REGULATOR=y +CONFIG_POWER_RESET_RESTART=y # CONFIG_POWER_RESET_XGENE is not set CONFIG_POWER_RESET_SYSCON=y -# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +CONFIG_POWER_RESET_SYSCON_POWEROFF=y # CONFIG_SYSCON_REBOOT_MODE is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_POWER_SEQUENCING is not set diff --git a/files/initramfs/init b/files/initramfs/init index e004afd..7f36d6a 100644 --- a/files/initramfs/init +++ b/files/initramfs/init @@ -29,30 +29,11 @@ CMDLINE=$(cat /proc/cmdline 2>/dev/null) for x in ${CMDLINE} do case "${x}" in - subdir=*) - SUBDIR=${x#*=} - ;; - real_init=*) - REAL_INIT=${x#*=} - ;; - init=*) - FAKE_INIT=${x#*=} - ;; quiet|quiet_genkernel) QUIET=1 ;; - # Scan delay options - scandelay=*) - SDELAY=${x#*=} - ;; - scandelay) - SDELAY=3 - ;; - rootdelay=*|rootwait=*) - ROOTDELAY=${x#*=} - ;; - rootdelay|rootwait) - ROOTDELAY=5 + loglevel=*) + CONSOLE_LOGLEVEL=${x#*=} ;; esac done @@ -145,26 +126,6 @@ run udevadm settle --timeout=120 run udevadm control --exit init=${REAL_INIT:-/sbin/init} -# create a file for correct shutdown process -INIF="/run/initramfs" -SH_FILE="${INIF}/shutdown" -#run mkdir "${INIF}/bin" -#run mount --bind /bin ${INIF}/bin -run touch ${SH_FILE} -echo "#!/bin/sh" >> ${SH_FILE} -#echo "sh" >> ${SH_FILE} -#echo "umount ${NEW_ROOT}${INIF}/bin" >> ${SH_FILE} -#echo "umount ${NEW_ROOT}${INIF}" >> ${SH_FILE} -echo "mount -o remount,ro ${NEW_ROOT}${CDROOT_PATH}" >> ${SH_FILE} -echo "mount -o remount,ro ${NEW_ROOT}${RW_MNT}" >> ${SH_FILE} -echo "sync" >> ${SH_FILE} -echo "umount -l ${NEW_ROOT}${RW_MNT}" >> ${SH_FILE} -echo "umount -l ${NEW_ROOT}${CDROOT_PATH}" >> ${SH_FILE} -echo "umount -l ${NEW_ROOT}${STATIC}" >> ${SH_FILE} -echo "umount -l ${NEW_ROOT}" >> ${SH_FILE} -#run mkdir ${NEW_ROOT}${INIF} -#run mount --rbind ${INIF} ${NEW_ROOT}${INIF} - # uncomment for debug #run_emergency_shell @@ -188,9 +149,5 @@ echo ${CONSOLE_LOGLEVEL} > /proc/sys/kernel/printk && log_msg "COMMAND: 'echo \" good_msg "Switching to real root: switch_root ${CHROOT} ${init} ${init_opts}" #sh exec switch_root "${CHROOT}" "${init}" ${init_opts} -#exec pivot_root "${CHROOT}" "${init}" ${init_opts} - -good_msg "Return from real root, finishing..." -run_emergency_shell exit 1 diff --git a/files/portage/andreil/virtual/klipper/Manifest b/files/portage/andreil/virtual/klipper/Manifest index 216b5c2..b04bdc5 100644 --- a/files/portage/andreil/virtual/klipper/Manifest +++ b/files/portage/andreil/virtual/klipper/Manifest @@ -1 +1 @@ -EBUILD klipper-11.ebuild 636 BLAKE2B fe1685f4bfbba06f544f6bb0a01cbaca30f938dc8963bb2f01f7b57c3643738caa9403049916319eff3f626d1507e7577762188bd03ada31a4e6ea04ce763abb SHA512 381bb6899bfe71456e0148abfeedf8db1dccb5b5d4998068e9eb03a8d0008e9b39ea671e82f1b8afc4aba6527cba801f59d824c2800657d4d96e5f7a12235c49 +EBUILD klipper-11.ebuild 656 BLAKE2B 0f9fcd5dc3939e6dc2288f6ca740457f422a2cee5d9849188cd9d823872e4712c799d56545547cec548dc7bb079ae35a1f7d586aa78860a13b349ccc2cffaa79 SHA512 ac11acfa93008f791b385bdc19dc411434c14d91560825f0b6bb77a88c7452ddbbba62a8d30cb63dca75df62eac53678e0c666c92e2d7ae0345b17fd21500915 diff --git a/files/portage/andreil/virtual/klipper/klipper-11.ebuild b/files/portage/andreil/virtual/klipper/klipper-11.ebuild index 5d7b7f7..68a85d6 100644 --- a/files/portage/andreil/virtual/klipper/klipper-11.ebuild +++ b/files/portage/andreil/virtual/klipper/klipper-11.ebuild @@ -28,4 +28,5 @@ RDEPEND=" sys-apps/pciutils media-libs/libv4l net-misc/ntp + sys-apps/i2c-tools " diff --git a/patch/kernel/x_printer_config.patch b/patch/kernel/x_printer_config.patch index 9331dce..5f15f16 100644 --- a/patch/kernel/x_printer_config.patch +++ b/patch/kernel/x_printer_config.patch @@ -3,7 +3,7 @@ new file mode 100644 index 000000000000..51de9e95b7d2 --- /dev/null +++ b/arch/arm64/configs/printer_defconfig -@@ -0,0 +1,689 @@ +@@ -0,0 +1,698 @@ +CONFIG_DEFAULT_HOSTNAME="Printer" +CONFIG_LOCALVERSION="-arm64" +CONFIG_LOCALVERSION_AUTO=n @@ -34,6 +34,9 @@ index 000000000000..51de9e95b7d2 +CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_HAS_IOMEM=y +CONFIG_I2C=y ++CONFIG_I2C_CHARDEV=y ++CONFIG_I2C_MUX_PINCTRL=y ++CONFIG_I2C_MUX_REG=y +CONFIG_MMC=y +CONFIG_SUNXI_CCU=y +CONFIG_NVMEM=y @@ -72,6 +75,7 @@ index 000000000000..51de9e95b7d2 +CONFIG_EXTCON=y +CONFIG_CPU_FREQ=y +CONFIG_SPI=y ++CONFIG_SPI_MEM=y +CONFIG_SPI_MASTER=y +CONFIG_THERMAL=y +CONFIG_MFD_AC200_SUNXI=y @@ -83,6 +87,7 @@ index 000000000000..51de9e95b7d2 +CONFIG_LEDS_CLASS=y +CONFIG_REGULATOR=y +CONFIG_SERIAL_8250=y ++CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=n +CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y @@ -141,7 +146,7 @@ index 000000000000..51de9e95b7d2 +CONFIG_NR_CPUS=8 +CONFIG_EFI=n +CONFIG_COREDUMP=n -+CONFIG_LOG_BUF_SHIFT=14 ++CONFIG_LOG_BUF_SHIFT=15 +CONFIG_RD_ZSTD=n +CONFIG_KALLSYMS=n +CONFIG_XZ_DEC_X86=n @@ -431,7 +436,6 @@ index 000000000000..51de9e95b7d2 +CONFIG_SERIAL_8250_DW=y +CONFIG_STMMAC_PLATFORM=y +CONFIG_REGULATOR_FAN53555=y -+#CONFIG_TOUCHSCREEN_TSC2007=y +CONFIG_MFD_AXP20X_I2C=y +CONFIG_REGULATOR_AXP20X=y +CONFIG_REGULATOR_GPIO=y @@ -559,6 +563,10 @@ index 000000000000..51de9e95b7d2 +CONFIG_MOUSE_SYNAPTICS_USB=y +CONFIG_GPIO_SYSFS=y +CONFIG_POWER_RESET_SYSCON=y ++CONFIG_POWER_RESET_SYSCON_POWEROFF=y ++CONFIG_POWER_RESET_RESTART=y ++CONFIG_POWER_RESET_REGULATOR=y ++CONFIG_POWER_SYSCON_REBOOT_MODE=y +CONFIG_SENSORS_ARM_SCMI=y +CONFIG_SENSORS_ARM_SCPI=y +CONFIG_SENSORS_GPIO_FAN=y @@ -687,9 +695,14 @@ index 000000000000..51de9e95b7d2 + +CONFIG_RFKILL=y +CONFIG_RFKILL_GPIO=y ++CONFIG_MTD=m ++CONFIG_MTD_BLKDEVS=m ++CONFIG_MTD_BLOCK=m ++CONFIG_MTD_SPI_NOR=m + +#typeC +#CONFIG_TYPEC=y +#touchscreens -+CONFIG_TOUCHSCREEN_GOODIX=y -+CONFIG_TOUCHSCREEN_USB_COMPOSITE=y ++CONFIG_TOUCHSCREEN_GOODIX=m ++#CONFIG_TOUCHSCREEN_TSC2007=y ++CONFIG_TOUCHSCREEN_USB_COMPOSITE=m diff --git a/scripts/initramfs.py b/scripts/initramfs.py index a3bfcd9..43647e6 100644 --- a/scripts/initramfs.py +++ b/scripts/initramfs.py @@ -113,11 +113,13 @@ class Initramfs: if (dir_ch.is_dir()): p = subprocess.Popen(["sudo", "rm", "-rf", dir_tmp]) p.wait() + fn = "shutdown.tar.xz" p = subprocess.Popen(["mkdir", "-p", dir_tmp]) p.wait() - p = subprocess.Popen(f"sudo cat {self.files_dir}/init.cpio | sudo cpio -idm && sudo tar cJpf {self.out_dir}/shutdown.tar.xz .", shell=True, cwd=dir_tmp) + p = subprocess.Popen(f"sudo cat {self.files_dir}/init.cpio | sudo cpio -idm && sudo tar cJpf ../{fn} . && cp ../{fn} {self.out_dir}/{fn}", + shell=True, cwd=dir_tmp) p.wait() - p = subprocess.Popen(["sudo", "cp", f"{self.out_dir}/shutdown.tar.xz", f"{ROOT_DIR}/root/usr/"]) + p = subprocess.Popen(["sudo", "cp", f"{self.out_dir}/{fn}", f"{ROOT_DIR}/root/usr/"]) p.wait() p = subprocess.Popen(["sudo", "rm", "-rf", dir_tmp]) p.wait() @@ -131,8 +133,8 @@ class Initramfs: self.__mkshutdown() def build(self, os): - #self.__prepare() - #self.__busybox(os) - #self.__eudev(os) - #self.__e2fsp(os) + self.__prepare() + self.__busybox(os) + self.__eudev(os) + self.__e2fsp(os) self.__initrd() diff --git a/scripts/logger.py b/scripts/logger.py index 8fd1cc4..1bab18d 100644 --- a/scripts/logger.py +++ b/scripts/logger.py @@ -3,6 +3,10 @@ class Logger: print(f"[❌] {msg}") exit(1) + def ok_exit(msg): + print(f"[✅] {msg}") + exit(0) + def build(msg): print(f"[🔨] {msg}") diff --git a/scripts/os.py b/scripts/os.py index 0e848a7..5615a9b 100644 --- a/scripts/os.py +++ b/scripts/os.py @@ -22,6 +22,14 @@ class OS: [ "sqh", self.sqh ] ] + def __relaunch_as_sudo(self): + if (os.geteuid() == 0): + return + Logger.os("Relaunch scripts with 'sudo'...") + args = ["./build.py"] + self.__sudo(sys.argv) + Logger.ok_exit("Finished running from 'sudo'") + def load_info(self): with open(f"{ROOT_DIR}/config/os_{self.arch}.json") as json_data: js_data = json.load(json_data) @@ -102,15 +110,23 @@ class OS: if (clean_type == "default"): self.__chroot(f"emerge -ac", dir=dir) if (clean_type == "bdeps"): - self.__chroot(f"emerge --ask --depclean --with-bdeps=n --exclude sys-devel/gcc && ldconfig", dir=dir) + self.__chroot(f"emerge --depclean --with-bdeps=n --exclude sys-devel/gcc && ldconfig", dir=dir) if ("sudo" in step): cmd = self.board.parse_variables(step["sudo"]) Logger.os(f"\tSudo command {cmd}...") self.__sudo(cmd, cwd=dir, shell=True) + if ("copy" in step): + path_from = self.board.parse_variables(step["copy"][0]) + path_to = self.board.parse_variables(step["copy"][1]) + if (Path(path_from).is_dir()): + self.__sudo(f"cp -r {path_from} {path_to}", cwd=dir, shell=True) + else: + self.__sudo(f"cp {path_from} {path_to}", cwd=dir, shell=True) def check_rootfs(self): if marker_check(MARKER_ROOTFS_READY): return + self.__relaunch_as_sudo() stages = [ [self.st3_info, self.__stage3_apply, "" ], [self.st3_prepare, self.__stage3_steps, "Basic preparation..."], @@ -129,12 +145,13 @@ class OS: self.arch = board.parse_variables("%{ARCH}%") def __sudo(self, args, cwd=None, env=None, stdout=None, shell=None): - if isinstance(args, str): - args = self.board.parse_variables("sudo " + args) - err_n = args - else: - args.insert(0, "sudo") - err_n = args[1] + if (os.geteuid() != 0): + if isinstance(args, str): + args = self.board.parse_variables("sudo " + args) + err_n = args + else: + args.insert(0, "sudo") + err_n = args[1] p = subprocess.Popen(args, cwd=cwd, env=env, stdout=stdout, stderr=stdout, shell=shell) p.wait() if (p.returncode != 0): @@ -223,12 +240,13 @@ class OS: self.__stage3_steps(self.finalize, "Finalize system installation...", dir=dir) def sqh(self): + self.__relaunch_as_sudo() date = datetime.datetime.today().strftime('%Y_%m_%d') temp_dir = f"{ROOT_DIR}/build/tmp" # pack full system via tar - #arch_full_path = self.pack() - #self.__tmp_clean(temp_dir) - #self.__extract_tar(arch_full_path, temp_dir) + arch_full_path = self.pack() + self.__tmp_clean(temp_dir) + self.__extract_tar(arch_full_path, temp_dir) # prepare system, remove unnecessary packages self.__finalize(temp_dir) self.__do_archive("excl_min", "FULL_min_bdeps", temp_dir) @@ -318,7 +336,7 @@ class OS: offset += part.size_blk + 1 args += "w\nq\n" cmd = [] - if (from_sudo): + if (os.geteuid() != 0) and (from_sudo): cmd.append("sudo") cmd.append("fdisk") cmd.append(img_or_dev) @@ -419,6 +437,7 @@ class OS: i += 1 def install(self, dir_or_dev): + self.__relaunch_as_sudo() Logger.install(f"Install to '{dir_or_dev}'") is_blk = False dir_ch = Path(dir_or_dev) diff --git a/scripts/target.py b/scripts/target.py index e1c1914..049f811 100644 --- a/scripts/target.py +++ b/scripts/target.py @@ -71,7 +71,7 @@ class Target: self.sources.do_patch(self.board_name, self.patch_dir) def build(self, sub_target, out_dir): - #self.source_sync() + self.source_sync() if (not self.no_build): opts = self.makeopts.split(" ") config = ""