我正在使用具有Vortex86-SG CPU的嵌入式PC, Ubuntu 10.04 w / 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

跟踪最后几行:
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#

有解决这个问题的主意吗?

最佳答案

我知道我在这方面有点迟了,但是最近我在尝试为vortex86dx编译内核时遇到了自己的问题。我终于也能够构建内核。由于我不是Linux专家,因此使用这些步骤需要您自担风险,并且某些设置可能需要更改为自己的惯用选项/硬件:

  • 下载并使用Linux发行版,该发行版在您计划编译的相似内核版本上运行。由于我将编译Linux 2.6.34.14,因此我在具有足够内存和处理器分配的虚拟机上下载并安装了Debian 6。您可能会在Vortex86DX本身上进行编译,但这可能要花很长时间。
  • 确保我有礼貌:#apt-get install ncurses-dev kernel-package
  • 从kernel.org下载内核(我抓取了Linux-2.6.34.14.tar.xz)。从包中提取文件。
  • 从dmp ftp站点获取文件ftp://vxmx:gc301@ftp.dmp.com.tw/Linux/Source/config-2.6.34-vortex86-sg-r1.zip请注意vxmx用户名。将配置文件复制到新提取的Linux源文件夹中。
  • 抢补丁和位于ftp://vxdx:gc301@ftp.dmp.com.tw/Driver/Linux/config%26patch/patch-2.6.34-hda.zip请注意vxdx用户名。 复制到内核源文件夹。
  • 补丁内核:#patch -p1 < patchfilename
  • #make menuconfig配置内核
  • 加载备用配置文件
  • 启用通用x86支持
  • 启用数学仿真
  • 我禁用了通用IDE支持,因为我将使用传统模式(在bios中可选)
  • 在设备驱动程序下->以太网(10或100Mbit)->确保已选择RDC R6040快速以太网适配器支持
  • USB支持->选择对主机侧USB的支持,EHCI HCD(USB 2.0)支持,OHCI HCD支持
  • 安全配置为.config
  • 检查串行端口:手动编辑.config,确保CONFIG_SERIAL_8250_NR_UARTS = 4(如果有其他功能,则更多),CONFIG_SERIAL_8250_RUNTIME_UARTS = 4(如果有其他功能,则更多)。如果要使用4个以上的串行端口,请使用config_serail_8250_MANY_PORTs。
  • 编译内核头文件和源代码:#make-kpkg --initrd kernel_image kernel_source kernel_headers modules_image
  • 关于c++ - 在Vortex86上编译: “Illegal instruction”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17252991/

    10-10 21:28
    查看更多