| 1 | .. _keyboard: |
| 2 | |
| 3 | Sparc32 keyboard |
| 4 | ---------------- |
| 5 | SUN Type 4, 5 and 5c keyboards have dip switches to choose the language layout |
| 6 | of the keyboard. Solaris makes an ioctl to query the value of the dipswitches |
| 7 | and uses that value to select keyboard layout. Also the SUN bios like the one |
| 8 | in the file ss5.bin uses this value to support at least some keyboard layouts. |
| 9 | However, the OpenBIOS provided with qemu is hardcoded to always use an |
| 10 | US keyboard layout. |
| 11 | |
| 12 | With the escc.chnA-sunkbd-layout driver property it is possible to select |
| 13 | keyboard layout. Example: |
| 14 | |
| 15 | -global escc.chnA-sunkbd-layout=de |
| 16 | |
| 17 | Depending on type of keyboard, the keyboard can have 6 or 5 dip-switches to |
| 18 | select keyboard layout, giving up to 64 different layouts. Not all |
| 19 | combinations are supported by Solaris and even less by Sun OpenBoot BIOS. |
| 20 | |
| 21 | The dip switch settings can be given as hexadecimal number, decimal number |
| 22 | or in some cases as a language string. Examples: |
| 23 | |
| 24 | -global escc.chnA-sunkbd-layout=0x2b |
| 25 | |
| 26 | -global escc.chnA-sunkbd-layout=43 |
| 27 | |
| 28 | -global escc.chnA-sunkbd-layout=sv |
| 29 | |
| 30 | The above 3 examples all select a swedish keyboard layout. Table 3-15 at |
| 31 | https://docs.oracle.com/cd/E19683-01/806-6642/new-43/index.html explains which |
| 32 | keytable file is used for different dip switch settings. The information |
| 33 | in that table can be summarized in this table: |
| 34 | |
| 35 | .. list-table:: Language selection values for escc.chnA-sunkbd-layout |
| 36 | :widths: 10 10 10 |
| 37 | :header-rows: 1 |
| 38 | |
| 39 | * - Hexadecimal value |
| 40 | - Decimal value |
| 41 | - Language code |
| 42 | * - 0x21 |
| 43 | - 33 |
| 44 | - en-us |
| 45 | * - 0x23 |
| 46 | - 35 |
| 47 | - fr |
| 48 | * - 0x24 |
| 49 | - 36 |
| 50 | - da |
| 51 | * - 0x25 |
| 52 | - 37 |
| 53 | - de |
| 54 | * - 0x26 |
| 55 | - 38 |
| 56 | - it |
| 57 | * - 0x27 |
| 58 | - 39 |
| 59 | - nl |
| 60 | * - 0x28 |
| 61 | - 40 |
| 62 | - no |
| 63 | * - 0x29 |
| 64 | - 41 |
| 65 | - pt |
| 66 | * - 0x2a |
| 67 | - 42 |
| 68 | - es |
| 69 | * - 0x2b |
| 70 | - 43 |
| 71 | - sv |
| 72 | * - 0x2c |
| 73 | - 44 |
| 74 | - fr-ch |
| 75 | * - 0x2d |
| 76 | - 45 |
| 77 | - de-ch |
| 78 | * - 0x2e |
| 79 | - 46 |
| 80 | - en-gb |
| 81 | * - 0x2f |
| 82 | - 47 |
| 83 | - ko |
| 84 | * - 0x30 |
| 85 | - 48 |
| 86 | - tw |
| 87 | * - 0x31 |
| 88 | - 49 |
| 89 | - ja |
| 90 | * - 0x32 |
| 91 | - 50 |
| 92 | - fr-ca |
| 93 | * - 0x33 |
| 94 | - 51 |
| 95 | - hu |
| 96 | * - 0x34 |
| 97 | - 52 |
| 98 | - pl |
| 99 | * - 0x35 |
| 100 | - 53 |
| 101 | - cz |
| 102 | * - 0x36 |
| 103 | - 54 |
| 104 | - ru |
| 105 | * - 0x37 |
| 106 | - 55 |
| 107 | - lv |
| 108 | * - 0x38 |
| 109 | - 56 |
| 110 | - tr |
| 111 | * - 0x39 |
| 112 | - 57 |
| 113 | - gr |
| 114 | * - 0x3a |
| 115 | - 58 |
| 116 | - ar |
| 117 | * - 0x3b |
| 118 | - 59 |
| 119 | - lt |
| 120 | * - 0x3c |
| 121 | - 60 |
| 122 | - nl-be |
| 123 | * - 0x3c |
| 124 | - 60 |
| 125 | - be |
| 126 | |
| 127 | Not all dip switch values have a corresponding language code and both "be" and |
| 128 | "nl-be" correspond to the same dip switch value. By default, if no value is |
| 129 | given to escc.chnA-sunkbd-layout 0x21 (en-us) will be used. |