2016-08-22 9 views
3

SBC Pine64 용 bsp 계층에서 작업하고 있는데 이미지가 성공적으로 생성되었지만 부팅시 "FATAL : kernel too old"가 표시됩니다. 비지 박스에서. 나는 busybox 바이너리를 확인했고 커널 3.14.0 용으로 컴파일 중이다.yocto를 구성하여 커널 3.10.0에 대해 linaro eglibc을 컴파일하는 방법

내 커널은 3.10이고 Linaro 5.3 toolchain을 사용했습니다. 나는 추가 시도 : OLDEST_KERNEL = "3.10.0"그리고 나는 Linaro 4.9를 사용하여 시도했지만 역시 여전히 같은 오류가 발생합니다. 나는 요크 토 크로그를 사용하고 핵심 이미지 미니알을 생성하고 있습니다. 부팅 로그에서 오류에 대한 싹둑 아래 참조하십시오

[13.068932] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities 
[13.086717] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities 
[13.112988] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) 
[13.127040] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. 
[13.143393] devtmpfs: mounted 
[13.151972] Freeing unused kernel memory: 520K (ffffffc0009e4000 - ffffffc000a66000) 
FATAL: kernel too old 
[13.198566] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 
[13.198566] 
[13.218884] CPU: 2 PID: 1 Comm: init Not tainted 3.10.102-pine64 #1 
[13.230876] Call trace: 

가 어떻게 커널 3.10.0를 위해 리나 eglibc 컴파일 할 경우 yocto를 구성 할 수 있습니다?

들으, 당신이 아닌 기존 변수를 대체 할 Montez

+0

방법 변경 않았다 OLDEST_KERNEL를? 그것이 옳은 일이지만, 나는 당신이 변경을 올바르게하지 않았거나 변경 한 후에 모든 것을 다시 작성하지 않았다고 의심합니다. 'bitbake -e busybox 만들기 | grep^OLDEST_KERNEL = '이 (가) 평가 한 내용을 알려줍니다. –

+0

@TomRini Thx 답장을 많이드립니다. conf/local.conf에 OLDEST_KERNEL이 있습니다. 내가 집에 돌아 가면 나는 bitbake -e busybox를 달리고 너에게 알릴 것이다. 또한 local.conf를 변경 한 후에 처음부터 모든 것을 다시 작성하지 않았습니다. 나는이 프로젝트에서 당신의 모든 도움에 전적으로 감사드립니다. 그것을하는 것은 많은 재미를 얻고 있습니다. 나는 합리적인 것을 곧 출판 할 수 있기를 바랍니다. – mont3z

+0

@TomRini'build $ bitbake -e busybox의 결과 | grep^OLDEST_KERNEL ='은 (는)'OLDEST_KERNEL = "3.14"'입니다. 나는 처음부터 모든 것을 재건했지만 아무것도 바뀌지 않았다. – mont3z

답변

3

"소프트 할당"을 ? = 구문을 사용하지 않는 말을하는 것입니다 만하는 대신 = 구문, 당신 값을 변경하는 중 OVERRIDES에있는 변수 중 하나를 사용해야합니다. 당신은 재정의의 conf에서 이미 작동하는 방법을 볼 수 있습니다/bitbake.conf 우리는이 :

################################################################## 
# Kernel info. 
################################################################## 

OLDEST_KERNEL = "3.2.0" 
OLDEST_KERNEL_aarch64 = "3.14" 
OLDEST_KERNEL_nios2 = "3.19" 

그리고 aarch64이 이미 무시 목록에서 발견된다. 다행스럽게도 그 목록에는 다른 값들이 있으며, 변수를 평가할 때 목록의 뒷부분에있는 값이 OVERRIDES이 우선합니다. 그래서 local.conf에 당신은 할 수 있습니다 :

다음
OLDEST_KERNEL_forcevariable = "3.10" 

그리고 그것이 효과를 가지고 있음을 확인하십시오 :

$ bitbake -e busybox | grep -E ^OLDEST_KERNEL= 
OLDEST_KERNEL="3.10" 
+0

완벽하게 작동합니다! 나는 OLDEST_KERNEL_pine64를 사용해 보았지만 너무 효과적이다. 나는 너에게 충분히 감사 할 수 없다. 불행히도 내 평판이 15 세 이하이기 때문에 답을 밝히지 못했습니다.이 프로젝트를 게시 할 때 알려 드리겠습니다. 도움을 청하기 위해 – mont3z

+0

Thx. 내 프로젝트가 마침내 github.com/mont3z/meta-pine64에 게시되었습니다. – mont3z