Overview
Comment: | Updated to use an initramfs to allow more flexible mounting options |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | trunk |
Files: | files | file ages | folders |
SHA1: |
afc876941bda07800052b59758d82b65 |
User & Date: | rkeene on 2020-06-29 14:58:52 |
Other Links: | manifest | tags |
Context
2020-06-29
| ||
14:58 | Updated to use an initramfs to allow more flexible mounting options Leaf check-in: afc876941b user: rkeene tags: trunk | |
2020-06-28
| ||
20:05 | Do not include root directory in the cache/data fs check-in: 2d622e681b user: rkeene tags: trunk | |
Changes
Modified .fossil-settings/ignore-glob from [3fdd9f1f14] to [44e2bffff6].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | appfsd appfsd.o appfsd.tcl.h sha1.o sha1.tcl.h pki.tcl.h pki.tcl.new pki.tcl CA build/qemu/root/lib/modules build/qemu/appfs.img build/qemu/boot/vmlinuz build/qemu/init build/qemu/root/bin/appfs-cache build/qemu/root/bin/appfs-mkfs build/qemu/root/bin/appfsd build/qemu/root/bin/init build/qemu/root/bin/mount.appfs build/qemu/root/bin/tclkit | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | appfsd appfsd.o appfsd.tcl.h sha1.o sha1.tcl.h pki.tcl.h pki.tcl.new pki.tcl CA build/qemu/root/lib/modules build/qemu/appfs.img build/qemu/boot/vmlinuz build/qemu/boot/initrd build/qemu/init build/qemu/root/bin/appfs-cache build/qemu/root/bin/appfs-mkfs build/qemu/root/bin/appfsd build/qemu/root/bin/init build/qemu/root/bin/mount.appfs build/qemu/root/bin/tclkit |
Modified build/qemu/assemble from [1e459fa032] to [7557bdba83].
1 2 3 4 5 6 7 | #! /usr/bin/env bash set -e # Not included: # 1. Downloading huge.s from Slackware64 kernels (into boot/) # 2. Downloading kernel modules package from Slackware64 (into root/) | > | | > > > > | > > > > > > | | | < > | > > | > | > > > > > | | < | < < < < < < < < < | | | | | > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #! /usr/bin/env bash set -e # Not included: # 1. Downloading huge.s from Slackware64 kernels (into boot/) # 2. Downloading kernel modules package from Slackware64 (into root/) # 3. Running "depmod" within the chroot root/ # 4. Downloading a static Tclkit with TUAPI # 5. Downloading a static AppFS image_file="$(pwd)/appfs.img" old_loop_dev="$(losetup --noheadings --output name --associated "${image_file}")" || old_loop_dev='' extlinux_mbr_bin='/usr/lib/EXTLINUX/mbr.bin' make init LDFLAGS=-static cp init root/bin rm -f boot/initrd ( cd root || exit 1 find . ! -name '.' -print0 | sort --zero-terminated --dictionary-order | cpio -o -0 --owner 0:0 --dot -H newc ) | gzip -1c > boot/initrd rm -f "${image_file}" truncate --size 1024M "${image_file}" sfdisk --no-tell-kernel --no-reread "${image_file}" <<<'label: dos size=128M type=83 bootable type=83' if [ -d 'x-boot' ]; then sudo umount x-boot || : fi if [ -n "${old_loop_dev}" ]; then sudo losetup -d "${old_loop_dev}" || : fi sudo losetup --partscan --find "${image_file}" loop_dev="$(losetup --noheadings --output name --associated "${image_file}")" if [ -z "${loop_dev}" ]; then echo "No loop device found" >&2 exit 1 fi sudo chown "$(id -u):$(id -g)" "${loop_dev}" "${loop_dev}p1" "${loop_dev}p2" mke2fs \ -L 'BOOT' \ -N 0 \ -O ^64bit \ -d boot \ -m 5 \ -r 1 \ -t ext4 \ "${loop_dev}p1" mke2fs \ -L 'DATA' \ -N 0 \ -O ^64bit \ -m 5 \ -r 1 \ -t ext4 \ "${loop_dev}p2" mkdir x-boot || : sudo mount "${loop_dev}p1" x-boot sudo extlinux --install $(pwd)/x-boot sudo umount x-boot dd if="${extlinux_mbr_bin}" of="${image_file}" conv=notrunc rmdir x-boot losetup -d "${loop_dev}" exit 0 |
Modified build/qemu/boot/extlinux.conf from [16eb016414] to [4580fa2068].
1 2 3 4 5 | DEFAULT appfs SERIAL 0 9600 0x003 LABEL appfs KERNEL vmlinuz | > | | 1 2 3 4 5 6 7 | DEFAULT appfs SERIAL 0 9600 0x003 LABEL appfs KERNEL vmlinuz INITRD initrd APPEND rdinit=/bin/init console=tty0 console=ttyS0 consoleblank=0 loglevel=8 |
Modified build/qemu/init.c from [e11582ede8] to [c6b18551fb].
︙ | ︙ | |||
41 42 43 44 45 46 47 48 | execv(path, argv); exit(EXIT_FAILURE); } int main(int argc, char **argv) { /* | > > > > > > > > > > > > > | > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > < < | 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | execv(path, argv); exit(EXIT_FAILURE); } int main(int argc, char **argv) { int mount_ret; /* * Load kernel modules (drivers) */ mkdir("/sys", 0755); mount("sysfs", "/sys", "sysfs", 0, NULL); run("/bin/init-modules", "init-modules", NULL); umount("/sys"); rmdir("/sys"); /* * Mount root filesystem */ mkdir("/dev", 0755); mount("devtmpfs", "/dev", "devtmpfs", 0, NULL); mkdir("/new-root", 0755); mount_ret = mount("/dev/vda2", "/new-root", "ext4", 0, NULL); if (mount_ret != 0) { mount_ret = mount("/dev/sda2", "/new-root", "ext4", 0, NULL); } if (mount_ret != 0) { mount_ret = mount("/dev/hda2", "/new-root", "ext4", 0, NULL); } umount("/dev"); rmdir("/dev"); if (mount_ret == 0) { mkdir("/new-root/initramfs", 0755); mkdir("/new-root/bin", 0755); mkdir("/new-root/lib", 0755); symlink("../initramfs/bin/appfsd", "/new-root/bin/appfsd"); symlink("../initramfs/bin/init", "/new-root/bin/init"); symlink("../initramfs/bin/init-modules", "/new-root/bin/init-modules"); symlink("../initramfs/bin/init-networking", "/new-root/bin/init-networking"); symlink("../initramfs/bin/appfs-cache", "/new-root/bin/appfs-cache"); symlink("../initramfs/bin/tclkit", "/new-root/bin/tclkit"); symlink("../initramfs/lib/modules", "/new-root/lib/modules"); chdir("/new-root"); mount("/", "/new-root/initramfs", "bind", MS_BIND, NULL); chroot("/new-root"); chdir("/"); } /* * Mount needed filesystems */ mkdir("/dev", 0755); mount("devtmpfs", "/dev", "devtmpfs", 0, NULL); mkdir("/tmp", 0755); mount("tmpfs", "/tmp", "tmpfs", 0, NULL); mkdir("/proc", 0755); mount("proc", "/proc", "proc", 0, NULL); mkdir("/sys", 0755); mount("sysfs", "/sys", "sysfs", 0, NULL); /* * Setup networking */ run("/bin/init-networking", "init-networking", NULL); mkdir("/etc", 0755); mkdir("/bin", 0755); mkdir("/lib", 0755); mkdir("/opt", 0755); mkdir("/opt/appfs", 0755); mkdir("/var", 0755); mkdir("/var/cache", 0755); mkdir("/var/cache/appfs", 0755); run("/bin/appfsd", "appfsd", "/var/cache/appfs", "/opt/appfs", NULL); symlink(".", "/usr"); symlink("lib", "/lib64"); symlink("/proc/self/mounts", "/etc/mtab"); |
︙ | ︙ | |||
98 99 100 101 102 103 104 | run("/bin/appfs-cache", "appfs-cache", "install", "-lib", "core.appfs.rkeene.org", "glibc", NULL); run("/bin/appfs-cache", "appfs-cache", "install", "core.appfs.rkeene.org", "coreutils", NULL); run("/bin/appfs-cache", "appfs-cache", "install", "core.appfs.rkeene.org", "procps-ng", NULL); setenv("PATH", "/bin", 1); run("/bin/sh", "sh", NULL); | < < < < < < < < < < | 138 139 140 141 142 143 144 145 146 147 148 | run("/bin/appfs-cache", "appfs-cache", "install", "-lib", "core.appfs.rkeene.org", "glibc", NULL); run("/bin/appfs-cache", "appfs-cache", "install", "core.appfs.rkeene.org", "coreutils", NULL); run("/bin/appfs-cache", "appfs-cache", "install", "core.appfs.rkeene.org", "procps-ng", NULL); setenv("PATH", "/bin", 1); run("/bin/sh", "sh", NULL); sync(); return(0); } |
Deleted build/qemu/root/bin/init-fuse version [3ac2dd4f3a].
|
| < < < < < |
Added build/qemu/root/bin/init-modules version [a758608fd7].
> > > > > > > | 1 2 3 4 5 6 7 | #! /bin/tclkit package require tuapi ::tuapi::scan_and_load_kernel_modules ::tuapi::modprobe fuse |
Modified build/qemu/root/bin/init-networking from [be0f1f2714] to [19614066f2].
1 2 3 4 | #! /bin/tclkit package require tuapi | < < | 1 2 3 4 5 6 7 8 9 10 11 | #! /bin/tclkit package require tuapi ::tuapi::ifconfig eth0 address 10.0.2.15 netmask 255.255.255.0 flags {BROADCAST MULTICAST UP} ::tuapi::syscall::route add 0.0.0.0 0.0.0.0 gateway 10.0.2.2 dev eth0 file mkdir /etc set fd [open /etc/resolv.conf w] puts $fd "nameserver 10.0.2.3" close $fd |
Modified build/qemu/run from [4b861ef3b6] to [a48cd7e079].
1 2 3 4 5 6 7 | #! /usr/bin/env bash sudo chown $(id -u) /dev/kvm qemu-system-x86_64 \ -display none -vga none -serial stdio \ -m 2048 -enable-kvm -cpu host -smp 2 \ -net nic -net user \ | | | 1 2 3 4 5 6 7 8 | #! /usr/bin/env bash sudo chown $(id -u) /dev/kvm qemu-system-x86_64 \ -display none -vga none -serial stdio \ -m 2048 -enable-kvm -cpu host -smp 2 \ -net nic -net user \ -drive file=appfs.img,if=virtio,format=raw |