Additional hints about the arduino-core-avr package in Debian ------------------------------------------------------------- 1. Bootloaders - differences between Debian and upstream on provided .hex files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This Debian package can't provide all the various *.hex files that are present within the upstream archive. Due the DFSG [1] we are required to build all binary stuff from source, and also have to remove any prebuilt binary stuff from the source tarball. Due this circumstances there are some differences between the included *.hex files in /usr/share/arduino/hardware/bootloaders and data provided by upstream. In detail there are the following differences. Folder bootloaders/atmega This folder is fully rebuildable, Debian is providing all possible *.hex files. Folder bootloaders/atmega8 This folder is fully rebuildable, Debian is providing all possible *.hex files. Folder bootloaders/bt: The file ATmegaBOOT_168_atmega328_bt.hex we aren't able to rebuild, the package isn't including this file. Folder bootloaders/caterina, bootloaders/caterina-Arduino_Robot, bootloaders/caterina-LilyPadUSB All the various *.hex files can't be rebuilded right now. Rebuilding requires LUFA [2] as resource which isn't available as package right now nor is it included as additional tarball to the source package. Folder bootloaders/gemma To rebuild the file gemma_v1.hex we need to include the source of the Adafruit-Trinket-Gemma-Bootloader somehow, the complete source is not fully included and we can't build the file gemma_v1.hex. Folder bootloaders/optiboot For the file optiboot_atmega328-Mini.hex isn't a Make target nor a read me or a hint provided how to rebuild that file. Therefore we cant's build and ship that file. Folder bootloaders/stk500v2 The file Mega2560-prod-firmware-2011-06-29.hex can't be built from source because the Makefile has no information about this file or instructions how to build the .hex file. In case you really need one of the *.hex files from one of these folders you can mostly pull the desired file from the original upstream git tree. It certainly would be better if upstream can provide information how the files can be built by ourself! https://github.com/arduino/ArduinoCore-avr [1] https://www.debian.org/social_contract#guidelines [2] http://www.lufa-lib.org/ 3. Firmware - impossibility to provide any .hex files as firmware ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The situation for all *.hex files within the folder firmware/ is mostly the same as for the *.hex files within the some subfolders in bootloader/. For a successful rebuild of the various *.hex files in the folders firmware/atmegaxxu2 firmware/atmegaxxu2/arduino-usbserial the Lightweight USB Framework for AVRs (LUFA) [1] is required. For now this software isn't packaged yet and by this the package can't provide any *.hex files built up on top of the Makefiles. The existing *.hex files are build with LUFA version 100807 according to the file 'firmwares/atmegaxxu2/README.txt'. For now we can just provide the available source files. Please have a look at the upstream resource for the package arduino-core-avr [2] in case you need a pre compiled *.hex file. [1] http://www.lufa-lib.org/ [2] https://github.com/arduino/ArduinoCore-avr/tree/master/firmwares If you have any questions or suggestions for improving this README file please do not hesitate to write your opinions to the mailing list, no subscription is required. pkg-electronics-devel@alioth-lists.debian.net -- Carsten Schoenert Thu, 17 Dec 2020 20:20:00 +0100