Benutzer:Robomu: Unterschied zwischen den Versionen
Robomu (Diskussion | Beiträge) (→Build avrdude with USB support from sources and configure udev to allow it access to AVRISP mkII) |
Robomu (Diskussion | Beiträge) (→Build avrdude with USB support from sources and configure udev to allow it access to AVRISP mkII) |
||
Zeile 40: | Zeile 40: | ||
This output shows, that device 002 on bus 001 uses <em>/dev/usbdev1.2*</em> device files. It further shows, that these devices are owned by root and have group set to root too and do not ordinary users any access. Next task is to tell the kernel via a udev rule to assign access rights to the programmers usb device that grants non-root users rw access. To accomplish this, one needs to know the information the kernel has about the programmer's usb device. Use <em>udevinfo</em> command to do so looking up data for the device file identified from above as follows:<br> | This output shows, that device 002 on bus 001 uses <em>/dev/usbdev1.2*</em> device files. It further shows, that these devices are owned by root and have group set to root too and do not ordinary users any access. Next task is to tell the kernel via a udev rule to assign access rights to the programmers usb device that grants non-root users rw access. To accomplish this, one needs to know the information the kernel has about the programmer's usb device. Use <em>udevinfo</em> command to do so looking up data for the device file identified from above as follows:<br> | ||
<em>udevinfo -a -p $(udevinfo -q path -n /dev/usbdev1.2_ep00)</em> | <em>udevinfo -a -p $(udevinfo -q path -n /dev/usbdev1.2_ep00)</em> | ||
+ | |||
+ | looking at parent device '/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb1/1-1': | ||
+ | KERNELS=="1-1" | ||
+ | SUBSYSTEMS=="usb" | ||
+ | DRIVERS=="usb" | ||
+ | ATTRS{dev}=="189:1" | ||
+ | ATTRS{configuration}=="" | ||
+ | ATTRS{bNumInterfaces}==" 1" | ||
+ | ATTRS{bConfigurationValue}=="1" | ||
+ | ATTRS{bmAttributes}=="c0" | ||
+ | ATTRS{bMaxPower}=="100mA" | ||
+ | ATTRS{urbnum}=="10" | ||
+ | ATTRS{idVendor}=="03eb" | ||
+ | ATTRS{idProduct}=="2104" | ||
+ | ATTRS{bcdDevice}=="0200" | ||
+ | ATTRS{bDeviceClass}=="ff" | ||
+ | ATTRS{bDeviceSubClass}=="00" | ||
+ | ATTRS{bDeviceProtocol}=="00" | ||
+ | ATTRS{bNumConfigurations}=="1" | ||
+ | ATTRS{bMaxPacketSize0}=="16" | ||
+ | ATTRS{speed}=="12" | ||
+ | ATTRS{busnum}=="1" | ||
+ | ATTRS{devnum}=="2" | ||
+ | ATTRS{version}==" 1.10" | ||
+ | ATTRS{maxchild}=="0" | ||
+ | ATTRS{quirks}=="0x0" | ||
+ | ATTRS{authorized}=="1" | ||
+ | ATTRS{manufacturer}=="ATMEL" | ||
+ | ATTRS{product}=="AVRISP mkII" | ||
+ | ATTRS{serial}=="000200021047" |
Version vom 5. Februar 2010, 20:39 Uhr
Ethersex Development using Eclipse Ganymede on Ubuntu 8.04 LTS
Eclipse may be used on Ubuntu 8.04 to work with the Ethersex Source Tree and even to directly flash the target from within Eclipse. However make menuconfig has to be run outside Eclipse since Eclipse does not provide a terminal window for running external tools. This article shows installation and configuration of
- avrdude with USB support for Atmel AVRISP mkII
- Eclipse Ganymede
and reports operating experiance.
Build avrdude with USB support from sources and configure udev to allow it access to AVRISP mkII
To use the ATMEL USB programmer AVRISP mkII avrdude requires libusb support. Here is how to build it from sources:
- Make sure that libusb and libusb-dev is installed on your system
- Make sure that flex (substitute for lex) and bison (substitute for yacc) are installed on your system
- Download source package (avrdude-5.10.tar.gz) from savannah.nongnu.org and transfer it to a local install folder and unpack it with tar -xvf
- cd to your extracted avrdude-5.10 folder and run ./configure
- check config.log and if no errors reportet run make and make config to install avrdude to /usr/local/bin/avrdude
Since avrdude does not run under root during normal development you need to make sure that it is allowed to access the USB device associated to the AVRISP mkII.
- First use the command lsusb to identify the usb device associated to the Programmer showing it's name and the VendorID of ATMEL (03eb) and the Device ID of the AVRISP mkII (2104)
Bus 002 Device 001: ID 0000:0000 Bus 001 Device 003: ID 0e0f:0002 Bus 001 Device 002: ID 03eb:2104 Atmel Corp. AVR ISP mkII Bus 001 Device 001: ID 0000:0000
The Programmer is on bus 001 device 002. Then identify the usb devices by issuing ls -al /dev/usb*:
crw-rw---- 1 root root 254, 0 2010-02-05 16:30 /dev/usbdev1.1_ep00 crw-rw---- 1 root root 254, 1 2010-02-05 16:30 /dev/usbdev1.1_ep81 crw-rw---- 1 root root 254, 4 2010-02-05 16:30 /dev/usbdev1.2_ep00 crw-rw---- 1 root root 254, 6 2010-02-05 16:30 /dev/usbdev1.2_ep02 crw-rw---- 1 root root 254, 5 2010-02-05 16:30 /dev/usbdev1.2_ep82 crw-rw---- 1 root root 254, 7 2010-02-05 16:30 /dev/usbdev1.3_ep00 crw-rw---- 1 root root 254, 8 2010-02-05 16:30 /dev/usbdev1.3_ep81 crw-rw---- 1 root root 254, 2 2010-02-05 16:30 /dev/usbdev2.1_ep00 crw-rw---- 1 root root 254, 3 2010-02-05 16:30 /dev/usbdev2.1_ep81
This output shows, that device 002 on bus 001 uses /dev/usbdev1.2* device files. It further shows, that these devices are owned by root and have group set to root too and do not ordinary users any access. Next task is to tell the kernel via a udev rule to assign access rights to the programmers usb device that grants non-root users rw access. To accomplish this, one needs to know the information the kernel has about the programmer's usb device. Use udevinfo command to do so looking up data for the device file identified from above as follows:
udevinfo -a -p $(udevinfo -q path -n /dev/usbdev1.2_ep00)
looking at parent device '/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb1/1-1': KERNELS=="1-1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{dev}=="189:1" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="c0" ATTRS{bMaxPower}=="100mA" ATTRS{urbnum}=="10" ATTRS{idVendor}=="03eb" ATTRS{idProduct}=="2104" ATTRS{bcdDevice}=="0200" ATTRS{bDeviceClass}=="ff" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="16" ATTRS{speed}=="12" ATTRS{busnum}=="1" ATTRS{devnum}=="2" ATTRS{version}==" 1.10" ATTRS{maxchild}=="0" ATTRS{quirks}=="0x0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="ATMEL" ATTRS{product}=="AVRISP mkII" ATTRS{serial}=="000200021047"