Я использую встроенный компьютер, который имеет Vortex86-SG
ЦПУ, Ubuntu 10.04 с ядром 2.6.34.10-vortex86-sg
, К сожалению, мы не можем скомпилировать новое ядро, потому что у нас нет исходного кода, даже драйверов или патчей.
Я должен запустить небольшой проект, написанный на C ++ с OpenFrameworks. Фреймворк правильно компилирует каждый скрипт в 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#
Есть идеи, чтобы решить эту проблему?
1
Решение
Я знаю, что немного опоздал, но недавно у меня возникли проблемы с компиляцией ядра для 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)
- В разделе «Драйверы устройств» -> Ethernet (10 или 100 Мбит) -> Убедитесь, что выбрана поддержка адаптера Fast Ethernet 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
3
Другие решения
Других решений пока нет …