진행 1번
커널 설치를 완료하였다. 버전은 5.4.51 7+
사실 이전에 시스템 호출 관련 코드를 작성하다가 rm을 잘못 눌러서 복구를 시도했지만 잘못 복구하다가 다른 지워진 파일들이 복구되면 시스템이 망가질것 같아서 ㅠㅠ 다시 깔아야하는 사태가 발생했다. (내시간이 많이 낭비 되어서 안타까웠다.)
설치 방법: git clone 을 통해서 다운을 받으면 됩니다. 용량이 24Gbyte
TMI : 60기가 짜리 마이크로칩에 라즈비안을 설치한다음 사용하시면 저쳐럼 여러번 라즈비안을 까는 수고는 줄어들것 같습니다.
나올법한 에러나 문제점 :
문제 1 :git clone 시 아이디 비번을 쳐야된다. 해결방법은 인터넷에 들어가서 github 로그인 상태에서 일을 진행하거나 ssh 키를 다운받거나. 내 저장소에 관련 파일을 내것으로 복사해서 사용하는방법으로 총3가지 방법이 있다. 제가 선호하는 방법은 1번이다.
문제 2 :git clone 시 용량 문제로 전체 다운받다가 에러가 발생한다.
git config --global core.compression 0
git clone --depth 1 <repo_URI>
git fetch --unshallow
git pull --all
저는 위 방법을 사용해서 설치를 하였다. 그리고 이것 외에 다른 여러가지 사용법이 있는것 같다.
진행 2번
설치한뒤 커널 빌드옵션을 선택 해야한다.
방법 :
mrproper
menuconfig
dep -->이것은 자동으로 수행되어서 따로 할필요없다.
bzImage
modules
modules_install
depmod -->이것은 자동으로 수행되어서 따로 할필요없다.
TMI : 저는 최근 설치 할때 module 설치가 invaild라고 되어 있었는데 menuconfig 실행후 잘 찾아보시면 관련 설정하는법이 나와있었습니다.
진행 3번
커널 모듈 프로그래밍을 하엿습니다.
방법:
hello_module.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
//MODULE_LICENCE("Dual BSD/GPL");>> 라이선스 부분인데 다른 찾아본 동영상들 같은 경우 이부분이 없어서 굳이 필요없는 부분이라고 판단하여 지웠습니다.
static int initModule(void){
printk(KERN_INFO "hello module\n");
return 0;
}
static void cleanupModule(void){
printk(KERN_INFO "good bye module\n");
}
module_init(initModule);
module_exit(cleanupModule);
Makefile
만들기 관련 코드를 한파일 안에 만드셔서 make를 하시면됩니다.
linux/module.h 헤더파일이 없어서 직접 작성하는 방법이 있는것 같았지만 저는 그냥 설치해서 진행하였습니다. 설치 방법은 아래와 같습니다.
sudo apt-get install raspberrypi-kernel-headers
'리눅스 > 라즈베리파이' 카테고리의 다른 글
라즈베리파이 gpio led 시스템 레지스터 메모리 맵 입출력 방식 (0) | 2020.09.03 |
---|---|
Raspberry pi 시작 & 활용 [회사TIP] - 간단 핵심 (0) | 2020.07.24 |