Sergey Bugaev writes: Hi!
> On Thu, May 18, 2023 at 11:07 AM Janneke Nieuwenhuizen <jann...@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:0.0.0.0:11022-:2222 \ --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 \ '\$(exec-task=task-create)'" --8<---------------cut here---------------end--------------->8--- but that stops here --8<---------------cut here---------------start------------->8--- module 0: 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 '$(exec-task=task-create)' 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 Thanks. When I use noide with http://cdimage.debian.org/cdimage/ports/latest/hurd-i386/debian-hurd-20220824.img 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! Greetings, Janneke
noide.log
Description: Binary data
-- Janneke Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond https://LilyPond.org Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com