나는 네 번째를 원한다!

나는 네 번째를 원한다!

배경

저는 소스 코드 기반 배포판인 Gentoo를 사용하고 있습니다. 이를 염두에 두고 내 PC에 4개의 하드 드라이브가 있는 상태에서 실험을 하고 FreeBSD로 전환하기로 결정했습니다. 제가 이 질문을 쓴 출처는 다음과 같습니다.

운영 체제 사양

% cat /etc/os-release 
NAME=FreeBSD
VERSION=12.2-RELEASE-p3
VERSION_ID=12.2
ID=freebsd
ANSI_COLOR="0;31"
PRETTY_NAME="FreeBSD 12.2-RELEASE-p3"
>snip<

패키지 관리자로 synth를 사용하여 포트 트리에서 KDE-5 버전을 실행하십시오.

질문

위의 모든 항목을 올바르게 설치한 후 프로젝트를 미세 조정하고 있습니다. 저는 구성 파일을 편집하는 데 매우 익숙합니다. 이것이 Gentoo의 주요 메커니즘이기 때문입니다. 나는 궁극적으로 스스로 해결할 수 없는 문제에 부딪혔습니다. 그 이유는 대부분 FreeBSD 문서가 심각하게 오래되었기 때문입니다. 바라보다:버그 235040 - Lua 기반 로더(8)가 /boot/loader.rc.local을 얻을 수 없습니다.


질문

  1. loader.efi가 loader_4th.efi를 가리키도록 하면 문제가 해결됩니다.

이것은 단지 심볼릭 링크입니까? 목록에 링크가 없어서 작성전에 알고 싶습니다

# ls -al /boot/loader*
-r-xr-xr-x  3 root  wheel  372736 Jan  3 18:40 /boot/loader
-r-xr-xr-x  1 root  wheel  327680 Jan  3 18:40 /boot/loader_4th
-r-xr-xr-x  1 root  wheel  428032 Jan  3 18:40 /boot/loader_4th.efi
-r-xr-xr-x  1 root  wheel  327680 Nov 28 17:18 /boot/loader_4th.old
-r-xr-xr-x  3 root  wheel  372736 Jan  3 18:40 /boot/loader_lua
-r-xr-xr-x  2 root  wheel  490496 Jan  3 18:40 /boot/loader_lua.efi
-r-xr-xr-x  1 root  wheel  372736 Nov 28 17:18 /boot/loader_lua.old
-r-xr-xr-x  1 root  wheel  278528 Jan  3 18:40 /boot/loader_simp
-r-xr-xr-x  1 root  wheel  367616 Jan  3 18:40 /boot/loader_simp.efi
-r-xr-xr-x  1 root  wheel  278528 Nov 28 17:18 /boot/loader_simp.old
-r--r--r--  1 root  wheel    7492 Jan  3 18:40 /boot/loader.4th
-rw-r--r--  1 root  wheel     179 Feb 26 18:23 /boot/loader.conf
-r-xr-xr-x  2 root  wheel  490496 Jan  3 18:40 /boot/loader.efi
-r--r--r--  1 root  wheel     468 Jan  3 18:40 /boot/loader.rc
-rw-r--r--  1 root  wheel      28 Feb 27 16:18 /boot/loader.rc.local
  1. 12.2-RELEASE도움이 되도록 전환하시겠습니까 12.2-STABLE? 지점 전환 방법 외에는 Google 검색 결과가 표시되지 않아서 모르겠습니다.

다음 위치에서 nvidia-driverBlob을 사용하고 있습니다 x11/nvidia-driver(DRM 커널 모듈이 없으므로 이 드라이버에 대한 KMS 옵션이 없습니다).

device     = GP107 [GeForce GTX 1050 Ti] 

부분적으로 해결/악화됨

UEFI 셸로 부팅하고 이 mode명령을 사용하면 FreeBSD 로더가 올바르게 표시됩니다. 또한 옵션 3을 선택하여 로더 프롬프트로 빠져나가 로더가 로드된 후(잘못된 해상도에서) 이를 사용할 수 있지만 gop set시스템 기본값이 1024x768이기 때문에 재부팅할 때마다 두 옵션 중 하나를 사용해야 합니다. UEFI가 영구적으로 새 설정을 기본값으로 사용하도록 하는 방법이 있습니까?

답변1

나는 실제로 질문을 가능한 한 철저하게 읽었습니다. 3번. 읽을 때마다 더 혼란스러워집니다.

설정을 설명하는 시간을 갖습니다. 그런데 당신의 진짜 근본적인 문제는 무엇입니까? 왜 굳이 이 일을 해야 합니까? 왜 버그 리포트를 이런 식으로 해석합니까? (저는 다른 해석을 가지고 있습니다.) 문서가 실제로 그렇게 나쁘지는 않지만 몇 가지 주요 부분에서 더 나아져야 한다는 데 동의합니다. 그런데 우리는 또 다른 토끼를 쫓고 있는 것 같습니다.

나는 젠투를 실행하지 않으므로"운영체제 사양"나에게는 이상하다(희망한다 uname -a). 시스템을 부팅하는 방법에는 여러 가지가 있지만 시간이 꽤 길어서 자세히 설명할 필요는 없습니다.

그러나 FreeBSD는 로더 기반에서 전환 단계에 있습니다.앞으로을 기반으로루아. FreeBSD는 오랫동안 Forth 로더를 사용해왔기 때문에 많은 사람들이 이를 참고하고 있습니다. Lua 로더는 11에서 도입되었고 12에서 기본값이 되었습니다. 보다LUA 로더는 기본적으로 활성화되어 있습니다.

다시 말하지만, 너무 오랫동안 존재했기 때문에 일부 Forthism이 들어왔습니다 /boot/loader.rc.local. 이것이 Kyle Evans와 Warner Losh가 당신이 인용한 버그 보고서에서 더 자세히 설명하려고 하는 내용입니다.

최신 FreeBSD 시스템에서는 다음을 수행해야 합니다.아니요변조는 /boot/loader.rc.local레거시적인 이유로 존재합니다. Lua 로더가 아닌 Forth 로더에서만 읽을 수 있습니다.

나는 네 번째를 원한다!

내가 올바르게 이해했다면 FreeBSD 자체를 포함하여 모든 것을 소스에서 빌드하는 것입니다. 이 경우 다음을 편집 /etc/src.conf하고 설정할 수 있습니다.

WITH_FORTH="yes"
WITHOUT_LUA="yes"

그런 다음 사용하는 로더를 선택하십시오.

현대적인 방법

로더 설정을 변경하는 올바른 방법은 수년 동안 이어졌습니다.로더.conf(5). 파일은 두 로더 모두에서 읽고 구문 분석됩니다.

"절반 솔루션"을 다음과 결합하면됩니다.오류 235040

편집 /boot/loader.conf("사용자 정의")하고 다음을 추가합니다.

exec="gop set 0"
exec="gop set 2"

/boot/loader.conf.local동일하게 작동하지만 공통점이 있는 사이트에 대한 컴퓨터별 설정이 있습니다.loader.conf

할 수 있는자신만의 Lua 스크립트를 작성하는 것이 가능하지만 일반적인 용도에는 적합하지 않습니다.

기본 해상도

해상도 기본값이 1024x768이라고 작성하셨습니다. gop set사용 하는 대신 efi_max_resolution(다시로더.conf(5)).

Value        Resolution
480p         640x480
720p         1280x720
1080p        1920x1080
2160p        3840x2160
4k           3840x2160
5k           5120x2880
WidthxHeight WidthxHeight

따라서 /boot/loader.conf다음을 시도해 볼 수 있습니다.

efi_max_resolution="1080p"

엔비디아 드라이버

다시 말하지만, 현재 겪고 있는 문제가 정확히 무엇인지 불분명합니다. 를 사용하고 있다고 명시되어 있습니다 x11/nvidia-driver. 이는 X11에만 해당됩니다. 시작하는 동안VT(4)콘솔 드라이버가 시작되어야 합니다. BIOS 부팅을 수행할 때 KMS 드라이버가 없으면(귀하와 마찬가지로) 640x480x16으로 전환됩니다. UEFI의 경우 텍스트 모드에서 그래픽 모드로 전환되었으므로 해상도를 유지할 것이라고 가정합니다.

이 드라이버는 X11을 시작할 때만 사용됩니다. 자동으로 감지되므로 구성이 필요하지 않습니다. 그러면 그래픽 로그인 관리자로 이동하게 됩니다.날씬한아니면 데스크탑으로 바로 이동하세요.

RELEASE와 STABLE 간 전환

좀 더 활동적인 라이프스타일을 살고 싶다면 안정적인 라이프스타일로 전환할 수 있습니다. 아니면 완전히 미쳐서 현재 생활을 즐기십시오. 그러나 귀하의 질문을 이해한다면 아무런 차이가 없습니다.

24.4. 개발 분기 추적

세 가지 FreeBSD 버전의 차이점은 무엇입니까? (현재, 출시 및 안정)

답변2

질문

@Claus Anderson이 FreeBSD 포럼의 이전 게시물에서 언급한 내용 대부분을 찾았지만 어떤 설정을 조정하더라도 해상도 efifb(VT)가 1024x768에서 멈췄습니다. 저는 GUI 터미널(Alt + Fn 대 Konsole)보다는 콘솔을 사용하는 것을 선호하기 때문에 이는 용납할 수 없습니다. 이것은 개인적인 취향일 뿐이므로, 다른 독자/방문자에게 도움이 될 수 있도록 계속해서 파고들었고 마침내 해결책을 찾았습니다.

해결책

내 컴퓨터는 OEM에 의해 맞춤화되었으며 다음이 포함되었습니다.MSI Z270-A 프로. 여러 운영 체제 설치를 시작할 때 UEFI 설정 유틸리티를 사용하고 UEFI 전용 모드를 껐습니다.UEFI + 레거시그러나 CSM으로 더 잘 알려져 있으며 시간이 지남에 따라 모든 설치를 완전히 UEFI로 마이그레이션했습니다.

CSM을 활성화하면 이 마더보드의 Windows 8.1/10 WHQL 지원 기능이 비활성화되는 것으로 나타났습니다. 이 기능은 모든 운영 체제를 마이그레이션한 후에도 비활성화된 상태로 유지됩니다. 아래 사진을 참조하세요:

[MSI WHQL 설정

이 옵션을 비활성화하면 부팅 설정에서 Pure UEFI가 활성화된 경우에도 위 이미지의 하단 2개 옵션에 대한 액세스가 비활성화됩니다.

  1. 내부 GOP 구성
  2. 보안 부트

보안 부팅(개인 취향)을 사용하지 않지만 여러 변형을 수정한 후 GOP 구성에 대한 액세스를 비활성화하면 부팅되는 모든 OS 또는 EFI 스텁이 기본 해상도 1024x768에서 멈추는 것을 발견했습니다. 다시 말해서,WHQL 지원이 켜져 있지 않으면 GOP 설정은 NVRAM에서 읽기 전용으로 표시됩니다.이는 Windows와 관련이 없는 운영 체제에서도 마찬가지입니다. WHQL은 드라이버 보안을 제공하도록 설계되었기 때문에 왜 이런 일이 발생하는지 모르겠습니다.Windows 전용설치된 드라이버가 디지털 서명되었으며 품질 관리를 위해 테스트되었는지 확인하십시오. Windows가 아닌 운영 체제에서 해상도 변경을 테스트해야 하는 이유를 모르겠습니다.


즉, FreeBSD 로더를 통한 설정에 관계없이 1920x1080/1080p @ 60Hz의 기본 해상도를 지원하는 모니터에서는 항상 1024x768의 화면 크기를 얻습니다.부트로더 옵션 3, 이는 UEFI가 rEFInd로의 부팅을 완료하고 NVRAM이 읽기/쓰기로 표시된 후에 발생합니다.

이제 Windows 8.1/10 WHQL 지원 exec mode 0이 켜져 있고 boot/loader.conf기본 콘솔 해상도는 1080p입니다. 올바른 설정의 부작용으로 rEFInd도 기본 해상도로 부팅됩니다.

위의 해결책을 찾기 전에 시도한 것

나는 이것을 권장하지 않지만 완전성을 위해 여기에 나열하겠습니다.

  1. OEM과 동일한 모델이지만 최신 버전인 그래픽 카드 펌웨어를 업데이트했습니다.
  2. 비디오 카드 펌웨어에 문제가 있다고 생각하여 GOP 프로토콜을 업데이트했습니다.

관련 정보