bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Updated the emacs open issues page.


From: Luca
Subject: Re: [PATCH] Updated the emacs open issues page.
Date: Tue, 5 Sep 2023 21:06:56 +0200

Hi,

Il 05/09/23 20:27, Guy-Fleury Iteriteka ha scritto:
https://people.debian.org/~sthibault/hurd-i386/initrd-amd64.img.gz
ยป
And how you launch this one. I get: no bootable module

It can be used as a ramdisk; one way to use it (maybe not the simplest, but more or less the one I used) is to build a bootable grub iso image:

* from the ramdisk extract ext2fs.static and exec.static
* compile gnumach for x86_64 user and kernel (with --disable-user32), make sure to include debian's ramdisk patch (or maybe take the image from https://people.debian.org/~sthibault/tmp/hurd-amd64/pool-hurd-amd64/g/gnumach/gnumach-image-1.8-486_1.8+git20230526-3_hurd-amd64.deb)
* use as grub.cfg something like this:
------------>8--------------------------------
set timeout=0
set default=0

menuentry "gnumach test" {
    multiboot /boot/gnumach console=com0 TERM=mach-gnu-color init=/bin/sh
    module --nounzip /boot/initrd.gz initrd '$(ramdisk-create)'
    module /hurd/ext2fs.static ext2fs \
                        --multiboot-command-line='${kernel-command-line}' \
                        --host-priv-port='${host-port}' \
                        --device-master-port='${device-port}' \
                        --exec-server-task='${exec-task}' -T typed 
gunzip:device:rd0 \
                        '$(task-create)' '$(task-resume)'
    module /hurd/exec.static exec \
                             --device-master-port='${device-port}' \
                             '$(exec-task=task-create)'
    boot
}
------------>8--------------------------------
* then assemble the grub image and run it:
------------>8--------------------------------
mkdir -p isofiles/boot/grub
mkdir -p isofiles/hurd
cp grub.cfg isofiles/boot/grub/grub.cfg
cp gnumach initrd-amd64.img.gz isofiles/boot/
cp ext2fs.static exec.static isofiles/hurd/
grub-mkrescue -o test-ramhurd.iso ./isofiles
qemu-system-x86_64 -cdrom test-ramhurd.iso -m 4096 -nographic -no-reboot -boot d
------------>8--------------------------------
* once you have the ramdisk running, launch debootstrap's second stage as in https://www.gnu.org/software/hurd/open_issues/64-bit_port.html

To have something persistent, I installed it on a second disk attached to qemu: - attach a disk image with -hda testdisk.img (which can also be a copy of initrd-amd64.img.gz, unpacked) - once the first ramdisk debootstrap completes, mount the disk using the rumpdisk driver on /dev/wd0, chroot into it and run the --second-stage again - to boot from disk, I use a similar .iso image, with a different grub.cfg, taking also the pci-arbiter.static and rumpdisk.static files from the disk image as above (I haven't tried installing grub on disk from hurd-amd64 yet):
------------>8--------------------------------
set timeout=0
set default=0

menuentry "gnumach test" {
    multiboot /boot/gnumach console=com0 root=part:1:device:wd0

    module /boot/pci-arbiter.static pci-arbiter \
            --host-priv-port='${host-port}' \
            --device-master-port='${device-port}' \
            --next-task='${disk-task}' \
            '$(task-create)' '$(task-resume)'

    module /boot/rumpdisk.static rumpdisk \
            --next-task='${fs-task}' \
            '$(disk-task=task-create)'

    module /boot/ext2fs.static ext2fs \
            --multiboot-command-line='${kernel-command-line}' \
            --exec-server-task='${exec-task}' -T typed '${root}' \
            '$(fs-task=task-create)'

    module /boot/exec.static exec '$(exec-task=task-create)'

    boot
}
------------>8--------------------------------
- once installed, you can configure a network interface and ssh into it as a 32-bit hurd virtual machine

Probably there is a simpler way to use it, but I hope this helps :)
I guess once the port is stabilized, it will be easier to have it running.


Luca



reply via email to

[Prev in Thread] Current Thread [Next in Thread]