From 53441d5b9df9fb035e238e10170b53191c5e9b86 Mon Sep 17 00:00:00 2001 From: Marc Date: Sat, 4 Dec 2021 23:02:31 +0100 Subject: [PATCH] Support for real harddrive and Jmicron usb drives --- build.sh | 5 + copyRootfsIntoTheImage.sh | 6 + fakesh/.gitignore | 1 + fakesh/build.sh | 4 + fakesh/fakesh.c | 28 ++ forceinstalltodisk.sh | 62 ++++ kernel/.config | 290 +++++++++--------- kmod/.gitignore | 1 + kmod/build.sh | 20 ++ nodejs/build.sh | 1 + nodejs/patch.sh | 2 + nodejs/patches/child_process_executor.diff | 18 ++ rootfs overrides/chibrax/index.js | 2 +- rootfs overrides/usr/bin/sheebr.js | 16 +- .../usr/lib/sheebr/environment.js | 5 +- utillinux/.gitignore | 1 + utillinux/build.sh | 23 ++ 17 files changed, 333 insertions(+), 152 deletions(-) create mode 100644 fakesh/.gitignore create mode 100755 fakesh/build.sh create mode 100644 fakesh/fakesh.c create mode 100755 forceinstalltodisk.sh create mode 100644 kmod/.gitignore create mode 100755 kmod/build.sh create mode 100755 nodejs/patch.sh create mode 100644 nodejs/patches/child_process_executor.diff create mode 100644 utillinux/.gitignore create mode 100755 utillinux/build.sh diff --git a/build.sh b/build.sh index 82f186a..9f56e65 100755 --- a/build.sh +++ b/build.sh @@ -88,6 +88,11 @@ cd chibraxLoader && ./build.sh && cd - sudo cp chibraxLoader/init rootfs/usr/bin/ || exit 1 echo "done" +echo "construction du bypass de sh" +chmod +x ./fakesh/build.sh +cd fakesh && ./build.sh && cd - +echo "done" + echo "construction du kernel" cd kernel && ./from_current.sh && cd - sudo cp kernel/src/vmlinuz rootfs/boot || exit 1 diff --git a/copyRootfsIntoTheImage.sh b/copyRootfsIntoTheImage.sh index 232ab5b..1ddf873 100755 --- a/copyRootfsIntoTheImage.sh +++ b/copyRootfsIntoTheImage.sh @@ -33,6 +33,12 @@ echo "coping rootfs" cp rootfs/* $CHIBRAX_MOUNT_POINT -r echo "done" +echo "patching grub" +echo "menuentry 'Chibrax OS' {" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo " set root='hd0,msdos1'" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo " linux /boot/vmlinuz rootfstype=ext4 root=/dev/sda1 rw quiet" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo "}" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg + echo "finishing..." umount $CHIBRAX_MOUNT_POINT losetup -d $LOOP \ No newline at end of file diff --git a/fakesh/.gitignore b/fakesh/.gitignore new file mode 100644 index 0000000..fdc1fed --- /dev/null +++ b/fakesh/.gitignore @@ -0,0 +1 @@ +executor \ No newline at end of file diff --git a/fakesh/build.sh b/fakesh/build.sh new file mode 100755 index 0000000..cc4259b --- /dev/null +++ b/fakesh/build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +gcc fakesh.c -o executor + +cp executor ../rootfs/bin/ \ No newline at end of file diff --git a/fakesh/fakesh.c b/fakesh/fakesh.c new file mode 100644 index 0000000..3ac9fde --- /dev/null +++ b/fakesh/fakesh.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +int main(int argc, char const *argv[]) +{ + printf("%d\n", argc); + if(argc < 2) { + printf("missing arguments\n"); + return 1; + } + + char * args[argc - 1]; + for(int i=1; i < argc; i++) { + args[i-1] = (char *)malloc(sizeof(char) * strlen(argv[1])); + strcpy(args[i-1], argv[i]); + } + //args have to be null terminated + args[argc - 2] = NULL; + + printf("starting %s\n", argv[1]); + + if(execv(argv[1], args)) { + printf("\nfile not found, or error happened\n"); + return 1; + } +} diff --git a/forceinstalltodisk.sh b/forceinstalltodisk.sh new file mode 100755 index 0000000..1b62394 --- /dev/null +++ b/forceinstalltodisk.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# we depend on a properly build rootfs +if [ "$EUID" -ne 0 ] +then echo "Please run as root" + exit +fi + +if [ $# -ne 1 ] +then +echo "you need to point to a disk (there is no security agains pointing to a parition)" +echo "nvme won't work" +exit 1 +fi + +disk=$1 + +CHIBRAX_MOUNT_POINT="/tmp/chibraxMountPoint" + +#creating a msdos image for mbr boot +parted $disk mklabel msdos || exit 1 +parted $disk mkpart primary ext4 0% 100% || exit 1 + + + +mkdir $CHIBRAX_MOUNT_POINT -p || exit 1 + +mkfs.ext4 ${disk}1 #|| exit 1 +mount ${disk}1 $CHIBRAX_MOUNT_POINT + +echo "rebuilding C++ hooks" +./clibs.sh || exit 1 +echo "done" + +echo "coping rootfs" +cp rootfs/* $CHIBRAX_MOUNT_POINT -r || exit 1 +echo "done" + +echo "installing grub" +mount --rbind /dev $CHIBRAX_MOUNT_POINT/dev || exit 1 +mount --make-rslave $CHIBRAX_MOUNT_POINT/dev || exit 1 +mount -t proc /proc $CHIBRAX_MOUNT_POINT/proc || exit 1 +mount --rbind /sys $CHIBRAX_MOUNT_POINT/sys || exit 1 +mount --make-rslave $CHIBRAX_MOUNT_POINT/sys || exit 1 +mount --rbind /tmp $CHIBRAX_MOUNT_POINT/tmp || exit 1 + +chroot $CHIBRAX_MOUNT_POINT /sbin/ldconfig -p || exit 1 +chroot $CHIBRAX_MOUNT_POINT /usr/sbin/grub-install --target=i386-pc $disk --modules=part_msdos || exit 1 +chroot $CHIBRAX_MOUNT_POINT /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg + + +PARTUUID=$(lsblk $LOOP --fs | awk '{print $4}' | grep -v LABEL) + +echo "menuentry 'Chibrax OS' {" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo " set root='hd0,msdos1'" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo " linux /boot/vmlinuz rootfstype=ext4 root=/dev/sda1 rw quiet" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo "}" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg + +umount $CHIBRAX_MOUNT_POINT/dev -l +umount $CHIBRAX_MOUNT_POINT/proc -l +umount $CHIBRAX_MOUNT_POINT/sys -l +umount $CHIBRAX_MOUNT_POINT/tmp -l +umount $CHIBRAX_MOUNT_POINT diff --git a/kernel/.config b/kernel/.config index 8236051..be07f71 100644 --- a/kernel/.config +++ b/kernel/.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.14.21-zen Kernel Configuration +# Linux/x86 5.15.5 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.1.0" CONFIG_CC_IS_GCC=y @@ -24,9 +24,9 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_ZEN_INTERACTIVE=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_BUILD_SALT="" @@ -152,12 +152,12 @@ CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +# CONFIG_PRINTK_INDEX is not set CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # -# CONFIG_SCHED_ALT is not set # CONFIG_UCLAMP_TASK is not set # end of Scheduler features @@ -198,7 +198,6 @@ CONFIG_RELAY=y # CONFIG_BLK_DEV_INITRD is not set # CONFIG_BOOT_CONFIG is not set CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y -# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_LD_ORPHAN_WARN=y CONFIG_SYSCTL=y @@ -213,7 +212,6 @@ CONFIG_SYSFS_SYSCALL=y CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y -CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y @@ -285,6 +283,7 @@ CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_AUDIT_ARCH=y @@ -325,13 +324,14 @@ CONFIG_XEN=y CONFIG_XEN_PV=y CONFIG_XEN_512GB=y CONFIG_XEN_PV_SMP=y -CONFIG_XEN_DOM0=y +CONFIG_XEN_PV_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_PVHVM_SMP=y CONFIG_XEN_PVHVM_GUEST=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set # CONFIG_XEN_PVH is not set +CONFIG_XEN_DOM0=y CONFIG_KVM_GUEST=y CONFIG_ARCH_CPUIDLE_HALTPOLL=y # CONFIG_PVH is not set @@ -340,46 +340,10 @@ CONFIG_PARAVIRT_CLOCK=y # CONFIG_JAILHOUSE_GUEST is not set # CONFIG_ACRN_GUEST is not set # CONFIG_MK8 is not set -# CONFIG_MK8SSE3 is not set -# CONFIG_MK10 is not set -# CONFIG_MBARCELONA is not set -# CONFIG_MBOBCAT is not set -# CONFIG_MJAGUAR is not set -# CONFIG_MBULLDOZER is not set -# CONFIG_MPILEDRIVER is not set -# CONFIG_MSTEAMROLLER is not set -# CONFIG_MEXCAVATOR is not set -# CONFIG_MZEN is not set -# CONFIG_MZEN2 is not set -# CONFIG_MZEN3 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set -# CONFIG_MNEHALEM is not set -# CONFIG_MWESTMERE is not set -# CONFIG_MSILVERMONT is not set -# CONFIG_MGOLDMONT is not set -# CONFIG_MGOLDMONTPLUS is not set -# CONFIG_MSANDYBRIDGE is not set -# CONFIG_MIVYBRIDGE is not set -# CONFIG_MHASWELL is not set -# CONFIG_MBROADWELL is not set -# CONFIG_MSKYLAKE is not set -# CONFIG_MSKYLAKEX is not set -# CONFIG_MCANNONLAKE is not set -# CONFIG_MICELAKE is not set -# CONFIG_MCASCADELAKE is not set -# CONFIG_MCOOPERLAKE is not set -# CONFIG_MTIGERLAKE is not set -# CONFIG_MSAPPHIRERAPIDS is not set -# CONFIG_MROCKETLAKE is not set -# CONFIG_MALDERLAKE is not set CONFIG_GENERIC_CPU=y -# CONFIG_GENERIC_CPU2 is not set -# CONFIG_GENERIC_CPU3 is not set -# CONFIG_GENERIC_CPU4 is not set -# CONFIG_MNATIVE_INTEL is not set -# CONFIG_MNATIVE_AMD is not set CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_TSC=y @@ -423,6 +387,7 @@ CONFIG_PERF_EVENTS_INTEL_UNCORE=y CONFIG_PERF_EVENTS_INTEL_RAPL=y CONFIG_PERF_EVENTS_INTEL_CSTATE=y # CONFIG_PERF_EVENTS_AMD_POWER is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y # end of Performance monitoring CONFIG_X86_16BIT=y @@ -632,7 +597,6 @@ CONFIG_PCI_XEN=y CONFIG_MMCONF_FAM10H=y CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y -# CONFIG_X86_SYSFB is not set # end of Bus options (PCI etc.) # @@ -646,45 +610,6 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y # end of Binary Emulations -# -# Firmware Drivers -# -# CONFIG_EDD is not set -CONFIG_FIRMWARE_MEMMAP=y -CONFIG_DMIID=y -# CONFIG_DMI_SYSFS is not set -CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y -# CONFIG_ISCSI_IBFT is not set -# CONFIG_FW_CFG_SYSFS is not set -# CONFIG_GOOGLE_FIRMWARE is not set - -# -# EFI (Extensible Firmware Interface) Support -# -CONFIG_EFI_VARS=y -CONFIG_EFI_ESRT=y -CONFIG_EFI_RUNTIME_MAP=y -# CONFIG_EFI_FAKE_MEMMAP is not set -CONFIG_EFI_RUNTIME_WRAPPERS=y -CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y -# CONFIG_EFI_BOOTLOADER_CONTROL is not set -# CONFIG_EFI_CAPSULE_LOADER is not set -# CONFIG_EFI_TEST is not set -# CONFIG_APPLE_PROPERTIES is not set -# CONFIG_RESET_ATTACK_MITIGATION is not set -# CONFIG_EFI_RCI2_TABLE is not set -# CONFIG_EFI_DISABLE_PCI_DMA is not set -# end of EFI (Extensible Firmware Interface) Support - -CONFIG_EFI_EARLYCON=y -CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - CONFIG_HAVE_KVM=y CONFIG_VIRTUALIZATION=y # CONFIG_KVM is not set @@ -716,6 +641,7 @@ CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y @@ -804,7 +730,7 @@ CONFIG_HAVE_PREEMPT_DYNAMIC=y CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_ARCH_HAS_ELFCORE_COMPAT=y -CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y +CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y # # GCOV-based kernel profiling @@ -836,12 +762,10 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODPROBE_PATH="/sbin/modprobe" CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y -CONFIG_BLK_SCSI_REQUEST=y -CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSG_COMMON=y # CONFIG_BLK_DEV_BSGLIB is not set # CONFIG_BLK_DEV_INTEGRITY is not set # CONFIG_BLK_DEV_ZONED is not set -# CONFIG_BLK_CMDLINE_PARSER is not set # CONFIG_BLK_WBT is not set CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set @@ -859,12 +783,12 @@ CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y +CONFIG_BLOCK_HOLDER_DEPRECATED=y # # IO Schedulers # CONFIG_MQ_IOSCHED_DEADLINE=y -# CONFIG_MQ_IOSCHED_DEADLINE_NODEFAULT is not set CONFIG_MQ_IOSCHED_KYBER=y # CONFIG_IOSCHED_BFQ is not set # end of IO Schedulers @@ -909,9 +833,6 @@ CONFIG_SPARSEMEM=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_ANON_MIN_KBYTES=0 -CONFIG_CLEAN_LOW_KBYTES=262144 -CONFIG_CLEAN_MIN_KBYTES=0 CONFIG_HAVE_FAST_GUP=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_MEMORY_HOTPLUG is not set @@ -951,7 +872,12 @@ CONFIG_ARCH_HAS_PKEYS=y # CONFIG_GUP_TEST is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_SECRETMEM=y -# CONFIG_LRU_GEN is not set + +# +# Data Access Monitoring +# +# CONFIG_DAMON is not set +# end of Data Access Monitoring # end of Memory Management options CONFIG_NET=y @@ -965,6 +891,7 @@ CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y # CONFIG_UNIX_DIAG is not set # CONFIG_TLS is not set CONFIG_XFRM=y @@ -1023,7 +950,6 @@ CONFIG_TCP_CONG_CUBIC=y # CONFIG_TCP_CONG_DCTCP is not set # CONFIG_TCP_CONG_CDG is not set # CONFIG_TCP_CONG_BBR is not set -# CONFIG_TCP_CONG_BBR2 is not set CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" @@ -1048,6 +974,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_SEG6_LWTUNNEL is not set # CONFIG_IPV6_SEG6_HMAC is not set # CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_IPV6_IOAM6_LWTUNNEL is not set CONFIG_NETLABEL=y # CONFIG_MPTCP is not set CONFIG_NETWORK_SECMARK=y @@ -1285,6 +1212,7 @@ CONFIG_NET_FLOW_LIMIT=y # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set +# CONFIG_MCTP is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_CFG80211=y @@ -1418,7 +1346,25 @@ CONFIG_YENTA_TOSHIBA=y # CONFIG_PD6729 is not set # CONFIG_I82092 is not set CONFIG_PCCARD_NONSTATIC=y -# CONFIG_RAPIDIO is not set +CONFIG_RAPIDIO=y +# CONFIG_RAPIDIO_TSI721 is not set +CONFIG_RAPIDIO_DISC_TIMEOUT=30 +# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set +# CONFIG_RAPIDIO_DMA_ENGINE is not set +# CONFIG_RAPIDIO_DEBUG is not set +# CONFIG_RAPIDIO_ENUM_BASIC is not set +# CONFIG_RAPIDIO_CHMAN is not set +# CONFIG_RAPIDIO_MPORT_CDEV is not set + +# +# RapidIO Switch drivers +# +# CONFIG_RAPIDIO_TSI57X is not set +# CONFIG_RAPIDIO_CPS_XX is not set +# CONFIG_RAPIDIO_TSI568 is not set +# CONFIG_RAPIDIO_CPS_GEN2 is not set +# CONFIG_RAPIDIO_RXS_GEN3 is not set +# end of RapidIO Switch drivers # # Generic Driver Options @@ -1461,6 +1407,54 @@ CONFIG_DMA_SHARED_BUFFER=y CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# end of ARM System Control and Management Interface Protocol + +# CONFIG_EDD is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DMIID=y +# CONFIG_DMI_SYSFS is not set +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_ISCSI_IBFT is not set +# CONFIG_FW_CFG_SYSFS is not set +CONFIG_SYSFB=y +# CONFIG_SYSFB_SIMPLEFB is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=y +CONFIG_EFI_ESRT=y +CONFIG_EFI_RUNTIME_MAP=y +# CONFIG_EFI_FAKE_MEMMAP is not set +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y +# CONFIG_EFI_BOOTLOADER_CONTROL is not set +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +# CONFIG_APPLE_PROPERTIES is not set +# CONFIG_RESET_ATTACK_MITIGATION is not set +# CONFIG_EFI_RCI2_TABLE is not set +# CONFIG_EFI_DISABLE_PCI_DMA is not set +# end of EFI (Extensible Firmware Interface) Support + +CONFIG_EFI_EARLYCON=y +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + # CONFIG_GNSS is not set # CONFIG_MTD is not set # CONFIG_OF is not set @@ -1477,28 +1471,34 @@ CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set # CONFIG_BLK_DEV_FD is not set CONFIG_CDROM=y -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_SX8 is not set -# CONFIG_BLK_DEV_RAM is not set +CONFIG_BLK_DEV_SX8=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set CONFIG_XEN_BLKDEV_FRONTEND=y -# CONFIG_XEN_BLKDEV_BACKEND is not set -# CONFIG_VIRTIO_BLK is not set +CONFIG_XEN_BLKDEV_BACKEND=y +CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_RBD is not set # CONFIG_BLK_DEV_RSXX is not set # # NVME Support # -# CONFIG_BLK_DEV_NVME is not set -# CONFIG_NVME_FC is not set -# CONFIG_NVME_TCP is not set +CONFIG_NVME_CORE=y +CONFIG_BLK_DEV_NVME=y +CONFIG_NVME_MULTIPATH=y +CONFIG_NVME_HWMON=y +CONFIG_NVME_FABRICS=y +CONFIG_NVME_FC=y +CONFIG_NVME_TCP=y # end of NVME Support # @@ -1567,6 +1567,7 @@ CONFIG_XEN_BLKDEV_FRONTEND=y # CONFIG_SCSI_MOD=y # CONFIG_RAID_ATTRS is not set +CONFIG_SCSI_COMMON=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_PROC_FS=y @@ -1578,6 +1579,7 @@ CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set CONFIG_BLK_DEV_SR=y CONFIG_CHR_DEV_SG=y +CONFIG_BLK_DEV_BSG=y # CONFIG_CHR_DEV_SCH is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set @@ -1654,7 +1656,6 @@ CONFIG_HYPERV_STORAGE=m CONFIG_SCSI_VIRTIO=m # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set # CONFIG_SCSI_DH is not set -CONFIG_VHBA=m # end of SCSI device support CONFIG_ATA=y @@ -1690,8 +1691,8 @@ CONFIG_ATA_BMDMA=y # CONFIG_ATA_PIIX=y # CONFIG_SATA_DWC is not set -# CONFIG_SATA_MV is not set -# CONFIG_SATA_NV is not set +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y # CONFIG_SATA_PROMISE is not set # CONFIG_SATA_SIL is not set # CONFIG_SATA_SIS is not set @@ -1717,8 +1718,8 @@ CONFIG_PATA_AMD=y # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT8213 is not set # CONFIG_PATA_IT821X is not set -# CONFIG_PATA_JMICRON is not set -# CONFIG_PATA_MARVELL is not set +CONFIG_PATA_JMICRON=y +CONFIG_PATA_MARVELL=y # CONFIG_PATA_NETCELL is not set # CONFIG_PATA_NINJA32 is not set # CONFIG_PATA_NS87415 is not set @@ -1750,8 +1751,8 @@ CONFIG_PATA_SCH=y # # Generic fallback / legacy drivers # -# CONFIG_PATA_ACPI is not set -# CONFIG_ATA_GENERIC is not set +CONFIG_PATA_ACPI=y +CONFIG_ATA_GENERIC=y # CONFIG_PATA_LEGACY is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=y @@ -1821,6 +1822,7 @@ CONFIG_NET_CORE=y CONFIG_NETCONSOLE=y CONFIG_NETPOLL=y CONFIG_NET_POLL_CONTROLLER=y +# CONFIG_RIONET is not set # CONFIG_TUN is not set # CONFIG_TUN_VNET_CROSS_LE is not set # CONFIG_VETH is not set @@ -1887,7 +1889,6 @@ CONFIG_NET_VENDOR_CHELSIO=y # CONFIG_CHELSIO_T4 is not set # CONFIG_CHELSIO_T4VF is not set CONFIG_NET_VENDOR_CIRRUS=y -# CONFIG_CS89x0 is not set CONFIG_NET_VENDOR_CISCO=y # CONFIG_ENIC is not set CONFIG_NET_VENDOR_CORTINA=y @@ -1932,6 +1933,7 @@ CONFIG_E1000E_HWTS=y # CONFIG_IGC is not set CONFIG_NET_VENDOR_MICROSOFT=y # CONFIG_JME is not set +CONFIG_NET_VENDOR_LITEX=y CONFIG_NET_VENDOR_MARVELL=y # CONFIG_MVMDIO is not set # CONFIG_SKGE is not set @@ -2068,6 +2070,7 @@ CONFIG_FIXED_PHY=y # CONFIG_MARVELL_PHY is not set # CONFIG_MARVELL_10G_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +# CONFIG_MAXLINEAR_GPHY is not set # CONFIG_MEDIATEK_GE_PHY is not set # CONFIG_MICREL_PHY is not set # CONFIG_MICROCHIP_PHY is not set @@ -2160,7 +2163,6 @@ CONFIG_WLAN_VENDOR_INTERSIL=y # CONFIG_HOSTAP is not set # CONFIG_HERMES is not set # CONFIG_P54_COMMON is not set -# CONFIG_PRISM54 is not set CONFIG_WLAN_VENDOR_MARVELL=y # CONFIG_LIBERTAS is not set # CONFIG_LIBERTAS_THINFIRM is not set @@ -2230,7 +2232,6 @@ CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_NETDEVSIM is not set # CONFIG_NET_FAILOVER is not set # CONFIG_ISDN is not set -# CONFIG_NVM is not set # # Input device support @@ -2540,10 +2541,9 @@ CONFIG_HPET=y # CONFIG_TELCLOCK is not set # CONFIG_XILLYBUS is not set # CONFIG_XILLYUSB is not set -# end of Character devices - # CONFIG_RANDOM_TRUST_CPU is not set # CONFIG_RANDOM_TRUST_BOOTLOADER is not set +# end of Character devices # # I2C support @@ -2575,7 +2575,6 @@ CONFIG_I2C_I801=y # CONFIG_I2C_ISCH is not set # CONFIG_I2C_ISMT is not set # CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NCT6775 is not set # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_SIS5595 is not set @@ -2613,6 +2612,7 @@ CONFIG_I2C_I801=y # Other I2C/SMBus bus drivers # # CONFIG_I2C_MLXCPLD is not set +# CONFIG_I2C_VIRTIO is not set # end of I2C Hardware Bus support # CONFIG_I2C_STUB is not set @@ -2644,6 +2644,7 @@ CONFIG_PPS=y # PTP clock support # CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. @@ -2652,7 +2653,6 @@ CONFIG_PTP_1588_CLOCK_KVM=y # CONFIG_PTP_1588_CLOCK_IDT82P33 is not set # CONFIG_PTP_1588_CLOCK_IDTCM is not set # CONFIG_PTP_1588_CLOCK_VMW is not set -# CONFIG_PTP_1588_CLOCK_OCP is not set # end of PTP clock support # CONFIG_PINCTRL is not set @@ -2678,7 +2678,6 @@ CONFIG_POWER_SUPPLY_HWMON=y # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_LTC4162L is not set # CONFIG_CHARGER_BQ2415X is not set -# CONFIG_CHARGER_SMB347 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_BATTERY_GOLDFISH is not set # CONFIG_BATTERY_RT5033 is not set @@ -2706,6 +2705,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_ADT7470 is not set # CONFIG_SENSORS_ADT7475 is not set # CONFIG_SENSORS_AHT10 is not set +# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set # CONFIG_SENSORS_AS370 is not set # CONFIG_SENSORS_ASC7621 is not set # CONFIG_SENSORS_AXI_FAN_CONTROL is not set @@ -2791,6 +2791,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_PCF8591 is not set # CONFIG_PMBUS is not set # CONFIG_SENSORS_SBTSI is not set +# CONFIG_SENSORS_SBRMI is not set # CONFIG_SENSORS_SHT21 is not set # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHT4x is not set @@ -2873,6 +2874,7 @@ CONFIG_X86_PKG_TEMP_THERMAL=m # CONFIG_INTEL_PCH_THERMAL is not set # CONFIG_INTEL_TCC_COOLING is not set +# CONFIG_INTEL_MENLOW is not set # end of Intel thermal drivers CONFIG_WATCHDOG=y @@ -3097,7 +3099,6 @@ CONFIG_DRM_I915_TIMESLICE_DURATION=1 # CONFIG_DRM_AST is not set # CONFIG_DRM_MGAG200 is not set CONFIG_DRM_QXL=m -# CONFIG_DRM_BOCHS is not set CONFIG_DRM_VIRTIO_GPU=m CONFIG_DRM_PANEL=y @@ -3117,6 +3118,7 @@ CONFIG_DRM_PANEL_BRIDGE=y # end of Display Interface Bridges # CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_BOCHS is not set # CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_GM12U320 is not set CONFIG_DRM_SIMPLEDRM=m @@ -3173,7 +3175,7 @@ CONFIG_SND_PCM=y CONFIG_SND_HWDEP=y CONFIG_SND_SEQ_DEVICE=y CONFIG_SND_RAWMIDI=y -CONFIG_SND_COMPRESS_OFFLOAD=y +CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_OSSEMUL=y @@ -3289,6 +3291,7 @@ CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CIRRUS=y +# CONFIG_SND_HDA_CODEC_CS8409 is not set CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y @@ -3331,6 +3334,7 @@ CONFIG_SND_SOC_ACPI=m # CONFIG_SND_SOC_AMD_ACP is not set # CONFIG_SND_SOC_AMD_ACP3x is not set # CONFIG_SND_SOC_AMD_RENOIR is not set +# CONFIG_SND_SOC_AMD_ACP5x is not set # CONFIG_SND_ATMEL_SOC is not set # CONFIG_SND_BCM63XX_I2S_WHISTLER is not set # CONFIG_SND_DESIGNWARE_I2S is not set @@ -3432,6 +3436,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_ES8316 is not set # CONFIG_SND_SOC_ES8328_I2C is not set # CONFIG_SND_SOC_GTM601 is not set +# CONFIG_SND_SOC_ICS43432 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_MAX98088 is not set # CONFIG_SND_SOC_MAX98504 is not set @@ -3743,7 +3748,7 @@ CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set # CONFIG_USB_STORAGE_ENE_UB6250 is not set -# CONFIG_USB_UAS is not set +CONFIG_USB_UAS=y # # USB Imaging devices @@ -3974,8 +3979,10 @@ CONFIG_DMA_ACPI=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_INTEL_IDMA64 is not set # CONFIG_INTEL_IDXD is not set +# CONFIG_INTEL_IDXD_COMPAT is not set # CONFIG_INTEL_IOATDMA is not set # CONFIG_PLX_DMA is not set +# CONFIG_AMD_PTDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set CONFIG_DW_DMAC_CORE=y @@ -4003,6 +4010,7 @@ CONFIG_SYNC_FILE=y # CONFIG_DMABUF_DEBUG is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_SYSFS_STATS is not set # end of DMABUF options # CONFIG_AUXDISPLAY is not set @@ -4091,10 +4099,23 @@ CONFIG_EEEPC_LAPTOP=y # CONFIG_THINKPAD_ACPI is not set CONFIG_X86_PLATFORM_DRIVERS_INTEL=y # CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_SAR_INT1092 is not set +# CONFIG_INTEL_PMC_CORE is not set + +# +# Intel Speed Select Technology interface support +# +# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set +# end of Intel Speed Select Technology interface support + # CONFIG_INTEL_HID_EVENT is not set -# CONFIG_INTEL_MENLOW is not set -# CONFIG_INTEL_OAKTRAIL is not set # CONFIG_INTEL_VBTN is not set +# CONFIG_INTEL_OAKTRAIL is not set +# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_RST is not set +# CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set +# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set # CONFIG_MSI_LAPTOP is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -4109,19 +4130,6 @@ CONFIG_X86_PLATFORM_DRIVERS_INTEL=y # CONFIG_I2C_MULTI_INSTANTIATE is not set # CONFIG_MLX_PLATFORM is not set # CONFIG_INTEL_IPS is not set -# CONFIG_INTEL_RST is not set -# CONFIG_INTEL_SMARTCONNECT is not set - -# -# Intel Speed Select Technology interface support -# -# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set -# end of Intel Speed Select Technology interface support - -# CONFIG_INTEL_TURBO_MAX_3 is not set -# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set -# CONFIG_INTEL_PMC_CORE is not set -# CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_SCU_PCI is not set # CONFIG_INTEL_SCU_PLATFORM is not set CONFIG_PMC_ATOM=y @@ -4174,6 +4182,8 @@ CONFIG_IOMMU_IO_PGTABLE=y # end of Generic IOMMU Pagetable Support # CONFIG_IOMMU_DEBUGFS is not set +# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set +CONFIG_IOMMU_DEFAULT_DMA_LAZY=y # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_IOMMU_DMA=y CONFIG_AMD_IOMMU=y @@ -4264,7 +4274,7 @@ CONFIG_HYPERV_IOMMU=y # # PHY Subsystem # -# CONFIG_GENERIC_PHY is not set +CONFIG_GENERIC_PHY=y # CONFIG_USB_LGM_PHY is not set # CONFIG_PHY_CAN_TRANSCEIVER is not set # CONFIG_BCM_KONA_USB2_PHY is not set @@ -4340,7 +4350,6 @@ CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y -CONFIG_MANDATORY_FILE_LOCKING=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FS_VERITY is not set CONFIG_FSNOTIFY=y @@ -4386,6 +4395,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_FAT_DEFAULT_UTF8 is not set # CONFIG_EXFAT_FS is not set # CONFIG_NTFS_FS is not set +# CONFIG_NTFS3_FS is not set # end of DOS/FAT/EXFAT/NT Filesystems # @@ -4462,6 +4472,7 @@ CONFIG_SUNRPC_GSS=y # CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set # CONFIG_CIFS is not set +# CONFIG_SMB_SERVER is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set CONFIG_NLS=y @@ -4581,6 +4592,8 @@ CONFIG_INIT_STACK_NONE=y # CONFIG_GCC_PLUGIN_STACKLEAK is not set # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +# CONFIG_ZERO_CALL_USED_REGS is not set # end of Memory initialization # end of Kernel hardening options # end of Security options @@ -4723,6 +4736,8 @@ CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set # CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_TWOFISH_X86_64 is not set # CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set @@ -5057,7 +5072,6 @@ CONFIG_RCU_TRACE=y # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y @@ -5120,7 +5134,6 @@ CONFIG_STRICT_DEVMEM=y # # x86 Debugging # -CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_EARLY_PRINTK_USB=y CONFIG_X86_VERBOSE_BOOTUP=y @@ -5158,7 +5171,6 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_LKDTM is not set # CONFIG_TEST_MIN_HEAP is not set -# CONFIG_TEST_SORT is not set # CONFIG_TEST_DIV64 is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set diff --git a/kmod/.gitignore b/kmod/.gitignore new file mode 100644 index 0000000..e831038 --- /dev/null +++ b/kmod/.gitignore @@ -0,0 +1 @@ +src \ No newline at end of file diff --git a/kmod/build.sh b/kmod/build.sh new file mode 100755 index 0000000..dfc85f3 --- /dev/null +++ b/kmod/build.sh @@ -0,0 +1,20 @@ +VER=28 + +if [ ! -d src ] +then +mkdir src -p +cd src +curl -L https://github.com/lucasdemarchi/kmod/archive/refs/tags/v$VER.tar.gz --output v$VER.tar.gz || exit 1 +tar xvf v$VER.tar.gz || exit 1 +mv kmod-$VER/* . || exit 1 +rm kmod-$VER -rf +rm v$VER.tar.gz +cd - +fi + +cd src +./configure || exit 1 +make -j$(nproc)|| exit 1 +DESTDIR=$(pwd)/../../rootfs +sudo make install DESTDIR=$(realpath $DESTDIR) +cd - diff --git a/nodejs/build.sh b/nodejs/build.sh index 48c7a7b..40d28d3 100755 --- a/nodejs/build.sh +++ b/nodejs/build.sh @@ -14,6 +14,7 @@ cd src echo "clonning" curl https://github.com/nodejs/node/archive/refs/tags/v$VERSION.zip -L --output $VERSION.zip || exit 1 unzip $VERSION.zip || exit 1 +./patch.sh cd - fi diff --git a/nodejs/patch.sh b/nodejs/patch.sh new file mode 100755 index 0000000..dfb29b0 --- /dev/null +++ b/nodejs/patch.sh @@ -0,0 +1,2 @@ +#!/bin/bash +patch -R src/node-17.1.0/lib/child_process.js patches/child_process_executor.diff \ No newline at end of file diff --git a/nodejs/patches/child_process_executor.diff b/nodejs/patches/child_process_executor.diff new file mode 100644 index 0000000..e0ded8e --- /dev/null +++ b/nodejs/patches/child_process_executor.diff @@ -0,0 +1,18 @@ +586,591d585 +< } else if (typeof options.shell === 'string') { +< file = '/bin/executor'; +< args = [ options.shell, '-c', command]; +< } else if (process.platform === 'android') { +< file = '/system/bin/sh'; +< args = ['-c', command]; +593,594c587,593 +< file = '/bin/executor'; +< args = command.split(' '); +--- +> if (typeof options.shell === 'string') +> file = options.shell; +> else if (process.platform === 'android') +> file = '/system/bin/sh'; +> else +> file = '/bin/sh'; +> args = ['-c', command]; diff --git a/rootfs overrides/chibrax/index.js b/rootfs overrides/chibrax/index.js index 26ff3fb..b0d7337 100644 --- a/rootfs overrides/chibrax/index.js +++ b/rootfs overrides/chibrax/index.js @@ -38,7 +38,7 @@ async function main() { //chainload into sheebr await fHook("/usr/bin/sheebr.js") reboot.disableCtrlAltSupr() - reboot.powerOff() + //reboot.powerOff() console.log("End of init reached") reboot.enableCtrlAltSupr() diff --git a/rootfs overrides/usr/bin/sheebr.js b/rootfs overrides/usr/bin/sheebr.js index 3939433..2a8d3ff 100644 --- a/rootfs overrides/usr/bin/sheebr.js +++ b/rootfs overrides/usr/bin/sheebr.js @@ -1,14 +1,9 @@ +//@ts-check const { Lexer } = require('../lib/sheebr/lexer') const { getline } = require('../lib/sheebr/utils') const fs = require('fs') let environment = require('../lib/sheebr/environment') let aliases = require("../lib/sheebr/aliases") -const readline = require('readline').createInterface({ - input: process.stdin, - output: process.stdout, - terminal: false -}); -const readlineSync = require('../lib/sheebr/readLineSync') let execSync = require('child_process').execSync @@ -18,7 +13,7 @@ start() async function start(){ while(true){ - input = await getline("sheebr> "); + const input = await getline("sheebr> "); if(input == "exit") break; if(input == "") continue; else evaluate(input); @@ -27,7 +22,7 @@ async function start(){ function evaluate(input){ let lexer = new Lexer(input) - args = lexer.scanTokens() + let args = lexer.scanTokens() args = evaluateAliases(args) args = evaluateEnvironmentVariables(args); switch(args[0]){ @@ -56,7 +51,7 @@ function evaluate(input){ default: evaluateProgram(args) } - + } @@ -69,7 +64,8 @@ function evaluateProgram(args){ const files = fs.readdirSync(path); if(files.includes(`${args[0]}.js`)){ found = true; - script = execSync(`node ${path + '/' + args[0]}.js ${args.map(arg => {return arg.includes(' ') ? `"${arg}"` : arg}).join(' ')}`, {cwd: current_dir, env: environment}); + //@ts-expect-error + const script = execSync(`${environment.node} ${path + '/' + args[0]}.js ${args.map(arg => {return arg.includes(' ') ? `"${arg}"` : arg}).join(' ')}`, {cwd: current_dir, env: environment, shell: true}); process.stdout.write(script) tobreak = true; } diff --git a/rootfs overrides/usr/lib/sheebr/environment.js b/rootfs overrides/usr/lib/sheebr/environment.js index 35d7aaf..8e015fa 100644 --- a/rootfs overrides/usr/lib/sheebr/environment.js +++ b/rootfs overrides/usr/lib/sheebr/environment.js @@ -1,10 +1,11 @@ let environment = { - path: ["/usr/bin", "/usr/lib/sheebr", "/usr/local/bin", "/usr/local/sbin/"], + path: ["/usr/bin", "/usr/sbin", "/usr/lib/sheebr", "/usr/local/bin", "/usr/local/sbin/"], ls_color: JSON.stringify({ di: [01, 34], ln: [01, 36], ex: [01, 32] - }) + }), + node: "/usr/local/bin/node" } module.exports = environment \ No newline at end of file diff --git a/utillinux/.gitignore b/utillinux/.gitignore new file mode 100644 index 0000000..e831038 --- /dev/null +++ b/utillinux/.gitignore @@ -0,0 +1 @@ +src \ No newline at end of file diff --git a/utillinux/build.sh b/utillinux/build.sh new file mode 100755 index 0000000..ae8ad43 --- /dev/null +++ b/utillinux/build.sh @@ -0,0 +1,23 @@ +VER=2.37.2 + +if [ ! -d src ] +then +mkdir src -p +cd src +curl -L https://github.com/util-linux/util-linux/archive/refs/tags/v$VER.tar.gz --output v$VER.tar.gz || exit 1 +tar xvf v$VER.tar.gz || exit 1 +mv util-linux-$VER/* . || exit 1 +rm util-linux-$VER -rf +rm v$VER.tar.gz +cd - +fi + +cd src + + +./autogen.sh || exit 1 +./configure || exit 1 +make -j$(nproc)|| exit 1 +DESTDIR=$(pwd)/../../rootfs +sudo make install DESTDIR=$(realpath $DESTDIR) +cd - \ No newline at end of file