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

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

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

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

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

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

Вот это уже конкретно. Спасибо. Хотя... На 12.04 я сделал просто установку, даже без подключения к интернету, вряд ли там gcc, но скрипты работают!, а на 20.04 до этого gcc и cmake стояли и скрипты запускались, а сегодня на новой установке (штатной, без gcc) скрипт не пускается. Установку 20.04 я сохранил, попробую конечно и gcc и cmake и найденные вами драйвера. Я вот хотел понять, если у меня стоит версия amd64, а драйвера от x86, драйвер принципиально не заработает? 64 бит и 32 бит в драйвере не состыкуются?
И далее я не совсем понял: "К заплаткам это так просто н относится ... да и вам заплатки на ядро ставить ... не советовал бы.
А вот при изменении (обновлении) ядра - да, все модули ядра (и драйвера как частный случай) не годятся!". Там буквы наверно не хватает,
я не понял смысла фразы. А вот по поводу изменения ядра понял. Я же смог поставить только 12.04.5, а драйвер для версии 12.04.1, я думаю версия ядра точно сменилась, а это значит, что команда insmod не заработает? НО это опять подводит нас к томуже вопросу: неужели адлинк должен выставлять ВСЕ драйвера, для ВСЕХ версий системы? Это же список длины немерянной. И поддержка нехилая нужна. А адлинк 7 лет назад ОДИН раз выставил драйвера - и все довольны (кроме меня). И у всех поставилось (кроме меня). Вот такой я тупица.
И Dynamic Kernel Module Support - классная штука (наверно), но мне-то с ней что делать?
"именно поэтому модули ядра / драйвера в Linux поставляются в виде исходного кода на языке C ... и все приличные люди именно так и делают!". Тут вы тонко (по-английски) намекнули, что в адлинке все люди неприличные, я готов с вами согласиться, но где тогда
приличные люди? Неужели за 7 лет никому не понадобился драйвер? Опять мне не повезло.
Пока-что все идет к тому, чтобы писать драйвер самому, под DOS, как и до этого писал. Здесь хоть в мануале описание регистров есть, значит вяко получится быстрее, чем найти драйвер под линукс и потом после каждой смены в ядре лихорадочно искать, где этот долбаный драйвер есть. Лишь бы "packet driver" встал под DOS, хрен найдешь теперь.

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

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

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

strap89 писал(а):
24 июл 2020, 20:05
Я вот хотел понять, если у меня стоит версия amd64, а драйвера от x86, драйвер принципиально не заработает? 64 бит и 32 бит в драйвере не состыкуются?
Принципиально не заработает.

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

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

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

strap89 писал(а):
24 июл 2020, 20:05
"К заплаткам это так просто н относится ... да и вам заплатки на ядро ставить ... не советовал бы.
А вот при изменении (обновлении) ядра - да, все модули ядра (и драйвера как частный случай) не годятся!".
НЕ относится.
Если патчи накладывать и пересобирать ядро, то модули нужно бы пересобирать ... но можно и не пересобирать (с риском) если сигнатура - vermagic - ядра при этом не меняется (см. вывод команды modinfo).
Но лучше вам этим (патчи для ядра) не заниматься ... ещё лет 5 ближайшие. Посмотрите, если интересны эти подробности, патченье и сборку hard realtime Linux ядра: Xenomai и real-time Linux

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

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

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

strap89 писал(а):
24 июл 2020, 20:05
НО это опять подводит нас к томуже вопросу: неужели адлинк должен выставлять ВСЕ драйвера, для ВСЕХ версий системы? Это же список длины немерянной. И поддержка нехилая нужна. А адлинк 7 лет назад ОДИН раз выставил драйвера - и все довольны (кроме меня). И у всех поставилось (кроме меня).
ADLINK не "должен выставлять ВСЕ драйвера, для ВСЕХ версий системы" ;-) .
ADLINK, если бы они дурку не валяли и шлангом не прикидывались, обязаны были бы выставить для Linux один раз исходный код драйвера на языке C, для сборки (компиляции) любыми желающими с любых дистрибутивах и окружениях (вообще не дистрибутивный полу-embedded OpenWRT, например).

А на аргумент: а если ADLINK не хочет выставлять открытый код драйвера?
Ответ: а вы прекращайте тогда использовать изделия ADLINK - на ADLINK свет клином не сошёлся. :lol:

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

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

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

strap89 писал(а):
24 июл 2020, 20:05
Пока-что все идет к тому, чтобы писать драйвер самому, под DOS, как и до этого писал. Здесь хоть в мануале описание регистров есть, значит вяко получится быстрее, чем найти драйвер под линукс и потом после каждой смены в ядре лихорадочно искать, где этот долбаный драйвер есть. Лишь бы "packet driver" встал под DOS, хрен найдешь теперь.
А зачем вам DOS? ... Фу-у-у-у :lol: :oops:
Напишите свой драйвер под Linux. ;-) Вот руководство целое, на 400 стр., по этому делу где-то здесь лежит: Драйверы и модули ядра Linux

P.S. Но не спешите с этим делом - вы ещё далеко не исчерпали возможности поиском по сети найти решение!

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

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

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

Я уже этих руководств понакупал - не прочту за всю жизнь. И в результате - ничего абсолютно непонятно с тем как инсталлировать модули, куда и когда. Р. Лав пишет скачивайте и ставьте последнюю версию ядра и будете счастливы. А при этом, если исходников нет, ставить новое ядро просто нельзя, драйвер не встанет. Адлинк сделал свою плату в 2006 примерно, выпустил к ней драйвер, потом еще несколько раз выпускал файлы под новые релизы ( версия 417 это то что вы нашли первым же поиском), а к 2013 решил, что достаточно, выдпл версию 427, как я у него и взял и на этом закончил. Кстати для такой-же pci-express 7442 платы адлинк вообще драйвер не выпустил (понял, что это абсурд).
Зачем мне DOS? А вот вопрос кстати (не в эту тему правда) - если мне нужен real-time жесткий (порядка транспортные задержки ~1мс), то что мне использовать в реальном проекте? Без геморроя - только DOS я пока нашел. Вот тут никаких проблем - все тайминги в твоих руках, пишешь не столько код операционки, сколько код контроллера в операционке.
Извините за офф-топ - насущная задача, а решить не могу.
У меня вот какой вопрос: я посмотрел повнимательней скрипт для инсталляции драйвера (там совсем незатейливо написано) -
там в папку /etc/pdask/fw копируются все файлы с расширением rbf (их всего два: типа 9116.rbf - не мои имена, т.е. для инсталляции не нужны?) и общая библиотека pci_dask.so в /usr/lib, потом запускается insmod -f p7442.ko и если в системе нет udev еще mknod. Еще забыл: в /etc/udev/rules.d скачивается pci7442.rules (или с каким-то модифицированным именем). Я только в будни посмотрю, проделалась эта работа или застряла, но вопрос в другом insmod реально что будет делает: просто сверит версии и в какой-то conf впишет ссылку о драйвере, или он реально проводит какую-то операцию по линковке файлов *.so, *.ko (или совсем круто в *.h)?
Просто, меня смущает то, что я пробовал инсталлироваться на версию 20.04, (а она только amd64 бывает) с установленным gcc и пр., а версию 12.04.5 i386 пытался ставить из desktop-поставки, т.е. наверно без gcc. Для простой регистрации insmod'у gcc-то вряд ли нужен, значит он какие-то действия по линковке все-таки проделывает, а значит у меня еще есть шансы.

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

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

Непрочитанное сообщение strap89 » 25 июл 2020, 19:10

Хотя... Ужкак бы он прост не был: в отсутствие gcc он бы написал - "нету gcc", а он пишет - "invalid module format".И вряд ли gcc тут поможет...


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

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

Непрочитанное сообщение Olej » 26 июл 2020, 13:00

strap89 писал(а):
25 июл 2020, 18:53
Я уже этих руководств понакупал - не прочту за всю жизнь. И в результате - ничего абсолютно непонятно с тем как инсталлировать модули, куда и когда. Р. Лав пишет скачивайте и ставьте последнюю версию ядра и будете счастливы. А при этом, если исходников нет, ставить новое ядро просто нельзя, драйвер не встанет.
А вы не читайте всё "понакупил", а читайте то, что я вам показал по ссылке выше (и что я написал на практическом опыте) - это практический курс лекций для программистов-разработчиков такой международной софтверной компании как Global Logic - и они в результате многие и без труда писали потом свои драйверы + кроме того там есть огромный приложенный архив примеров программного кода.

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

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

Непрочитанное сообщение Olej » 26 июл 2020, 13:54

strap89 писал(а):
25 июл 2020, 18:53
Зачем мне DOS? А вот вопрос кстати (не в эту тему правда) - если мне нужен real-time жесткий (порядка транспортные задержки ~1мс), то что мне использовать в реальном проекте? Без геморроя - только DOS я пока нашел. Вот тут никаких проблем - все тайминги в твоих руках, пишешь не столько код операционки, сколько код контроллера в операционке.
То что MS DOS имеет что-то близкое к realtime - это глупость, которая повторяется из раза в раз по Интернет.
MS-DOS - это 1980 год, 40 лет назад ... с таким же успехом вы можете пытаться поставить паровой двигатель на "Запорожец" в надежде получить "удивительный эффект", как это называет М.Жванецкий:

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

А вы не пробовали слабительное со снотворным? Удивительный получается эффект!
:lol:
То, что у вас под MS DOS наблюдается что-то похожее на realtime и что "тайминги в твоих руках" - так это вам просто показалось. :lol:

Для любой многозадачной операционной системы (с вытеснением) получить realtime - очень сложная вещь, если вообще возможная. Но даже в Linux получают hard realtime, самое что ни есть жёсткое реальное время, см. Xenomai и real-time Linux ... это очень серьёзная контора, производитель серийного оборудования мечтала себе заполучить realtime ... только как оказалось по итогу - оно им и не нужно было до такой степени. Можете взять и повторить..

Это общее правило: все работающие с железом начинают с того, мечтают что им нужен realtime... потому что не очень сильно понимают что оно такое вообще realtime. А пободавшись с ним некоторое время - приходят к пониманию того, что он им и не нужен.
Там где возникает мнение что нужен realtime - это почти наверняка индикатор того, что сама задача, системотехника изначально сформулирована неправильно и её нужно переосмыслить.

Ответить

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

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

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