업그레이드(Arch) 후 가상 콘솔(로그인)이 작동하지 않음

업그레이드(Arch) 후 가상 콘솔(로그인)이 작동하지 않음

sudo pacman -Syu오늘 Arch 시스템을 6.1.6으로 업그레이드한 후 가상 콘솔과 상호 작용할 수 없습니다. 저는 이 시스템을 2년 넘게 사용해 왔고 아주 잘 작동하고 있습니다. 업그레이드 직후에는 작동했지만 재부팅했을 때 가상 콘솔이 더 이상 키 입력을 처리하지 않아 로컬로 로그인할 수 없었습니다. 시스템은 제대로 부팅되지만 가상 콘솔만 작동하지 않습니다. 나는 성공하지 못한 채 다른 키보드를 사용해 보았습니다. 키보드는 BIOS에서 제대로 작동하며, Arch 라이브 CD를 사용하여 동일한 시스템을 부팅하고 6.1.6 환경으로 chroot하면 키보드가 제대로 작동합니다.

다음과 같이 ps를 통해 관련된 프로세스(로그인)를 나열합니다.

/sbin/agetty -o -p -- \u --noclear - linux

SSH를 통해 컴퓨터에 접속하면 명령줄에 모든 것이 정상적으로 표시됩니다. systemctl -b를 수행하면 ACPI 오류 및 기타 임의의 항목만 표시되며 키보드나 USB와 관련된 것은 없는 것 같습니다.

이 문제를 어떻게 진단합니까?

usbutils 패키지는 xhci 패키지와 함께 설치됩니다.LSSB디스플레이 키보드가 유효한 USB 장치로 감지되어 정상적으로 표시됩니다. 키보드와 관련된 것으로 보이는 부팅 로그 항목이 없습니다. 아래에 표시된 Topre 키보드가 작동하지 않습니다(다른 USB 장치는 작동하지 않을 수 있지만 더 이상 기기와 직접 상호 작용할 수 없기 때문에 잘 모르겠습니다).

udevadm 테스트에 따르면 키보드를 삽입하거나 제거하면 "새 장치"에 대한 이벤트가 생성되지만 키 입력 시 udev 모니터에 이벤트가 표시되지 않으므로 이는 커널 문제일 수 있습니다.

evtest는 키보드에서 이벤트를 등록하는 것 같습니다(아래 세 번째 붙여넣기 참조). 그렇다면 이것이 일종의 터미널 문제일까요? evtest가 키 입력을 수신하지만 udevadm은 수신하지 못한다면 무엇을 의미합니까?

누군가가 키 입력을 처리하는 전체 과정과 각 단계에서 키 입력이 처리되었는지 확인하는 방법을 설명할 수 있다면 도움이 될 것입니다.

나@컴퓨터:~$lsusb
버스 004 장치 001: ID 1d6b:0003 Linux Foundation 3.0 루트 허브
버스 003 장치 001: ID 1d6b:0002 Linux Foundation 2.0 루트 허브
버스 002 장치 001: ID 1d6b:0003 Linux Foundation 3.0 루트 허브
버스 001 장치 004: ID 0853:0145 Topre Corporation REALFORCE 87 US
버스 001 장치 003: ID 04b8:013a Seiko Epson Corp. GT-X820 [Perfection V600 사진]
버스 001 장치 002: ID 046d:0843 Logitech, Inc. 웹캠 C930e
버스 001 장치 001: ID 1d6b:0002 Linux Foundation 2.0 루트 허브

내@컴퓨터:~$ lsusb -t
/: 버스 04. 포트 1: Dev 1, 클래스=root_hub, 드라이버=xhci_hcd/2p, 10000M
/: 버스 03. 포트 1: Dev 1, 클래스=root_hub, 드라이버=xhci_hcd/2p, 480M
/: 버스 02. 포트 1: Dev 1, 클래스=root_hub, 드라이버=xhci_hcd/10p, 5000M
/: 버스 01. 포트 1: Dev 1, 클래스=root_hub, 드라이버=xhci_hcd/16p, 480M
    |__ 포트 3: Dev 2, 0인 경우 클래스=비디오, 드라이버=uvcvideo, 480M
    |__port3:dev2,if1,class=비디오,드라이버=uvcvideo,480M
    |__ 포트 3: Dev 2, If 2, 클래스=오디오, 드라이버=snd-usb-audio, 480M
    |__ 포트 3: Dev 2, If 3, Class=Audio, Driver=snd-usb-audio, 480M
    |__ 포트 7: dev 3, 0인 경우 클래스 = 공급업체별 클래스, 드라이버 =, 480M
    |__ 포트 8: Dev 4, 0인 경우 클래스 = 휴먼 인터페이스 장치, 드라이버 = usbhid, 12M
    |__ 포트 8: Dev 4, 1인 경우 클래스 = 휴먼 인터페이스 장치, 드라이버 = usbhid, 12M
    |__ 포트 8: Dev 4, 2인 경우 클래스=휴먼 인터페이스 장치, 드라이버=usbhid, 12M

evtest는 키보드에서 이벤트가 수신되고 있음을 보여줍니다.

이벤트: 시간 1674156563.381863, --------------- SYN_REPORT ----------
이벤트: 시간 1674156563.523858, 유형 4(EV_MSC), 코드 4(MSC_SCAN), 값 70004
이벤트: 시간 1674156563.523858, 유형 1(EV_KEY), 코드 30(KEY_A), 값 0

로그인 프로세스(sudo systemctl restartagetty@tty1)를 다시 시작할 수 있으며 다시 시작되지만 여전히 키보드 입력을 허용하지 않습니다. dmesg의 내용은 정상이며 눈에 띄는 오류는 없습니다.

답변1

편집하다OP가 내가 댓글 섹션에서 제안한 것을 시도했다는 것을 알아차린 @don_crissti에게 감사드립니다.

"키보드는 BIOS에서 제대로 작동하며 Arch 라이브 CD를 사용하여 동일한 시스템을 부팅하고 6.1.6 환경으로 chroot하면 키보드가 제대로 작동합니다.

원래 답변이 약간 수정되었습니다.

댓글 섹션에 게시된 내용에 따르면 USB 하위 시스템이 손상되었다고 말하는 것이 안전합니다. 업그레이드 중에 발생한 문제를 확인하거나 업그레이드 전 백업으로 돌아가려면 시스템을 정리해야 합니다. 다른 모든 방법이 실패하면 필요한 모든 것을 백업하십시오./집 /등기다렸다가 시스템을 다시 설치하십시오.

나/우리가 본 적이 없는 시스템을 가상으로 디버깅하는 것은 항상 어렵습니다. 제 생각에는 (IMHO) 이것이 귀하가 얻을 수 있는 가장 많은 정보라고 생각합니다. 왜냐하면 저는 문제를 나타낼 수 있는 오류가 발생하는 것을 볼 수 없기 때문입니다.

답변2

Box에 SSH로 연결할 수 있는 경우 strace -f -p PID를 시도하여 프로세스에 로그인하고 프로세스가 키보드에서 데이터를 가져오는지 확인하세요.

관련 정보