반응형

Kernel_2.6 8

[Linux Kernel] timer 관련 API 설명

이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. 원본출처 : https://www.ibm.com/developerworks/kr/library/l-timers-list/ 위의 게시물을 보기 편하게 편집함... 커널 API, Part 3: 2.6 커널의 타이머와 목록 작업 지연 API를 이용한 효율적인 처리 이 기사는 "커널 API, Part 2: 지연 가능 함수, 커널 태스크릿 및 작업 큐"(developerWorks, 2010년 3월)에서 시작한 작업 지연이라는 주제를 계속 다룬다. 이번에는 타이머 API(Application Programming Interface)와 모든 작업 지연 스키마의 핵심 요소인 커널 목록 구문에 대해 설명한다. 또한 타이머 및 기타 작업 지연 메커..

SW 개발 2012.03.29

[Linux Kernel] 리눅스 커널빌드시 ouput 디렉토리 지정하기

이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. 리눅스 커널빌드시에 오브젝트 및 vmlinux 이미지를 원하는 디렉토리에 떨어지게 할수있다. O 옵션을 사용 O 옵션을 사용 출처 : http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/ch05s04.html ## Source in one place, output in another Sometimes it is easier to have the source code for the kernel tree in a read-only location (such as on a CD-ROM, or in a source code control system), and..

SW 개발 2012.01.31

[Linux Kernel] spi 드라이버 커널 컴파일 옵션에 추가하기

이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. Step1. Driver/spi 내의 kconfig 추가 Step2. make menuconfig 에서 SPI 메뉴 확인하기 Step3. spidev 드라이버 옵션 키기 Step1. Driver/spi 내의 kconfig 추가 make menuconfig 할때 준 옵션으로 해서 kernel 내의 디렉토리네에 특정 arch 디렉토리 드라이버 내의 Kconfig 를 사용할것이다. 이때 그 Kconfig 내에서 적당한 위치에 아래의 내용을 추가한다. source "drivers/spi/Kconfig" Step2. make menuconfig 에서 SPI 메뉴 확인하기 Step1. 의 설정을 제대로 하였다면, make menuconfig..

SW 개발 2011.04.21

[Linux Device Driver] Platform Device Driver 등록, 해제

이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. Linux Device Module platform device와 platform_drier의 선언 및 등록 Linux Device Module Linux Device Driver를 작성하다보면 드라이버를 모듈로 작성하여 관리할 때가 있다. 혹은 초기 작성 및 테스트 시 모듈로 컴파일하여 Test를 진행해야 할 때도 있을 것이다. Linux의 버전이 2.6.xx대로 접어들면서 생긴 가장 큰 변화중의 하나가 platform device driver라는 개념이다. 임베디드 환경에서 대부분의 경우 platform device는 정적으로 할당되어 커널의 시작과함께 계속적으로 메모리내에 상주하다가 단말기의 전원 차단과 함께 종료된다. 하지..

SW 개발 2010.10.04

[Linux Device Driver] Rebis 보드 리눅스 콘솔 tty0 에서 tty1로 바꾸기

Rebis 보드 기준.. 1.menuconfig에서... 수정하기 2.struct platform_device 수정 3./dev/tts/0 -> /dev/tts1로 바꾼다. 이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. 1.menuconfig에서... 수정하기 console=ttySAC1 로 바꾼다. (음..하지만 별로 영향을 안미치는듯.) 2.struct platform_device 수정 그리고 drivers/serial/s3c2410.c 에 있는 s3c24xx_serial_initconsole()에서 struct platform_device *dev = s3c24xx_uart_devs[0] -> [1]로 바꾼다.(원래 코드자체에 변수가아닌 숫자가 들어가있다.) 그다음 ra..

SW 개발 2010.08.12

[Linux Kernel] rebis 보드 nand로 부팅하기..

램디스크 파일 시스템이 아니라 mtd 로 부팅하기.. (rebis 보드기준) 이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. 수정 사항들... root filesystem의 이미지를 Nand flash에 카피해야 하니 일단 램디스크로 부팅하도록한다. 수정 사항들... mount -t yaffs /dev/mtdblock4 /mnt yaffs 마운트 한다음에 데스크탑 컴퓨터에서 우리가 기존에 가지고 있던 ramdisk.gz (잘만들어진 root filesystem 이미지) 를 마운트 시키고 그안에 있는 모든 것을 nfs를 통하여 보드의 /mnt에 카피시킨다. umoount /mnt 이제 mtdblock4 에 해당되는 곳의 nandflash에 root filesystem이 구축되었다..

SW 개발 2010.08.12

[Linux Kernel] 원하는 메모리 공간에서 리눅스 커널 동작시키기

rebis 보드에서 커널로딩, 동작메모리 수정한내역정리 이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. 메모리 구역수정을 위한 커널수정 (rebis 보드 기준) 메모리 구역수정을 위한 커널수정 (rebis 보드 기준) include/asm-arm/arch-s3c2410/map.h 에서 s3c2410_cs6 를 수정한다. 부팅시 boot_param 으로 사용하게 된다. ram영역은 메모리 뱅크 6번에 링크되어있음. include/asm-arm/arch-s3c2410/memory.h 의 PHY_OFFSET 를 수정한다. - 커널단에서 여러가지로 쓰는 매크로 (특히 메모리 주소결정시 많이쓰이더군요?) arch/arm/mach-s3c2410/Makefile.boot 수정 요기에있는 주..

SW 개발 2010.08.12

[Linux Device Driver] 레비스보드용 2.6 커널 디바이스 드라이버 제작하기..

먼저 makefile 작성 드라이버 예제소스코드 먼저 makefile 작성 make file CC = arm-linux-gcc obj-m+=button_dev.o // 만들 목적파일!!!!! KDIR=/root/my_kernel_test/my_kernel_source/linux-2.6.17.13-rebis // 커널 소스!!!! PWD:=$(shell pwd) default : $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules 흠;;; 기본적으로 CC 하고 obj-m 으로 등록한다음 MAKE 옵션으로 컴파일!!! 그담에 소스코드작성. 먼저 2.6 커널용 드라이버를 작성하기 위해서 꼭 포함시켜야 할 해더 파일들입니다. (귀찮으니 그냥 다 붙여서 코딩추천ㅋㅋ) #include #in..

SW 개발 2009.02.26
반응형