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

안녕하세요.


Kernel을 컴파일하다가 이상한일을 겪게 되었는데 혼자서는 힘들어서 염치불구하고 게시판에 물어보게되었습니다.


상황은 이렇습니다.


하나의 Kernel Source가 있습니다. 똑같은 config을 하고 kernel을 컴파일하면 kernel/arch/arm/boot/ 디렉터리에 Image 파일이랑 zImage이 파일이 생성이 됩니다.


이렇게 생긴 Image파일이랑 zImage랑 백업폴더에 백업을 해둡니다.


그다음에 Kernel 디렉터리에서  make distclean, make mrproper을 하고 다시 첫번째와 동일하게 config 설정을 하고 


다시 Kernel을 Compile합니다. 두번째의 Compile에서도 역시 kernel/arch/arm/boot/ 디렉터리에 Image파일이랑 zImage파일이 생성됩니다.


그런데 이렇게 각각 생긴 생긴 Image파일끼리 hex 데이터를 비교하고 zImage파일끼리 hex데이터를 비교하면 다른 파일로 나타납니다.


44444444.png


위의 그림은 Image를 Ultra Edit 로 비교한 모습입니다. 


hex 데이터를 까보니 시간정보가 들어가져 있는 부분이 있었습니다.



 

이렇게 된 경우라면 같은 Kernel Source를 가지고 컴파일을 하는 사람에 따라서 다른결과가 나올 수 있는 것 같은데요. 


이런 현상을 막을려면 어떻게 해야하나요?






이동희

2014.11.07 18:46:24
*.90.129.146

kernel/scripts/mkcompile_h 파일에서

kernel을 build 한 host 정보와 build time을 갖고 kernel에 version정보로 추가 됩니다.

또한, 같은 시간이라도 다른 host 및 user가 달라져도 해당 정보로 인하여 달라집니다.

kernel/scripts/mkcompile_h 파일에서

TIMESTAMP=$KBUILD_BUILD_TIMESTAMP 에서 build time 정보를 구합니다.

TIMESTAMP 항목을 고정된 문자열로 대치를 하면 됩니다.

xoduddk123

2014.11.07 23:38:12
*.216.145.10

안녕하세요?

댓글에 말씀해주신것처럼 kernel/scripts/mkcompile_h 에 가서 보니 TIMESTAMP가 있었습니다. 더불어 이러한 TIMESTAMP값을 바꿔주면 kernel/include/generated/compile.h의 헤더정보가 자동으로 바껴지는것도 알아내었습니다.


아래의 사진은 차례로 kernel/scripts/mkcompile_h 와  컴파일완료후 kernel/include/generated/compile.h의 내용입니다. TIMESTAMP값은 쉽게 알아볼수있도록 시간값을 모두 1로 통일 시켰습니다.1111.png

333333.png


이렇게 컴파일을 하여도 적용전과 적용후를 비교하였을때의 arch/arm/boot/Image의 시간정보값은 저 TIMESTAMP값이 아닌 현재 컴파일된 시간값으로 써졌습니다. 아래의 사진은 적용 전과 적용후를 비교한 모습입니다.

555.png


이상해서 컴파일하여 나온 zImage로 통하여 부팅한후 uname -a 명령어를 통하여 시간값도 Image에 써진 시간값으로 나오는지 확인하였는데 uname -a 로 본 시간값이 TIMESTAMP에 적은 시간으로 반영이 되어있었습니다.

888.png


해본 결과 TIMESTAMP에 적힌 값은 Image의 바이너리파일에 적히는 시간과는 다르게 적용되는것 같은데 다른 방법은 없을까요  ? ? ?









첨부
List of Articles
번호 제목 글쓴이 날짜 조회 수
6148 [directFB] 폰트 아웃라인 관련... [2] 프리챌 2014-12-04 891
6147 S5PC110 wince 관련 질문 [4] 고도리 2014-12-01 702
6146 i2c-1 포트로 두개의 슬레이브를 제어하려고합니다 질문좀요 [2] 문철민 2014-11-28 664
6145 full hd 동영상 재생 가능한 리눅스 기반 임베디드 보드가 어떤게 ... [2] 새삶 2014-11-26 866
6144 U-BOOT에 FW 올린 후 Data Abort 문제 질문드려요. [2] 신의발자국 2014-11-20 921
6143 디바이스 드라이버를 배포 하려면 소스상태로만 배포해야 하나요? [1] pedor11 2014-11-14 907
6142 NAND partition과 u-boot [1] 김진희 2014-11-14 911
6141 커널 uvc 드라이버 설정 및 usb캠 드라이버 질문입니다. [1] ice179 2014-11-14 1182
6140 Ramdisk와 initrd [1] 테크 2014-11-13 955
6139 특정 네트워크 인터페이스가 무선인지 유선인지 알수있을까요? [6] xoduddk123 2014-11-11 1185
6138 wifi direct(wifi p2p)에서 채널별 감도 측정 방법 있을까요? [3] 톳끼아빠 2014-11-08 1472
» 컴파일을 할때마다 Image랑 zImage용량이 바뀌는건 왜 그런것인가요? file [2] xoduddk123 2014-11-07 1233
6136 양산시에 Flash 메모리를 구울 때 [1] 어떤이의꿈 2014-11-05 1284
6135 전원에서 BEAD관련 질문 [1] SpecialCase 2014-11-05 1133
6134 Android touch Event?? [1] Supsupi 2014-11-03 1151
6133 sclk_uart0 ~ 4까지의 clock들의 주파수는 어떻게 알 수 있을까여? [2] 혜민아빠 2014-10-31 1156
6132 요즘… ARM9, ARM11로 개발할 경우는 어떻게 해야 합니까? [3] 오르다 2014-10-31 1383
6131 arm-linux-gnueabi/bin/ld 에러 관련.... [1] blue0sky 2014-10-31 1243
6130 android에서 serial APP을 개발하기 위해서 어떻게 하면 되는가요... [3] 김경식 2014-10-24 1432
6129 tvp5150 [4] 삐까삐까룸 2014-10-24 1254

사용자 로그인