site  contact  subhomenews

'pkeys' boot parameter

November 21, 2009 — BarryK
In Puppy 4.3.1, the 'pkeys' boot parameter can be used to change the codepage and iocharset when mounting a vfat filesystem.

The pkeys boot parameter is also read in /etc/rc.d/rc.country after switching to the main Puppy filesystem, and if set then the appropriate keyboard layout is loaded (and on first boot the dialog asking for keyboard layout will not appear).

A limitation though, pkeys is currently restricted to:
be br cf de dk es fi fr gr hu it jp no pl ru se uk us

These are the keymaps located at /lib/keymaps.

There are a number of improvements that can be made, but for now I have implemented one:

The keymap is loaded after the switch-root to the main Puppy filesystem. The problem is, if you have to respond to any questions in the initrd, such as to choose a 'pupsave' file from multiple choices, the keyboard is at the default layout (us).

Woof now places /lib/keymaps into the initrd, and if there is a 'pkeys' boot parameter, for example 'pkeys=uk', then that layout will get loaded by the init script (that's one reason why I recompiled busybox, to get the 'loadkmap' applet).
The init script copies /lib/keymaps to the main filesystem before the switch-root.

Future improvements... I'm thinking about it. Forum member ecube did some work excellent on this back in April 2009:

http://murga-linux.com/puppy/viewtopic.php?t=40658

Ecube also sent me a pm with modified Keyboard Wizard and rc.country. Ecube, thanks for that -- I sure have taken awhile to get around to looking into it!

The Tiny Core Linux people converted the kbd-1.14.1 package to kmap format that Busybox's 'loadkmap' applet can load. The kmap files that I currently have in /lib/keymaps are very old, go right back to the very first release of Puppy in June 2003.

Comments

pkeys=slovene
Username: Leon
Barry, I use a 'pkeys=slovene' parameter in a menu.lst file and it works perfectly with my Puppy 4.3.1 frugal install. Please keep the sl_SI locale support in Woof. I have 3 vfat partitions on my hard disk and your successfully implemented solution of codepage and iocharset usage when mounting a vfat filesystem in Puppy 4.3.1 is essential for my everyday use. This is great advantage compared to some other small distributions like Tiny Core or SliTaz that I tried recently. There is one interesting thing that I noticed at boot with the 'pkeys=slovene' parameter. 1. A message: [i]Recognising media devices... optical failed[/i] is shown during the boot process although my Logitech USB-PS/2 Optical Mouse works without any problem. 2. A message: [i]Recognising media devices... optical mouse done[/i] is shown when booting without the 'pkeys=slovene' parameter.

pkeys limitation
Username: BarryK
"A limitation though, pkeys is currently restricted to: be br cf de dk es fi fr gr hu it jp no pl ru se uk us What I meant by that is those limited choices are the only one available for setting layout in the initramfs. The 'pkeys' parameter can be set to any other available values and layout will be set after switch root to the main f.s. I'll fix this today.

Thank you
Username: Leon
"Ah, no reason to be worried then. Thank you for the explanation.

PKEYS works fully
Username: BarryK
"I have now finished revising the handling of PKEYS, and the full selection now works in the initrd. So, 'slovene' will now work in the initrd, so if you have to choose a 'pupsave' file (which is done by the 'init' script in the initrd) then your keyboard layout will be correct.

pkeys internationalized
Username: Leon
"[i]So, 'slovene' will now work in the initrd, so if you have to choose a 'pupsave' file (which is done by the 'init' script in the initrd) then your keyboard layout will be correct.[/i] Many thanks.


Tags: woof