2013-07-20 3 views
1

Я новичок в кросс-компиляции. Мне нужно перекрестно скомпилировать ядро ​​Linux, потому что я намерен использовать wifi-модуль с моим TS-7500 SBC (ARM-процессором), и он не поддерживает его. У меня есть драйверы для моего модуля wifi и через интернет-серфинг. Я познакомился с общей процедурой кросс-компиляции. Однако я немного смущен дополнительной части модуля. Вот информация с официального сайта TS-7500 в отношении этих дополнительных модулей:Кросс-компиляция ядра Linux с дополнительными модулями

Приложение - Компиляция TS-ядра с помощью пользовательских параметров Чтобы собрать отдельный модуль ядра и выйти с .ko файл для включения в уже существующем ядре, это шаги для выполнения следующего шага 08 и завершения на шаге 09 выше. Примечание. Шаги после этапа 02 не проверены/непроверены. Они представляют собой точную процедуру, которая будет проходить.

01.) Открыть menuconfig и модулизовать функцию ядра с помощью «M». Например, для модуляции cifs.ko, используйте стрелку и введите клавиши , чтобы перейти в Файловые системы -> Сетевые файловые системы -> Поддержка CIFS.
Нажмите «M», чтобы модулировать поддержку CIFS в ядре, после чего продолжайте удалять «выход», пока вам не будет предложено сохранить изменения, выберите «да».

make menuconfig 

02.) Соберите ядро ​​с модулями и скопировать модули в Linux PC

make && make modules && make modules_install 

03.) Получить модуль, который был скопирован в Linux PC с командой как сП так что он может быть установлен в ядро ​​на карте MiniSD.

mkdir /mnt/miniSD4 
mount /dev/sdb4 /mnt/miniSD4 
cp /lib/modules/2.6.24.4/kernel/fs/cifs/cifs.ko /mnt/miniSD4 

04.) Установите модуль в ядро ​​путем копирования и вставки из раздела 4 карты в разделе 2 на SBC.

cp -r /dev/nbd4/cifs.ko /dev/nbd2/lib/modules/2.6.24.4/kernel/fs/cifs/cifs.ko 

05.) Наконец, чтобы использовать новый модуль, вы должны включить его. Это может быть включено в скрипт запуска, такой как linuxrc.

depmod 
modprobe cifs.ko 

Я смущен о серийном 2. Может ли кто-нибудь объяснить мне и где я должен предоставить адрес водителей, которые я хочу установить?

Заранее спасибо.

ответ

0

Я предполагаю, что, говоря, что ваш SBC не поддерживает его, вы имеете в виду, что модуль/драйвер, который вы перекрестно скомпилировали, представляет собой «из исходного дерева» модуль ядра.

Вышеупомянутая процедура предназначена только для 'in-tree kernel modules'.

Это дает вам следующие два варианта.

  1. В результате кросс-компиляции драйвера у вас будет файл * .ko. Перенесите этот файл в рабочую систему с помощью SD-карты или через сеть.После этой нагрузки модуль с использованием

    insmod /path/to/module/filename.ko 
    

    Этот метод имеет только одно ограничение. i.e Если этот драйвер/модуль зависит от других драйверов, вам придется сначала загрузить их.

  2. Включите драйвер в исходное дерево ядра и используйте modprobe drivername, чтобы загрузить его вместе с зависимостями. modprobe более продвинут, чем insmod, в том смысле, что он сначала проверяет зависимости и загружает их автоматически перед загрузкой самого модуля.

Чтобы включить драйвер в исходное дерево ядра, см. Это answer.

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