Catarina Bootloader - Compile Error

Hallo,

mal eine Frage an die avr-gcc / bootloader Experten...

Ich würde gerne die VID und PID ändern, um einer Software vorzugaukeln, es wäre ein FT232RL angeschlossen...
Die Software prüft die VID und PID. Urspünglich war die Leiterplatte mit einen Atmega328 und einem externen FT232RL realisiert.
Den zusätzlichen Chip würde ich mir nun gerne sparen...
Außerdem möchte ich noch den ProductString und VendorString ändern.

Daher hab ich versucht, den caterina bootloader mit neuer VID und PID zu compilieren.
Dazu bin ich dem Tutorial hier gefolgt: http://steven.casagrande.io/articles/compiling-arduino-caterina-with-new-vidpid/

Ich kann die Demos und projekte kompilieren, aber das "make all" schlägt fehl...

Fehlermeldung:

daniel@daniel-VirtualBox:/opt/arduino-1.8.5/hardware/arduino/avr/bootloaders/caterina$ sudo make all

-------- begin --------
avr-gcc (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Compiling C: Caterina.c
avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -DF_USB=16000000UL -DBOARD=BOARD_USER -DARCH=ARCH_AVR8 -DBOOT_START_ADDR=0x7000UL -DDEVICE_VID=0x2341UL -DDEVICE_PID=0x003CUL -D USB_DEVICE_ONLY -D DEVICE_STATE_AS_GPIOR=0 -D ORDERED_EP_CONFIG -D FIXED_CONTROL_ENDPOINT_SIZE=8 -D FIXED_NUM_CONFIGURATIONS=1 -D USE_RAM_DESCRIPTORS -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -D NO_INTERNAL_SERIAL -D NO_DEVICE_SELF_POWER -D NO_DEVICE_REMOTE_WAKEUP -D NO_SOF_EVENTS -D NO_LOCK_BYTE_WRITE_SUPPORT -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=./Caterina.lst -I/opt/arduino-1.8.5/hardware/arduino/avr/bootloaders/caterina/LUFA-111009/ -std=c99 -MMD -MP -MF .dep/Caterina.o.d Caterina.c -o Caterina.o

Compiling C: Descriptors.c
avr-gcc -c -mmcu=atmega32u4 -I. -gdwarf-2 -DF_CPU=16000000UL -DF_USB=16000000UL -DBOARD=BOARD_USER -DARCH=ARCH_AVR8 -DBOOT_START_ADDR=0x7000UL -DDEVICE_VID=0x2341UL -DDEVICE_PID=0x003CUL -D USB_DEVICE_ONLY -D DEVICE_STATE_AS_GPIOR=0 -D ORDERED_EP_CONFIG -D FIXED_CONTROL_ENDPOINT_SIZE=8 -D FIXED_NUM_CONFIGURATIONS=1 -D USE_RAM_DESCRIPTORS -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -D NO_INTERNAL_SERIAL -D NO_DEVICE_SELF_POWER -D NO_DEVICE_REMOTE_WAKEUP -D NO_SOF_EVENTS -D NO_LOCK_BYTE_WRITE_SUPPORT -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=./Descriptors.lst -I/opt/arduino-1.8.5/hardware/arduino/avr/bootloaders/caterina/LUFA-111009/ -std=c99 -MMD -MP -MF .dep/Descriptors.o.d Descriptors.c -o Descriptors.o
make: *** No rule to make target 'opt/arduino-1.8.5/hardware/arduino/avr/bootloaders/caterina/LUFA-111009/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o', needed by 'Caterina.elf'.  Stop.

Was geht denn da schief?! :o

Danke und Gruß
Danie

Warum willst du den Bootloader ändern?

Die Anwendung hat eine eigenen, davon unabhängigen, USB Parametersatz!

Ich möchte mir so den zusätzlichen USB-Uart Bridge Chip sparen.

Im Grunde macht der FT232RL doch auch nichts anderes, als einen virtuellen COM-Port emulieren.
Wenn die VID und PID gleich sind, sollte das doch funktionieren oder seh ich da was falsch?

Gruß Daniel

Wenn die VID und PID gleich sind, sollte das doch funktionieren oder seh ich da was falsch?

Erstens:
Der Bootloader läuft nur ein paar Sekunden.
Dann ist die Anwendung für alles zuständig.
incl. VID und PID

Zweitens:
Du wirst dann den ganzen FTDI232 emulieren müssen, da das OS den FTDI Treiber läd.

Okay, hast recht.
Ich dachte der FTDI Treiber lädt ganz normal den Windows internen USB Serial Class Treiber und ist nur dafür verantwortlich, das Product String usw. im Geräte Manager gesetzt werden.

Wie ich im .inf-File aber sehe, ist das wirklich ein eigener, von Windows unabhängiger Treiber.
Die Application wird vermutlich die .dll nutzen, um die Daten rauszuschicken.

Das wird dann wohl nix :confused: