==================================Outline====================================
라즈베리파이 커널 업데이트 내용 확인
----------------------------------------------------------------------------
'uname -r‘을 입력하여 현재의 버전 정보를 보자. 커널이 업그레이드 된 것을 알 수 있다.
3.18.7-7+ --> 4.1.10-v7+
커널을 업데이트한 이유는 커널 프로그램을 작성하기 위해서이다.
커널 프로그램은 운영체제에 속한 최상위 프로그램이기 때문에 오류가나면 전원을 뽑는 것 이외에는 방법이 없다.
레지스터는 CPU에 따라 모양이 바뀐다.
//porting작업은 기존의 같은 내용을 복사해 사용하고 수정된 내용만 덮어씌운다.
/usr/src/linux/arch에 들어가면 CPU의 소스들이 저장되어 있다.
intel : ia64, x86
arm 디렉토리에 들어오면 mach-'제조사‘로 된 디렉토리들을 볼 수 있다.
mach-bcm2709폴더 들어가서 파일들을 살펴보자. ARM CPU를 컴파일하게 되면 해당 폴더에 있는 파일들이 동작하게 된다.
make프로그램은 컴파일 시 변동된 부분만 컴파일하도록 해주는 프로그램이다.
menuconfig 창을 띄워보자.
'apt-get install ncurses-dev'
'make menuconfig'
config파일은 해당 설정을 저장해놓은 파일들이다.
joinc에서 Linux 커널에서의 디바이스 드라이버 작성
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Embedded/Documents/WritingDeviceDriversInLinux
linux에서 커널을 프로그램을 만드는 방법은 두 가지이다.
1. 직접 커널을 건드려 만든다.
2. 모듈을 사용하여 만든다.
이 모듈을 device driver라고 하고 linux에 사용되는 모듈을 lkm(Linux Kernel Module)이라고 한다.
CPU내에는 메모리를 관리해주는 MMU(Memory Management Unit)가 필요하다.
커널에서 프로그램을 작성하면 실제 메모리를 사용하게 된다. 이 실제 메모리를 kernel메모리라고 한다.
사용자가 장치에 내리는 모든 명령어는 커널을 통해 수행된다.
//키보드 보안 프로그램은 키보드 후킹을 감시하는 역할을 한다.
... 그래서 디바이스 드라이버를 배울 필요가 있다.
kernel에 모듈을 올리는 함수는 'insmod', 모듈을 삭제하는 함수는 ‘rmmod'이다.
'Busan IT > 로봇제어' 카테고리의 다른 글
PWM을 사용한 LED dimming, 스크래치 (0) | 2015.10.20 |
---|---|
교재 훑어보기, 라즈베리파이2와 파이선을 활용한 코딩 (0) | 2015.10.20 |
모듈 파라미터 장치, 드라이버의 형식 (0) | 2015.10.16 |
linux 커널 프로그램 작성 #1 (0) | 2015.10.15 |
ARM 레지스터, gcc kernel 업데이트 (0) | 2015.10.15 |