새로 받은 PC에 우분투 18.04를 올리고
평소처럼 더미 HDMI를 꼽았는데..
오잉? 인식이 안되는겁니다..
(더미 HDMI를 꼽았는데도 /dev 폴더에 fb0 같은 framebuffer가 생성이 안되면 인식이 안되는 거랍니다)
거의 2주를 삽질한 결과
intel CPU의 내장 그래픽(Xe graphics) 관련 driver가
우분투 구형 커널(v 5.x.x)에는 없어서 발생하는 문제라는 사실을 알아냅니다.
신규 커널로 새로 빌드를 하고 관련 설정만 잡아주었더니 문제 없이 다시 더미 HDMI가 인식이 되었습니다!
방법은 다음과 같습니다.
차근차근 따라와주세요
1. 커널 다운로드
The Linux Kernel Archives
www.kernel.org
위 사이트에서 6.6 버전의 tarball 파일을 다운 받습니다. (그 이상의 버전을 받아도 상관 없습니다)
2. 압축 풀기
: 다운 받은 압축 파일을 /usr/src 폴더로 옮기고 압축을 해제합니다.
$ sudo mv linux-*.tar.xz /usr/src
$ cd /usr/src
$ sudo tar -xf linux-*.tar.xz
3. 필요 패키지 다운 받기
$ sudo apt -y update
$ sudo apt -y install build-essential libncurses5
$ sudo apt -y install libncurses5-dev bin86 kernel-package libssl-dev
$ sudo apt -y install bison flex libelf-dev ncurses-dev libssl-dev
$ sudo apt -y install kernel-package dwarves
4. 기존 커널 설정 파일 복사
: 압축 해제 후 만들어지는 폴더에 들어간 후
기존 커널의 config 파일을 복사 합니다.
$ cd [압축 해제 후 생성된 폴더]
// 기존 커널 폴더에서 config를 복사합니다.
// 커널 버전마다 폴더명은 다를 수 있습니다.
$ cp /boot/config-5.4.0-47-generic ./.config
5. config 파일 수정
: config 파일을 편집기로 열고 다음과 같이 수정합니다. (vi, nano 등 사용)
$ sudo nano .config
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
// 위 부분을 아래와 같이 수정
CONFIG_SYSTEM_TRUSTED_KEYS=""
CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-certs.pem"
// 위 부분을 아래와 같이 수정
CONFIG_SYSTEM_REVOCATION_KEYS=""
6. 커널 설정
$ sudo make menuconfig
// 다음과 같이 선택
[Load] - [0K] - [Exit] - [Yes]
7. 컴파일 전 코어 수 확인
$ grep -c processor /proc/cpuinfo
// 출력값 (CPU마다 다릅니다)
4
8. 커널 컴파일
$ sudo make -j[위에서 확인한 코어 수] && sudo make modules_install && sudo make install
// 예시
$ sudo make -j4 && sudo make modules_install && sudo make install
9. 컴파일 완료된 커널 deb 파일로 만들기
$ sudo dpkg -i {커널이미지파일명}
(참고) 이렇게 deb 파일로 만들어 두면
앞으로는 커널 컴파일 하지 마시고 아래 처럼 바로 설치해서 쓰시면 됩니다.
// 완료된 deb 파일로 커널 패치 시
$ sudo cp linux-image-*.deb /usr/src/
$ cd /usr/src/
$ sudo dpkg -i linux-image-*.deb
10. boot kernel 순서 확인
$ awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
// 아래와 같이 출력 되는 것을 확인
Ubuntu ---->> 1
Ubuntu, with Linux 5.4.0-150-generic ---->> 1>0
Ubuntu, with Linux 5.4.0-150-generic (recovery mode) ---->> 1>1
11. Intel HW ID 확인
: 출력되는 정보의 첫줄 끝부분에 있는 8086:46d0를 확인합니다. (CPU마다 정보가 다릅니다.)
$ lspci -nnk | grep -A 3 VGA
// VGA 관련 정보 확인
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:46d0]
...
12. grub 수정 후 업데이트
// 1. 편집기로 GRUB 파일 수정
$ sudo nano /etc/default/grub
// 2-1. 부팅 시 실행할 커널 순서 지정 (10번에서 확인)
GRUB_DEFAULT="1>0"
// 2-2. 부팅 메시지 숨기기
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
// 2-3. Intel HW ID 지정 (11번에서 확인)
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 i915.force_probe=46d0"
// 3. GRUB 파일 수정 및 저장 후 GRUB 업데이트
$ sudo update-grub
13. xserver-xorg-xvideo 패키지 재설치
$ sudo apt -y autoremove xserver-xorg-video-*
$ sudo apt -y install xserver-xorg-video-intel-hwe-18.04 xserver-xorg-video-fbdev-hwe-18.04
$ sudo update-grub
14. 재부팅 후 커널 버전 확인
// 재부팅
$ sudo reboot
// 커널 버전 확인
$ uname -r
// 컴파일 한 커널 버전이 출력되는 것을 확인
6.6.44
15. VGA 확인
: 모니터를 뽑은 상태에서 더미 HDMI만 꼽고 SSH로 아래 명령어를 실행해서 VGA를 확인해주세요
$ sudo lshw -c video
// logical name에 /dev/fb 가 잡혔는지 확인
*-display
description: VGA compatible controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
logical name: /dev/fb0
...
** 동일한 모델의 PC에 같은 패치를 적용하고자 한다면
9번 참고 부분부터 기존에 만들어둔 deb 파일을 이용하여 진행하시면 됩니다!
도움이 되셨길 바랍니다!