реклама на сайте
подробности

 
 
> Драйвер MMC для uClinux, снова.
3.14
сообщение May 21 2006, 08:59
Сообщение #1


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Решил я воспользоваться драйвером MMC/SD карты "немца" для uClinux.
Вот только беда, похоже что он для ядра 2.6.
Не подскажите как мне его с ядром 2.4 подружить.
Пока при компиляции получаю ошибки:
Код
mmc.c: In function `mod_init':
mmc.c:383: error: too few arguments to function `register_blkdev'
mmc.c:394: error: structure has no member named `first_minor'
mmc.c:396: error: void value not ignored as it ought to be
mmc.c:407: error: structure has no member named `queue'
mmc.c:408: error: structure has no member named `disk_name'

Прикрепленные файлы
Прикрепленный файл  mmc.rar ( 3.28 килобайт ) Кол-во скачиваний: 67
 


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
makc
сообщение May 21 2006, 10:45
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



В версии 2.5.x и далее в 2.6 была переработана подсистема, отвечающая за работу с блочными устройствами -> изменилась процедура регистрации устройств. Действительно, register_blkdev теперь принимает не 3 параметра (как в 2.4), а только два. Кроме того, в 2.6 несколько изменился подход к обработке очереди запросов ввода-вывода в блочных устройствах.

Итого, нужно переписать bd_request, mod_init и mod_exit.

Чтобы разобраться как это сделать, могу посоветовать посмотреть на примеры к книжкам Linux Device Drivers, 3rd Edition и 2nd Edition. И сравнить описанные в них процедуры инициализации модуля и обработки очереди. Они похожи, но несколько отличаются.


Цитата
Зараза, собрал старый драйвер, без проблем, но на этапе его активации получаю :



Ключи компиляции и линковки не менялись?

Такая ругань идет на неразрешенные ссылки на функции, которые должно экспортировать ядро. Но либо они не экспортируются, либо ссылки некорректны, что может быть результатом неправильной линковки или компиляции.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
3.14
сообщение May 21 2006, 11:15
Сообщение #3


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата(makc @ May 21 2006, 13:45) *
Ключи компиляции и линковки не менялись?

Такая ругань идет на неразрешенные ссылки на функции, которые должно экспортировать ядро. Но либо они не экспортируются, либо ссылки некорректны, что может быть результатом неправильной линковки или компиляции.
Ключи компиляции не менял, порылся по скриптам, дополнил свои флаги компиляции, не помогло sad.gif
Смущает меня строчка во флагах "-I/usr/Xilinx/EDK8.1/gnu/microblaze/lin/bin/../lib/gcc/microblaze/3.4.1/./include" своим ".."


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
makc
сообщение May 21 2006, 13:04
Сообщение #4


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(3.14 @ May 21 2006, 15:15) *
Ключи компиляции не менял, порылся по скриптам, дополнил свои флаги компиляции, не помогло sad.gif
Смущает меня строчка во флагах "-I/usr/Xilinx/EDK8.1/gnu/microblaze/lin/bin/../lib/gcc/microblaze/3.4.1/./include" своим ".."


Нет, тут ничего страшного нет. ".." в пути - совершенно нормальная ситуация, т.к. это лишь ссылка на каталог уровнем выше и ничего больше.


Цитата(3.14 @ May 21 2006, 15:31) *
Сейчас у меня вот такой makefile получился:


Все на первый взгляд на месте. Могу посоветовать посмотреть с помощью mb-objdump списки символов, которые значатся relocatables в таблице символов adapter.o и сравнить эти списки с данными экспортов ядра, т.е. его symtab.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
3.14
сообщение May 21 2006, 13:34
Сообщение #5


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата(makc @ May 21 2006, 16:04) *
Все на первый взгляд на месте. Могу посоветовать посмотреть с помощью mb-objdump списки символов, которые значатся relocatables в таблице символов adapter.o и сравнить эти списки с данными экспортов ядра, т.е. его symtab.
А как мне этот symtab посмотреть?
Еще, попробовал собрать драйвер EthernetLite, makefile такой же. На этапе insmod получаю:
# insmod ./ethlite.o
Using ./ethlite.o
insmod: unresolved symbol __umodsi3

И никаких " Unhandled relocation" ...


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
makc
сообщение May 21 2006, 13:36
Сообщение #6


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(3.14 @ May 21 2006, 17:34) *
Цитата(makc @ May 21 2006, 16:04) *

Все на первый взгляд на месте. Могу посоветовать посмотреть с помощью mb-objdump списки символов, которые значатся relocatables в таблице символов adapter.o и сравнить эти списки с данными экспортов ядра, т.е. его symtab.
А как мне этот symtab посмотреть?


Обычно после сборки он лежит в корневом каталоге исходников ядра в файле System.map.
Но его можно с помощью того же mb-objdump получить из незапакованного бинарника ядра, если мне не изменяет память. Ну и в рантайме - файл /proc/ksyms.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 3.14   Драйвер MMC для uClinux, снова.   May 21 2006, 08:59
- - 3.14   Зараза, собрал старый драйвер, без проблем, но на ...   May 21 2006, 09:39
- - 3.14   Сейчас у меня вот такой makefile получился: КодROO...   May 21 2006, 11:31
- - 3.14   Посмотрел /proc/ksyms, названий полученных из mb-...   May 21 2006, 13:50
|- - makc   Цитата(3.14 @ May 21 2006, 17:50) Посмотр...   May 21 2006, 14:43
- - 3.14   Вот.   May 21 2006, 16:40
|- - makc   Цитата(3.14 @ May 21 2006, 20:40) Вот. Д...   May 21 2006, 16:54
- - 3.14   Не понял, эта функция (cfgaddr_read) объявлена и о...   May 21 2006, 17:01
|- - makc   Цитата(3.14 @ May 21 2006, 21:01) Не поня...   May 21 2006, 17:03
- - 3.14   Только не пугайся , это франкенштейн. Цитата(makc...   May 21 2006, 17:18
- - makc   Вот, кстати, примерчик Makefile'a, который пол...   May 21 2006, 17:27
- - 3.14   Блин, с этими makefile настоящая кроличья нора, по...   May 21 2006, 17:46
|- - makc   Цитата(3.14 @ May 21 2006, 21:46) Блин, с...   May 21 2006, 17:56
- - 3.14   Надо было пропатчить, insmod. Забавно, я на эти гр...   May 22 2006, 21:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 06:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01421 секунд с 7
ELECTRONIX ©2004-2016