summaryrefslogtreecommitdiff
path: root/open_issues/nightly_builds_deb_packages.mdwn
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2014-03-12 00:05:16 +0100
committerThomas Schwinge <thomas@codesourcery.com>2014-03-12 00:05:16 +0100
commitefdbd8e0de4d781d53ffb7a5833220c37739a568 (patch)
tree6ab99d7c79841f1d46fc1154de70e331591d5e0c /open_issues/nightly_builds_deb_packages.mdwn
parente74a8ccb8c2cf082e82f3acc797dce3c77649488 (diff)
QEMU multiboot.
Diffstat (limited to 'open_issues/nightly_builds_deb_packages.mdwn')
-rw-r--r--open_issues/nightly_builds_deb_packages.mdwn241
1 files changed, 13 insertions, 228 deletions
diff --git a/open_issues/nightly_builds_deb_packages.mdwn b/open_issues/nightly_builds_deb_packages.mdwn
index 0992b0f3..cef16734 100644
--- a/open_issues/nightly_builds_deb_packages.mdwn
+++ b/open_issues/nightly_builds_deb_packages.mdwn
@@ -67,16 +67,16 @@ See also [[nightly_builds]].
<teythoon> there has been talk here the other day about using qemus
multiboot capabilities to directly boot the hurd
-[[debugging_gnumach_startup_qemu_gdb]], *Multiboot*
-
- <teythoon> i always wanted to try that out
- <pere> the jenkins rules to test the install uses --kernel, --initrd and
- --append in qemu to specify the preseed file. without a similar method
- to boot hurd, it will be hard to automate the test. rewriting the iso
- might be an option, but not a very nice one.
- <teythoon> i believe that it is possible to use those options to boot a
- hurd
- <teythoon> i'll report back to you
+[[hurd/running/qemu#multiboot]].
+
+For d-i purposes, you'll additionally need:
+
+ $ wget http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/current/initrd.gz
+
+..., and to the `--initrd` option prepend `'initrd.gz $(ramdisk-create)',`
+before the `ext2fs.static`, and refer the latter to `gunzip:device:rd0` instead
+of `device:hd0s1`.
+
<pere> I tried adding an url= option to grub when booting the installer,
but it seem to be ignored.
<pere> perhaps the preseed udeb is missing, or the network support was
@@ -84,8 +84,6 @@ See also [[nightly_builds]].
<teythoon> uh, i don't know about that stuff, youpi creates the d-i images
<pere> ok. seem to me that the d-i images do not support preseeding at the
moment.
- <teythoon> pere: when i try to use qemus multiboot support to boot the
- hurd, qemu crashes :/
<teythoon> youpi: ^ did you succeed? if so, can you share how?
<pere> teythoon: nope, I concluded it didn't work, and left it to other to
fix. :)
@@ -112,158 +110,8 @@ See also [[nightly_builds]].
<pere> #debian-qa will understand. :)
-## IRC, OFTC, #debian-hurd, 2014-02-27
-
- <gg0> almost managed to multiboot
- <gg0> it gets stuck at "start ext2fs.static"
- <gg0> any idea?
- <teythoon_> multiboot what ?
- <pere> gg0: that sound like the race blocking boot some times.
- <teythoon_> no
- <teythoon_> that'd print more
- <gg0> teythoon: booting hurd with qemu without grub
- <teythoon> oh cool
- <teythoon> can you paste your qemu arguments somewhere ?
- <azeem> probably ext2fs.static got passed a wrong commandline?
- <gg0> they are the grub ones but gnumach needs to be uncompressed
- <gg0> otherwise qemu complains saying linux kernel is too old
- <teythoon> yes, i got past that one
- <teythoon> but my qemu keeps crashing
- <teythoon> can you please paste the command you used ?
- <gg0> "qemu: linux kernel too old to load a ram disk"
- <gg0> well, my fun level would really decrease :)
- <azeem> if you pasted the commands you used?
- <youpi> gg0: if it talks about "linux", it's not actually using multiboot
- <gg0> azeem: yep :)
- <gg0> youpi: i think it just can't distinguish, btw bt uncompressing it, it
- boots
- <youpi> gg0: well, "any idea?" means you are requesting help
- <youpi> but without pasting the line, we can't divine what can be going
- wrong
- <youpi> gg0: well, if it can't see that gnumach *can* handle multiboot
- modules, qemu is very broken
- <gg0> modules are all loaded, multiboot options seems working well
- <gg0> ie. -initrd "file1 arg=foo,file2"
- <azeem> arg=foo?
- <teythoon> fwiw, i tried http://paste.debian.net/84408/
- kvm -m 256 \
- -kernel gnumach \
- -append 'gnumach root=device:hd0s1' \
- -initrd "0.master/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 device:hd0s1 \
- '\$(task-create)' '\$(task-resume)',\
- 0.master/lib/ld.so.1 exec /hurd/exec '\$(exec-task=task-create)'" \
- -drive 'file=/media/pool/hurd-tests/image.qcow2,cache=writeback' -snapshot
- <gg0> http://postimg.org/image/esywbywh9/
- <gg0> azeem: pasted from man qemu
- <gg0> here screenshot ^
- <teythoon> is this the stock debian ext2fs.static ?
- <azeem> gg0: are the ext2fs.static arguments cutoff at
- "-exec-server-[...]"?
- <gg0> teythoon: yes, everything from last CD image
- <teythoon> which you copied to the host ?
- <gg0> azeem: as you can see just below --exec-server-task=3
- <gg0> teythoon: loop mounted, like jenkins does
- <teythoon> ok
- <teythoon> the early hurd bootstrap code is very delicate
- <teythoon> and often, the bootstrap just hangs with no indication why
- <teythoon> we won't even notice the rootfs or the exec server crashing for
- example
- <gg0> replace gnumach, initrd.gz, ext2fs.static, ld.so.1 paths with yours:
- <gg0> --kernel gnumach --initrd "initrd.gz initrd
- \$(ramdisk-create),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),ld.so.1 exec /hurd/exec
- \$(exec-task=task-create)"
- <teythoon> you are missing the kernel command line, no?
- <gg0> teythoon: afaiu it takes it at runtime from itself if any
- <gg0> if anyone passes --append
- <gg0> in pasted screenshot i pass desktop=lxde
- <gg0> need to pass something like gunzip:device:rd0? on cd image it doesn't
- pass anything
- <youpi> no, it's already passed to ext2fs in the multiboot command line
- <gg0> ok
- <gg0> -T typed
- <teythoon> i do not see any significant difference between your arguments
- and mine
- <teythoon> for me, kvm/qemu still crashes
- <teythoon> % kvm --version
- <teythoon> QEMU emulator version 1.1.2 (qemu-kvm-1.1.2+dfsg-6, Debian),
- Copyright (c) 2003-2008 Fabrice Bellard
- <gg0> teythoon: i don't have any "'" :) and too many gnumach, one in append
- too
- <teythoon> yes
- <teythoon> but that shouldn't cause kvm to crash
- <gg0> oh
- <gg0> here QEMU emulator version 1.7.0 (Debian 1.7.0+dfsg-3)
- <gg0> jessie on amd64
- <gg0> seems quite older
- <teythoon> indeed
- <gg0> wheezy vs current jessie
- <teythoon> yes
- <gg0> teythoon: qemu 1.7.0 is on wheezy-backports
- <gg0> anyone tried to reproduce it?
-
-
-## IRC, freenode, #hurd, 2014-02-27
-
- <gg0> options to boot hurd with qemu multiboot:
- <gg0> 17:54 < gg0> replace gnumach, initrd.gz, ext2fs.static, ld.so.1 paths
- with yours:
- <gg0> 17:54 < gg0> --kernel gnumach --initrd "initrd.gz initrd
- \$(ramdisk-create),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),ld.so.1 exec /hurd/exec
- \$(exec-task=task-create)"
- <gg0> gnumach needs to be uncompressed
- <gg0> this gets stuck at "start ext2fs.static:"
- <teythoon> indeed, same for me
- <braunr> i strongly suspect qemu multiboot support to be incomplete
- <braunr> i couldn't make it work well enough with x15 either
- <gg0> if gnumach is compressed, "qemu: linux kernel too old to load a ram
- disk"
- <braunr> i think that's a grub specific feature
-
-
-## IRC, freenode, #hurd, 2014-02-28
-
- <gg0> start ext2fs.static2: ext2fs: device:rd0: panic: get_hypermetadata:
- bad magic number 0xd7f0 (should be 0xef53)
- <gg0> \o/ it boots
- <teythoon> gg0: what was wrong ?
- <gg0> --kernel /path/to/uncompressed-gnumach --initrd "/path/to/initrd.gz
- \$(ramdisk-create),/path/to/ext2fs.static
- --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),/path/to/ld.so.1 /hurd/exec
- \$(exec-task=task-create)"
- <teythoon> gg0: uh, using absolute paths fixes this ?
- <gg0> teythoon: not necessary, just to be clearer
- <gg0> solved by removing initrd between initrd.gz and ramdisk-create, and
- ext2fs between ext2fs.static and multiboot-command-line
- <gg0> also exec between ld.so.1 and /hurd/exec
- <teythoon> gg0: oh, i see
-
-
## IRC, OFTC, #debian-hurd, 2014-02-28
- <gg0> --kernel /path/to/uncompressed-gnumach --initrd "/path/to/initrd.gz
- \$(ramdisk-create),/path/to/ext2fs.static
- --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),/path/to/ld.so.1 /hurd/exec
- \$(exec-task=task-create)"
- <gg0> multiboot works
- <pere> cool.
<pere> gg0: are you able to feed the installer one of the preseed files at
<URL: http://jenkins.debian.net/d-i-preseed-cfgs/ >?
<gg0> though jenking translates double quotes, need to escape the world
@@ -271,7 +119,6 @@ See also [[nightly_builds]].
<gg0> pere: i'm working on that, stuck at working around that mandatory
double quote
<gg0> *initrd double quote
- <youpi> gg0: could you paste your command line on the hurd wiki?
<gg0> ok got a g-i-installation_debian_sid_daily_hurd_lxde able to boot
<gg0> let's provide a preseed
<gg0> shouldn't there be some info/debug consoles from tty 2 to 4?
@@ -321,10 +168,6 @@ See also [[nightly_builds]].
## IRC, OFTC, #debian-hurd, 2014-03-02
- <gg0> teythoon: curiosity, correct qemu multiboot options still make old
- qemu crashing?
- <teythoon> gg0: no idea, i'll try it later
-
<gg0> youpi: any chance to have monthly/weekly (daily would be too much i
guess) isos/images? can i help somehow?
<youpi> I am wondering why having that
@@ -619,31 +462,11 @@ See also [[nightly_builds]].
<youpi> possibly
<gg0> oh wait here qemu multiboot
<youpi> that shouldn't have any impact
- <youpi> did you leave the command line somewhere on the wiki so I can try
- with it, just to be sure?
- <gg0>
- http://darnassus.sceen.net/~hurd-web/hurd/running/qemu/#QEMU_Multiboot
<gg0> 5€ on qemu multiboot as the culprit
<gg0> you should also see it sometimes double-mounts /dev/hd0s1 under
/target and /target/./media/cdrom(!)
<gg0> but that's due to new apt it in-targets (= installs under /target)
- <youpi> gg0: rather use the gnumach, ld.so and ext2fs.static from the ISO
- image you are booting
- <youpi> especially for ld.so, which has to be the same as the libc
- installed in the initrd
- <youpi> ah, you're getting the initrd there too
- <youpi> well, really use the same as the ISO
- <gg0> i already do
- <youpi> ah, ok, so the wiki example is just with current
- <youpi> but the wiki example doesn't use -cdrom to provide the ISO ?
- <gg0> no it doesn't even mention you could also use a cdrom
- <gg0> it just shows how to use qemu multiboot options
- <youpi> it seems one have to avoid any blanks in the multiboot option
- <youpi> notably before file names
- <gg0> well, actually it works but it's rather incomplete
- <youpi> well, it shows how to boot the installer
- <youpi> not how to boot an installed system
- <gg0> removed spaces, added <other_qemu_options> option
+
<gg0> any luck reproducing mtab issue?
<youpi> still not
@@ -781,7 +604,7 @@ See also [[nightly_builds]].
Resource lost
<gg0> didn't manage to reproduce so far
<gg0> environment is pretty the same: booting with qemu multiboot
- http://darnassus.sceen.net/~hurd-web/hurd/running/qemu/#QEMU_Multiboot
+ http://darnassus.sceen.net/~hurd-web/hurd/running/qemu/#multiboot
<gg0> so root on initrd + chroot on real disk
<gg0> what's weird is that issue vanishes by removing console=com0 from
-append options
@@ -820,19 +643,14 @@ See also [[nightly_builds]].
zero everytime
<youpi> first thing to do when developping is first take the time to find
ways to work efficiently
- <gg0> i'd want to try multiboot with teythoon's gnumach/hurd but boot gets
- stuck with old initrd
<youpi> unfortunately I had to apply some patches
<youpi> first in d-i because isc-dhcp doens't work -> use the debian-ports
version
- <gg0> so i could simply copying whole /hurd dir to new initrd
- <gg0> -ing
<youpi> then in d-i to automatically enable the debian-ports mirror
<youpi> and last in the debian-cd to include debian-ports-archive-keyring
- <youpi> you'd also need to copy the libs
+
<gg0> anything missing here?
http://people.debian.org/~sthibault/hurd-i386/installer/README-d-i
- <gg0> libc0.3 on initrd is still 2.17
<gg0> mini.iso doesn't like any mirror
<gg0> "mirror does not support the specified release"
<gg0> something wrong/missing in my rebuilt
@@ -862,22 +680,6 @@ See also [[nightly_builds]].
## IRC, freenode, #hurd, 2014-03-09
- <gg0> http://postimg.org/image/oca8ormaj/
- <gg0> with teythoon's repo too ^
-
-
-## IRC, OFTC, #debian-hurd, 2014-03-09
-
- <gg0> ok i'm out of tests, i get Resource lost with teythoon's gnumach/hurd
- packages in initrd too
- <gg0> http://postimg.org/image/oca8ormaj/
- <gg0> thread storms, dead locks, resource lost
- <gg0> i find assonance
-
-
-## IRC, freenode, #hurd, 2014-03-09
-
- <teythoon> gg0: strange
<gg0> teythoon: shouldn't there be a patch which shows pid instead of task?
<gg0> 20:43 < teythoon> task /hurd/procfs(19) <EF><BF><BD>O<EF><BF><BD>
deallocating an invalid port 1049744, most probably a bug.
@@ -939,23 +741,6 @@ See also [[nightly_builds]].
<gg0> #1 SMP Debian 3.11.10-1 (2013-12-04)
-## IRC, freenode, #hurd, 2014-03-10
-
- <gg0> teythoon: err, i had unpacked your packages to initrd but
- gnumach/ext2fs.static i was using for multiboot were debian ones
- <gg0> now with yours by reading system /proc/mounts (not chroot one) i get
- read error: (ipc/mig) bad request message ID
- <gg0> mixing up things
- <teythoon> gg0: yes, that is to be expected. the message ids for the
- relevant rpcs changed "recently". i'm really sorry about that.
- <teythoon> but in general, you should use the hurd components from one
- source together
- <teythoon> gg0: yes, that is to be expected. the message ids for the
- relevant rpcs changed "recently". i'm really sorry about that.
- <teythoon> but in general, you should use the hurd components from one
- source together
-
-
## IRC, OFTC, #debian-hurd, 2014-03-10
<gg0> tschwinge: i just meant Debian Jenkins provides (hopefully for hurd