LINUX.ORG.RU

не могу установить драйвер для программатора AVR-ISP500 Olimex


0

1

Пытаюсь установить драйвер на Ubuntu 10.04 и полный крах, возникает одна и та же ошибка: Нет правила для сборки цели `kernel/bounds.c', требуемой для `kernel/bounds.s'. Останов. В директории, куда был распакован архив с драйверами /home/smithsplit/AVR-ISP500_linux_driver возникает файл ftdi_sio.ko, что говорит об ошибке компиляции.

Вот,что в терминале выбивает:

smithsplit@smithsplit-desktop:~$ cd /home/smithsplit/AVR-ISP500_linux_driver smithsplit@smithsplit-desktop:~/AVR-ISP500_linux_driver$ sudo make make -C /lib/modules/2.6.32-38-generic/build M= modules make[1]: Вход в каталог `/usr/src/linux-headers-2.6.32-38-generic' CHK include/linux/version.h CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-x86 make[2]: *** Нет правила для сборки цели `kernel/bounds.c', требуемой для `kernel/bounds.s'. Останов. make[1]: *** [prepare0] Ошибка 2 make[1]: Выход из каталога `/usr/src/linux-headers-2.6.32-38-generic' make: *** [all] Ошибка 2 smithsplit@smithsplit-desktop:~/AVR-ISP500_linux_driver$ make make -C /lib/modules/2.6.32-38-generic/build M=/home/smithsplit/AVR-ISP500_linux_driver modules make[1]: Вход в каталог `/usr/src/linux-headers-2.6.32-38-generic' CC [M] /home/smithsplit/AVR-ISP500_linux_driver/ftdi_sio.o Building modules, stage 2. MODPOST 1 modules CC /home/smithsplit/AVR-ISP500_linux_driver/ftdi_sio.mod.o LD [M] /home/smithsplit/AVR-ISP500_linux_driver/ftdi_sio.ko make[1]: Выход из каталога `/usr/src/linux-headers-2.6.32-38-generic'

Вот, что написано в Readme:

Instructions to install a new driver

BIG FAT NOTE!!! It is highly advisible to use the latest linux kernel available. The files provided here are the original FTDI drivers taken from the source files of kernel 2.6.32.24 (folder is: drivers/usb/serial/) with added support for Olimex VID (0x15BA) and PIDs of our devices. These driver source files were successfully built and tested on Ubunto 10.04 platform but with any other kernel/distribution you might expect compile or runtime errors with this module.

To install the ftdi_sio driver use the following steps:

1. Create a temporary folder in your linux machine. 2. Extract the files from ftdi_sio_olimex.tar.gz file to your temporary folder «gunzip ftdi_sio_olimex.tar.gz» «tar -xvf ftdi_sio_olimex.tar» 3. Navigate to the newly created folder and build the driver «make» You should now have a ftdi_sio.ko file in the directory. If such a file is not present you haven't compiled your driver successfully. Please see bottom section of this file for troubleshooting info! 4. Plug in your device 5. Check to see if the default driver was loaded «lsmod | grep ftdi» - you will see ftdi_sio if a driver is loaded 6. Remove the default installed driver «sudo rmmod ftdi_sio» 7. Load the newly built driver «sudo insmod ftdi_sio.ko» 8. Check if everithing is ok «ls /dev» You should have a file named smth like: ttyUSB0 OPTIONAL: 10. You may substitute the original driver file to include support for your device «cp ftdi_sio.ko /lib/modules/$(uname –r)/kernel/drivers/usb/serial» * You may wish to rename the original «ftdi_sio.ko» file to have it available just in case.

*** TROUBLESHOOTING ***

- in order to compile your driver you need to have the header files of your kernel somewhere in your file system. The default path used by the Makefile is '/lib/modules/$(uname -r)/build' but you can change it by editing the Makefile. - Compile errors in most cases are due to changes in the kernel headers. The best way to cope with this problem is to extract source files of the ftdi driver of the kernel source tree (get it form http://www.kernel.org) and manually add Olimex's VID and PID for this device. Take a look in: http://www.ftdichip.com/Support/Documents/TechnicalNotes/TN_106_Adding_Custom... for instructions (you could also consult the supplied source files for support).

*** TROUBLESHOOTING *** конечно подсказка, но там как-то...даже не знаю.Как я понимаю что-то с headers.Подскажите, пожалуйста, как решить эту проблему?

Можно попробовать заставить работать Убунтовский драйвер, покажите вывод lsusb при подключенном AVR-ISP500 Olimex

anonymous
()

Я может не совсем понимаю, а разве это чудо-изделие не клон STK500?
И если клон, то разве avrdude не должен его из коробки понимать?

yax123 ★★★★★
()

на их сайте сказано:

you can use AVR-ISP500 with AVR Dude

Никаких драйверов следовательно и не нужно.

yax123 ★★★★★
()
Ответ на: комментарий от anonymous

Как? smithsplit@smithsplit-desktop:~$ lsusb Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 002: ID 15ba:000c Olimex Ltd. Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 002: ID 1c4f:0002 SiGma Micro Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub smithsplit@smithsplit-desktop:~$ О...тут что-то появилось, может это оно:Bus 005 Device 002: ID 15ba:000c Olimex Ltd.

SplitSmith
() автор топика
Ответ на: комментарий от yax123

Но зачем производитель тогда предоставил драйвера?Может они реально нужны... Я набрал команду lsusb и мне выбило:

smithsplit@smithsplit-desktop:~$ lsusb

Bus 005 Device 002: ID 15ba:000c Olimex Ltd.

Это говорит о чем-то хорошем?

SplitSmith
() автор топика
Ответ на: комментарий от SplitSmith

Идеально конечно посмотреть на чем они его собрали.
Судя по содержимому драйвера это какая-то разновидность FTDI.
По началу меня с толку сбило их заявление о совместимости с STK500 (который легко делается на одной mega16).
Здесь же они похоже «запилили» модную ft232 (или аналог).
Тем не менее AVRdude и эту штуку с версии 5.10 поддерживает, стоит попробовать.
А драйвером они скорей всего эмулируют каноничный stk500 (и нужна ли в этом случае его эмуляция?).

yax123 ★★★★★
()
Ответ на: комментарий от SplitSmith

выгрузите модуль ядра ftdi_sio, если он загружен: sudo rmmod ftdi_sioю. Потом подгрузите с такими параметрами: sudo modprobe ftdi_sio vendor=0x15ba product=0x000c

должно заработать.

anonymous
()
16 марта 2012 г.
Ответ на: комментарий от anonymous

Хм, ситуация аналогичная,

система: gregory@gregory-H55-UD3H:~/Рабочий стол/Физика/22$ uname -a Linux gregory-H55-UD3H 3.0.0-16-generic-pae #29-Ubuntu SMP Tue Feb 14 13:56:31 UTC 2012 i686 i686 i386 GNU/Linux

lsusb -> Bus 003 Device 002: ID 15ba:000c Olimex Ltd.

Вроде, видит. Ну а дальше я в непонятках. До этого линуксом вообще не пользовался... Но на Win 7 Ultimate x32 (и x64 Win 7 HB на ноуте) драйверы Olimex'а не встали - там тоже с ошибками, решил попробовать с линуксом.

По драйверу от Olimex'а: (правленый там ftdi_sio) - он не компилится - ошибка та же, что и у SplitSmith. Я вначале был в полных непонятках, как эти драйверы у вас собираются :) (как я понял, отчасти причина ошибки в том, что система ждет, что файлы *.c и *.h будут в одном месте, но хидеры в папке linux-headers-2.6.32-38-generic, сишки в папке source там же - теперь у меня там этой папки нет, но она была распакована и установлена под Linux Mint - там поведение было точно таким же, поставил Ubuntu - не помогло=)). Попробовал брутфорсом сначала линков наделать, потом объединить папки хидеров и source, конечно, этот бред не помог, постепенно компилилось, но потом там вылез другой «гроб», с неявным объявлением функций. Потом я зачем-то снес систему, установил девственно чистый Ubuntu, но исходная ошибка осталась.

В общем, ftdi_sio не устанавливается даже как было описано выше sudo modprobe ftdi_sio vendor=0x15ba product=0x000c, поведение без изменений.

Далее. 1) Потому вопрос - для avrdude нужно дополнительно прописывать где-то VID и PID? Потому как на запрос без указания конкретного порта:

gregory@gregory-H55-UD3H:~/Рабочий стол/Физика/22$ avrdude -c stk500v2 -B 50 -p m8 -e -U flash:w:01.hexavrdude: stk500_2_ReceiveMessage(): timeout

- таймаут... Что это вообще значит? Видит ли avrdude программатор? Или нет? Или программатор не отвечает?

2) Попробовал поставить драйверы с сайта ftdi - http://www.ftdichip.com/Drivers/VCP.htm Так они от 2009-05-14 и тоже не ставятся... Устаревшие? Такое может быть?

Ведь если я правильно понимаю и нужно сообщить системе Vid и Pid устройства, то нужно ставить актуальный ftdi, и там добавить:

в ftdio_sio.h -> #define FTDI_MY_VID 0xXXXX

#define FTDI_MY_PID1 0xABC0 #define FTDI_MY_PID2 0xABC1 #define FTDI_MY_PID3 0xABC

Olimex вынес все в отдельный файл ftdi_sio_ids для VID и PID разных устройств, у него это выглядит так: /* Olimex */ #define OLIMEX_VID 0x15BA #define OLIMEX_ARM_USB_OCD_PID 0x0003 #define OLIMEX_AVR_ISP500_ISO_PID 0x000B

Далее, полагаю, в ftdi_sio нужно добавить: { USB_DEVICE(FTDI_MY_VID, FTDI_MY_PID1) }, { USB_DEVICE(FTDI_MY_VID, FTDI_MY_PID2) }, { USB_DEVICE(FTDI_MY_VID, FTDI_MY_PID3) },

У Olimex так: { USB_DEVICE(OLIMEX_VID, OLIMEX_ARM_USB_OCD_PID), // .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },// { USB_DEVICE(OLIMEX_VID, OLIMEX_AVR_ISP500_ISO_PID) },

И далее сделать как указано в http://www.ftdichip.com/Support/Documents/TechnicalNotes/TN_106_Adding_Custom... ?

3) Если «родной» линуксовский файл «устарел» (я хз, возможно ли такое для линукса), не подскажите ли что-то актуальное? Центр приложений мне предлагает на выбор: ftdi-eeprom python-ftdi libftdipp1 libftdi1 flashrom Или это вообще не то? Родной, повторю, не ставится:

gregory@gregory-H55-UD3H:~/Рабочий стол/Физика/FTDI_main$ sudo make [sudo] password for gregory: gcc -Wall -D__KERNEL__ -DMODULE -I/lib/modules/3.0.0-16-generic-pae/build/include -D__SMP__ -DSMP -DMODVERSIONS -include /lib/modules/3.0.0-16-generic-pae/build/include/linux/modversions.h -I/usr/src/linux-3.0.0-16-generic-pae/drivers/usb/serial/ -O -c -o ftdi_sio.o ftdi_sio.c cc1: фатальная ошибка: /lib/modules/3.0.0-16-generic-pae/build/include/linux/modversions.h: Нет такого файла или каталога компиляция прервана. make: *** [ftdi_sio.o] Ошибка 1 gregory@gregory-H55-UD3H:~/Рабочий стол/Физика/FTDI_main$

4) Последнее, у этого программатора же, по идее, свой PID - и его нужно где-то узнавать? Или Olimex всем устройствам предоставляет идентичные? Или у него только 1 PID - который выводится lsusb - Bus 003 Device 002: ID 15ba:000c Olimex Ltd. ?

Спасайте...=) 3 дня бьюсь(

tylerfg
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.