raspberry pi linux kernel compile
라즈베리파이에서 디바이스 드라이버를 작성하거나 커널을 수정하기 위해서는 라즈베리파이의 커널 소스를 참조하여 컴파일하기 때문에 라즈베리파이의 커널 소스를 다운 받아야한다.
라즈베리파이의 커널소스와 툴은 github에서 다운받을 수 있다.
git clone http://github.com/raspberrypi/linux.git
git clone http://github.com/raspberrypi/tools
나는 작업디렉터리를 $HOME으로 홈으로 설정하고 홈밑에 linux, tools디렉터리를 받았다.
먼저 커널컴파일과 드라이버컴파일등에 필요한 라즈베리파이커널용 컴파일러를 PATH에 등록하여 사용하기 쉽게 해보자.
/home/dorkiz/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
의 경로에 가면 툴들이 있다.
~/ 경로에 .bashrc파일에 이 툴들의 경로를 추가해준다.
그러면 환경변수에 설정되어 바로 참조할 수 있다.
그리고 라즈베리파이에 맞는 커널 컴파일 설정을 해준다.
arm-linux-gnueabi-gcc를 찾을수 없다는 에러가 떳었는데 워크피시 리눅스를 32비트 바꾸고 해결 할 수 있었다.
컴파일 설정을 해주고나면 make로 커널을 컴파일 할 수 있다.
컴파일 과정은 한 15분정도 걸린다.
컴파일이 완료되면 /home/dorkiz/linux/arch/arm/boot 디렉터리가 생성된다.
커널 Image와 압축된 zImage가 있다
컴파일된 커널 Image 파일은 바로 사용할 수 없기 때문에 kernel.img로 바꾸어 주어야한다.
이전에 받은 툴중에 로드가능한 라즈베리 파이용 커널 이미지를 만드는 툴이 있다.
/home/dorkiz/tools/mkimages/imagetool-uncompressed.py
를 사용하여 /home/dorkiz/linux/arch/arm/boot/zImage를 kernel.img로 바꾸어준다.
이제 라즈비언이 설치되어있는 SD카드 안에 kernel.img를 방금 만든 kernel.img로 교체하고 SD카드를 부팅하면 내가 컴파일된 kernel.img가 로드되게 된다.
Categories
- programming (17)
- security (46)
- study (22)
- system (35)
Recent 7 Days Popular Posts
-
BOF redhat 원정대 succubus -> nightmare nightmare, nightmare.c 코드를 보면 RET부분에 strcpy의 주소가 들어가야하고 strcpy함수가 끝나고 RET할 주소인 다음 4바이트를 AAAA로...
-
프로그램은 실행하면서 많은 함수를 호출한다. 함수가 호출되고 호출받은 함수가 실행되려면 레지스터와 스택을 사용해야 한다. 버퍼오버플로우 공격을 공부하면서 호출된 함수가 어떻게 esp (스택을 관리하는 레지스터)를 백업하는지 어떻게 스택을 독립적으로 ...
-
이 자료는 우리가 KITRI (한국정보기술연구원) 침해대응 과정 중 수료 프로젝트로 진행했던 자료이다. 취약점을 분석해논 우리나라 자료가 거의 존재하지 않았기 때문에 어떻게 분석해야 하는지 매우 막막했다. 특히 3897 취약점은 인터넷 익...
-
BOF redhat 원정대 troll -> vampire vampire, vampire.c c 코드를 보니 이전 문제에서 추가된 부분도 있고 없어진 부분도 찾을 수 있었다. 먼저 추가된 부분을 찾아보자. argv[1][46]부...
-
ARM assembly를 공부하기 위해서 bof redhat 원정대 1번 문제를 ARM환경에서 컴파일하고 단순하게 어셈블리어만 라인바이라인으로 분석해보고 x86 리눅스에서와 어떤식으로 다른지 확인 해 보았다. bof 1번 문제의 c코드 ...





0 개의 댓글:
댓글 쓰기