[Top][All Lists]

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

Re: Guix hurd with rumpdisk boots! [WAS Re: Some progress, Guix rumpdisk

From: Janneke Nieuwenhuizen
Subject: Re: Guix hurd with rumpdisk boots! [WAS Re: Some progress, Guix rumpdisk still crashes...]
Date: Fri, 19 May 2023 12:20:21 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Sergey Bugaev writes:


> On Thu, May 18, 2023 at 11:07 AM Janneke Nieuwenhuizen <janneke@gnu.org> 
> wrote:
>> Now that was really a great help, thanks!
>> Ah, I had no idea; this is so helpful.  Maybe a good idea to have this
>> on the website/wiki, right?
> Glad I was able to help :D
>> Is there a way to pass the "console=com0" argument from the QEMU command
>> line?  That would be nice!
> I don't think you can alter the GRUB script from QEMU cmdline, but
> note that on 32-bit x86 (i?86) you don't even technically need GRUB:
> QEMU itself can act as a multiboot bootloader. Something like the
> following should work:
> $ qemu-system-x86_64 -other-args -kernel /path/to/gnumach -append
> "console=com0 other kernel args" -initrd "/path/to/pci-arbiter.static
> pci-arbiter args,/path/to/rumpdisk.static rumpdisk
> args,/path/to/ext2fs.static ext2fs args"
> (but I've only tried that with a single bootstrap task).

Okay, yeah I tried

--8<---------------cut here---------------start------------->8---
guix shell qemu -- qemu-system-i386                     \
-m 4096                                                 \
--enable-kvm                                            \
--device rtl8139,netdev=net0                            \
--netdev user,id=net0,hostfwd=tcp:   \
--snapshot                                              \
--no-reboot                                             \
--device virtio-serial-pci                              \
--nographic                                             \
--serial mon:stdio                                      \
--hda debian-hurd-20220824.img                          \
--kernel gnumach-1.8-486                                \
--append "root=part:2:device:wd0 console=com0"          \
--initrd "hurd/ext2fs.static ex2fs                      \
 --multiboot-command-line='\${kernel-command-line}'     \
 --host-priv-port='\${host-port}'                       \
 --device-master-port='\${device-port}'                 \
 --exec-server-task='\${exec-task}'                     \
 --store-type=typed                                     \
 --x-xattr-translator-records                           \
 '\${root}'                                             \
 '\$(task-create)'                                      \
 '\$(task-resume)'                                      \
  hurd/exec.static exec                                 \
--8<---------------cut here---------------end--------------->8---

but that stops here

--8<---------------cut here---------------start------------->8---
module 0: hurd/ext2fs.static ex2fs                      
--exec-server-task='${exec-task}'                      --store-type=typed       
       '${root}'                                              '$(task-create)'  
             hurd/exec.static exec                                  
1 multiboot modules
--8<---------------cut here---------------end--------------->8---

>> Just for fun, find the succesful log attached.
> But that... does not look like rumpdisk actually gets used? The
> in-kernel IDE drivers are enabled, as you can see here:

Ah, uh oh...

> pass "noide" on gnumach cmdline to disable them, or just compile them
> out. I don't see it in your rumpdisk output, but when run this way it
> typically discovers that the kernel is already driving IDE, and does
> nothing.

Okay, make sense.

> Then you're passing "hd0s1" to ext2fs as the device to open; that's
> again a reference to the Mach-implemented device (and partition). The
> rumpdisk drive is named 'wd0', and you also have to do partitions
> libstore-side, so: root=part:1:device:wd0


When I use noide with


like so

    multiboot /boot/gnumach-1.8-486.gz root=part:2:device:wd0 console=com0 noide

I get

    ext2fs: part:2:device:wd0: No such device or address

see full log attached.  The root (disk) is already in the format that
rump expects, rigth?  Is there anything else I'd need to do; I would
like to get this to work on Debian first!


Attachment: noide.log
Description: Binary data

Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com

reply via email to

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