나는 약간의 수정을 거쳐 기본 Chrome OS 커널(4.4.x)을 사용하여 Chromebook(Eve)에서 Linux(Debian 10)를 실행하고 있습니다. 예상대로 프레임 버퍼를 전환하는 Ctrl++ 를 통해 TTY 콘솔에 Alt액세스할 수 없다는 점을 제외하면 모든 것이 (대부분) 잘 실행됩니다.Fn즉 Ctrl+ F1DM으로 전환, Crtl+ F2데스크탑으로 전환), TTY 에뮬레이션 디스플레이를 위한 프레임 버퍼가 없는 것 같습니다(화면은 Ctrl+에서 정지 F3되지만 Crtl+를 통해 데스크탑을 복원할 수 있음 F2). 부팅 시 로그가 표시되지 않는 점을 고려하면 이는 커널 구성 문제인 것으로 추측됩니다. 커널 구성에서 TTY, 콘솔, 프레임버퍼 관련 드라이버 옵션이 활성화되어 있고 tty
기기는 /dev
. 콘솔은 작동하지만(다른 것들은 작동하지 않는 것 같습니다) Chrome OS 커널 내에서 작성되지 않은 것이 아닙니다.
Eve와 Debian의 기본 구성을 비교한 결과 동일한 구성 항목(그 중 532개)에 대해 서로 다른 옵션이 선택되었음을 확인했으며 다음과 같은 차이점을 발견했습니다.
CONFIG_ITEM Debian Eve
CONFIG_AGP_AMD64 y is not set
CONFIG_AGP_SIS y is not set
CONFIG_AGP_VIA y is not set
CONFIG_VGA_SWITCHEROO y is not set
CONFIG_DRM_FBDEV_EMULATION y is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE y is not set
CONFIG_DRM_DP_CEC y is not set
CONFIG_DRM_VGEM is not set y
CONFIG_DRM_UDL is not set y
CONFIG_DRM_CIRRUS_QEMU is not set m
CONFIG_FIRMWARE_EDID y is not set
CONFIG_FB_BOOT_VESA_SUPPORT y is not set
CONFIG_FB_CFB_FILLRECT y is not set
CONFIG_FB_CFB_COPYAREA y is not set
CONFIG_FB_CFB_IMAGEBLIT y is not set
CONFIG_FB_SYS_FILLRECT y is not set
CONFIG_FB_SYS_COPYAREA y is not set
CONFIG_FB_SYS_IMAGEBLIT y is not set
CONFIG_FB_SYS_FOPS y is not set
CONFIG_FB_TILEBLITTING y is not set
CONFIG_FB_VESA y is not set
CONFIG_FB_EFI y is not set
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION y is not set
그러나 Debian에서 Eve 기본 구성으로 복사된 이러한 설정을 사용하여 커널을 컴파일한 후에는 아무 것도 변경되지 않았습니다. 다른 질문이 있으신가요? 도움을 주셔서 감사합니다.
답변1
~에 따르면Chromebook 개발자 문서, 전날은인텔 x86_64 Kabylake-Y하드웨어. 따라서 아마도 i915
커널 모드 설정을 사용하는 디스플레이 드라이버를 사용하고 있는 것 같습니다 .
Chromebook이 어떤 종류의 펌웨어를 사용하는지 잘 모르겠습니다. Coreboot를 사용하는 경우 i915
드라이버가 제어할 때까지 디스플레이 하드웨어가 완전히 초기화되지 않은 상태로 남아 있을 수 있습니다. UEFI를 사용하는 경우 CONFIG_FB_EFI
초기 부팅 메시지가 필요할 수 있습니다.
커널 구성 옵션의 도움말 텍스트 CONFIG_DRM_FBDEV_EMULATION
(강조 항목):
CONFIG_DRM_FBDEV_EMULATION:
레거시 fbdev 지원이 필요한 경우 이 옵션을 선택하십시오.이 지원은 모드 설정 드라이버 외에 Linux 콘솔 지원도 제공합니다..
의심스러우면 "Y"라고 말하세요.
또한 해당 CONFIG_FRAMEBUFFER_CONSOLE
옵션도 확인하십시오.
드라이버가 정상이면 ++ [email protected]
자동 시작 도 필요 합니다 . 이는 일반적으로 존재하는 경우 자동으로 수행되며 (즉, 커널 가상 콘솔 하위 시스템이 성공적으로 활성화되었습니다. 실제로는 선택 사항이므로 x86 PC 하드웨어에 익숙한 사람들을 놀라게 할 수 있음) 다른 시스템이 장치를 대신하지 않습니다 .CtrlAltF3systemd
/dev/tty0
/dev/tty[1-6]
귀하의 문제는 텍스트 콘솔이 없어서 CONFIG_DRM_FBDEV_EMULATION
프로세스 가 ./dev/tty0
getty
systemd
Chromebook에는 분명히 PC 스타일 BIOS가 없기 때문에 VGA 텍스트 콘솔도 없으므로 CONFIG_VGA_CONSOLE
아무 작업도 수행하지 않습니다.
답변2
프레임버퍼 장치 모듈이 로드되었음에도 불구하고 /dev/fb0이 존재하지 않는다는 것을 확인한 후 fbcon
알아냈습니다.
i915
내장 모듈이 아닌 로드 가능한 모듈로 빌드하고fbdev
레거시 지원이 활성화되어 있는지 확인하세요. (로드 가능한 모듈로 구축하는 것은 아마도 불필요할 것입니다. 단지 블랙리스트에 추가하거나 제거할 수 있는지 확인하기 위해 수행했지만i915
요점은 레거시fbdev
지원을 선택하는 것입니다.)- 프레임버퍼 콘솔(
fbcon
)을 활성화하고 모듈로 빌드합니다. - tty도 활성화되어 있는지 확인하십시오.
- 충돌하는 프레임 버퍼 모듈과 관련된 모든 루프를 편집
/src/kernel/drivers/gpu/drm/i915/i915_drv.c
및 제거하거나 주석 처리합니다if
("충돌"을 검색하면 4.4.250-R89 커널 소스에 이러한 루프가 3개 있습니다). 그렇지 않으면 실수가 발생할 수 있습니다. 분명히i915
ChromeOS 드라이버는 프레임 버퍼 콘솔을 갖기를 원하지 않습니다. - 커널과 모듈을 빌드합니다. 리눅스에 설치하세요.
- 시작 시 로드하려면
fbcon
에 추가하세요 (기본적으로 로드되지 않음)./etc/initramfs-tools/modules
또는 TTY 에뮬레이션을 사용해야 하는 경우 수동으로 로드할 수 있습니다. - initramfs 및 grub을 업데이트하십시오. 재시작. 커널 부팅 메시지를 확인하고 Ctrl+를 사용하여 FnTTYn에 액세스할 수 있어야 합니다.