Компиляция драйверов ядра Linux 2.x в драйверы версии Linux 6.xLinux

Ответить
Anonymous
 Компиляция драйверов ядра Linux 2.x в драйверы версии Linux 6.x

Сообщение Anonymous »

Я работал над Red Hat v2.5 под Ubuntu Server v6.11, когда внезапно и без предупреждения заметил:

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

    // create class device attributes
ret = add_classdev_attrs(foo->poo->class_device.class, foo_poo_class_attrs);
if (ret) {
LOG_ERR("failed to add FOO poo class device attributes\n");
}
class_set_devdata(foo->poo->class_device.class, foo);
который после добавления атрибутов устройства класса .show() .store() для устройства:

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

    class_set_devdata(foo->poo->class_device.class, foo);
не скомпилировалось, так как оно устарело.
Я обнаружил, что скомпилировал библиотеки и скомпилировал приложения для устройства, которое больше не поддерживается, Это бывшая военная техника, и у нее были драйверы unobtainium, так что даже получить их источник было невозможно. Я не могу их перекомпилировать, поэтому он должен работать так же, как и раньше.
Библиотеки и инструменты ищут файлы точно в том же месте, где они находились в 2004 году.
Это косвенно создает некоторые отверстия в памяти в виде файлов в папке:

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

/sys/class/foo/device0bar
/sys/class/foo/device0baz
/sys/class/foo/device0qux
и ничего будет достаточно.
Что эквивалентно:

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

class_set_devdata(foo->poo->class_device.class, foo);
или в этом нет необходимости?

Подробнее здесь: https://stackoverflow.com/questions/793 ... on-drivers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»