본문 바로가기

[Developer]/Android53

Linux4Android 4th Afternoon 이젠 kernel_program.tar.gz와 drivers.tar.gz를 가지고 실습한다! drivers.tar.gz kernel_program.tar.gz driver만들때 include해야할 헤더파일 init.h module.h fs.h slab.h -> kmalloc(); kfree(); uaccess.h -> 커널에 있는 데이터를 사용자 스페이스와 갖다 쓰고 싶을 때. cdev.h 혹은 bdev.h 안드로이드는 major 넘버를 254까지만 인식을 한다. MYDEV_NAME은 driver name이다. Makefile을 새롭게 만들자. 위치는 ~/SOLUTION/s_02/ 아래에 한다고 했을 때. vi Makefile Makefile vi lab1_chrdrv.c lab1_chrdrv.c 커널 .. 2010. 11. 11.
Linux4Android 4th Morning http://code.google.com/p 각 구글에 대한 프로젝트 코드를 참고할 수 있다. micro kernel - NT, Message Q monolithic kernel - Linux zImage - 통합형커널 자주사용하지 않는 것들을 모듈화 시킨다. $ lsmod 명령어 Linux Kernel의 모듈을 볼 수 있게 해준다. 커널코드하고 사용카 코드는 다르다. strace 명령어를 쓰면 intruction에 대한 추적을 할 수 있다. 참고로 ls 명령어를 추적할 수 있으면 커널에 대한 이해를 어느정도 하고 있다고 볼 수 있을 정도이다. Linux는 모든 것을 파일로 취급한다. 단 네트워크 장치만 인터페이스 이름으로 인식을 한다. libpcap -> tcpdump를 할 수 잇다. http://nt.. 2010. 11. 11.
Linux4Android 3rd Afternoon arch/arm/boot/compressed로 이동. 커널엔 main()코드가 없다. misc.c에 main()이 있다는 것은 일반코드라는 의미이다. 커널에서는 init만 한다. MMU가 설정되면 리눅스 커널은 가상주소를 기준으로 메모리맵을 사용한다. arch/arm/tools/mach-types.h Processor ID값은 cp15의 레지스터 0에 명시되어있다. mach-types.h 파일은 arch/arm/tools/mach-types를 바탕으로 자동 생성 init kernel thread에서 sys_dup()는 system call이다. Redhat이나 Ubuntu는 System V init을 쓴다. rc = Run Command의 의미이다. ↗ 파일 init=/init ↘ __setup()에 선.. 2010. 11. 10.
Linux4Android 3rd Morning Kernel tuning linux-2.6/Documentation/kernel-parameters.txt /proc/sys/kernel/* /sysctl/....vm, net 커널패치=> kernel.org/pub/libux/kernel/people/* mingo.... mcp 소스 수정(좀 안다면..) 동기화, 커널 내부구조 kernel.org 에 있는 파일을 수정하면 안된다. 이것을 수정한다고해서 절대로 성능이 좋아지지 않는다. 리누스토발즈는 안정성을 가장 우선으로 따지고 이끌어가고 있다. ftp.redhat.com -> ..... /RHEL/linux-kernel-2.6.....src와 rpm이 있다. cat /proc/sys/kernel/modprobe를 해보면, /sbin/modprobe가 이.. 2010. 11. 10.
Linux4Android 2nd Afternoon NFS는 원격에 있는 디렉토리를 내 하나의 특별한 File System처럼 보이도록 mount 시키는 작업을 하기위해 필요한 시스템이다. 커널이미지 1) bzImage : PC나 서버용 2) zImage : 일반적으로 Embedded용 3) uImage : universial -> u-boot라는 toos/mkimage 명령으로 만들어지는 이미지이다. 4) Image 5) piggy u-boot는 uImage만 인식한다. uImage는 로딩되면서 압축이 풀린다. 만약에 u-boot에서 zImage를 인식하게 하려면, u-boot에서 일정 수정을 가해야만 한다. uImage는 bootm의 매개변수를 읽을 수 있다. nfsroot를 이용하면 PC에 있는 특정 이미지를 네트워크화 시켜서 연결하여 타겟에서 PC.. 2010. 11. 10.
반응형