2023. 5. 6. 01:25ㆍ카테고리 없음
$ cd linux-5.15.65 $ make x86_64_defconfig $ make all $ sudo make modules_install $ sudo make install
0. 패키지 설치 && make clean && 리눅스 소스코드
make clean으로 이전에 수행했던 컴파일과정에서 생성된 오브젝트 파일, 커널, 임시파일, 설정값을 삭제할 수 있다.
리눅스 소스코드는 wget으로 받을 수 있다
- make menuconfig
config를 하면 기초적인 모듈만 올라가기 때문에 .config를 세팅하지 않으면 모듈이 올라가지 않는다
를 하면 GUI로 세팅할 수 있다. 이 방식의 장점은 각 설정값들의 의존관계를 볼 수 있다는 것이다.
의존성이 있는 부분들의 세팅을 바꿔주고 설정을 하면 에러날 일이 적다
2. make menuconfig에 들어가면 기존의 config 중 하나를 load 해야한다
/boot에 가면 기존 리눅스 config파일들을 찾을 수 있는데 이들 중 하나를 갖고온 후에 수정을 하는게 좋다
3. 원하는 모듈이 있는지 검색한다. 가령 f2fs 파일 모듈을 원한다면
로 검색하면 있는지 확인할 수 있다. m이 표시되어 있으면 모듈이 있다는 것이다
** 커널 이름은 CONFIG_LOCAL_VERSION에서 변경할 수 있다
4. 이 과정이 마치면 디렉토리에 .config 파일이 생긴다. 그리고 이 파일이 디폴트 설정 파일이 된다.
5. make -j
make를 하게 되면 커널이 컴파일 된다. -j option에 들어갈 코어 수는 /proc/cpuinfo로 볼 수 있따
6. make modules
커널 모듈이 컴파일되고 설치된다. 커널 모듈은 /etc/modules에 설치된다
7. make modules_install
/etc/modules를 보고 /lib/modules에 모듈들을 복사해준다.
make INSTALL_MOD_STRIP=1 modules_install -j <cpu 갯수>
를 사용하면 불필요한 정보를 제거한 후 모듈을 설치하고 커널을 설치한다
8. sudo make install
bootstrap에게 새롭게 바뀐 설정을 알려준다
9. sudo reboot now
reboot 후에는 해당 커널로 커널을 변경할 수 있다
10. module 확인, 적재
vim .config에서 f2fs를 찾아봐서 m이라고 적혀있으면 모듈로 된 것이다
11. make fs/f2fs/
이런식으로 하면 이 디렉토리만 컴파일해서 모듈로 사용이 가능하다
12. lsmod | grep f2fs
lsmod 명령어는 리눅스 커널에 있는 모듈들의 정보를 알려준다
그냥 lsmod만 사용하면 모든 모듈을 확인할 수 있다
13. sudo insmod f2fs.ko
insmod로 모듈을 리눅스 커널에 삽입할 수 있다
14. sudo rmmod f2fs
모듈을 리눅스 커널에서 삭제한다
15.
특정 모듈을 재컴파일해서 올리고 싶으면 rmmod로 모듈 삭제한 후에 다시 올려주면된다
+
커널이 안바뀌면
vim /etc/default/grub 여기를 확인해보면 된당...