개요
운영체제 과제 중 커널 환경을 구축하는 과정을 정리해보고자 합니다.
1. ubuntu 가상 환경 구축
먼저 iso 파일을 다운로드 해야합니다.
최신 릴리즈 버전은 22.04 까지 나왔지만 과거의 자료들과 호환 안되는 패키지가 많으므로 20.04 버전을 다운로드 받아줍니다.
2. Kernel 설치
make-kpkg --initrd --revision=1.0 kernel_image 명령어로 커널 설치를 진행했지만 리눅스가 멈춰버리는 현상이 생겼습니다. 따라서 다음과 같은 방법을 설치를 진행합니다.
cd /usr/src/linux-5.15.120
make clean
make mrproper
cp /boot/config-5.15.0-78-generic ./.config
make menuconfig
make || make -j$(nproc)
sudo make modules_install
sudo make install
Java
복사
만약 설치 중 라이브러리가 없다는 오류가 나타난다면 sudo apt install [library]를 통해 설치해줍니다.
새로운 시도
grep -c processor /proc/cpuinfo
sudo make-kpkg --J # --initrd --revision=1.0 kernel_image
Java
복사
3. 설치 중 에러
Problem
Solution
sudo scripts/config —disable SYSTEM_TRUSTED_KEYS
sudo scripts/config —disable SYSTEM_REVOCATION_KEYS
sudo scripts/config —disable CONFIG_DEBUG_INFO_BTF
주의할 점은 이 때 y/? 선택지에서 ?를 선택해야된다는 것입니다.
Problem
Solution
$sudo apt-get install dwarves
맥북은 arch/arm64 이 경로에 시스템콜을 추가해야 함
→ 이는 uname -m을 통해 어떤 arm 버전을 쓰고 있는지 확인해야 함
에러 코드를 확인하는 법
#include <stdio.h>
#include <errno.h>
...
if (syscall(YOUR_SYSCALL_NUMBER, ...args) == -1) {
perror("Error calling syscall");
printf("Errno: %d\n", errno);
}
Java
복사
4. 커널 컴파일 및 업데이트
linux-5.15.120 경로에서 진행합니다.
make-kpkg --J 6 --initrd --revision=1.0 kernel_image
dpkg -i [.deb]
Java
복사
5. linux-image 버전 확인
dpkg -l | grep linux-image
Java
복사
Reference
커널 설치에 관한 내용
커널 컴파일에 관한 내용
과제1에 관한 내용