커널 수정 공부시.
기본 커널 ( 수정되지 않은 커널 ) 과 특정 보드에 맞춰서 수정된 커널을 가지고 비교해가며 어떤 위치를 수정 해야 하는지 공부해 본다.
arch , driver 폴더의 내용이 많이 수정....됫던거 같다.
각 폴더 내부에는 Makefile 과 Kconfig 파일이 존재 하는대 커널 수정하여 특정 드라이버를 추가하는 작업 등을 할때는 해당 폴더가
위치하는 상위 폴더에 Makefile 과 Kconfig 파일을 수정한다.
특히 Kconfig 파일을 수정하면 Make menuconfig 시에 선택하는 메뉴를 추가하거나 삭제하거나 내용을 수정이 가능하다.
각각을 수정하고 나면 커널 이미지 생성을 위해 make 를 수행한다. make 를 통하여 커널 이미지가 생성되면
커널이미지를 해당 보드에 퓨징하고 부팅시켜 부팅로고를 살펴본다. 부팅로고에서 수정한 드라이버의 활성화 여부등을 확인하고
이상없이 동작 한다면 커널 소스 폴더에 .config 파일이 존재하는대 해당 파일을 복사해서 따로 보관하고 있다면 다음번 커널 수정 작업시
약간은 유용하게 사용 가능 할 것 같다.
드라이버 작성시 해당 보드의 회로도와 해당 디바이스의 데이터 시트를 참고하여 각 핀의 연결 상태, state 등을 확인하여 작성한다.
무작정 작성하면 무지하게 고생 한다.
라이브러리 크로스 컴파일시.
각종 라이브러리를 특정 보드에서 사용하기 위해서는 크로스 컴파일이 필요하다. 무작정 컴파일을 시도했을경우 안되는 경우가 많다.
따라서 몇가지를 먼저 살펴 본 후 컴파일을 시도한다.
가장 먼저 자신의 크로스 컴파일러의 설치위치. 아무생각없이 ./configure , make , make install 을 시도하면 해당 보드에서 동작 안될
가능성이 높다. 따라서 ./configure 시 옵션 설정으로 크로스 컴파일러를 지정해두는대 이때 profile에 지정해 두었다면 경로를 따로
알고 있을 필요가 없을수도 있다. 상황에 맞게 하면된다. 컴파일러 위치를 알아 두었거나 profile 에 지정해 두었다면 configure 시
지정 가능한 옵션들을 살펴본다. 때에 따라서는 컴파일시 다른 라이브러리를 포함하여 할수도있고 아닌경우도 있기에 우선 적으로
확인해하여 옵션에서 제어가 가능하다면 옵션을 주는것이 좋다. 또한 각 라이브러리 별로 configure 옵션도 다 다르니 컴파일 전
확인할 필요가 있다.
'programing!!!! > 임베디드' 카테고리의 다른 글
| 잡다한 내용 (0) | 2011/06/28 |
|---|---|
| 80x86 메모리 주소 (1) | 2010/08/17 |
| C의 변수 와 메모리 (0) | 2010/08/02 |
| 포인터에 관한 진실 (0) | 2010/07/22 |
| 하드웨어 접근 및 비트연산 (0) | 2010/07/19 |
| 임베디드 시스템 이란 ? (0) | 2010/07/18 |
