Не знаю насколько корректную операцию я произвел .. Но я заменил директорию со скриптами на свою. Ту что была скомпилирована под АРМ. Компиляция моего драйвера прошла немного дальше но возникла следующая проблема.. теперь она ругается на некий файл FATAL: /root/can/dstr/ldevusb: sizeof(struct usb_device_id)=24 is not a modulo of the size of section __mod_usb_device_table=100.
Fix definition of struct usb_device_id in mod_devicetable.h
Насколько я понимаю это какие-то проблемы с выравниванием. Кто-то уже сталкивался с подобным? Что в этом случае можно сделать?
Насколько я понимаю это какие-то проблемы с выравниванием. Кто-то уже сталкивался с подобным? Что в этом случае можно сделать?
ну вы даете - второй день ходите кругами и туману напускаете.. угадайте для начала - сколько 100500 телепатов тут на форуме?
изложите внятно свою проблему, например:
- плата такая-то
- ядро такое-то
- хочу драйвер, зовут "так" (линк на исходный архив)
- что сделал, хоть на пальцах
- что не получилось - куски лога
вот после такого вполне допустимо "Что в этом случае можно сделать?" и шансы получить ответ заметно выше..
Насколько я понимаю это какие-то проблемы с выравниванием. Кто-то уже сталкивался с подобным? Что в этом случае можно сделать?
ну вы даете - второй день ходите кругами и туману напускаете.. угадайте для начала - сколько 100500 телепатов тут на форуме?
изложите внятно свою проблему, например:
- плата такая-то
- ядро такое-то
- хочу драйвер, зовут "так" (линк на исходный архив)
- что сделал, хоть на пальцах
- что не получилось - куски лога
вот после такого вполне допустимо "Что в этом случае можно сделать?" и шансы получить ответ заметно выше..
Да не напускаю я туману.. ПРостите ежли че не так. Плата imx6s-sodimm установлена на штатную материнку.
Что сделал я.
1) взял rootfs(Ubuntu. ) сначала это была десктопная версия. Ту что можно скачать с фтп. Сейчас я ее заменил на серверную. ядро Linux SK-iMX6-SODIMM-server 3.1.2 #132 SMP PREEMPT
2) установил на нее(целевую плату) компиляторы, мейки, Итд.
3) Попытлся скомпилировать драйвер USB устройства от L-card. http://lcard.ru/download/lcomp_linux.tgz
получил ошибку связанную с genksyms.
4)Заменил директорию скриптов на то ктороя работала на RSPi.
5) Компиляция протолкнулась на шаг дальше. Но тем не менее сгенерила ошибку FATAL: /root/can/dstr/ldevusb: sizeof(struct usb_device_id)=24 is not a modulo of the size of section __mod_usb_device_table=100.
Что делаю сейчас
1) заменил неадеры на те что были на Малине. Понимаю что это некотроое шаманство и возможно не законное со стороны Линукса. Пока не получается. Ругается на пути.
Какие мысли есть.
1) Пойти домой послав все лесом
2) скачать неадеры командой apt-get. Но судя по всему нет в репозитарии хедеров для данной версии ядра.. Можно конечно скачать ближайшие..
Почему именно такой путь?
Не очень хочется разбираться СЕЙЧАС с Билдрутом. Хочется взять что-то стандартное что может нормально работать с инетом вытягивая нужные пакеты. Тем более что на хосте стоит Ubuntu. Я попытался установить на плату Arch но потерпел крах. Он расчитан на загрузку с SD. Возможно еще к этому вернусь
самая здравая мысль - ибо чего в праздники мейкать..
счас выложу линк на кошки (*.ko) - если загрузятся, то выложу остальное..
За это конечно отдельное спасибо! :-) Честно..
Но все ж интерестно КАК?? потому как не все так просто мне еще придется помучатся с программированием данного устройства. А потому хочется понять как же можно компилить эти драйвера. Т.к. на Малинке то все срослось. Не без труда но тем не менее. Просто не хочется опять этот ненормальный путь повторять.
Спасибо драйвер загрузился.
Все ж остается вопрос как это удалось сделать?
линк на модифицированный архив: http://webfile.ru/7ea8fd50ce7d89bdb827f4ee04f34eeb
программист я не настоящий, поэтому решил задачу в лоб:
создал каталог /home/user/0
внутри два подкаталога dstr и kernel
соответственно в первый развернул ваш архив, во второй сложил копию дерева ядра от Холы
поправил Makefile в месте где указывается путь к ядру
скопировал скрипт build.sh, где задан кросскомпилятор
в паре сишных файлов пришлось прописать хидеры, иначе ругалось на отсутствие vmalloc и kmalloc..
после этого запускаем ./build.sh
и получаем модули..
в том месте где "прописал хидеры" я просто скопипастил группу - там много лишнего..
Спасибо драйвер загрузился.
Все ж остается вопрос как это удалось сделать?
линк на модифицированный архив: http://webfile.ru/7ea8fd50ce7d89bdb827f4ee04f34eeb
программист я не настоящий, поэтому решил задачу в лоб:
создал каталог /home/user/0
внутри два подкаталога dstr и kernel
соответственно в первый развернул ваш архив, во второй сложил копию дерева ядра от Холы
поправил Makefile в месте где указывается путь к ядру
скопировал скрипт build.sh, где задан кросскомпилятор
в паре сишных файлов пришлось прописать хидеры, иначе ругалось на отсутствие vmalloc и kmalloc..
после этого запускаем ./build.sh
и получаем модули..
в том месте где "прописал хидеры" я просто скопипастил группу - там много лишнего..
как-то так..
А ведь самое обидное то что ПОЧТИ все получилось. Короче проблема в том что драйвер
ldevusb.ko не запускается. Он говорит что invalid parametr. Прия этом парметров вообще у него никаких нет.
А вот то что я нашел в syslog
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: lcard: Staring LDev driver...
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_alloc_urb
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_alloc_urb (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_free_urb
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_free_urb (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_alloc_coherent
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_alloc_coherent (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_clear_halt
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_clear_halt (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_put_dev
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_put_dev (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_bulk_msg
То что Вы вложили это для целевой платы? или для хост машины?
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_bulk_msg (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_get_dev
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_get_dev (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_submit_urb
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_submit_urb (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_free_coherent
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_free_coherent (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_control_msg
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_control_msg (err -22)
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: disagrees about version of symbol usb_kill_urb
May 4 17:16:15 SK-iMX6-SODIMM-server kernel: ldevusb: Unknown symbol usb_kill_urb (err -22)