Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: headers и source  (Прочитано 146132 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
headers и source
« : 16 Мая 2023, 14:09:24 »
Здравствуйте!
Почему в linux-source-5.15.0 функция tty_insert_string_and_push_buffer() есть -
объявление в drivers/tty/tty.h, а определение в drivers/tty/tty-buffer.c,
а в linux-headers eё нет? Это общее правило или именно в Ubuntu?
И заодно: как распаковать vmlinuz? Я нашёл пост 2008-го года,
там предлагается искать сигнатуру gzip - 1f 8b 08 00 - но похоже, что с тех пор что-то изменилось.
----------------
На другом сйти мне дали ссылку на страницу с описанием распаковки vmlinuz.
« Последнее редактирование: 16 Мая 2023, 15:17:11 от Peter_I »
Пётр.

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1690
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: headers и source
« Ответ #1 : 16 Мая 2023, 19:11:25 »
Почему в linux-source-5.15.0 функция tty_insert_string_and_push_buffer() есть - объявление в drivers/tty/tty.h, а определение в drivers/tty/tty-buffer.c, а в linux-headers eё нет?
Потому что одно - это исходный код (source) целиком, т.е. заголовки и имплементация, а второе - это просто заголовки (headers). Заголовки используются для линковки при компиляции программ, там наличие реализации/определения не нужно, достаточно иметь сигнатуры функций.
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн Irshat

  • Активист
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: headers и source
« Ответ #2 : 16 Мая 2023, 19:40:25 »
binutil
вроде может

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: headers и source
« Ответ #3 : 16 Мая 2023, 21:47:03 »
Protopopulus, это понятно, когда-то и для компиляции использовался
непосредственно linux-source, так почему в linux-headers нет и объявления это функции?

Пользователь добавил сообщение 16 Мая 2023, 21:50:27:
Irshat, я как-то не увидел, что там может исполxзоваться для распаковки.
Там утилиты для работы непосредственно с объектами.
« Последнее редактирование: 16 Мая 2023, 21:51:29 от Peter_I »
Пётр.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28349
    • Просмотр профиля
Re: headers и source
« Ответ #4 : 16 Мая 2023, 23:25:47 »
# file $( readlink -e /vmlinuz )
/boot/vmlinuz-4.19.248-0419248-generic: Linux kernel x86 boot executable bzImage, version 4.19.248-0419248-generic (kernel@kathleen) #202206161253 SMP Th, RO-rootFS, swap_dev 0x8, Normal VGA
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: headers и source
« Ответ #5 : 17 Мая 2023, 09:05:31 »
AnrDaemon, команда "file vmlinuz-5.15.0-generic" это пишет и без явного вызова readlink,
я это вчера сразу же сделал.Скрипт extract-vmlinux сообщает, что не находит там vmlinux.
Но как-то vmlinux там же запакована? Чем?
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: headers и source
« Ответ #6 : 18 Мая 2023, 22:18:40 »
А кто-нибудь может сказать, как пользоваться скриптом extract-vmlinux
из linux-sourse из каталога scripts?
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: headers и source
« Ответ #7 : 20 Мая 2023, 21:09:08 »
Я сообразил, как пользоваться скриптом extract-vmlinux,
надо было правильно вводить команду.
Пётр.

Оффлайн Irshat

  • Активист
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: headers и source
« Ответ #8 : 21 Мая 2023, 06:34:13 »
Я сообразил, как пользоваться скриптом extract-vmlinux
Так на всякий можете скинуть команду, в копилку к себе скину

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: headers и source
« Ответ #9 : 21 Мая 2023, 09:07:43 »
Она есть в самом сккипте, первоначально я её неправильно понял. Можно так:
./extract-vmlinux файл_vmlinuz >& vmlinuxУ меня этот скрипт с 4-й, кажется,попытки подобрал архиватор, каким было сжато,
там внутри цикл.
« Последнее редактирование: 21 Мая 2023, 17:31:38 от Peter_I »
Пётр.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28349
    • Просмотр профиля
Re: headers и source
« Ответ #10 : 21 Мая 2023, 11:51:20 »
команда "file vmlinuz-5.15.0-generic" это пишет и без явного вызова readlink,
Смотря откуда вызывать. У меня если вызывать из домашнего кталога, линк не ресолвится.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: headers и source
« Ответ #11 : 21 Мая 2023, 20:30:40 »
А почему в исходных текстах ядра в drivers/tty/tty_buffer.c есть функция
tty_insert_flip_string_and_push_bufer(), а в /lib/modules/.../drivers/tty/
ни в одном *.ko её нет?
Пётр.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28349
    • Просмотр профиля
Re: headers и source
« Ответ #12 : 21 Мая 2023, 20:56:16 »
А как проверяли, что нет?…
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: headers и source
« Ответ #13 : 21 Мая 2023, 22:06:44 »
AnrDaemon, у меня давно был написан скрипт для поиска символа в *.so
с помощью nm. он просматривает все *.so в каталоге, где запущен. Я заменил в нём *.so на
*.ko и запускал в том каталоге и его подкаталогах.
Однако мне сказали, что эта функция должна быть в ядре, я для проверки этого и хотел
извлечь vmlinux из vmlinuz-5.15.0-71-generic. Извлёк, но команда
readelf -a vmlinux имени той функции не содержит, и вообще мне этот вывод
показался коротким.

Пользователь добавил сообщение 21 Мая 2023, 22:41:27:
Команда
file vmlinux сообщает, что nm не находит в ней символов.
« Последнее редактирование: 21 Мая 2023, 22:41:27 от Peter_I »
Пётр.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28349
    • Просмотр профиля
Re: headers и source
« Ответ #14 : 22 Мая 2023, 10:28:30 »
Если функция не экспортируется, по названию её не найдёшь.
И вообще возможны варианты.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.