2015-11-22 2 views
0

Я пытаюсь установить драйверы wifi и bluetooth, используя эту ссылку: http://processors.wiki.ti.com/index.php/WL18xx_System_Build_Scripts на моей плате на базе ARM (с микропрограммой) работает ubuntu 12.04.Компиляция модулей ядра Linux изначально на ARM

В соответствии с шагом 2 ссылки, где они упомянули разные параметры для кросс-компиляции, я смущен тем, как устанавливать эти параметры, потому что я сам компилирую на самом процессоре ARM.

1.) TOOLCHAIN_PATH: для чего должен быть установлен этот параметр? Я сам компилирую сам мой процессор. Итак, не уверен, что это должно быть установлено.

2.) ROOTFS: Что это за путь в целом? Как я могу найти это на своей ОС?

3.) KERNEL_PATH: Это путь заголовка ядра? У меня есть папка, /usr/src/kernels/3.12.0-xillinux-1.3 Является ли это путь ядра, на который я должен установить?

И параметры ниже:

export CROSS_COMPILE=arm-linux-gnueabihf- 
export ARCH=arm 

можно оставить как есть, или они должны быть изменены на что-то другое, как я компиляции изначально?

+0

'TOOLCHAIN_PATH =/бен, USR/bin' или что-то подобное. Попробуйте 'gcc'. 'ROOTFS = /' для построения на хосте == build == target или native. Я думаю, что 'KERNEL_PATH' для заголовков и установки, но я не уверен на 100%.Прочитайте [документацию] (https://www.kernel.org/doc/Documentation/kbuild/modules.txt) для вашей версии ядра. Установите 'CROSS_COMPILE' для пустого или' unset'. –

ответ

0

Предположив вам не нужно кросс-компиляции (но вы изначально компилировать на вашем ARM машины):

  • TOOLCHAIN_PATH: каталог, содержащий компилятор GCC (используйте which gcc, чтобы открыть)
  • ROOTFS=/: каталог, содержащий файловую систему цели (установлен на , потому что вы не выполняете кросс-компиляцию)
  • KERNEL_PATH: каталог, содержащий (уже скомпилированное) ядро ​​для вашей доски
  • CROSS_COMPILE: оставить это поле пустым, так как вы не кросскомпилируете
  • ARCH=arm

Кстати, если вместо этого вам нужно кросс-компиляции, то вы должны установить переменные следующим образом:

  • TOOLCHAIN_PATH: каталог, содержащий ССАГПЗ крест -compiler
  • ROOTFS: каталог, содержащий файловую систему целевой платы
  • KERNEL_PATH: каталог, содержащий (уже скомпилированный) ядро ​​для целевой платы
  • CROSS_COMPILE: должен быть равен абсолютному пути и начало имени составителя раздели из Gcc имени; например, если ваш компилятор arm-linux-gcc внутри директории /my/path/ тогда вы будете устанавливать CROSS_COMPILE=/my/path/arm-linux-)
  • ARCH=arm
+0

Спасибо. Для перекрестного компиляции следует ли скопировать заголовки ядра (/lib/modules/3.12.0) с платы ARM в ПК и указать этот путь в KERNEL: PATH? Кроме того, что я должен установить ROOTFS для кросс-компиляции? Я немного смущен ROOTFS. – bobbydf

+0

Нет: 'KERNEL_PATH' указывает на каталог ядра * full * (а не только на заголовки), который должен быть * уже скомпилирован *. К сожалению, это необходимо для системы сборки модулей ядра Linux. Что касается «ROOTFS», не знаю, зачем нужен этот конкретный модуль. I * предположим *, что именно там будут скопированы двоичные файлы. – Claudio