Использование старого драйвера в Linux

Установка, обновление, настройка Linux

Модераторы: Olej, adminn

strap89
Писатель
Сообщения: 24
Зарегистрирован: 23 июл 2020, 11:16
Контактная информация:

Использование старого драйвера в Linux

Непрочитанное сообщение strap89 » 23 июл 2020, 11:31

Добрый день!
Имеется проблема. Есть PCI-плата устройства (PCI-7442 Adlink, хотя это неважно). Стоит Linux Ubuntu текущий релиз.
На сайте устройства имеются драйвера (без исходного кода) и инструкция для установки. Но она не работает, так как файлы лохматого года
еще для Ubuntu 12.04. Соответственно при выполнении insmod пишет Invalid module format. Как я понял требуется совпадение версий текущего ядра и файлов от производителя.
Подскажите пожалуйста, решаема ли проблема?
С Linux я не работал совсем, что делать пока не представляю.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение Olej » 23 июл 2020, 12:16

strap89 писал(а):
23 июл 2020, 11:31
Есть PCI-плата устройства (PCI-7442 Adlink, хотя это неважно).
Это как-раз достаточно важно...
Покажите это устройство в выводе команды lspci.
strap89 писал(а):
23 июл 2020, 11:31
Стоит Linux Ubuntu текущий релиз.
Текущий - это 20.04? Или...?
strap89 писал(а):
23 июл 2020, 11:31
На сайте устройства имеются драйвера (без исходного кода) и инструкция для установки. Но она не работает, так как файлы лохматого года
еще для Ubuntu 12.04.
Давайте ссылку "сайта устройства" сюда - посмотрим...
strap89 писал(а):
23 июл 2020, 11:31
Соответственно при выполнении insmod пишет Invalid module format. Как я понял требуется совпадение версий текущего ядра и файлов от производителя.
Да, должно быть полное абсолютное совпадение ... не только версии ядра, но и сигнатуры сборки, конкретного вида сборки.
strap89 писал(а):
23 июл 2020, 11:31
Подскажите пожалуйста, решаема ли проблема?
Чаще всего, почти всегда, такие проблемы решаются ... но требуют повозиться, убить на то время...

strap89
Писатель
Сообщения: 24
Зарегистрирован: 23 июл 2020, 11:16
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение strap89 » 23 июл 2020, 17:16

Спасибо за ответ. Значит по-простому не решается.
Отвечу, что смогу.
1. lspci только завтра. Я делал. Пишет что устройство есть, тип девайса linux не определил.
2. Стоит ubuntu 20.04
3. сайт https://www.adlinktech.com/Products/Sea ... 443%2F7444.
4. К сожалению конкретный вид сборки для меня сейчас ничем не хуже сигнатуры сборки. Единственно, что мне непонятно -
это как такой драйвер вообще можно подцепить к плате. Даже самый свежий драйвер скорее всего не встанет (сигнатура не совпадет например). А тут операционка 2013 года выпуска. Или все-же не все так плохо?
Я вот хотел бы понять: если я из архива смогу достать и поставить linux и смогу подогнать версию ядра под драйвер
(хотя уже фантастика) - кстати такие данные есть:
Ubuntu-12.04.1 LTS
kernel versions 3.2.0-29-generic-pae
compiled with gcc version 4.6.3, есть шанс, что заработает драйвер? Или по-любому на какую-нибудь несовпадающую сигнатуру напорюсь?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение Olej » 23 июл 2020, 19:33

strap89 писал(а):
23 июл 2020, 17:16
3. сайт https://www.adlinktech.com/Products/Sea ... 443%2F7444.
Устройство PCI-7442/7443/7444 ?
High-Density 128-CH Isolated DIO/DI/DO PCI Cards
Посмотрел что у них там с драйвером:
Fedora Core 17/Ubuntu-12.04.1 LTS/openSUSE-12.1
(4.34MB)
Upload: 2018-02-21
Но даже после регистрации у них скачать это чудо, на посмотреть, не представляется возможным - загрузка тут-же мгновенно прерывается... Похоже, что самого файла драйвера там у них нет - убрали за давностью лет. :-o

P.S. Сайт ADLINK так говённо сделан весь, кривыми руками, что и от драйверов и др. того же следует ожидать! :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение Olej » 23 июл 2020, 19:35

strap89 писал(а):
23 июл 2020, 17:16
Я вот хотел бы понять: если я из архива смогу достать и поставить linux и смогу подогнать версию ядра под драйвер
(хотя уже фантастика) - кстати такие данные есть:
Ubuntu-12.04.1 LTS
kernel versions 3.2.0-29-generic-pae
Это не такая и сильно старая реализация (12.04) - вы вполне можете установить такой Linux.
Драйвер, если он вообще работоспособен, туда легко встанет.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение Olej » 23 июл 2020, 19:40

strap89 писал(а):
23 июл 2020, 11:31
На сайте устройства имеются драйвера (без исходного кода) и инструкция для установки.
Olej писал(а):
23 июл 2020, 19:33
Посмотрел что у них там с драйвером:
Fedora Core 17/Ubuntu-12.04.1 LTS/openSUSE-12.1
(4.34MB)
Upload: 2018-02-21
Почему вы вообще решили что тот драйвер "без исходного кода"?
Fedora Core 17/Ubuntu-12.04.1 LTS/openSUSE-12.1 - это настолько разные по формату дистрибутивы Linux, что никакой бинарный драйвер не может быть общим для установки в них. Скорее всего там скрипт, который в своём основном теле содержит как-раз исходный код, из которого сам скрипт потом собирает драйвер- так делают VirtualBox и другие умники. :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение Olej » 23 июл 2020, 19:42

strap89 писал(а):
23 июл 2020, 17:16
1. lspci только завтра. Я делал. Пишет что устройство есть, тип девайса linux не определил.
lspci - с ключом (опцией): -k

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение Olej » 23 июл 2020, 20:04

strap89 писал(а):
23 июл 2020, 11:31
Есть PCI-плата устройства (PCI-7442 Adlink, хотя это неважно).
Вообще то, для Linux есть хорошее правило: если ничего не находится путнего на сайте производителя оборудования - поищите поиском в Интернет по: типу устройства + название производителя...
Мне проба поиска (yandex) по вот такому контенту "Linux PCI-7442 Adlink драйвер" дала кучу интересных мест... из них такое:
ADLINK PCI-7442 Free Driver Download (Official)
Supported Models
PCI-7442 Driver

Manufacturers
ADLINK

Supported Operating Systems
Linux

File Name
pci-dask413_RHWS4.tgz (1.5 MB)
Там 2 книжки PDF (126 и 79 страниц) + куча всякого ПО...

И там же ваш модуль ядра:

Код: Выделить всё

olej@nvidia:~/Загрузки/pci-dask_413/drivers/2.6.9-5.EL$ file p7442.ko 
p7442.ko: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped

Код: Выделить всё

olej@nvidia:~/Загрузки/pci-dask_413/drivers/2.6.9-5.EL$ modinfo p7442.ko 
filename:       /home/olej/Загрузки/pci-dask_413/drivers/2.6.9-5.EL/p7442.ko
license:        GPL
license:        GPL
license:        GPL
license:        GPL
license:        GPL
license:        GPL
license:        GPL
license:        GPL
license:        GPL
license:        GPL
license:        GPL
vermagic:       2.6.9-5.EL 686 REGPARM 4KSTACKS gcc-3.4
depends:        
Разбирайтесь...

strap89
Писатель
Сообщения: 24
Зарегистрирован: 23 июл 2020, 11:16
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение strap89 » 24 июл 2020, 18:44

Повозили мордой об стол, повозили. Я к сожалению сегодня был очень занят, только к вечеру прочел сообщения, от стыда чуть не сгорел. За ссылки спасибо, скачаю-попробую, хотя девайс не тот, версия все равно старая.
Как вы говорите ubuntu 12.04.1 не такая и старая, я тоже так подумал. Правда официально на сайте поддержка только с 12.04.5.
Я скачал этот дистрибутив (мне пришла в голову мысль, что проблема в том что у меня версия amd64, а у адлинка i386). Вы правы, версия 12.04
не скачивает firefox'ом файлы с адлинка (на 20.04 я не пробовал, сразу chrome поставил), а тут хром мне поставить не удалось. Но остальное я все проделал, но к сожалению результат такой же: invalid module format. Скрипт по инсталляции там не сложный вылетает на первой же команде insmod -f p7442.ko. И на установочном архиве всего два варианта файлов: для fedora и для ubuntu. Оба реагируют одинаково. И вопрос у меня уже аполне конкретный: драйвер для самой минорной другой версии уже не встал, так как вы мне написали, что версия должна совпасть полностью. Но как тогда пользоваться системой? Вы ставите драйвер удачно, но через два дня после обновления даже не системы, а заплатки в ядре драйвер у вас слетает из-за несовпадения версий? И надо брать у адлинка новый драйвер? Еще на два дня?. Все-таки, мне представляется, не все должно быть так плохо. Хотя в линуксе я ноль полный, чего-то наверно не понимаю. Сегодня опять ставил в очередной раз ubuntu 20.04 после тренинга с 12.04.5 (употел весь пока приладился к старой версии, хотя и на новой уще не работал!). И все равно, зараза такая, не встал он как надо. Почему-то скрипты в 12.04 (да и в первой попытке 20.04) запускаются и что-то делают, а в новой инсталляции (такой-же!) скрипты после разархивации не запускаются (неизвестная команда и все тут, ничего я сделать не смог). Но это я так, от горя - не обращайте внимания.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Использование старого драйвера в Linux

Непрочитанное сообщение Olej » 24 июл 2020, 19:06

strap89 писал(а):
24 июл 2020, 18:44
драйвер для самой минорной другой версии уже не встал, так как вы мне написали, что версия должна совпасть полностью.
Если драйвер прдполагался для Ubuntu 12.04, то он на любой 12.04 должен стать.
strap89 писал(а):
24 июл 2020, 18:44
Но как тогда пользоваться системой? Вы ставите драйвер удачно, но через два дня после обновления даже не системы, а заплатки в ядре драйвер у вас слетает из-за несовпадения версий? И надо брать у адлинка новый драйвер? Еще на два дня?. Все-таки, мне представляется, не все должно быть так плохо.
К заплаткам это так просто н относится ... да и вам заплатки на ядро ставить ... не советовал бы.
А вот при изменении (обновлении) ядра - да, все модули ядра (и драйвера как частный случай) не годятся!
Но:
- обновление ядра из репозитория происходит вместе с обновлением всего набора загруженных модулей ядра;
- именно поэтому модули ядра / драйвера в Linux поставляются в виде исходного кода на языке C ... и все приличные люди именно так и делают!
- именно для этого была сделана система динамической сборки модулей при смене ядра DKMS (Dynamic Kernel Module Support), но она именно и требует наличия кода для сборки модуля (см. автоматическая сборка модулей ядра (DKMS)) ... но это дело на любителя - одни это приветствуют, а другие уже отказываются;
strap89 писал(а):
24 июл 2020, 18:44
(неизвестная команда и все тут, ничего я сделать не смог)
Что за "неизвестная команда"? :-o - это уже очень серьёзный симптом! :-P
Это значит, что у вас а). либо пакет с этой командой (make, gcc и т.д.) ещё не установлен, или б). программа-команда не найдена на путях автовызова $PATH, файл не находится по путям.
Выясняйте какая команда "неизвестная"?

P.S. Кстати, у вас make, gcc установлены? ... и заголовочные файлы ядра, пакет что-то типа linux-headers-generic - по умолчанию он не устанавливается, а без него модули/драйверы не собираются.

Ответить

Вернуться в «Администрирование Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя