먼저 커널을 컴파일하기 위해 root의 권한을 가져야한다.
시스템에 root로 로그인하거나 su를 사용해 root가 된후 다음 절차를 시작한다.
보통의 커널은 /usr/src 밑에 위치하게 된다.
필자는 여기에 각 버전 번호를 가지고 디렉토리를 만들고 각각에 압축을 풀어
놓고 사용 중이다. 현재 사용되고 있는 커널 버전을 linux란 이름으로
링크시켜 놓고 사용 중이다.
즉 /usr/src/linux는 현재 사용되고 있는 커널을 가리키게 된다.
[root@localhost src]# ls -l
lrwxrwxrwx 1 root root 12 12월 24 15:23 linux -> linux-2.4.16
lrwxrwxrwx 1 root root 14 12월 24 15:22 linux-2.4 -> linux-2.4.7-10
drwxr-xr-x 14 root root 8192 2월 5 11:00 linux-2.4.16
drwxr-xr-x 16 root root 4096 12월 24 15:22 linux-2.4.7-10
drwxr-xr-x 7 root root 40 12월 24 15:21 redhat
이렇게한 이유는 /usr/include에 linux와 asm 이란 리눅스 커널 소스코드
내의 디렉토리를 링크하게 되어 있는데 사용하는 커널 버전이 자주 바뀌거나
여러 커널을 같이 사용 중이라면 변하지 않는 패스를 사용하지 않는 한엔
linux와 asm의 링크가 자꾸 변하게되 불편을 감수해야하기 때문에 이 두 링크는
언제나 /usr/src/linux/include/linux와 /usr/src/linux/include/asm을
가리키도록 해놓고 /usr/src/linux만을 변경해 주도록 했다.
[root@localhost include]# ls -l linux asm
lrwxrwxrwx 1 root root 26 1월 17 10:46 asm -> /usr/src/linux/include/asm
lrwxrwxrwx 1 root root 28 1월 17 10:45 linux -> /usr/src/linux/include/linux
압축을 풀기 전에 주의해야할 것은 압축된 커널의 소스코드는 모두 linux란
이름의 디렉토리로 시작하므로 만약 /usr/src에 linux란 링크나 디렉토리가
있는 상태에서 여기에 압축을 풀어버리면 다른 버전의 코드를 엎어쓸
가능성이 있으므로 조심해야한다.
우선 /usr/src/linux의 링크를 없애고 tar를 사용해 압축을 푼 후
/usr/src/linux를 해당 버전으로 바꿔준다. 절차는 다음과 같다.
1.4. 소스 코드 풀기
먼저 커널을 컴파일하기 위해 root의 권한을 가져야한다. 시스템에 root로 로그인하거나 su를 사용해 root가 된후 다음 절차를 시작한다.
보통의 커널은 /usr/src 밑에 위치하게 된다. 필자는 여기에 각 버전 번호를 가지고 디렉토리를 만들고 각각에 압축을 풀어 놓고 사용 중이다. 현재 사용되고 있는 커널 버전을 linux란 이름으로 링크시켜 놓고 사용 중이다. 즉 /usr/src/linux는 현재 사용되고 있는 커널을 가리키게 된다.
이렇게한 이유는 /usr/include에 linux와 asm 이란 리눅스 커널 소스코드 내의 디렉토리를 링크하게 되어 있는데 사용하는 커널 버전이 자주 바뀌거나 여러 커널을 같이 사용 중이라면 변하지 않는 패스를 사용하지 않는 한엔 linux와 asm의 링크가 자꾸 변하게되 불편을 감수해야하기 때문에 이 두 링크는 언제나 /usr/src/linux/include/linux와 /usr/src/linux/include/asm을 가리키도록 해놓고 /usr/src/linux만을 변경해 주도록 했다.
압축을 풀기 전에 주의해야할 것은 압축된 커널의 소스코드는 모두 linux란 이름의 디렉토리로 시작하므로 만약 /usr/src에 linux란 링크나 디렉토리가 있는 상태에서 여기에 압축을 풀어버리면 다른 버전의 코드를 엎어쓸 가능성이 있으므로 조심해야한다.
우선 /usr/src/linux의 링크를 없애고 tar를 사용해 압축을 푼 후 /usr/src/linux를 해당 버전으로 바꿔준다. 절차는 다음과 같다.
cd /usr/src
rm -f linux
tar xvjf somewhere/linux-2.4.16.tar.bz2
mv linux linux-2.4.16
ln -s linux-2.4.16 linux
Recent Posts
Archive Posts
Tags