UEFI 부팅 Linux 시스템의 비디오 모드가 GOP (그래픽 출력 프로토콜)인지 UGA (범용 그래픽 어댑터)인지 감지하는 방법은 무엇입니까?

CMCD 라곤 카이

UEFI 펌웨어는 GOP 또는 UGA 그래픽 프로토콜을 지원하는 것으로 보입니다. GOP는 더 새롭고 UGA를 대체했습니다. 통합 그래픽 어댑터가없는 내 컴퓨터 (분리형 그래픽 어댑터 NVIDIA GTX 965m 만 있음)에서 Linux 설치 CD를 라이브 부팅 할 때 그래픽 카드를 구동하는 커널 모듈이 없음을 발견했습니다 (lspci 및 X 로그 확인). .

UEFI에 대해 조사한 후이 두 종류의 그래픽 프로토콜을 찾았고, UEFI 인 것 같아서 두 가지 중 어느 것이 사용되고 있는지 알아내는 방법 (명령 줄 쿼리)이 있는지 궁금합니다. 내 컴퓨터의 디스플레이를 구동하는 기능을 제공하는 펌웨어 (아마 내 "VGA 호환"개별 그래픽 카드를 통해).

또한 BIOS 설정 (UEFI 펌웨어를 사용할 때 여전히 BIOS 설정이라고 함)에서 Video Op Rom 설정을 "BIOS 호환 모드"로 변경할 수있었습니다. "UEFI 전용"으로 두었을 때 BIOS 구성 설정과 POST 디스플레이 및 부트 로더 디스플레이에서 전체 해상도를 얻었습니다. "BIOS 호환 모드"를 선택하면 해상도가 훨씬 작아졌습니다. 이것은 기본적으로 펌웨어가 대신 VGA 프로토콜을 사용할 수 있음을 의미합니까?

로드 스미스

grawity의 답변에 대해 자세히 설명하기 위해 질문에 대한 다양한 정도의 여러 문제가 있습니다.

  • UGA vs. GOP- 말씀 하셨듯이 EFI 비디오 시스템에는 UGA와 GOP의 두 가지가 있습니다. 후자는 EFI 2.x (UEFI라고도 함), IIRC 및 AFAIK와 함께 도입되었으며 모든 UEFI 기반 시스템은 GOP를 사용합니다. 원칙적으로 모든 EFI 1.x 시스템은 UGA를 사용해야합니다. 그러나 Apple (최신 제품에서도 여전히 EFI 1.x를 사용)은 UGA를 EFI로 포팅했기 때문에 일부 (전부는 아님) Mac에는 GOP가있는 EFI 1.x가 있습니다. 다른 이상한 예외가있을 수 있습니다. grawity가 말했듯이 이러한 구분은 펌웨어 수준에서 중요하지만 실제로 OS 수준에서는 중요하지 않으며 적어도 AFAIK에서는 그렇지 않습니다.
  • Linux 프레임 버퍼 장치 -UGA이든 GOP이든 펌웨어는 Linux가 프레임 버퍼 장치 를 통해 노출하는 비디오 하드웨어, 특히 efifb. EFI 기반 시스템에서 이것은 종종 텍스트 모드 작동의 기초가됩니다 (X를 시작하지 않거나 Ctrl + Alt + F1에서 Ctrl + Alt + F6까지 누르는 경우). OTOH, 특정 비디오 칩셋에 대한 일부 커널 드라이버에서 제공하는 프레임 버퍼 장치도 있으므로 efifb장치를 사용하지 못할 수도 있습니다 . UGA와 GOP가 OS에 표시되는 방식에 차이가 있는지 직접 알 수 없습니다. 확실히 나는 당신이 리눅스에서 사용하는 명령과 같이 더 높은 수준에서 차이점이 없다는 것을 알고 있습니다.
  • X 윈도우 시스템 드라이버 -X 드라이버는 커널 비디오 드라이버에 의존하거나 기본적으로 독립적 일 수 있습니다. 대부분의 경우 특정 비디오 칩셋 (ATI, Nvidia, Intel 등) 용으로 작성된 X 드라이버를 사용하며 이는 펌웨어를 통해 작동하지 않습니다. 따라서 이러한 드라이버는 UGA 대 GOP (또는 BIOS 대 EFI에 대한 몇 가지주의 사항이 있지만)의 영향을받지 않아야합니다. 즉, 장치를 포함하여 활성화 된 프레임 버퍼 장치를 통해 작동하는 X 프레임 버퍼 드라이버가 있습니다 efifb. 따라서, 당신은 할 수EFI의 UGA 또는 GOP 모드를 통해 디스플레이를 구동합니다. 프레임 버퍼 드라이버가 느린 경향이 있기 때문에 이것은 확실히 차선책입니다. Ubuntu의 Unity를 포함한 최신 윈도우 환경은 프레임 버퍼를 통해 액세스 할 수없는 비디오 가속 기능에 점점 더 의존하고 있습니다.

다음 dmesg과 같이를 통해 커널 링 버퍼를 검사하여이 작업 중 일부를 확인할 수 있습니다 .

$ dmesg | grep fb
[    0.625015] efifb: probing for efifb
[    0.625207] efifb: framebuffer at 0xc0000000, mapped to 0xffffc90010880000, using 3072k, total 3072k
[    0.625208] efifb: mode is 1024x768x32, linelength=4096, pages=1
[    0.625209] efifb: scrolling: redraw
[    0.625210] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.627994] fb0: EFI VGA frame buffer device
[    6.086695] fb: conflicting fb hw usage radeondrmfb vs EFI VGA - removing generic driver
[    6.689526] [drm] fb mappable at 0xC1488000
[    6.689531] [drm] fb depth is 24
[    6.689610] fbcon: radeondrmfb (fb0) is primary device
[    6.804904] radeon 0000:00:01.0: fb0: radeondrmfb frame buffer device

이 예제는 AMD / ATI GPU가있는 시스템의 여러 프레임 버퍼 관련 메시지를 보여줍니다. UGA 대 GOP에 대한 언급은 없지만 efifb장치는 fbcon(프레임 버퍼 콘솔) 및 radeondrmfb(ATI / AMD Radeon 장치의 프레임 버퍼 장치) 그대로 참조됩니다. removing generic driver메시지는 efifb운전자가 운전자에게 전달하는 것을 나타냅니다 radeondrmfb. /var/log/Xorg.0.logX 서버와 관련된 메시지를 검사 할 수도 있습니다 . 내 시스템의 경우에는 덜 흥미롭지 만 X 시작에 문제가있는 경우 Xorg.0.log더 관심이있을 수 있습니다.

한 가지 더 요점 : 하드웨어 문제에 대한 도움을 요청할 때 일반적으로 하드웨어가 무엇인지 지정하는 것이 중요합니다. 비디오 문제에 대한 도움을 요청할 때 "분리형 그래픽 어댑터"는 구체적이지 않습니다. 그 문제가 무엇인지 명확하지 않습니다. 아니면 이해를 돕기 위해 모든 것이 어떻게 결합되는지에 대한 정보를 찾고 있습니까?

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

TOP 리스트

  1. 1

    셀레늄의 모델 대화 상자에서 텍스트를 추출하는 방법은 무엇입니까?

  2. 2

    Blazor 0.9.0 및 ASP.NET Core 3 미리보기 4를 사용한 JWT 인증

  3. 3

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  4. 4

    C # 16 진수 값 0x12는 잘못된 문자입니다.

  5. 5

    Excel : 합계가 N보다 크거나 같은 상위 값 찾기

  6. 6

    오류 : MSB4803 : MSBuild의 .NET Core 버전에서 "ResolveComReference"작업이 지원되지 않습니다.

  7. 7

    R에서 Excel로 내보낼 때 CET / CEST 시간 이동이 삭제됨

  8. 8

    node.js + postgres : "$ 1"또는 그 근처에서 구문 오류

  9. 9

    확대 후 하이 차트에서 Y 축이 잘못 정렬 됨

  10. 10

    EPPlus에서 행 높이를 설정할 때 이상한 동작

  11. 11

    Ionic 2 로더가 적시에 표시되지 않음

  12. 12

    MS Access 부분 일치 2 테이블

  13. 13

    EPPlus에서 병합 된 셀의 행 높이 자동 맞춤

  14. 14

    ExecuteNonQuery- 연결 속성이 초기화되지 않았습니다.

  15. 15

    ResponseEntity를 사용하고 InputStream이 닫히는 지 확인하는 적절한 스트리밍 방법

  16. 16

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  17. 17

    오류 : "const wchar_t *"유형의 인수가 "WCHAR *"유형의 매개 변수와 호환되지 않습니다.

  18. 18

    Java에서 이미지를 2 색으로 변환

  19. 19

    overflow-y를 사용할 때 스크롤 버벅 거림 줄이기 : scroll;

  20. 20

    Java에서 Apache POI를 사용하여 테이블 크기 및 간격을 단어로 설정하는 방법

  21. 21

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

뜨겁다태그

보관