| .. _keyboard: |
| |
| Sparc32 keyboard |
| ---------------- |
| SUN Type 4, 5 and 5c keyboards have dip switches to choose the language layout |
| of the keyboard. Solaris makes an ioctl to query the value of the dipswitches |
| and uses that value to select keyboard layout. Also the SUN bios like the one |
| in the file ss5.bin uses this value to support at least some keyboard layouts. |
| However, the OpenBIOS provided with qemu is hardcoded to always use an |
| US keyboard layout. |
| |
| With the escc.chnA-sunkbd-layout driver property it is possible to select |
| keyboard layout. Example: |
| |
| -global escc.chnA-sunkbd-layout=de |
| |
| Depending on type of keyboard, the keyboard can have 6 or 5 dip-switches to |
| select keyboard layout, giving up to 64 different layouts. Not all |
| combinations are supported by Solaris and even less by Sun OpenBoot BIOS. |
| |
| The dip switch settings can be given as hexadecimal number, decimal number |
| or in some cases as a language string. Examples: |
| |
| -global escc.chnA-sunkbd-layout=0x2b |
| |
| -global escc.chnA-sunkbd-layout=43 |
| |
| -global escc.chnA-sunkbd-layout=sv |
| |
| The above 3 examples all select a swedish keyboard layout. Table 3-15 at |
| https://docs.oracle.com/cd/E19683-01/806-6642/new-43/index.html explains which |
| keytable file is used for different dip switch settings. The information |
| in that table can be summarized in this table: |
| |
| .. list-table:: Language selection values for escc.chnA-sunkbd-layout |
| :widths: 10 10 10 |
| :header-rows: 1 |
| |
| * - Hexadecimal value |
| - Decimal value |
| - Language code |
| * - 0x21 |
| - 33 |
| - en-us |
| * - 0x23 |
| - 35 |
| - fr |
| * - 0x24 |
| - 36 |
| - da |
| * - 0x25 |
| - 37 |
| - de |
| * - 0x26 |
| - 38 |
| - it |
| * - 0x27 |
| - 39 |
| - nl |
| * - 0x28 |
| - 40 |
| - no |
| * - 0x29 |
| - 41 |
| - pt |
| * - 0x2a |
| - 42 |
| - es |
| * - 0x2b |
| - 43 |
| - sv |
| * - 0x2c |
| - 44 |
| - fr-ch |
| * - 0x2d |
| - 45 |
| - de-ch |
| * - 0x2e |
| - 46 |
| - en-gb |
| * - 0x2f |
| - 47 |
| - ko |
| * - 0x30 |
| - 48 |
| - tw |
| * - 0x31 |
| - 49 |
| - ja |
| * - 0x32 |
| - 50 |
| - fr-ca |
| * - 0x33 |
| - 51 |
| - hu |
| * - 0x34 |
| - 52 |
| - pl |
| * - 0x35 |
| - 53 |
| - cz |
| * - 0x36 |
| - 54 |
| - ru |
| * - 0x37 |
| - 55 |
| - lv |
| * - 0x38 |
| - 56 |
| - tr |
| * - 0x39 |
| - 57 |
| - gr |
| * - 0x3a |
| - 58 |
| - ar |
| * - 0x3b |
| - 59 |
| - lt |
| * - 0x3c |
| - 60 |
| - nl-be |
| * - 0x3c |
| - 60 |
| - be |
| |
| Not all dip switch values have a corresponding language code and both "be" and |
| "nl-be" correspond to the same dip switch value. By default, if no value is |
| given to escc.chnA-sunkbd-layout 0x21 (en-us) will be used. |