Bug#1108392: console-setup: installer not asking for keymap on Supermicro Server when doing install via BMC
Package: console-setup
Version: 1.221
When trying to install a Supermicro AS -1114CS-TNR server via the BMC HTML5 web console using debian-12.11.0-amd64-netinst.iso I was expecting to be asked what keymap to use for the keyboard but this step was just silently skipped.
I think the reason for this is that https://salsa.debian.org/installer-team/console-setup/-/blob/master/debian/keyboard_present.sh expects a keyboard to use the USB class 03-01-01 but the keyboard in this case does instead appear as 03-00-01.
I took the device detection loop and gave it some output like so:
===
for d in /sys/bus/usb/devices/*:*; do
echo $d
class=$(cat "$d/bInterfaceClass") # 03 = Human Interface Device
subclass=$(cat "$d/bInterfaceSubClass") # 01 = Boot Interface Subclass
protocol=$(cat "$d/bInterfaceProtocol") # 01 = Keyboard
echo "$class:$subclass:$protocol"
case "$class:$subclass:$protocol" in
03:01:01)
echo "found keyboard"
return 0
;;
esac
done
===
The result on an installed system:
===
/sys/bus/usb/devices/1-0:1.0
09:00:00
/sys/bus/usb/devices/2-0:1.0
09:00:00
/sys/bus/usb/devices/2-2:1.0
08:06:50
/sys/bus/usb/devices/3-0:1.0
09:00:00
/sys/bus/usb/devices/3-1:1.0
09:00:00
/sys/bus/usb/devices/3-1.1:1.0
03:00:01
/sys/bus/usb/devices/3-1.1:1.1
03:01:02
/sys/bus/usb/devices/3-1.2:2.0
e0:01:03
/sys/bus/usb/devices/3-1.2:2.1
0a:00:00
/sys/bus/usb/devices/4-0:1.0
09:00:00
/sys/bus/usb/devices/5-0:1.0
09:00:00
/sys/bus/usb/devices/5-2:1.0
09:00:02
/sys/bus/usb/devices/6-0:1.0
09:00:00
===
Also the fallback to check /proc/bus/input/devices will not work either, here is output again from an installed system:
===
# cat /proc/bus/input/devices
I: Bus=0003 Vendor=0557 Product=9241 Version=0100
N: Name="Linux 5.4.62 with aspeed_vhub SMCI HID KM"
P: Phys=usb-0000:05:00.3-1.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb3/3-1/3-1.1/3-1.1:1.0/0003:0557:9241.0001/input/input0
U: Uniq=
H: Handlers=sysrq kbd leds event0
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff800000000007ff f2beffdf73cfffff fffffffffffffffe
B: MSC=10
B: LED=1f
I: Bus=0003 Vendor=0557 Product=9241 Version=0100
N: Name="Linux 5.4.62 with aspeed_vhub SMCI HID KM"
P: Phys=usb-0000:05:00.3-1.1/input1
S: Sysfs=/devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb3/3-1/3-1.1/3-1.1:1.1/0003:0557:9241.0002/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: PROP=0
B: EV=1f
B: KEY=70000 0 0 0 0
B: REL=900
B: ABS=3
B: MSC=10
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2
U: Uniq=
H: Handlers=kbd event2
B: PROP=0
B: EV=3
B: KEY=10000000000000 0
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=3
B: KEY=10000000000000 0
I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input4
U: Uniq=
H: Handlers=kbd event4
B: PROP=0
B: EV=40001
B: SND=6
===
For reference here is lsusb -v output for the device:
===
Bus 003 Device 003: ID 0557:9241 ATEN International Co., Ltd SMCI HID KM
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0557 ATEN International Co., Ltd
idProduct 0x9241
bcdDevice 5.04
iManufacturer 1 Linux 5.4.62 with aspeed_vhub
iProduct 2 SMCI HID KM
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x003b
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 1 Keyboard
iInterface 4 HID Interface
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 63
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 4 HID Interface
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 79
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 4
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered
===
--
Patrik Lundin
Reply to: