태그: Linux

0

Device Tree 문법

Device Tree란 ?단적으로 표현하면, 일정한 형식(문법)을 갖춘 텍스트를 이용하여, hardware(SoC, Board)를 기술하는 것을 말함.이와 대비되는 기존의 방식으로 platform device 기반의 board 기술 방식(C coding)이 있었음. <등장 배경 및 기존 방식의 문제점> 1) SoC 혹은 board 별로 독자적

0

Android Kernel 가상 마우스 드라이버 구현하기

개요 가상 마우스 동작 방식은 다음과 같다. App이 마우스 동작의 좌표 정보를 sysfs노드인 /sys/devices/platform/virmouse/vmevent를 거쳐 가상 마우스 드라이버(virmouse.c)에 통지한다. 가상 마우스 드라이버는 evdev를 거쳐 이동 정보를 사용자 영역으로 보낸다. evdev란 범용 입력 이벤트 드라이버를 뜻한다.

0

Android NDK를 사용해서 kernel드라이버 사용하기

kernel의 드라이버를 쓰기 위해서는 driver 장치 파일의 write 권한이 있어야 한다.기본적으로 장치 파일의 write 권한은 플랫폼 소스에서 부팅시 *.rc파일을 수정해서 변경 가능하다. 여기서는 앱에서 write 권한을 취득하는 것부터 시작한다. 앱이 파일의 접근 권한을 변경하기 위해서는 su권한이 있어야 한다. 12345678910111213

0

Android Kernel 빌드 옵션

make config 텍스트 기반 설정 방식 모든 옵션을 하나씩 보여주고 yes, no, module 중에 하나의 옵션을 선택 → 많이 불편함 make menuconfig 텍스트 메뉴 방식 ncurses에 기한반 GUI툴 화살표와 스페이스 바를 이용하여 옵션 설정 편리하고 가장 많이 사용 → 실제로 거의 이 모드를 사용한다. 설정 이후 저장하게 되면

0

Android Kernel compile

make 아래 설명될 이미지를 모두 만든다. make image compress되지 않은 Kernel 이미지 arch/arm/boot/image에서 찾을 수 있음 make zImage compress된 kernel 이미지 arch/arm/boot/zImage에 존재 make clean object 파일을 지우기 위한 명령어 make module m

0

Android Kernel Moduel

Kconfig Tree 구조로 된 configuration option들의 집합이며 모든 menu entry들은 자신만의 종속성을 가지고 있다. child entry는 parent entry가 보기 가능할 때만 보여진다. → 종속성 Menu entry들은 config option을 정의하고 있다. Menu attribute 모든 config optio

0

Android Kernel 주요 디렉토리

Kernel 주요 디렉토리Top Kernel의 Top디렉토리는 kernel을 빌드하기 위한 Makefile을 가지고 있으며 모든 빌드 동작은 이 디렉토리에서 시작된다. arch Architecture 즉 프로세서(CPU), Soc(AP) 및 타깃 보드 관련된 소스가 구현된 디렉토리이다. 각 CPU별 디렉토리를 가지고 있으며, ARM프로세스 관련 소스는 a

0

Android Kernel Message

printk() 메시지 기록 관리를 위한 로그 레벨의 지정이 가능하다. kernel뿐만 아니라 응용프로그램의 init process도 printk()를 사용한다. logcat은 init가 구동하기 때문에 init는 printk()를 사용. 원형 큐 구조의 관리, 출력 디바이스의 다중 지정이 가능하다. 콘솔에서 확인하거나 dmesg 명령을 사용해서 로그파

0

Android Kernel System Memory Model

Android System Memory Model Linux/Android에서는 가상 메모리를 각 Process 마다 4GB씩 할당 받는다.(32bit 기준) Process의 각 유저 영역은 물리 메모리에 독립적으로 지정된다. Kernel 영역은 물리 메모리에서 공유된다. 공유 가능 영역 공유 가능 영역은 Kernel 공간이기 때문에 Android에서는

0

Android 기반 커널

개요 Hardware System을 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위한 기능과 서비스를 제공하는 System Software이다. 실행되는 응용 프로그램들이 Memory, CPU, I/O장치 등의 자원들을 사용할 수 있도록 만들어 주고 공통적으로 사용할 수 있는 Service를 제공한다. Process 관리 Process 생성, 제거, Pr