Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.171] |
|
Сообщ.
#1
,
|
|
|
Добрый день. Проблема следующая, пытаюсь собрать сторонние исходники и выходит ошибка
fatal error: linux/autoconf.h: Нет такого файла или каталога Если смотреть makefile то там есть строка KERNELDIR ?= /lib/modules/$(shell uname -r)/build где uname -r как раз и выдает linux-headers-5.15.0-83-generic. Дальше интереснее, в каталоге /usr/src/ есть папки linux-headers-5.15.0-83-generic и linux-headers-5.15.0-83, при чем в папке linux-headers-5.15.0-83 файл linux/autoconf.h есть, а в linux-headers-5.15.0-83-generic его нет. В папке /lib/modules/ есть только linux-headers-5.15.0-83-generic попытка обновить заголовки говорит что у меня все самое лучшее и последнее из того что может быть. Так вот вопрос знатокам, как быть и как это дело мне таки скомпилировать ???? |
Сообщ.
#2
,
|
|
|
Мне сложно сказать по поводу Astra Linux. Но на Calculate уже ядро версии 6.8.4 (под версией 5.15 не идет новый glibc). Я так понимаю, что Astra до сих пор на 5.15 максимум?
|
Сообщ.
#3
,
|
|
|
Попробуйте заменить в исходниках linux/autoconf.h на generated/autoconf.h.
Вроде как уже давно этот файл в ядре так перенесли. А это наводит на мысль, что вы пытаетесь собрать что-то очень старое. |
Сообщ.
#4
,
|
|
|
Цитата macomics @ Мне сложно сказать по поводу Astra Linux. Но на Calculate уже ядро версии 6.8.4 (под версией 5.15 не идет новый glibc). Я так понимаю, что Astra до сих пор на 5.15 максимум? так и есть к сожалению Цитата grgdvo @ опробуйте заменить в исходниках linux/autoconf.h на generated/autoconf.h. Вроде как уже давно этот файл в ядре так перенесли. А это наводит на мысль, что вы пытаетесь собрать что-то очень старое. да, пытаюсь собрать дрова под железку от LCard, не очень что то получается. Под RedOS с ядром 6.6 вообще отказывается собираться, там больше уже на много несовместимостей. И, да спасибо, замена на generated/autoconf.h помогла, но куча других ошибок посыпалась. кстати, в итоге удалось все таки собрать драйвер, но почему то ругается на неверный формат файла. Я раньше дрова под Linux не собирал, поэтому даже не знаю в какую степь копать. Прикреплённый файл2024_04_15_08_21_39.png (8,43 Кбайт, скачиваний: 34) Добавлено кстати, может еще с проблемой поможете, постоянно лезет вот такая ошибка /home/seyran/lcard/dstr/ldevusbu.c:298:22: error: implicit declaration of function ‘usb_buffer_free’; did you mean ‘usb_buffer_map_sg’? [-Werror=implicit-function-declaration] if(dev->buf) { usb_buffer_free/*_coherent*/(dev->udev, dev->wIrqStep*sizeof(u16), dev->buf, dev->urb->transfer_dma); dev->buf=NULL; } ^~~~~~~~~~~~~~~ usb_buffer_map_sg /home/seyran/lcard/dstr/ldevusbu.c: In function ‘ldevusb_ioctl’: /home/seyran/lcard/dstr/ldevusbu.c:668:21: error: implicit declaration of function ‘usb_buffer_alloc’; did you mean ‘sparse_buffer_alloc’? [-Werror=implicit-function-declaration] dev->buf = usb_buffer_alloc/*_coherent*/(dev->udev, dev->wIrqStep*sizeof(u16), GFP_KERNEL, &dev->urb->transfer_dma); ^~~~~~~~~~~~~~~~ sparse_buffer_alloc /home/seyran/lcard/dstr/ldevusbu.c:668:19: warning: assignment to ‘u8 *’ {aka ‘unsigned char *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] dev->buf = usb_buffer_alloc/*_coherent*/(dev->udev, dev->wIrqStep*sizeof(u16), GFP_KERNEL, &dev->urb->transfer_dma); ^ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:297: /home/seyran/lcard/dstr/ldevusbu.o] Ошибка 1 make[1]: *** [Makefile:1909: /home/seyran/lcard/dstr] Ошибка 2 make[1]: выход из каталога «/usr/src/linux-headers-5.15.0-83-generic» make: *** [Makefile:28: modules] Ошибка 2 причем в гугле везде на форумах написано примерно так Цитата sudo su make clean make но не помогает |
Сообщ.
#5
,
|
|
|
а ведь действительно, открыл /usr/src/linux-headers-5.15.0-83-generic/include/linux/usb.h и в нем нет объявлений ни usb_buffer_free, ни usb_buffer_alloc. Хотя как написанно в мануалах оно должно быть там , причем поиском вообще в /usr/src ни в одном заголовочном файле usb_buffer_free не находит (((
|
Сообщ.
#6
,
|
|
|
Оно там было в 2010 году )) Переименовали...
https://git.kernel.org/pub/scm/linux/kernel...f092ea048c7b236 https://git.kernel.org/pub/scm/linux/kernel...5f922b8dbda1363 Можно, конечно, заменить в исходниках, как написано в этих комитах. Но боюсь, что вы так дальше себе копаете яму. Драйвер явно был написан для устройства из позапрошлого десятилетия и для ядра из того же десятилетия. Что поменялось архитектурно - трудно сказать! И какие подводные камни в работе драйвера вылезут, даже если скомпилируется в конце-концов. Попробуйте заменить, но заработает ли?!) |
Сообщ.
#7
,
|
|
|
Тогда лучше просто скачать весь коммит, а не менять что-то в имеющемся.
|
Сообщ.
#8
,
|
|
|
Цитата grgdvo @ Оно там было в 2010 году )) Переименовали... https://git.kernel.org/pub/scm/linux/kernel...f092ea048c7b236 https://git.kernel.org/pub/scm/linux/kernel...5f922b8dbda1363 Можно, конечно, заменить в исходниках, как написано в этих комитах. Но боюсь, что вы так дальше себе копаете яму. Драйвер явно был написан для устройства из позапрошлого десятилетия и для ядра из того же десятилетия. Что поменялось архитектурно - трудно сказать! И какие подводные камни в работе драйвера вылезут, даже если скомпилируется в конце-концов. Попробуйте заменить, но заработает ли?!) печаль, потому как сам производитель особо ничего в этом направлении и не пытается делать, а уговорить мое руководство покупать у других это тоже не реально, ибо я сам понимаю какие последствия будут этого решения. Цитата macomics @ Тогда лучше просто скачать весь коммит, а не менять что-то в имеющемся. не понял о чем вы, если можно, не помешало бы уточнение. |
Сообщ.
#9
,
|
|
|
Цитата Pit-Bul @ не понял о чем вы, если можно, не помешало бы уточнение. Вот вам дали ссылки на два коммита Цитата Оно там было в 2010 году )) Переименовали... https://git.kernel.org/pub/scm/linux/kernel...f092ea048c7b236 https://git.kernel.org/pub/scm/linux/kernel...5f922b8dbda1363 И предлагают поменять что-то одно в ваших исходниках ядра. Но тогда могут появится действительно большие проблемы. Лучше просто взять весь коммит по ссылке вместо имеющихся исходников. Так он хотя бы точно откомпилируется, если не будет проблем с текущими версиями библиотек. |
Сообщ.
#10
,
|
|
|
Цитата И предлагают поменять что-то одно в ваших исходниках ядра. Но тогда могут появится действительно большие проблемы. Лучше просто взять весь коммит по ссылке вместо имеющихся исходников. Так он хотя бы точно откомпилируется, если не будет проблем с текущими версиями библиотек. macomics, понял, только вот не возникнет ли проблемы уже со скомпилированными либами. И вот выше я писал, пытался в Астру подсунуть либы скомпилированные в минте с той же версией ядра, и при попытке их загрузить, получил ошибку "Invalid module format" картинка из поста |
Сообщ.
#11
,
|
|
|
macomics, Pit-Bul
Коллеги! Меня могли неправильно понять! Я не предлагаю менять исходники ядра - это вообще бессмысленно, может много другого отвалиться! Когда я писал поменять в исходниках - я, конечно же, имел в виде менять исходники кастомного драйвера у Pit-Bul. А именно, в последнем примере менять usb_buffer_alloc() на to usb_alloc_coherent() и usb_buffer_free() на usb_free_coherent() в соответствии с изменениями в ядре Linux. Коммиты я привел просто для убедительности, что такие работы велись в ядре, и со стороны разработчиков кастомных драйверов предполагается их доработка. |