2016-06-05 3 views
1

Мы хотим подключить Linux для одноядерного процессора RISCV на FPGA. Между тем, ядро ​​Linux будет оснащено проходом LLVM.Скомпилировать ядро ​​Linux с помощью LLVM

Мои сомнения: 1. Можно ли использовать инструментальную шестерню riscv-llvm для компиляции ядра Linux? 2. Обозначает ли теперь toolchain riscv-llvm добавление пользовательского прохода?

+0

Последние версии ядра Linux могут быть созданы на основе llvm (для этого был создан проект http://llvm.linuxfoundation.org/, некоторые модули/параметры не были компилируемыми некоторое время назад). Какая версия ядра linux и llvm используется в вашем проекте? Вы можете добавить пользовательские проходы к любому llvm, и есть источники для llvm для riscv. – osgx

+0

Мы хотим использовать Linux-2.6.33. Я начинаю начинать компиляцию ядра Linux. Не могли бы вы дать мне несколько уроков или предложений об этом процессе? – Rambo

+0

Rambo, есть ли linux ядро ​​2.6.33 для RISC-V? Я думаю, что есть только версия https://github.com/riscv/riscv-linux, которая не 2.6, а 3.14/4.1. Вы не можете просто скомпилировать это старое ядро; потребуется портирование на RISC-V, что не является задачей для новичков. – osgx

ответ

2

Есть две проблемы с выбранной версией Linux, 2.6.33.

Первой проблемой является то, что эта версия никогда не была перенесена на RISC-V командой RISC-V. Они имеют 3.14 и 4.1 в https://github.com/riscv/riscv-linux. Итак, чтобы запустить его в RISC-V-процессоре, вы должны повторить все портирование зависимой от архитектуры части (arch/ каталог ядра). Это очень сложная задача, даже если есть какая-то портированная версия для целевого процессора. Вы можете использовать некоторые части из 3.14, но 2.6.33 и 3.14 отличаются друг от друга, между ними существует несколько лет эволюции. (PORTING - это не просто компиляция, это задача записи 30 файлов без каких-либо ошибок или с большой отладкой.)

Вторая проблема заключается в том, что LLVM может только полностью строить современные версии ядра Linux, у которых есть исправления от проекта http://llvm.linuxfoundation.org/. В некоторых частях ядра не поддерживались (и никогда не поддерживались в clang/llvm) расширениях GCC. Частичная сборка была возможна, но два-три компонента старой Linux не могут быть построены с помощью clang.

Итак, я действительно рекомендую вам использовать версию ядра Linux из команды RISCV, а более новая (4.1) - лучше.

 Смежные вопросы

  • Нет связанных вопросов^_^