On Sat, Oct 10, 2009 at 08:00:13PM +0200, Frans Pop wrote: > Right, so who has a *recent* SuSE CD he/she can disect? I personally don't > feel like registering with Novell just for this.
Well, I have an account and got an image.
> Main questions are:
> - what does the .ins file they use look like?
| * SuSE Linux for zSeries Installation/Rescue System
| boot/s390x/vmrdr.ikr 0x00000000
| boot/s390x/initrd.off 0x0001040c
| boot/s390x/initrd.siz 0x00010414
| boot/s390x/initrd 0x00800000
| boot/s390x/parmfile 0x00010480
This looks like absolute addresses, so the contents of the initrd.off,
initrd.siz and parmfile files are written into the kernel image.
> - what kind of initrd do they use: initramfs or "oldfashioned" initrd?
> - if oldfashioned, then what filesystem do they use?
> - if initramfs, then how do they manage to boot it?
This are just memory loads, so this should work regardless of the type.
The kernel handles both types in the same way.
> - what is the kernel config they use in their installer?
The VM reader kernel.
More informations:
| $ l boot/s390x/{vmrdr.ikr,initrd*,parmfile*}
| -r--r--r-- 1 root root 12897335 8. Mär 2009 boot/s390x/initrd
| -r--r--r-- 1 root root 4 8. Mär 2009 boot/s390x/initrd.off
| -r--r--r-- 1 root root 4 8. Mär 2009 boot/s390x/initrd.siz
| -r--r--r-- 1 root root 71 8. Mär 2009 boot/s390x/parmfile
| -r--r--r-- 1 root root 102 8. Mär 2009 boot/s390x/parmfile.cd
| -r--r--r-- 1 root root 6761472 8. Mär 2009 boot/s390x/vmrdr.ikr
| $ hexdump -C boot/s390x/initrd.off
| 00000000 00 80 00 00 |....|
| 00000004
| $ hexdump -C boot/s390x/initrd.siz
| 00000000 00 c4 cc 37 |...7|
| 00000004
| $ cat boot/s390x/parmfile
| ramdisk_size=65536 root=/dev/ram1 ro init=/linuxrc TERM=dumb
| manual=1
|
| $ cat suse.ins
| * SuSE Linux for zSeries Installation/Rescue System
| boot/s390x/vmrdr.ikr 0x00000000
| boot/s390x/initrd.off 0x0001040c
| boot/s390x/initrd.siz 0x00010414
| boot/s390x/initrd 0x00800000
| boot/s390x/parmfile 0x00010480
| $ cat boot/s390x/suse.ins
| * SuSE Linux for zSeries Installation/Rescue System
| vmrdr.ikr 0x00000000
| initrd.off 0x0001040c
| initrd.siz 0x00010414
| initrd 0x00800000
| parmfile 0x00010480
The addresses are specified this way:
| #ifndef __s390x__
| #define IPL_DEVICE (*(unsigned long *) (0x10404))
| #define INITRD_START (*(unsigned long *) (0x1040C))
| #define INITRD_SIZE (*(unsigned long *) (0x10414))
| #else /* __s390x__ */
| #define IPL_DEVICE (*(unsigned long *) (0x10400))
| #define INITRD_START (*(unsigned long *) (0x10408))
| #define INITRD_SIZE (*(unsigned long *) (0x10410))
| #endif /* __s390x__ */
| #define COMMAND_LINE ((char *) (0x10480))
So the addresses for the initrd differs between the 31 and 64bit kernel.
Bastian
--
Murder is contrary to the laws of man and God.
-- M-5 Computer, "The Ultimate Computer", stardate 4731.3
signature.asc
Description: Digital signature

