USB Flash boot fail if "pkeys=de"

It has been reported that booting from a USB Flash drive with "pkeys=de" the boot failed. Without the pkeys parameter it works.

I found the problem. This is the fixed code in the 'init' script:
  vfat) #w476

####TODO#### need to get rid of the old 2-letter keyboard layout, so PKEYS boot
# param works for the main kbd layouts.
#would like to introduce codepage and iocharset, maybe as kernel params...
#ex: codepage=850 iocharset=iso8859-2 ...no, already have 'pkeys'
OUT_PARAM='shortname=mixed,quiet'
[ "$MNT_O" ] && OUT_PARAM="${OUT_PARAM},${MNT_O}"
if [ "$PKEYS" ];then
case $PKEYS in
de|be|br|dk|es|fi|fr|it|no|se|pt)
modprobe nls_cp850 #v426
OUT_PARAM="$OUT_PARAM"',codepage=850'
;;
slovene|croat|hu101|hu|cz-lat2|pl|ro_win)
modprobe nls_cp852 #v426
modprobe nls_iso8859-2 #v426
OUT_PARAM="$OUT_PARAM"',codepage=852,iocharset=iso8859-2'
;;
esac
fi
mount -t $MNT_T -o $OUT_PARAM $MNT_DEV $MNT_DIR
;;


...you can see where I have inserted explicit modprobe commands. Those modules should have loaded automatically, I don't know why they don't.


Posted on 14 Sep 2009, 14:48


Comments:

Posted on 16 Sep 2009, 4:28 by Dougal
Why the modules aren't loaded
You're using a zdrv. It's the same bug that makes you need to "fetch" the drm modules for Xorg (and modules for filesystems that aren't built into the kernel).



Posted on 16 Sep 2009, 7:04 by BarryK
No zdrv
I'm not that dumb. No, there is no zdrv.

The only zdrv in 4.3beta3 is some extra modem drivers.

The initrd is setup in the normal way with a small selection of modules. 'depmod' was run when the initrd was created, so that modprobe and the kernel can locate and load the modules.

In other words, a normal environment, and I expected the nls_* modules to auto-load.

Besides, the whole "feching" concept is no longer used for a zdrv. A zdrv now gets loaded as a aufs layer at bootup and depmod is run, so all modules are accessible without needing to be fetched.

A lot has changed with the Woof-built puppies!