사용 가능한 모든 드라이버로 Linux 커널 컴파일

사용 가능한 모든 드라이버로 Linux 커널 컴파일

휴대용 USB 스틱용 커널을 컴파일 중입니다. 이는 컴파일되는 시스템뿐만 아니라 모든 하드웨어에서 실행되어야 함을 의미합니다. 커널 구성에서 무엇을 선택해야 합니까? make allyesconfig이것이 적합합니까?

만일을 대비해 이렇게 하는 이유는 내 OS(Debian Stretch)의 기본 커널에 필요한 최신 드라이버가 포함되어 있지 않기 때문입니다(일부 2019 Lenovo 노트북에 대한 터치패드 지원은 5.1에서만 제공됨).

답변1

사용자 정의 커널을 컴파일할 필요는 없으며 관련 커널 모듈을 initramfs에 추가하기만 하면 됩니다. 내 프로젝트에서는 로드할 각 모듈을 나열하는 initramfs-tools 폴더에 "modules"라는 파일을 만든 다음 실행했습니다.

mkinitramfs -o "initrd.img" initramfs-tools

그것을 구축합니다.

자세한 내용은 여기에서 확인할 수 있습니다.http://manpages.ubuntu.com/manpages/trusty/man8/initramfs-tools.8.html


데스크톱 환경에만 적용하려는 경우 /etc/modules파일을 편집하여 모듈을 추가하여 시작 시 모듈을 자동으로 로드할 수 있습니다.

답변2

make allyesconfig메인 커널에 가능한 한 많은 드라이버를 구축하면 엄청난 커널 파일이 생성됩니다. 설명하다 <kernel source>/Documentation/admin-guide/README.rst:

불필요한 드라이버가 있으면 커널이 더 커지고 경우에 따라 문제가 발생할 수 있습니다. 존재하지 않는 컨트롤러 카드를 검색하면 다른 컨트롤러가 혼동될 수 있습니다.

반품:

"커널 해킹" 구성 세부 사항은 종종 더 크거나 느린 커널(또는 둘 다)을 초래하거나 심지어 커널 문제(kmalloc())를 찾기 위해 잘못된 코드를 적극적으로 깨뜨리려고 일부 루틴을 구성함으로써 커널의 안정성을 떨어뜨립니다. 따라서 "개발", "실험" 또는 "디버그" 기능에 대한 질문에는 "n"으로 대답해야 합니다.

make allmodconfig가능한 한 많은 드라이버와 로드 가능한 모듈을 구축하면 make allyesconfig.

하나를 잡는 것을 고려해 볼 수도 있습니다.linux-config데비안 테스트의 패키지또는스트레칭에서 뒤로 이식됨거기서 커널 구성을 선택합니다. 이는 5.1에서 몇 가지 커널 버전에 불과하므로 이 구성으로 실행하는 것이 너무 어렵지 않아야 하며 make oldconfig버전 4.20, 5.0 및 5.1에 추가된 커널 기능을 결정하기 전에 도움말 텍스트를 읽어 보십시오.

데비안의 커널 패키지는 이미 가능한 한 일반적으로 구성되어 있어야 하며, 이를 새로운 커널 구성의 기초로 사용하면 시스템 콘솔 관련 디버깅 기능이나 설정과 관련된 몇 가지 함정을 피할 수 있습니다. 사용 가능한 시스템 콘솔 드라이버가 없기 때문에 실패한 커널 구성을 디버깅하는 것은 특별한 문제입니다.

관련 정보