소스(예: 3.19.3 커널 버전)에서 Linux 커널을 컴파일하려고 합니다. 다음 명령을 실행하여 컴파일했습니다.
먼저 추출합니다
tar -xvf linux-3.19.3.tar.xz
해당 디렉토리로 변경
cd linux-3.19.9
sudo make menuconfig
아무것도 바꾸지 않았어
sudo make -j4
sudo make install-modules install
나는 주어진 지시를 따랐다.여기
재부팅 후 다음 메시지가 표시되고 initrafms에 삭제됩니다.
루팅된 기기를 기다리지 마세요. 일반적인 문제:
- 시작 매개변수(cat /proc/cmdline)
- rootdelay=를 확인하십시오(시스템이 충분히 오래 기다렸습니까?)
- 루트 확인= (시스템이 올바른 장치를 기다리고 있습니까?)
- 모듈 누락(cat /proc/modules; ls /dev) 경고! /dev/disk/by-uuid/50ec5956-06a0-41b1-9315-0a68fd15270a가 존재하지 않습니다.
껍질이 떨어졌어요!
비지박스...
이 화면이 나타납니다. 어떻게 해야 합니까? 이 오류를 방지하려면 커널을 어떻게 컴파일해야 합니까?
답변1
커널 컴파일이 완료된 후 명령을 실행하여 depmod -a
디렉터리의 모듈 순서를 새로 고쳐야 합니다./lib/modules/<kernel_version>
답변2
make 명령을 실행하기 전에 linux-3.19.3 디렉터리로 변경하신 것 같습니다. 그리고 이 버전의 커널은 컴파일하고 설치하기 전에 이미 실행 중인 것처럼 보입니다.
grub을 사용하여 이전 커널로 부팅해 보십시오(rescue를 사용하는 동일한 커널은 작동하지 않을 수 있음).
Ubuntu 시스템에서 일반 소스 코드를 사용하는 것은 나에게 결코 효과가 없었습니다. 작동할 수도 있지만 Ubuntu 커널의 소스 코드에서 시작하는 것이 좋습니다.
sudo apt-get source linux-image-3.19.3
sudo apt-get build-dep linux-image-3.19.3
커널이 설치의 나머지 부분과 더 잘 호환되도록 패키지로 다시 빌드하고 설치합니다.
설치된 소스 트리의 루트로 변경하고 다음을 수행합니다.
fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic
그러면 설치할 수 있는 데비안 패키지가 제공됩니다 dpkg
.
세부정보 확인 가능여기