키를 누르지 않고 노트북 키보드의 올바른 스캔 코드를 얻으려면 어떻게 해야 합니까?

키를 누르지 않고 노트북 키보드의 올바른 스캔 코드를 얻으려면 어떻게 해야 합니까?

노트북 키보드에 문제가 있어서 제대로 작동하지 않습니다. 그러나 SSH를 통해 노트북을 완전히 제어할 수 있습니다. 문제는 자체 암호화 디스크(Samsung 840 Pro)를 사용한다는 것입니다. 노트북을 종료하면 키보드 문제로 인해 더 이상 로그인하지 못할 수도 있습니다(하드웨어 문제일 수 있음). 그래서 재부팅하기 전에 ssh 및 hdparm을 통해 ata 비밀번호를 끄고 싶습니다. 그런 다음 SSD를 다른 PC에 넣고 문제 없이 액세스할 수 있습니다.

문제는 다음과 같습니다.

hdparm --security-disable password /dev/sda

그런데 내 노트북(Dell Latitude E6400, 독일어 키보드)이 문자를 스캔 코드로 변환하는 것 같아서 다음과 같이 시도해 보았습니다.

hdparm --security-disable $(printf 'password' | tr '1234567890qwertyuiopasdfghjklzxcvbnm' '\2-\13\20-\31\36-\46\54-\62') /dev/sda 

상술 한 바와 같이여기.

하지만 이것은 작동하지 않습니다. 그 이유는 올바른 스캔코드 번역이 필요하기 때문인 것 같습니다(위의 번역은 미국 키보드용인 것 같습니다).

그렇다면 랩톱에서 키를 입력하지 않고 SSH를 통해 올바른 스캔 코드를 얻으려면 어떻게 해야 합니까?

SSH를 통해 비밀번호를 비활성화하는 방법에 대한 다른 제안 사항이 있습니까?

답변1

스캔 코드는 모든 PC 키보드에서 동일합니다(멀티미디어 키는 다릅니다). 이는 키의 라벨(실제로 키보드에서 보내는 전기 신호와는 아무 관련이 없음)이 아닌 키의 위치에 따라 결정됩니다.

따라서 독일어(QWERTZ) 키보드의 경우 y및 를 바꾸면 됩니다 z.

hdparm --security-disable $(printf 'password' | tr '1234567890qwertzuiopasdfghjklyxcvbnm' '\2-\13\20-\31\36-\46\54-\62') /dev/sda 

프랑스어 또는 벨기에 AZERTY 키보드의 경우:

hdparm --security-disable $(printf 'password' | tr '1234567890azertyuiopqsdfghjklmwxcvbn' '\2-\13\20-\31\36-\47\54-\61') /dev/sda 

관련 정보