Fix some issues. Add sudo re-launch for long sequences.

This commit is contained in:
andreili 2025-07-22 21:34:13 +02:00
parent 13eb58357f
commit 7ab4b1c308
9 changed files with 83 additions and 81 deletions

View File

@ -2,9 +2,9 @@
# Automatically generated file; DO NOT EDIT. # Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.14.0-rc7 Kernel Configuration # 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_CC_IS_GCC=y
CONFIG_GCC_VERSION=150100 CONFIG_GCC_VERSION=150101
CONFIG_CLANG_VERSION=0 CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24400 CONFIG_AS_VERSION=24400
@ -1864,7 +1864,10 @@ CONFIG_INPUT_VIVALDIFMAP=y
# #
# Userland interfaces # 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_JOYDEV is not set
CONFIG_INPUT_EVDEV=y CONFIG_INPUT_EVDEV=y
@ -1939,7 +1942,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
# CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set
# CONFIG_TOUCHSCREEN_FUJITSU 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_I2C is not set
# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI is not set # CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI is not set
# CONFIG_TOUCHSCREEN_HIDEEP 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_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_PIXCIR is not set
# CONFIG_TOUCHSCREEN_WDT87XX_I2C 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_EGALAX=y
CONFIG_TOUCHSCREEN_USB_PANJIT=y CONFIG_TOUCHSCREEN_USB_PANJIT=y
CONFIG_TOUCHSCREEN_USB_3M=y CONFIG_TOUCHSCREEN_USB_3M=y
@ -2169,7 +2172,7 @@ CONFIG_DEVPORT=y
# #
CONFIG_I2C=y CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y CONFIG_I2C_BOARDINFO=y
# CONFIG_I2C_CHARDEV is not set CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MUX=y CONFIG_I2C_MUX=y
# #
@ -2181,8 +2184,8 @@ CONFIG_I2C_MUX=y
# CONFIG_I2C_MUX_LTC4306 is not set # CONFIG_I2C_MUX_LTC4306 is not set
# CONFIG_I2C_MUX_PCA9541 is not set # CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set # CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not set CONFIG_I2C_MUX_PINCTRL=y
# CONFIG_I2C_MUX_REG is not set CONFIG_I2C_MUX_REG=y
# CONFIG_I2C_DEMUX_PINCTRL is not set # CONFIG_I2C_DEMUX_PINCTRL is not set
# CONFIG_I2C_MUX_MLXCPLD is not set # CONFIG_I2C_MUX_MLXCPLD is not set
# end of Multiplexer I2C Chip support # end of Multiplexer I2C Chip support
@ -2259,7 +2262,7 @@ CONFIG_I2C_RK3X=y
CONFIG_SPI=y CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y CONFIG_SPI_MASTER=y
# CONFIG_SPI_MEM is not set CONFIG_SPI_MEM=y
# #
# SPI Master Controller Drivers # SPI Master Controller Drivers
@ -2269,6 +2272,7 @@ CONFIG_SPI_MASTER=y
# CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_CADENCE_QUADSPI 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_CH341 is not set
# CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_GPIO is not set # CONFIG_SPI_GPIO is not set
@ -2282,12 +2286,14 @@ CONFIG_SPI_ROCKCHIP=y
CONFIG_SPI_ROCKCHIP_SFC=y CONFIG_SPI_ROCKCHIP_SFC=y
# CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_SIFIVE 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_SUN4I is not set
CONFIG_SPI_SUN6I=y CONFIG_SPI_SUN6I=y
# CONFIG_SPI_MXIC is not set # CONFIG_SPI_MXIC is not set
# CONFIG_SPI_THUNDERX is not set # CONFIG_SPI_THUNDERX is not set
# CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set # CONFIG_SPI_XILINX is not set
# CONFIG_SPI_ZYNQMP_GQSPI is not set
# CONFIG_SPI_AMD 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 is not set
# CONFIG_POWER_RESET_GPIO_RESTART is not set # CONFIG_POWER_RESET_GPIO_RESTART is not set
# CONFIG_POWER_RESET_LTC2952 is not set # CONFIG_POWER_RESET_LTC2952 is not set
# CONFIG_POWER_RESET_REGULATOR is not set CONFIG_POWER_RESET_REGULATOR=y
# CONFIG_POWER_RESET_RESTART is not set CONFIG_POWER_RESET_RESTART=y
# CONFIG_POWER_RESET_XGENE is not set # CONFIG_POWER_RESET_XGENE is not set
CONFIG_POWER_RESET_SYSCON=y 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_SYSCON_REBOOT_MODE is not set
# CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_REBOOT_MODE is not set
# CONFIG_POWER_SEQUENCING is not set # CONFIG_POWER_SEQUENCING is not set

View File

@ -29,30 +29,11 @@ CMDLINE=$(cat /proc/cmdline 2>/dev/null)
for x in ${CMDLINE} for x in ${CMDLINE}
do do
case "${x}" in case "${x}" in
subdir=*)
SUBDIR=${x#*=}
;;
real_init=*)
REAL_INIT=${x#*=}
;;
init=*)
FAKE_INIT=${x#*=}
;;
quiet|quiet_genkernel) quiet|quiet_genkernel)
QUIET=1 QUIET=1
;; ;;
# Scan delay options loglevel=*)
scandelay=*) CONSOLE_LOGLEVEL=${x#*=}
SDELAY=${x#*=}
;;
scandelay)
SDELAY=3
;;
rootdelay=*|rootwait=*)
ROOTDELAY=${x#*=}
;;
rootdelay|rootwait)
ROOTDELAY=5
;; ;;
esac esac
done done
@ -145,26 +126,6 @@ run udevadm settle --timeout=120
run udevadm control --exit run udevadm control --exit
init=${REAL_INIT:-/sbin/init} 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 # uncomment for debug
#run_emergency_shell #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}" good_msg "Switching to real root: switch_root ${CHROOT} ${init} ${init_opts}"
#sh #sh
exec switch_root "${CHROOT}" "${init}" ${init_opts} 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 exit 1

View File

@ -1 +1 @@
EBUILD klipper-11.ebuild 636 BLAKE2B fe1685f4bfbba06f544f6bb0a01cbaca30f938dc8963bb2f01f7b57c3643738caa9403049916319eff3f626d1507e7577762188bd03ada31a4e6ea04ce763abb SHA512 381bb6899bfe71456e0148abfeedf8db1dccb5b5d4998068e9eb03a8d0008e9b39ea671e82f1b8afc4aba6527cba801f59d824c2800657d4d96e5f7a12235c49 EBUILD klipper-11.ebuild 656 BLAKE2B 0f9fcd5dc3939e6dc2288f6ca740457f422a2cee5d9849188cd9d823872e4712c799d56545547cec548dc7bb079ae35a1f7d586aa78860a13b349ccc2cffaa79 SHA512 ac11acfa93008f791b385bdc19dc411434c14d91560825f0b6bb77a88c7452ddbbba62a8d30cb63dca75df62eac53678e0c666c92e2d7ae0345b17fd21500915

View File

@ -28,4 +28,5 @@ RDEPEND="
sys-apps/pciutils sys-apps/pciutils
media-libs/libv4l media-libs/libv4l
net-misc/ntp net-misc/ntp
sys-apps/i2c-tools
" "

View File

@ -3,7 +3,7 @@ new file mode 100644
index 000000000000..51de9e95b7d2 index 000000000000..51de9e95b7d2
--- /dev/null --- /dev/null
+++ b/arch/arm64/configs/printer_defconfig +++ b/arch/arm64/configs/printer_defconfig
@@ -0,0 +1,689 @@ @@ -0,0 +1,698 @@
+CONFIG_DEFAULT_HOSTNAME="Printer" +CONFIG_DEFAULT_HOSTNAME="Printer"
+CONFIG_LOCALVERSION="-arm64" +CONFIG_LOCALVERSION="-arm64"
+CONFIG_LOCALVERSION_AUTO=n +CONFIG_LOCALVERSION_AUTO=n
@ -34,6 +34,9 @@ index 000000000000..51de9e95b7d2
+CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_DWMAC_DWC_QOS_ETH=y
+CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOMEM=y
+CONFIG_I2C=y +CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX_PINCTRL=y
+CONFIG_I2C_MUX_REG=y
+CONFIG_MMC=y +CONFIG_MMC=y
+CONFIG_SUNXI_CCU=y +CONFIG_SUNXI_CCU=y
+CONFIG_NVMEM=y +CONFIG_NVMEM=y
@ -72,6 +75,7 @@ index 000000000000..51de9e95b7d2
+CONFIG_EXTCON=y +CONFIG_EXTCON=y
+CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ=y
+CONFIG_SPI=y +CONFIG_SPI=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_MASTER=y +CONFIG_SPI_MASTER=y
+CONFIG_THERMAL=y +CONFIG_THERMAL=y
+CONFIG_MFD_AC200_SUNXI=y +CONFIG_MFD_AC200_SUNXI=y
@ -83,6 +87,7 @@ index 000000000000..51de9e95b7d2
+CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLASS=y
+CONFIG_REGULATOR=y +CONFIG_REGULATOR=y
+CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_AMPERE_ERRATUM_AC03_CPU_38=n +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=n
+CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y +CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
@ -141,7 +146,7 @@ index 000000000000..51de9e95b7d2
+CONFIG_NR_CPUS=8 +CONFIG_NR_CPUS=8
+CONFIG_EFI=n +CONFIG_EFI=n
+CONFIG_COREDUMP=n +CONFIG_COREDUMP=n
+CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_BUF_SHIFT=15
+CONFIG_RD_ZSTD=n +CONFIG_RD_ZSTD=n
+CONFIG_KALLSYMS=n +CONFIG_KALLSYMS=n
+CONFIG_XZ_DEC_X86=n +CONFIG_XZ_DEC_X86=n
@ -431,7 +436,6 @@ index 000000000000..51de9e95b7d2
+CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_8250_DW=y
+CONFIG_STMMAC_PLATFORM=y +CONFIG_STMMAC_PLATFORM=y
+CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_FAN53555=y
+#CONFIG_TOUCHSCREEN_TSC2007=y
+CONFIG_MFD_AXP20X_I2C=y +CONFIG_MFD_AXP20X_I2C=y
+CONFIG_REGULATOR_AXP20X=y +CONFIG_REGULATOR_AXP20X=y
+CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_GPIO=y
@ -559,6 +563,10 @@ index 000000000000..51de9e95b7d2
+CONFIG_MOUSE_SYNAPTICS_USB=y +CONFIG_MOUSE_SYNAPTICS_USB=y
+CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_RESET_SYSCON=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_SCMI=y
+CONFIG_SENSORS_ARM_SCPI=y +CONFIG_SENSORS_ARM_SCPI=y
+CONFIG_SENSORS_GPIO_FAN=y +CONFIG_SENSORS_GPIO_FAN=y
@ -687,9 +695,14 @@ index 000000000000..51de9e95b7d2
+ +
+CONFIG_RFKILL=y +CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=y +CONFIG_RFKILL_GPIO=y
+CONFIG_MTD=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_SPI_NOR=m
+ +
+#typeC +#typeC
+#CONFIG_TYPEC=y +#CONFIG_TYPEC=y
+#touchscreens +#touchscreens
+CONFIG_TOUCHSCREEN_GOODIX=y +CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=y +#CONFIG_TOUCHSCREEN_TSC2007=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m

View File

@ -113,11 +113,13 @@ class Initramfs:
if (dir_ch.is_dir()): if (dir_ch.is_dir()):
p = subprocess.Popen(["sudo", "rm", "-rf", dir_tmp]) p = subprocess.Popen(["sudo", "rm", "-rf", dir_tmp])
p.wait() p.wait()
fn = "shutdown.tar.xz"
p = subprocess.Popen(["mkdir", "-p", dir_tmp]) p = subprocess.Popen(["mkdir", "-p", dir_tmp])
p.wait() 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.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.wait()
p = subprocess.Popen(["sudo", "rm", "-rf", dir_tmp]) p = subprocess.Popen(["sudo", "rm", "-rf", dir_tmp])
p.wait() p.wait()
@ -131,8 +133,8 @@ class Initramfs:
self.__mkshutdown() self.__mkshutdown()
def build(self, os): def build(self, os):
#self.__prepare() self.__prepare()
#self.__busybox(os) self.__busybox(os)
#self.__eudev(os) self.__eudev(os)
#self.__e2fsp(os) self.__e2fsp(os)
self.__initrd() self.__initrd()

View File

@ -3,6 +3,10 @@ class Logger:
print(f"[❌] {msg}") print(f"[❌] {msg}")
exit(1) exit(1)
def ok_exit(msg):
print(f"[✅] {msg}")
exit(0)
def build(msg): def build(msg):
print(f"[🔨] {msg}") print(f"[🔨] {msg}")

View File

@ -22,6 +22,14 @@ class OS:
[ "sqh", self.sqh ] [ "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): def load_info(self):
with open(f"{ROOT_DIR}/config/os_{self.arch}.json") as json_data: with open(f"{ROOT_DIR}/config/os_{self.arch}.json") as json_data:
js_data = json.load(json_data) js_data = json.load(json_data)
@ -102,15 +110,23 @@ class OS:
if (clean_type == "default"): if (clean_type == "default"):
self.__chroot(f"emerge -ac", dir=dir) self.__chroot(f"emerge -ac", dir=dir)
if (clean_type == "bdeps"): 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): if ("sudo" in step):
cmd = self.board.parse_variables(step["sudo"]) cmd = self.board.parse_variables(step["sudo"])
Logger.os(f"\tSudo command {cmd}...") Logger.os(f"\tSudo command {cmd}...")
self.__sudo(cmd, cwd=dir, shell=True) 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): def check_rootfs(self):
if marker_check(MARKER_ROOTFS_READY): if marker_check(MARKER_ROOTFS_READY):
return return
self.__relaunch_as_sudo()
stages = [ stages = [
[self.st3_info, self.__stage3_apply, "" ], [self.st3_info, self.__stage3_apply, "" ],
[self.st3_prepare, self.__stage3_steps, "Basic preparation..."], [self.st3_prepare, self.__stage3_steps, "Basic preparation..."],
@ -129,6 +145,7 @@ class OS:
self.arch = board.parse_variables("%{ARCH}%") self.arch = board.parse_variables("%{ARCH}%")
def __sudo(self, args, cwd=None, env=None, stdout=None, shell=None): def __sudo(self, args, cwd=None, env=None, stdout=None, shell=None):
if (os.geteuid() != 0):
if isinstance(args, str): if isinstance(args, str):
args = self.board.parse_variables("sudo " + args) args = self.board.parse_variables("sudo " + args)
err_n = args err_n = args
@ -223,12 +240,13 @@ class OS:
self.__stage3_steps(self.finalize, "Finalize system installation...", dir=dir) self.__stage3_steps(self.finalize, "Finalize system installation...", dir=dir)
def sqh(self): def sqh(self):
self.__relaunch_as_sudo()
date = datetime.datetime.today().strftime('%Y_%m_%d') date = datetime.datetime.today().strftime('%Y_%m_%d')
temp_dir = f"{ROOT_DIR}/build/tmp" temp_dir = f"{ROOT_DIR}/build/tmp"
# pack full system via tar # pack full system via tar
#arch_full_path = self.pack() arch_full_path = self.pack()
#self.__tmp_clean(temp_dir) self.__tmp_clean(temp_dir)
#self.__extract_tar(arch_full_path, temp_dir) self.__extract_tar(arch_full_path, temp_dir)
# prepare system, remove unnecessary packages # prepare system, remove unnecessary packages
self.__finalize(temp_dir) self.__finalize(temp_dir)
self.__do_archive("excl_min", "FULL_min_bdeps", temp_dir) self.__do_archive("excl_min", "FULL_min_bdeps", temp_dir)
@ -318,7 +336,7 @@ class OS:
offset += part.size_blk + 1 offset += part.size_blk + 1
args += "w\nq\n" args += "w\nq\n"
cmd = [] cmd = []
if (from_sudo): if (os.geteuid() != 0) and (from_sudo):
cmd.append("sudo") cmd.append("sudo")
cmd.append("fdisk") cmd.append("fdisk")
cmd.append(img_or_dev) cmd.append(img_or_dev)
@ -419,6 +437,7 @@ class OS:
i += 1 i += 1
def install(self, dir_or_dev): def install(self, dir_or_dev):
self.__relaunch_as_sudo()
Logger.install(f"Install to '{dir_or_dev}'") Logger.install(f"Install to '{dir_or_dev}'")
is_blk = False is_blk = False
dir_ch = Path(dir_or_dev) dir_ch = Path(dir_or_dev)

View File

@ -71,7 +71,7 @@ class Target:
self.sources.do_patch(self.board_name, self.patch_dir) self.sources.do_patch(self.board_name, self.patch_dir)
def build(self, sub_target, out_dir): def build(self, sub_target, out_dir):
#self.source_sync() self.source_sync()
if (not self.no_build): if (not self.no_build):
opts = self.makeopts.split(" ") opts = self.makeopts.split(" ")
config = "" config = ""