1 #! /usr/bin/sh 2 # 3 # CDDL HEADER START 4 # 5 # The contents of this file are subject to the terms of the 6 # Common Development and Distribution License (the "License"). 7 # You may not use this file except in compliance with the License. 8 # 9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 # or http://www.opensolaris.org/os/licensing. 11 # See the License for the specific language governing permissions 12 # and limitations under the License. 13 # 14 # When distributing Covered Code, include this CDDL HEADER in each 15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 # If applicable, add the following below this CDDL HEADER, with the 17 # fields enclosed by brackets "[]" replaced with your own identifying 18 # information: Portions Copyright [yyyy] [name of copyright owner] 19 # 20 # CDDL HEADER END 21 # 22 #pragma ident "%Z%%M% %I% %E% SMI" 23 # 24 # Copyright 2008 Sun Microsystems, Inc. All rights reserved. 25 # Use is subject to license terms. 26 # 27 28 # get the valid layout name from the eeprom and set it into kernel. 29 # check space and tab to make sure that the kbd -s interaction mode 30 # doesn't run here. 31 KBD_LAYOUT_NVRAM_EXIST="`/usr/sbin/eeprom | grep keyboard-layout`" 32 33 if test -n "$KBD_LAYOUT_NVRAM_EXIST" 34 then 35 KBD_LAYOUT_NAME="`/usr/sbin/eeprom keyboard-layout |\ 36 /usr/bin/sed -n 's/keyboard-layout=//g; s/[ | ]*//p'`" 37 else 38 exit 0 39 fi 40 41 # The firmware on the keyboard may report "Taiwanese" and so 42 # translate it to the new "Traditional-Chinese" name as this is 43 # the preferred name to use. 44 if [ "$KBD_LAYOUT_NAME" = "Taiwanese" ] 45 then 46 KBD_LAYOUT_NAME="Traditional-Chinese" 47 fi 48 49 if test -n "$KBD_LAYOUT_NAME" 50 then 51 KBD_LAYOUT_NAME_STRING="^$KBD_LAYOUT_NAME=" 52 LAYOUT_NAME_VALID="`cat /usr/share/lib/keytables/type_6/kbd_layouts | \ 53 grep "$KBD_LAYOUT_NAME_STRING"`" 54 else 55 exit 0 56 fi 57 58 if test -n "$LAYOUT_NAME_VALID" 59 then 60 # Set the keyboard layout 61 /usr/bin/kbd -s $KBD_LAYOUT_NAME 62 fi 63