Linux 커널을 컴파일할 때 GUI를 비활성화하는 방법은 무엇입니까?

Linux 커널을 컴파일할 때 GUI를 비활성화하는 방법은 무엇입니까?

그래서 저는 Debian 11에서 6.0.3 커널을 컴파일하고 있습니다. 제 임무는 부팅할 수 있고 인터넷에 연결할 수 있는 가능한 가장 작은 커널을 얻는 것입니다.

나는 커널을 총 89번 컴파일했고 내 커널에는 599개의 정적 모듈과 0개의 로드 가능한 모듈이 있었습니다.

해당 명령을 사용하고 있는데 make nconfigGUI를 비활성화하는 부분을 찾아보았지만 찾을 수 없습니다. 내 OS는 여전히 GUI를 사용하여 부팅하고 있으며 이 방법으로 많은 모듈을 제거하고 커널을 더 작게 만들 수 있다고 확신하므로 GUI를 비활성화하고 싶습니다.

메뉴의 어느 부분에 이 옵션이 있는지 아는 사람이 있나요?

편집하다:

임무를 완수하여 결국 533개의 정적 모듈 + 0개의 동적 모듈을 갖게 되었습니다.
문자 그대로 더 이상 모듈을 제거할 수 없으며 GUI는 여전히 작동 중이며 메뉴에는 비활성화할 섹션이 없습니다.

최선을 다해, 감사합니다!

답변1

최소한의 커널을 빌드하려면 make tinyconfig대신 를 사용해야 합니다 make nconfig.

그래픽 인터페이스를 비활성화하려면 다음을 사용하십시오.

sudo systemctl set-default multi-user.target

다시 덮다:

sudo systemctl set-default graphical.target

하지만 코어가 작아지는 것은 아닙니다.

답변2

커널은 요구 사항에 맞는 방식으로 GUI를 관리하지 않기 때문에 커널 구성에서 "GUI를 비활성화"할 수 없습니다.

커널은 장치 드라이버, 가장 낮은 수준의 네트워크 상호 작용, 메모리 및 파일 시스템 관리를 처리합니다.

"GUI"라고 부르는 것은 (대부분의 시스템에서) Xorg 또는 Wayland에 의해 처리되며 그 위에 레이어로 사용하는 창이나 데스크탑 관리자에 의해 처리됩니다.

GAD3R이 게시한 대로 수행하면 GUI가 비활성화되지만 커널이 더 작아지거나 다시 활성화해도 커널이 더 커지지는 않습니다.

만약 너라면진짜커널에서 최대한 많은 것을 짜내려면 initramfs를 제외한 모든 파일 시스템 지원과 모든 블록 장치를 비활성화한 다음 initramfs를 수정하여 dhcp 클라이언트를 포함하고 실행할 수 있습니다.기술적으로 말하자면부팅되고 인터넷에 연결됩니다. 그것은 단지 유용한 일을 하지 않을 것이다.

답변3

시스템이 UEFI 스타일로 부팅됩니까, 아니면 클래식 BIOS 스타일로 부팅됩니까?

GUI를 비활성화하는 경우(예: sudo systemctl set-default multi-user.target지속성을 위해 sudo systemctl isolate multi-user.target즉시 적용) make nconfig->에서 옵션을 최소화할 수 있습니다.Device driversGraphics support

Device drivers옵션 -> Firmware drivers-> Mark VGA/VBE/EFI FB as generic system framebuffer( ) 가 설정되어 있으면 기본적으로 SYSFB_SIMPLEFB에서 Simple framebuffer driver( DRM_SIMPLEDRM) 만 선택하면 됩니다 Graphics support.

설정하지 않은 경우 UEFI에 -> -> -> -> ( )가 선택되어 있는지 SYSFB_SIMPLEFB확인해야 합니다 .Device driversGraphics supportFrame buffer DevicesSupport for frame buffer devicesEFI-based Framebuffer SupportFB_EFI

클래식 BIOS가 설정되지 않은 경우 SYSFB_SIMPLEFB동일한 경로에서 VESA VGA graphics support( )를 사용 FB_VESA하거나 모든 프레임 버퍼 장치를 비활성화하고 Device Drivers-> Graphics support-> Console display driver support-> VGA text console()가 설정되어 있는지 확인하세요.VGA_CONSOLE

를 사용하면 ( , 동일한 경로로 ) VGA_CONSOLE비활성화할 수도 있지만 이는 을 사용하는 클래식 BIOS 스타일 부팅에서만 작동 하거나 실제로 사용 가능한 콘솔이 있어야 합니다 .Framebuffer console supportFRAMEBUFFER_CONSOLEVGA_CONSOLESYSFB_SIMPLEFBFB_EFIFB_VESAFRAMEBUFFER_CONSOLE

를 사용하는 경우 오류를 방지하기 위해 부트로더 기능을 VGA_CONSOLE비활성화하도록 부트로더 구성을 조정해야 할 수도 있습니다 plymouth. 프레임 버퍼 드라이버가 없으면 시스템 시작 시 예쁜 그림을 표시할 수 없으며 텍스트만 표시할 수 있습니다.

(제가 올바르게 이해했다면 BIOS "기본 디스플레이 모드"는 확장 ASCII 및 문자별 디스플레이 속성을 사용하는 VGA 텍스트 모드인 반면, UEFI의 "기본 디스플레이"는 기본적으로 간단한 A 그래픽 지원 프레임 버퍼입니다. 텍스트를 쉽게 렌더링하기 위해).

답변4

간단히 말해서, Linux 커널은 운영 체제를 실행하는 엔진입니다. 그것은 가지고있다거의 없음그래픽 사용자 인터페이스와 관련이 있습니다. GUI는 XFCE, GNOME, KDE Plasma 등과 같이 커널 자체의 일부가 아닌 데스크탑 환경에 의해 제어됩니다. 커널을 더 작게 만들기 위해 컴퓨터를 부팅할 필요가 없는 불필요한 옵션과 기타 장치 드라이버를 모두 비활성화하려고 합니다. 도움이 되었기를 바랍니다!

관련 정보