joshmarinacci / ElectronIDE

New web based Arduino IDE
BSD 3-Clause "New" or "Revised" License
246 stars 50 forks source link

Linux avrdude path #17

Closed vip9 closed 10 years ago

vip9 commented 10 years ago

Under Linux, the avrdude binary is in different path: arduino-1.0.5/hardware/tools/avrdude

Running sketch causes in console: got new path /dev/ttyACM0 running /home/vip/bin/arduino-1.0.5/hardware/tools/avr/bin/avrdude -C/home/vip/bin/arduino-1.0.5/hardware/tools/avr/etc/avrdude.conf -v -v -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D -Uflash:w:build/out/Blink.hex:i sh: 1: /home/vip/bin/arduino-1.0.5/hardware/tools/avr/bin/avrdude: not found

chrwei commented 10 years ago

you should verify paths. on my pc it's in arduino-1.0.5/hardware/tools/avrdude

vip9 commented 10 years ago

I'm using original .zips from arduino download pages. I've verified both 32 and 64 bit zips.

chrwei commented 10 years ago

mine's from the zip too. I'm saying, you can't just edit paths and magically hope the files are there. go look in the folders and make sure of where avrdude actually is.

vip9 commented 10 years ago

You don't get it or did not read my post carefully. My root in settings: // root of the regular sketchbook IDE app exports.root = "/home/vip/bin/arduino-1.0.5";

And the code in ElectronIDE/uploader.js looks for: ... options.root+'/hardware/tools/avr/bin/avrdude', ...

Please, tell me, how you would set path in settings, to match code above? The problem is with hardcoded "bin/avr/". In official zips for Linux there is avrdude binary in bin/avr/ directory (yes, there is one for Mac).

joshmarinacci commented 10 years ago

It seems there are two problems. First, on linux the avr binaries are usually installed in a system path like /usr/bin rather than an application path like /Applications/Arduino.app (as on Mac). Second, relative to the IDE install, the avrdude binary and conf files are in slightly different places.

The solution isn't just to change some paths, but to create a platform abstraction that will correctly calculate the paths specifically for each operating system. It's next on my list.

chrwei commented 10 years ago

when using the zip file, the included avrdude is used and any system one ignored, but when using distro packages, it would be in the system path, further complicating this. how does the official IDE handle this?

joshmarinacci commented 10 years ago

I've added a new platform api that should handle mac vs linux differences. It works for compiling, at least (haven't tried uploads yet). How do you install your IDE? The Arduino pages suggest installing the arduino-core debian package from the SID repo. If you do that then Electron should just work. Can you test it?

chrwei commented 10 years ago

I just extract the zip and have it on a dropbox-like folder so I can use it from different computers and they all sync.

joshmarinacci commented 10 years ago

What zip are you using? Where did it come from? My plan is to make Electron install such zips for you on demand.

chrwei commented 10 years ago

the official arduino 1.0.5 zip

vip9 commented 10 years ago

http://arduino.cc/en/main/software#toc2 Linux 64 bit

joshmarinacci commented 10 years ago

I've made a bunch of changes that should fix paths on linux. Now the toolchain will be downloaded on demand so you don't need your own copy anymore. Also, all paths are properly calculated for each OS, so you don't need to modify settings.js anymore. Can you do a fresh checkout and see if it all works for you?

thx.