avrdude скомпилирована без поддержки юсб. Исправьте пожалуйста или подскажите как исправить
На Sisyphus.
Что значит "На Sisyphus"?
А почему вы считаете, что нет поддержки USB? Как это посмотреть? Например с USBASP у меня avrdude работает нормально.
И, к тому же: $ ldd /usr/bin/avrdude | grep usb libusb-1.0.so.0 => /lib/libusb-1.0.so.0 (0xb773c000)
У меня выдает сообщение, что avrdude скомпилирована без поддержки usb
А команду, которая это сообщение выдаёт, можно увидеть? И версию пакета.
avrdude 6.3 устанавливал через Synaptic avrdude -p t13 -c stk500v2 -P avrdoper
(In reply to comment #7) > avrdude 6.3 устанавливал через Synaptic > avrdude -p t13 -c stk500v2 -P avrdoper avrdude: Version 6.3, compiled on Aug 9 2017 at 16:49:59 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "/etc/avrdude.conf" User configuration file is "/home/alex/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : avrdoper Using Programmer : stk500v2 avrdude was compiled without usb support. avrdude done. Thank you.
Ага, понятно. Разные части avrdude написаны с использованием разных библиотек. SUBasp использует libusb-1.0, а stk500v2 требует старой libusb. Нужно добавить в сборочные зависимости libusb-compat-devel и пересобрать пакет.
А как это сделать?
(В ответ на комментарий №9) > Ага, понятно. Разные части avrdude написаны с использованием разных библиотек. > SUBasp использует libusb-1.0, а stk500v2 требует старой libusb. В мне это непонятно. Из чего следует, что "Разные части avrdude написаны с использованием разных библиотек"? > Нужно добавить в сборочные зависимости libusb-compat-devel и пересобрать пакет. [sin@centrit006 ~]$ rsync rsync://rsync.altlinux.org/ALTLinux/Sisyphus/files/x86_64/RPMS/avrdude-6.3* Welcome to ALT Linux Team public rsync archive! -rw-r--r-- 281,035 2017/07/27 12:06:02 avrdude-6.3-alt1.S1.x86_64.rpm [sin@centrit006 ~]$ rsync rsync://rsync.altlinux.org/ALTLinux/Sisyphus/files/x86_64/RPMS/avrdude-6.3* . Welcome to ALT Linux Team public rsync archive! [sin@centrit006 ~]$ rpm -qpR avrdude-6.3-alt1.S1.x86_64.rpm /bin/sh /bin/sh /lib64/ld-linux-x86-64.so.2 libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.15)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libelf.so.1()(64bit) >= set:kg3IPkqeRua1X8UFX5Tf8qLKEZBe1i3IDysd1 rpmlib(SetVersions) libelf.so.1(ELFUTILS_1.0)(64bit) libelf.so.1(ELFUTILS_1.5)(64bit) libftdi1.so.2()(64bit) >= set:kg1x6Lx22DeyL1S4EtsPUhUmvso5vOKeW6p11 libm.so.6(GLIBC_2.2.5)(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libreadline.so.6()(64bit) >= set:nlIfCiwp4 libusb-1.0.so.0()(64bit) >= set:kgIXMHqbFAsqD2uB7H4xwDp9f rtld(GNU_HASH) rpmlib(PayloadIsLzma) [sin@centrit006 ~]$ rpm -q --whatprovides "libusb-1.0.so.0()(64bit)" libusb-1.0.21-alt0.M80P.1 Так, что надо разобраться, почему так получилось, что вот этот код, срабатывает после сборки: stk500v2.c-#if defined(HAVE_LIBUSB) stk500v2.c- serdev = &usb_serdev; stk500v2.c- pinfo.usbinfo.vid = USB_VENDOR_ATMEL; stk500v2.c- pinfo.usbinfo.flags = 0; stk500v2.c- pinfo.usbinfo.pid = USB_DEVICE_AVRDRAGON; stk500v2.c- pgm->fd.usb.max_xfer = USBDEV_MAX_XFER_MKII; stk500v2.c- pgm->fd.usb.rep = USBDEV_BULK_EP_READ_MKII; stk500v2.c- pgm->fd.usb.wep = USBDEV_BULK_EP_WRITE_MKII; stk500v2.c- pgm->fd.usb.eep = 0; /* no seperate EP for events */ stk500v2.c-#else stk500v2.c: avrdude_message(MSG_INFO, "avrdude was compiled without usb support.\n"); stk500v2.c- return -1; stk500v2.c-#endif
(В ответ на комментарий №11) > (В ответ на комментарий №9) > > Ага, понятно. Разные части avrdude написаны с использованием разных библиотек. > > USBasp использует libusb-1.0, а stk500v2 требует старой libusb. > > А мне это непонятно. Из чего следует, что "Разные части avrdude написаны с > использованием разных библиотек"? Ну я код смотрел, оттуда предположение. В usbasp.c используется макрос HAVE_LIBUSB_1_0 и подключается libusb-1.0/libusb.h из libusb-devel В stk500v2.c ориентируются на макрос HAVE_LIBUSB. В configure HAVE_LIBUSB выставляется если удалось использовать -lusb из libusb-compat-devel, а HAVE_LIBUSB_1_0 если удалось использовать -lusb-1.0 из libusb-devel. Почему используются две разные версии библиотеки я не знаю, можно ли избавиться от libusb-compat-devel тоже. Но вроде в одной программе они уживаются, я попробовал собрать с обеими, работа USBasp не сломалась, а stk500v2 больше не ругается на отсутствие поддержки USB (этого программатора у меня здесь нет). Ну и насколько я понял по коду, если оставить только libusb-compat-devel, а libusb-devel убрать, то USBasp будет использовать compat-библиотеку. Остальные места не смотрел, возможно есть кто-то, кому нужна именно libusb-1.0.
В ft245r.c, похоже, подходит только libusb-1.0. Так что, вроде, получается, что для полной поддержки USB нужны обе версии библиотеки. Либо патчить код.
Да, всё верно... обе либы нужно добавить, вот так: http://git.altlinux.org/people/sin/packages/avrdude.git?p=avrdude.git;a=commitdiff;h=34c83dd749b0c08032c953d1b872dbb69015e5e1;hp=8c792bf19a7aa5e1ddb3bd39d292b4a5249a9a80 Отправил на сборку в сизиф: #189872 BUILDING #1 [locked] sisyphus avrdude.git=6.3-alt2%ubt
avrdude-6.3-alt2.S1 -> sisyphus: Sun Oct 01 2017 Evgeny Sinelnikov <sin@altlinux.ru> 6.3-alt2.S1 - Rebuild with libusb-compat-devel due needs for stk500v2 (ALT #33937)
Как его теперь установить, чтоб проверить?
(В ответ на комментарий №16) > Как его теперь установить, чтоб проверить? Спасибо! Всё работает отлично.