답변:
apt-get source
커널의 우분투 버전을 다운로드하는 데 사용apt-get source linux-image-$(uname -r)
예를 들어 다음을 포함하는 폴더를 제공합니다.
linux-3.2.0 linux_3.2.0-26.41.dsc linux_3.2.0-26.41.diff.gz linux_3.2.0.orig.tar.gz
굵게 표시된 diff에는 모든 Ubuntu / Debian 사용자 정의가 포함됩니다.
.config
"구식"데비안 make-kpkg
방법을 사용하십시오.이것은 위키에서 설명한 다른 구식 방법 입니다.
sudo apt-get install kernel-package
커널을 처음 컴파일하는 경우 :
sudo apt-get build-dep linux-image-$(uname -r)
그런 다음 cd
소스 디렉토리 (여기서 linux-3.2.0
) 로 이동하여 실행중인 커널 구성으로 파일 make oldconfig
을 작성 .config
하거나이 .config
디렉토리로 세 번째 부분 을 복사하십시오 .
텍스트 또는 그래픽 구성을 원하는지 여부에 따라 다음을 설치하십시오.
(본문)
sudo apt-get install libncurses5 libncurses5-dev
(그래픽)
sudo apt-get install qt3-dev-tools libqt3-mt-dev
그런 다음 다음을 실행하십시오.
(본문)
make menuconfig
(그래픽)
make xconfig
완료되면 다음을 실행하십시오.
fakeroot make-kpkg -j N --initrd --append-to-version=my-very-own-kernel kernel-image kernel-headers
여기서 N
병렬로 실행할 작업 수 (보통 보유한 CPU 수) my-very-own-kernel
는이 빌드를 식별하기위한 사용자 정의 문자열입니다.
완료되면 커널 이미지와 헤더 파일은 상위 디렉토리에 debs로 준비됩니다. sudo dpkg -i
GRUB 항목 추가 등을 처리하는을 사용하여 설치할 수 있습니다 .
linux-3.2.0
디렉토리 로 가서 실행 patch -p1 <../patch.diff
해야합니까?
apt-get source ...
벌써 그랬어!
fakeroot debian/rules editconfigs
, fakeroot debian/rules clean
, fakeroot debian/rules binary
정확한, 문제가없는 방법입니다.
단계는 다음과 같습니다. 이 절차는 nixCraft 의 방법 : Linux 커널 2.6 컴파일을 기반으로 하지만 상당히 현대화되었습니다.
kernel.org 에서 업스트림 커널 소스 코드를 얻을 수 있습니다 . 여기서는 버전 3.16.1 (이 글을 쓰는 시점에서 가장 안정적인 커널)이 사용됩니다. 따라서 다른 버전을 사용하는 경우 이러한 명령을 수정해야 할 수도 있습니다.
커널 소스 코드는 현재에서 제공됩니다. 타르 . xz 아카이브이므로 원하는 버전으로 "tar.xz"링크를 클릭하십시오.
cd
아카이브를 다운로드 한 디렉토리로 이동 한 후 다음 을 사용하여 압축을 풀 수 있습니다 tar
.
tar xf linux-3.16.1.tar.xz
Ubuntu의 툴체인 ( gcc
, make
등) 을 얻으려면 빌드 필수 메타 패키지를 설치하십시오 .
sudo apt-get update
sudo apt-get install build-essential
커널에 들어가는 것을 구성하는 합리적으로 사용자에게 친숙한 두 가지 방법은 make
대상 xconfig
과에서 제공됩니다 menuconfig
.
xconfig
menuconfig
텍스트 기반 의 그래픽 구성 유틸리티를 실행합니다 (예 : 인터페이스가 터미널에 완전히 표시됨). 각각에는 build-essential에서 제공 하지 않는 추가 소프트웨어가 필요합니다 .
그래픽으로 구성 하려면 libqt4-dev 및 pkg-config를 설치 하고 다음을 실행하십시오make xconfig
.
sudo apt-get install libqt4-dev pkg-config
make xconfig
터미널에서 구성 하려면libncurses5-dev
(이 정보에 대해 Hannu 덕분에)설치하고 다음을 실행하십시오make menuconfig
.
sudo apt-get install libncurses5-dev
make menuconfig
먼저 이것을 실행하여 커널을 컴파일하고 다음을 생성하십시오 vmlinuz
.
make
vmlinuz
"커널"입니다. 특히 GRUB 또는 사용하는 다른 부트 로더에 의해 압축 해제되어 메모리에로드되는 것은 커널 이미지입니다 .
그런 다음 로드 가능한 커널 모듈을 빌드하십시오 .
make modules
이러한 make
명령이 성공적으로 완료되면 새 커널을 설치할 차례입니다. 먼저 모듈을 설치하십시오 :
sudo make modules_install
그런 다음 커널 자체를 설치하십시오 .
sudo make install
vmlinuz-3.16.1
(의 사본 vmlinuz
), config-3.16.1
(커널 구성 매개 변수를 저장하는 텍스트 파일) 및 System.map-3.16.1
( 커널 기호 조회 테이블 )을에 넣 습니다 /boot
. 자세한 내용 은 Hadron 및의 comp.os.linux.misc 게시물을 참조하십시오 man installkernel
.
이 섹션은 부분적으로 커널 / 컴파일의 정보를 기반으로합니다 .
커널이 필요한 곳에는 다음이 필요합니다.
부트 로더 설정 의 항목 이므로 선택하여 부팅 할 수 있습니다.
커널이 드라이버를로드하고 파일 시스템을 마운트하는 환경 인 초기 RAM 파일 /
시스템 .
(오래된 커널을 설치하거나 최신 udev 대신 devfs를 사용 하도록 커널 을 구성한 경우 대신 초기 램 디스크 를 설정해야 할 수도 있습니다 . 대신 필요한 경우 램 디스크 를 참조하십시오 man initrd
.)
다음을 사용하여 initramfs 를 생성하십시오mkinitramfs
.
cd /boot
sudo mkinitramfs -ko initrd.img-3.16.1 3.16.1
9.10 이후 우분투에서 기본값 이었던 GRUB2 부트 로더의 구성을 업데이트 할 때 새 커널을 자동으로 감지하고 부팅 옵션을 추가해야합니다.
sudo update-grub
이제 새 커널을 테스트하기 위해 재부팅 할 수 있습니다. 설치된 다른 커널 중에서 선택할 수있는 GRUB 부팅 메뉴를 보려면 부팅하는 동안 길게 Shift누르거나 눌러야 Esc할 수도 있습니다.
커널 (또는 다른 커널)을 기본값으로 설정 하려면 GRUB 부팅 순서를 어떻게 변경합니까?를 참조하십시오 .
make menuconfig
요구 사항apt get install libncurses5-dev
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel 에서 우분투 커널 을 만드는 빠른 지침을 찾을 수 있습니다 .
전체 위키를 복사하지는 않지만 현재 설치 한 Ubuntu 커널 버전을 컴파일하는 최소 단계를 나열합니다. (최신 버전을 얻으려면 다음 Ubuntu 릴리스의 커널 git 저장소를 복제하십시오.) Ubuntu 16.04에서 테스트되었습니다.
# Get source code
apt-get source linux-image-$(uname -r)
# Install dependencies
sudo apt-get build-dep linux-image-$(uname -r)
# Compile
cd linux-4.4.0
fakeroot debian/rules clean
fakeroot debian/rules binary
# Install (obviously the versions will be different)
cd ..
sudo dpkg -i linux-image-4.4.0-38-generic_4.4.0-38.57_amd64.deb linux-headers-4.4.0-38_4.4.0-38.57_all.deb linux-headers-4.4.0-38-generic_4.4.0-38.57_amd64.deb