I've had an Intel 1 TB SSD sitting here in the box for a few weeks because I haven't decided what to do with it. I'd like to have at least 2 operating systems on it.
I get that a boot menu (like GRUB) isn't going to work because there's no video until the driver loads. But what if you load a very minimal Linux partition with the video driver, then write a small boot menu (in C) that boots your choice of OS. It could be on the eMMC even, the SSD doesn't need to be bootable directly.
Except I don't know what to do in C to boot another partition because I've never done it. Would I just system() a kernel with a full path and command line options? Probably not, and what if the kernel isn't Linux, like an OpenBSD one? system() probably isn't going to like that.
(04-09-2020, 06:19 PM)ab1jx Wrote: I've had an Intel 1 TB SSD sitting here in the box for a few weeks because I haven't decided what to do with it. I'd like to have at least 2 operating systems on it.
I get that a boot menu (like GRUB) isn't going to work because there's no video until the driver loads. But what if you load a very minimal Linux partition with the video driver, then write a small boot menu (in C) that boots your choice of OS. It could be on the eMMC even, the SSD doesn't need to be bootable directly.
Except I don't know what to do in C to boot another partition because I've never done it. Would I just system() a kernel with a full path and command line options? Probably not, and what if the kernel isn't Linux, like an OpenBSD one? system() probably isn't going to like that. Look at petit boot, search for odroid N1
04-09-2020, 11:01 PM
(This post was last modified: 04-09-2020, 11:18 PM by Der Geist der Maschine.)
(04-09-2020, 06:19 PM)ab1jx Wrote: I get that a boot menu (like GRUB) isn't going to work because there's no video until the driver loads. But what if you load a very minimal Linux partition with the video driver, then write a small boot menu (in C) that boots your choice of OS. It could be on the eMMC even, the SSD doesn't need to be bootable directly.
Except I don't know what to do in C to boot another partition because I've never done it. Would I just system() a kernel with a full path and command line options? Probably not, and what if the kernel isn't Linux, like an OpenBSD one? system() probably isn't going to like that.
You can kexec into another kernel on another partition and pass an appropriate cmdline to make that kernel mount that partition as root.
In theory, you may be able to kexec an openbsd kernel ... in practise ... maybe not without effort.
OK, I see
Code: apropos kexec
kexec_file_load (2) - load a new kernel for later execution
kexec_load (2) - load a new kernel for later execution
pkexec (1) - Execute a command as another user
systemd-kexec.service (8) - System shutdown logic
Thanks, didn't know there was such a thing. I seem to always install at least twice before I get things the way I want them. I'm planning to use Daniel Thompson's debootstrap stuff, or parts of it anyway from https://github.com/daniel-thompson/pineb...-installer I want MBR, not GPT so I think I can change the sfdisk script to do that. My internet connection (cell phone) seems to be most reliable in the wee hours on weekends so that's the best time to do the bulk of the downloading. I think once the tgz file is created I can use it anytime.
(04-10-2020, 11:33 AM)ab1jx Wrote: OK, I see
Code: apropos kexec
kexec_file_load (2) - load a new kernel for later execution
kexec_load (2) - load a new kernel for later execution
pkexec (1) - Execute a command as another user
systemd-kexec.service (8) - System shutdown logic
Thanks, didn't know there was such a thing. I seem to always install at least twice before I get things the way I want them.
Use kexec (8). Perhaps run your mini-linux from a initrd, only.
If you don't want to reinvent the wheel then read https://www.landley.net/kdocs/ols/2006/o...-27-38.pdf - I did not read it, but the title "kboot—A Boot Loader Based on Kexec" seems promising.
Nobody still have not succeed in this? I think this is the most important missing feature for PBP which would distinguish PBP from some Raspberry.
(04-11-2020, 07:14 AM)Wizzard Wrote: Nobody still have not succeed in this? I think this is the most important missing feature for PBP which would distinguish PBP from some Raspberry.
@ tsys is working on this: https://twitter.com/Toble_Miner/status/1...2506486784
Well, a Raspberry doesn't have kexec, i can tell you that. I need to fire up my PBP and look for it. A Raspberry 3B is my everyday machine lately. Nope, on the PBP I can't find kexec, by apropos or locate, or in Synaptic. Should I try github?
But really, you could boot from the standard eMMC then run whatever scripts to boot a partition on the SSD. (seems like)
The PDF is from 2006, I'll bear that in mind. I have a uboot pdf from 2011 to go with it.
04-11-2020, 10:58 AM
Look at this
https://www.coreboot.org/Petitboot
Diff for rk3399 Odroid N1
Code: From 7d50a8251506a1218113d62ab6be9257a918fdf9 Mon Sep 17 00:00:00 2001
From: Joy Cho <joy.cho@hardkernel.com>
Date: Wed, 01 Aug 2018 17:02:24 +0900
Subject: [PATCH] (do NOT merge) defconfig: odroidn1: support petitboot
Change-Id: Iec4e8d65635f374a76965def342821badc652276
---
diff --git a/arch/arm64/configs/odroidn1_defconfig b/arch/arm64/configs/odroidn1_defconfig
index 50a2f06..ef57816 100644
--- a/arch/arm64/configs/odroidn1_defconfig
+++ b/arch/arm64/configs/odroidn1_defconfig
@@ -1325,50 +1325,52 @@
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_LEGACY is not set
CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BCACHE=m
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_LINEAR=y
+CONFIG_MD_RAID0=y
+CONFIG_MD_RAID1=y
+CONFIG_MD_RAID10=y
+CONFIG_MD_RAID456=y
+CONFIG_MD_MULTIPATH=y
+CONFIG_MD_FAULTY=y
+CONFIG_BCACHE=y
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_CLOSURES_DEBUG is not set
CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
+CONFIG_BLK_DEV_DM=y
CONFIG_DM_MQ_DEFAULT=y
CONFIG_DM_DEBUG=y
-CONFIG_DM_BUFIO=m
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DM_BUFIO=y
+CONFIG_DM_BIO_PRISON=y
+CONFIG_DM_PERSISTENT_DATA=y
CONFIG_DM_DEBUG_BLOCK_STACK_TRACING=y
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_MQ=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_CACHE_CLEANER=m
-CONFIG_DM_ERA=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
+CONFIG_DM_CRYPT=y
+CONFIG_DM_SNAPSHOT=y
+CONFIG_DM_THIN_PROVISIONING=y
+CONFIG_DM_CACHE=y
+CONFIG_DM_CACHE_MQ=y
+CONFIG_DM_CACHE_SMQ=y
+CONFIG_DM_CACHE_CLEANER=y
+CONFIG_DM_ERA=y
+CONFIG_DM_MIRROR=y
+CONFIG_DM_LOG_USERSPACE=y
+CONFIG_DM_RAID=y
+CONFIG_DM_ZERO=y
+CONFIG_DM_MULTIPATH=y
+CONFIG_DM_MULTIPATH_QL=y
+CONFIG_DM_MULTIPATH_ST=y
+CONFIG_DM_DELAY=y
CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
+CONFIG_DM_FLAKEY=y
+CONFIG_DM_VERITY=y
CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE_128=y
CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE=128
CONFIG_DM_VERITY_FEC=y
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-CONFIG_DM_VERITY_AVB=m
+CONFIG_DM_SWITCH=y
+CONFIG_DM_LOG_WRITES=y
+CONFIG_DM_VERITY_AVB=y
+# CONFIG_DM_ANDROID_VERITY is not set
# CONFIG_TARGET_CORE is not set
# CONFIG_FUSION is not set
@@ -3656,9 +3658,9 @@
# CONFIG_HID_KENSINGTON is not set
CONFIG_HID_LCPOWER=m
CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
+CONFIG_HID_LOGITECH=y
+CONFIG_HID_LOGITECH_DJ=y
+CONFIG_HID_LOGITECH_HIDPP=y
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
@@ -4818,18 +4820,18 @@
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_PROC_INFO=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
+CONFIG_JFS_FS=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
+CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
@@ -4837,14 +4839,14 @@
# CONFIG_XFS_DEBUG is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
-CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
CONFIG_BTRFS_FS_RUN_SANITY_TESTS=y
# CONFIG_BTRFS_DEBUG is not set
CONFIG_BTRFS_ASSERT=y
# CONFIG_NILFS2_FS is not set
-CONFIG_F2FS_FS=m
+CONFIG_F2FS_FS=y
CONFIG_F2FS_STAT_FS=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y
@@ -4857,7 +4859,7 @@
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
-CONFIG_FS_ENCRYPTION=m
+CONFIG_FS_ENCRYPTION=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
@@ -4866,14 +4868,14 @@
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
CONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
+CONFIG_QUOTA_TREE=y
+CONFIG_QFMT_V1=y
+CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_OVERLAY_FS=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=y
+CONFIG_OVERLAY_FS=y
#
# Caches
@@ -4883,21 +4885,21 @@
#
# CD-ROM/DVD Filesystems
#
-CONFIG_ISO9660_FS=m
+CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
+CONFIG_UDF_FS=y
CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=936
CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
+CONFIG_NTFS_FS=y
# CONFIG_NTFS_DEBUG is not set
CONFIG_NTFS_RW=y
@@ -4941,35 +4943,35 @@
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=m
+CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_FILE_LAYOUT=y
+CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
CONFIG_NFS_V4_1_MIGRATION=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFSD=m
+CONFIG_NFSD=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_FAULT_INJECTION=y
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
+CONFIG_GRACE_PERIOD=y
+CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_SUNRPC_SWAP=y
# CONFIG_SUNRPC_DEBUG is not set
@@ -4980,54 +4982,54 @@
# CONFIG_AFS_FS is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=y
+CONFIG_NLS_CODEPAGE_775=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_CODEPAGE_852=y
+CONFIG_NLS_CODEPAGE_855=y
+CONFIG_NLS_CODEPAGE_857=y
+CONFIG_NLS_CODEPAGE_860=y
+CONFIG_NLS_CODEPAGE_861=y
+CONFIG_NLS_CODEPAGE_862=y
+CONFIG_NLS_CODEPAGE_863=y
+CONFIG_NLS_CODEPAGE_864=y
+CONFIG_NLS_CODEPAGE_865=y
+CONFIG_NLS_CODEPAGE_866=y
+CONFIG_NLS_CODEPAGE_869=y
+CONFIG_NLS_CODEPAGE_936=y
+CONFIG_NLS_CODEPAGE_950=y
+CONFIG_NLS_CODEPAGE_932=y
+CONFIG_NLS_CODEPAGE_949=y
+CONFIG_NLS_CODEPAGE_874=y
+CONFIG_NLS_ISO8859_8=y
+CONFIG_NLS_CODEPAGE_1250=y
+CONFIG_NLS_CODEPAGE_1251=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_NLS_ISO8859_4=y
+CONFIG_NLS_ISO8859_5=y
+CONFIG_NLS_ISO8859_6=y
+CONFIG_NLS_ISO8859_7=y
+CONFIG_NLS_ISO8859_9=y
+CONFIG_NLS_ISO8859_13=y
+CONFIG_NLS_ISO8859_14=y
+CONFIG_NLS_ISO8859_15=y
+CONFIG_NLS_KOI8_R=y
+CONFIG_NLS_KOI8_U=y
+CONFIG_NLS_MAC_ROMAN=y
+CONFIG_NLS_MAC_CELTIC=y
+CONFIG_NLS_MAC_CENTEURO=y
+CONFIG_NLS_MAC_CROATIAN=y
+CONFIG_NLS_MAC_CYRILLIC=y
+CONFIG_NLS_MAC_GAELIC=y
+CONFIG_NLS_MAC_GREEK=y
+CONFIG_NLS_MAC_ICELAND=y
+CONFIG_NLS_MAC_INUIT=y
+CONFIG_NLS_MAC_ROMANIAN=y
+CONFIG_NLS_MAC_TURKISH=y
CONFIG_NLS_UTF8=y
# CONFIG_DLM is not set
# CONFIG_VIRTUALIZATION is not set
@@ -5227,7 +5229,7 @@
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_BIG_KEYS is not set
# CONFIG_TRUSTED_KEYS is not set
-CONFIG_ENCRYPTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=y
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY_PERF_EVENTS_RESTRICT is not set
# CONFIG_SECURITY is not set
@@ -5238,12 +5240,12 @@
# CONFIG_TEE_SUPPORT is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_XOR_BLOCKS=y
+CONFIG_ASYNC_CORE=y
+CONFIG_ASYNC_MEMCPY=y
+CONFIG_ASYNC_XOR=y
+CONFIG_ASYNC_PQ=y
+CONFIG_ASYNC_RAID6_RECOV=y
CONFIG_CRYPTO=y
#
@@ -5291,14 +5293,14 @@
#
# Block modes
#
-CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CBC=y
# CONFIG_CRYPTO_HEH is not set
CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_ECB=y
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_PCBC is not set
-CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_XTS=y
# CONFIG_CRYPTO_KEYWRAP is not set
#
@@ -5313,7 +5315,7 @@
# Digest
#
CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRC32=y
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_GHASH=y
# CONFIG_CRYPTO_POLY1305 is not set
@@ -5407,7 +5409,7 @@
#
# Library routines
#
-CONFIG_RAID6_PQ=m
+CONFIG_RAID6_PQ=y
CONFIG_BITREVERSE=y
CONFIG_HAVE_ARCH_BITREVERSE=y
CONFIG_RATIONAL=y
@@ -5433,7 +5435,7 @@
CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
+CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_DECOMPRESS=y
@@ -5453,7 +5455,7 @@
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_LZ4=y
CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON=y
CONFIG_REED_SOLOMON_DEC8=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
(04-11-2020, 09:37 AM)ab1jx Wrote: Well, a Raspberry doesn't have kexec, i can tell you that. I need to fire up my PBP and look for it. A Raspberry 3B is my everyday machine lately. Nope, on the PBP I can't find kexec, by apropos or locate, or in Synaptic. Should I try github?
kexec(8) is a wrapper around the kexec kernel functions kexec_load (2) and kexec_file_load (2). You already found the man-pages on your machines. As you stated you want to write a C program then that's all you need. That is a great learning experience. kexec (8) is a simple command-line tool saving you a lot of time, though. On debian kexec (8) is part of the kexec-tools package. I don't know about github, but assume you will find the project website, or at least the source code, somewhere in the Internet as well
~$ apt-file search /sbin/kexec
kexec-tools: /sbin/kexec
The possibilities are endless: instead of re-implementing kboot, you can also try to make it or petiteboot work on your machine. You can also check out manawyrm's mysterious twitter link and learn about tsys's bootloader.
(04-11-2020, 09:37 AM)ab1jx Wrote: But really, you could boot from the standard eMMC then run whatever scripts to boot a partition on the SSD. (seems like)
Yes, if you mean with script a call to kexec (8).
|