2013-06-22 3 views
0

나는 Vortex86-SG CPU, 우분투 10.04 커널/2.6.34.10-vortex86-sg을 가진 임베디드 PC를 사용하고 있습니다. 불행하게도 우리는 새로운 커널을 컴파일 할 수 없으며 드라이버 나 패치가 아닌 소스 코드가 없기 때문에 새로운 커널을 컴파일 할 수 없습니다.Vortex86에서 컴파일 : "잘못된 명령어"

저는 C++로 작성된 작은 프로젝트를 OpenFrameworks으로 실행해야합니다. 프레임 워크는 각 스크립트 오른쪽에 of_v0071_linux_release/scripts/linux/ubuntu/install_*.sh에 컴파일됩니다.

나는 위해 Vortex86/우분투 10.04에 대해 다음 옵션은 모든 config.make 파일에 추가해야합니다 컴파일하는 것으로 나타났습니다 : 효과에서

USER_CFLAGS = -march=i486 
USER_LDFLAGS = -lGLEW 

, 그것은 오류없이 컴파일하지만 생성 된 바이너리 아무튼 'T는 전혀 시작 :

[email protected]:~/openframeworks/of_v0071_linux_release/apps/myApps/emptyExample/bin# ./emptyExample 
Illegal instruction 
[email protected]:~/openframeworks/of_v0071_linux_release/apps/myApps/emptyExample/bin# echo $? 
132 

strace를 마지막 라인 :

munmap(0xb77c3000, 4096)    = 0 
rt_sigprocmask(SIG_BLOCK, [PIPE], NULL, 8) = 0 
--- SIGILL (Illegal instruction) @ 0 (0) --- 
+++ killed by SIGILL +++ 
Illegal instruction 
[email protected]:~/openframeworks/of_v0071_linux_release/apps/myApps/emptyExample/bin# 

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

답변

2

나는 이것에 대해 조금 늦었지만 최근에 vortex86dx에 대한 커널을 컴파일하려고하는 자신의 문제가 있었다. 마침내 커널을 만들 수있었습니다. 리눅스 전문가가 아니 어서 자신의 취향/하드웨어로 변경해야하는 일부 위험 부담으로이 단계들을 사용하십시오 :

  1. 비슷한 커널 버전에서 실행되는 Linux 배포판을 다운로드하여 사용하십시오 컴파일 할 계획. Linux 2.6.34.14를 컴파일 할 것이므로 적절한 램과 프로세서 할당으로 가상 박스에 데비안 6을 다운로드하고 설치했습니다. 잠재적으로 Vortex86DX 자체에서 컴파일 할 수는 있지만 영원히 걸릴 것입니다.
  2. 내가 괜찮은 것을 확인했다 : #apt-get install ncurses-dev kernel-package
  3. 커널을 kernel.org에서 다운로드 받았다. (나는 리눅스 2.6.34.14.tar.xz를 사용했다.) 패키지에서 파일의 압축을 풉니 다.
  4. dmp ftp 사이트의 설정 파일 : ftp://vxmx:[email protected]/Linux/Source/config-2.6.34-vortex86-sg-r1.zip. 참고하시기 바랍니다 vxmx 사용자 이름. 구성 파일을 새로 추출 된 Linux 소스 폴더에 복사하십시오.
  5. 그랩 패치 및 ftp://vxdx:[email protected]/Driver/Linux/config%26patch/patch-2.6.34-hda.zip에서. 참고로 vxdx 사용자 이름. 커널 소스 폴더에 복사하십시오.
  6. 패치 커널 : #patch -p1 < patchfilename
  7. #make menuconfig
  8. 로드 대체 구성 파일로 구성 커널
  9. 일반적인 86 지원을
  10. 수학 에뮬레이션을 사용
  11. 내가 장애인 일반적인 IDE 지원 내가 레거시 모드를 사용하기 때문에 (선택 사용 BIOS에서)
  12. 장치 드라이버 -> 이더넷 (10 또는 100Mbit) -> RDC R6040 고속 이더넷 어댑터 지원이 선택되어 있는지 확인하십시오.
  13. USB 지원 -> 호스트 쪽 USB, EHCI HCD (USB 2.0) 지원, OHCI HCD 지원
  14. 안전 설정의 .config
  15. 체크 시리얼 포트로 : 추가있는 경우 편집 수동으로) 확인 CONFIG_SERIAL_8250_NR_UARTS = 4 (또는 그 이상을의 .config, CONFIG_SERIAL_8250_RUNTIME_UARTS은 = 4 (또는 더 추가가있는 경우). 4 개 이상의 직렬 포트를 사용하려면 config_serail_8250_MANY_PORTs를 사용하십시오.
  16. 컴파일 커널 헤더 및 소스 : 내가하지 더 많은 장치를 가지고 있기 때문에 #make-kpkg --initrd kernel_image kernel_source kernel_headers modules_image
+0

나는 절차를 시도하지 않았다. 그러나 이것은 좋은 출발점 인 것처럼 보인다! –

관련 문제