기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

제가 사용하고 있는 보드는 AT91SAM9M10G45-EK보드로 공부중에 있는데요... 제가 만든 커널이 부팅 도중에 멈추는 이상한 현상이 있어서 ㅠㅠ 정리 해봤습니다. 고수님들의 친절한 답변 부탁드립니다.

 

1) 리눅스 커널 2.6.30 exp Patch 그리고 마지막으로 defconfig 파일을 보드에 맞춰서 받아서 아래와 같이

Linux 폴더에 압축을 해제하여 넣어 놨습니다.

cid:image001.jpg@01CCFBA4.A024DB00

 

2) 아래 그림과 같이 PATCH를 하였습니다. (for p in 2.6.30-at91-exp.4/*; do patch -p1 < $p ; done)

cid:image002.jpg@01CCFBA4.A024DB00

 

3) defconfig 파일을 .config파일로 복사를 했습니다.

cid:image003.jpg@01CCFBA4.A024DB00

 

4) make menuconfig 명령을 통해 아래와 같이 configuration이 적용이 잘 되었는지 확인을 했습니다.

cid:image004.jpg@01CCFBA4.A024DB00

 

5) 아래와 같이 리눅스 Compile을 했습니다.

cid:image005.jpg@01CCFBA4.A024DB00

 

6) 윗 부분에서 했던 패치가 완벽하게 되지 않았기 때문에 아래와 같이 에러가 발생했습니다.

(패치 로고는 메일에 첨부함)

cid:image006.jpg@01CCFBA4.A024DB00

 

7) 에러가 난 부분을 해결하기 위해서 패치시에 제대로 되지 않았기 때문에 *.rej 파일을 찾아서 매뉴얼로 패치를 하였습니다. 패치한 파일은 at91_pmc.h clock.c파일의 rej파일을 찾아서 비교하며 수정하였습니다.

cid:image007.jpg@01CCFBA4.A024DB00

cid:image008.jpg@01CCFBA4.A024DB00

 

----- clock.c 파일에서는 아래 빨간줄로 표시한 cpu_is_at572d940hf()함수를 제거하였습니다. 이 함수의 선언이 되어 있지 않기 때문에 위와 같이 에러가 발생했기

때문에 제거하였습니다.

cid:image009.jpg@01CCFBA4.A024DB00

 

 

8) 모든 에러를 수정하여 커널을 컴파일 했습니다. 아래와 같이 커널 컴파일이 완료되어 zImage가 생성 된 것을 볼 수 있습니다.

cid:image010.jpg@01CCFBA4.A024DB00

 

9) Mkimage 명령어를 통해 uImage를 아래와 같이 만들어었습니다.

cid:image011.jpg@01CCFBA4.A024DB00

 

10) SAM-BA를 이용하여 DATA FLASH 리눅스 영역에 다운로드 했습니다.

밑에 보시는 그림처럼 DATA FLASH 0x42000 번지에 다운로드를 했습니다.

여기서 제가 uImage를 그냥 Writing한 것이 아니라 기존 Atmel에서는 리눅스 커널을 binary형태의 파일로 배포했기 때문에

제가 uImage에 단지 확장자 bin만 붙여서 아래와 같이 uImage.bin 파일을 writing하였는데, (이 부분이 좀 의심스럽습니다.)

제가 이렇게 한 이유는 atmel에서 제공하는 빌드된 커널 옆에 설명으로 uImage라고 되어있었으며 리눅스 file명령어를 통해 비교해 보니

Atmel에서 제공된 빌드 된 커널이 uImage와 같은 구조로 되어 있는 것을 확인 했기 때문입니다.

cid:image012.jpg@01CCFBA4.A024DB00

 

11) 부팅을 하면 u-boot화면이 나오고 정상적으로 되다가 아래와 같이 “Uncompressing Linux ……………….. “ 이상한 값이 출력된 후 멈추게 됩니다.

cid:image013.jpg@01CCFBA4.A024DB00

 

고수님들의 친절한 답변 부탁드립니다.


고도리

2012.03.07 22:28:27
*.200.239.234

그림이 안보이네요...ㅠ.ㅠ

laconicblue

2012.03.12 23:54:10
*.46.145.207

그림이 여전히 안 보이는 군요.

위에 진행되는 상황을 보면 이부분을 넘어 가신 것 같군요.

 

저도 atmel 의 AT91SAM9G35-EK  를  porting 했습니다.

 

 이미 아시겠지만, 초기에 거치는 파일 들은 이와 같습니다.

  1. arch/arm/boot/compressed/head.S
  2. arch/arm/boot/kernel/head.S
  3. arch/arm/boot/kernel/head-common.S ( arch/arm/boot/kernel/head.S 의 마지막에 include 됨.)
  4. start_kernel in init/main.c

"Uncompressing Linux..." 는 1번의 head.S  에서 decompress_kernel (arch/arm/boot/compressed/misc.c) 로 jump  하면 뜨는 것이니, 이미  kernel 내에 진입이 된 상태입니다. Assembly code 는 보통 잘 동작할 것으로 예상되니, start_kernel 에는 갔을 것으로 보입니다.

 

kernel 상에서는 log_buf 가 초기화 되기 전에는 일반적인 printk 는 동작하지 않으니,

early_printk 를 사용해 보시면,  start_kernel  이후의 초기화 과정중 문제가 되는 부분을 쉽게 찾을 수 있을 것으로 보입니다.

관련된 compilation flag 는 CONFIG_DEBUG_KERNEL , CONFIG_DEBUG_LL , CONFIG_EARLY_PRINTK 입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
5608 6410 sleep mode 질문 드립니다. [1] 서비 2013-05-17 1670
» 임베디드 리눅스를 보드에 타겟팅 했을 때 부팅이 되지 않는 이유는... [2] 혜민아빠 2012-03-07 1668
5606 이솝 2차 보드 나름대로 포팅 중 이해가 가지 않는 부분이 있습니... [7] 김영수 2008-01-30 1667
5605 텔레칩스 chip들에 관련 질문.... [3] 이성호 2009-07-24 1667
5604 현재 사용중인 하드웨어 추출 [2] dong880510 2014-04-07 1666
5603 잡담) 친절한 고현철님... 멍청한 나.... 지금 OTL중..... [1] 임장욱 2007-10-22 1665
5602 USB host와 gadget을 동시에 사용하는게 가능한가요? [2] 문철민 2012-05-17 1665
5601 WiFi EAP-FAST 관련 [1] 신현호 2014-04-02 1665
5600 안드로이드 터치 상하좌우 반전현상 [1] 나영찬 2011-08-03 1663
5599 고도리님 현재까지는 OpenCL은 동작은 ARM만 시킬 수 있습니다. ... [1] 김영준 2013-06-25 1663
5598 임베디드 리눅스 shutdown시에 필요한 전원 on상태의 유지시간? [2] 김민욱 2014-07-11 1663
5597 엑시노스 디코딩에 관련된 질문입니다. [3] seeman2 2012-02-19 1659
5596 gdb core dump 디버깅 질문 드립니다. [3] 석헌영 2009-09-30 1658
5595 Video와 network관련 문의드립니다. [4] 김경식 2013-06-27 1658
5594 비실시간 스케쥴링 관련 질문 드립니다. tezboy 2013-10-08 1658
5593 uboot 1.3.40을 쓰고 있는데요..파일시스템 40MB정도를 tftp를 통해... [3] 혜민아빠 2012-04-26 1656
5592 aesop-6410 board에서의 adb 사용 질문 [1] 김영문 2009-05-01 1656
5591 arm 보드에 APM 올리기 질문드립니다. [4] 은민아빠 2013-05-14 1656
5590 Odroid상에서 새로운 I2C device driver 등록하는방법 [1] 성빈아빠 2010-05-03 1654
5589 프로젝트 부품을 구하려하는데 조언부탁드립니다. [1] 시그인트 2014-02-27 1654

사용자 로그인