我正在使用嵌入式PC,其中Vortex86-SG
CPU, Ubuntu 10.04 w /内核2.6.34.10-vortex86-sg
。不幸的是我们无法编译新的内核,因为我们没有任何源代码,甚至没有驱动程序或补丁。
我必须使用 OpenFrameworks 运行用C ++编写的小项目。该框架编译of_v0071_linux_release/scripts/linux/ubuntu/install_*.sh
中的每个脚本。
我注意到为了针对 Vortex86 / Ubuntu 10.04 进行编译,必须在每个config.make
文件中添加以下选项:
USER_CFLAGS = -march=i486
USER_LDFLAGS = -lGLEW
在效果中,它编译时没有错误,但生成的二进制文件根本不会启动:
root@jb:~/openframeworks/of_v0071_linux_release/apps/myApps/emptyExample/bin# ./emptyExample
Illegal instruction
root@jb:~/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
root@jb:~/openframeworks/of_v0071_linux_release/apps/myApps/emptyExample/bin#
有什么想法解决这个问题?
答案 0 :(得分:3)
我知道我在这方面有点迟,但最近我有自己的问题试图为vortex86dx编译内核。我终于能够构建内核了。使用这些步骤需要您自担风险,因为我不是Linux专家,您可能需要根据自己的喜好/硬件进行一些设置:
#apt-get install ncurses-dev kernel-package
#patch -p1 < patchfilename
#make menuconfig
#make-kpkg --initrd kernel_image kernel_source kernel_headers modules_image