|
Драйвер MMC для uClinux, снова. |
|
|
|
May 21 2006, 08:59
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 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
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
|
 |
Ответов
|
May 21 2006, 10:45
|

Гуру
     
Группа: Админы
Сообщений: 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 В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
May 21 2006, 11:15
|

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

|
Цитата(makc @ May 21 2006, 13:45)  Ключи компиляции и линковки не менялись?
Такая ругань идет на неразрешенные ссылки на функции, которые должно экспортировать ядро. Но либо они не экспортируются, либо ссылки некорректны, что может быть результатом неправильной линковки или компиляции. Ключи компиляции не менял, порылся по скриптам, дополнил свои флаги компиляции, не помогло  Смущает меня строчка во флагах "-I/usr/Xilinx/EDK8.1/gnu/microblaze/lin/bin/../lib/gcc/microblaze/3.4.1/./include" своим ".."
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
|
May 21 2006, 13:04
|

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

|
Цитата(3.14 @ May 21 2006, 15:15)  Ключи компиляции не менял, порылся по скриптам, дополнил свои флаги компиляции, не помогло Смущает меня строчка во флагах "-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 В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
May 21 2006, 13:34
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 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" ...
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
|
May 21 2006, 13:36
|

Гуру
     
Группа: Админы
Сообщений: 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 В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|