Discussion:
Bug#340508: missing modules on s390/s390x (mkinitramfs for 2.6.14)
(too old to reply)
Frans Pop
2005-12-04 15:50:29 UTC
Permalink
(CC to d-s390 as there may be people who can provide additional
information.)
can you please retest if that device gets created?
OK. I've done some testing and made some progress.

First, the following modules need to be available in the initrd:
- dasd_eckd_mod
- dasd_fba_mod
- dasd_mod
- dcssblk

It I add these in /etc/mkinitramfs/modules, they will of course be loaded,
but the dasd devices are not created. A boot results in:

<snip from console>
Loading, please wait...
Begin: Initializing /dev ...
Done.
Begin: Loading modules ...
Done.
Begin: Running /scripts/init-premount ...
Done.
Begin: Mounting root file system ...
Begin: Running /scripts/local-top ...
Done.
ALERT /dev/dasda1 does not exist. Dropping to a shell
</snip>

Reason is that dasd_mod needs an option to tell it which dasd devices
should be used. I've written a script that creates a config file for
modprobe in /etc/modprobe.d/.
The script is a first approximation and probably needs cleaning up.
Background info and some possible issues are documented in the script.

The script was added in /etc/mkinitramfs/hooks/
During reconfiguration of the kernel-image, I got the following error.
<snip>
$ sudo dpkg-reconfigure linux-image-2.6.14-2-s390
Using /usr/sbin/mkinitramfs to build the ramdisk.
Full list of probed ramdisk generating tools :
/usr/sbin/mkinitrd /usr/sbin/mkinitrd.yaird /usr/sbin/mkinitramfs.
ln: creating symbolic link `/tmp/mkinitramfs_Znxcw0//etc/modprobe.d/dasd'
to `/tmp/initramfs_dasd': File exists
</snip>

I used 'set -x' in the script to debug and that told me it was being
executed twice! This looks like a bug in initramfs-tools.

A boot with the initrd thus created resulted in:

<snip from console>
Loading, please wait...
Begin: Initializing /dev ...
Done.
Begin: Loading modules ...
dasd(eckd): 0.0.0120: 3390/02(CU:3990/02) Cyl:1113 Head:15 Sec:224
dasd(eckd): 0.0.0120: (4kB blks): 801360kB at 48kB/trk compatible disk
layout
dasda:VOL1/ LX0120: dasda1 dasda2
dasd(eckd): 0.0.0121: 3390/02(CU:3990/02) Cyl:1113 Head:15 Sec:224
dasd(eckd): 0.0.0121: (4kB blks): 801360kB at 48kB/trk compatible disk
layout
dasdb:VOL1/ 0X0121: dasdb1 dasdb2
Done.
Begin: Running /scripts/init-premount ...
Done.
Begin: Mounting root file system ...
Begin: Running /scripts/local-top ...
Done.
Begin: Running /scripts/local-premount ...
Done.
FATAL: Module ext3 not found.
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Begin: Running /scripts/log-bottom ...
Done.
Done.
Begin: Running /scripts/init-bottom ...
Done.
Kernel panic - not syncing: Attempted to kill init
HHCCP011I CPU0000: Disabled wait state
PSW=000A0000 8003025E
</snip>

So now the devices are created.
The "FATAL: Module ext3 not found." error is bogus as ext3 is built in.
The next lines tell that a ext3 partition is mounted.
I have no idea why init fails after that. As I did not get a shell, I'm
not sure how to debug further. Suggestions welcome.

Cheers,
FJP
Frans Pop
2005-12-04 16:20:29 UTC
Permalink
Some additional info.

I've done my research from a system (Hercules emulator) running 2.4.27.

For 2.4.27, the dasd modules are built into the kernel. The option to set
the dasd devices is therefore passed from the zipl bootloader.

The "dasd=" option in the [debian_26] section was of course ignored by the
initrd.

$ cat /etc/zipl.conf
[defaultboot]
defaultmenu = menu

:menu
target = /boot
1 = debian_24
2 = debian_26
default = 1
prompt = 1
timeout = 3

[debian_24]
target = /boot
image = /boot/vmlinuz-2.4.27-2-s390
parameters = ro vmpoff="LOGOFF" dasd=0120,0121 root=/dev/dasda1

[debian_26]
target = /boot
image = /boot/vmlinuz-2.6.14-2-s390
ramdisk = /boot/initrd.img-2.6.14-2-s390
parameters = ro vmpoff="LOGOFF" dasd=0120,0121 root=/dev/dasda1
Arnd Bergmann
2005-12-04 17:10:35 UTC
Permalink
Post by Frans Pop
Reason is that dasd_mod needs an option to tell it which dasd devices
should be used. I've written a script that creates a config file for
modprobe in /etc/modprobe.d/.
The script is a first approximation and probably needs cleaning up.
Background info and some possible issues are documented in the script.
Note that it is not required to pass the list of dasd devices when loading
the module. You also have the option of enabling devices through sysfs
or with one of the tools from s390tools (I forgot the name of the binary),
which is probably easier to do from initramfs.

Arnd <><
--
To UNSUBSCRIBE, email to debian-s390-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Loading...