Senaste AVRdude finns inte i pakethantararen så man måste installera själv...
Hade tänkt installera med:
# tar xvzf avrdude-5.3.1.tar.gz
# cd avrdude-5.3.1
# ./configure
# make
# make install
Men... När jag kör make möts jag av:
fredrik@laptop:~/AVR/avrdude-5.3.1$ make
make all-recursive
make[1]: Entering directory `/home/fredrik/AVR/avrdude-5.3.1'
make[2]: Entering directory `/home/fredrik/AVR/avrdude-5.3.1'
yacc -d config_gram.y
/bin/bash: yacc: command not found
make[2]: *** [config_gram.c] Error 127
make[2]: Leaving directory `/home/fredrik/AVR/avrdude-5.3.1'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/fredrik/AVR/avrdude-5.3.1'
make: *** [all] Error 2
Vad gör jag för fel?
Kompilera AVRdude för Ubuntu?
Tankade hem bison som verkar var nån GNU variant av yacc...
sedan körde jag make (som root...)
root@n200:/home/fredrik/AVR/avrdude-5.3.1# make
make all-recursive
make[1]: Entering directory `/home/fredrik/AVR/avrdude-5.3.1'
make[2]: Entering directory `/home/fredrik/AVR/avrdude-5.3.1'
bison -y -d config_gram.y
config_gram.y:143.8-18: warning: symbol K_WRITEPAGE redeclared
if test -f y.tab.h; then \
to=`echo "config_gram_H" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \
sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|config_gram.h|" \
y.tab.h >config_gram.ht; \
rm -f y.tab.h; \
if cmp -s config_gram.ht config_gram.h; then \
rm -f config_gram.ht ;\
else \
mv config_gram.ht config_gram.h; \
fi; \
fi
if test -f y.output; then \
mv y.output config_gram.output; \
fi
sed '/^#/ s|y\.tab\.c|config_gram.c|' y.tab.c >config_gram.ct && mv config_gram.ct config_gram.c
rm -f y.tab.c
if gcc -DHAVE_CONFIG_H -I. -I. -I. -DCONFIG_DIR=\"/usr/local/etc\" -Wall -g -O2 -MT avrdude-config_gram.o -MD -MP -MF ".deps/avrdude-config_gram.Tpo" -c -o avrdude-config_gram.o `test -f 'config_gram.c' || echo './'`config_gram.c; \
then mv -f ".deps/avrdude-config_gram.Tpo" ".deps/avrdude-config_gram.Po"; else rm -f ".deps/avrdude-config_gram.Tpo"; exit 1; fi
/bin/bash /home/fredrik/AVR/avrdude-5.3.1/missing --run flex lexer.l
/home/fredrik/AVR/avrdude-5.3.1/missing: line 46: flex: command not found
WARNING: `flex' is missing on your system. You should only need it if
you modified a `.l' file. You may need the `Flex' package
in order for those modifications to take effect. You can get
`Flex' from any GNU archive site.
sed '/^#/ s|\.c|lexer.c|' .c >lexer.c
sed: can't read .c: No such file or directory
make[2]: *** [lexer.c] Error 2
make[2]: Leaving directory `/home/fredrik/AVR/avrdude-5.3.1'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/fredrik/AVR/avrdude-5.3.1'
make: *** [all] Error 2
Hmm?
sedan körde jag make (som root...)
root@n200:/home/fredrik/AVR/avrdude-5.3.1# make
make all-recursive
make[1]: Entering directory `/home/fredrik/AVR/avrdude-5.3.1'
make[2]: Entering directory `/home/fredrik/AVR/avrdude-5.3.1'
bison -y -d config_gram.y
config_gram.y:143.8-18: warning: symbol K_WRITEPAGE redeclared
if test -f y.tab.h; then \
to=`echo "config_gram_H" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \
sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|config_gram.h|" \
y.tab.h >config_gram.ht; \
rm -f y.tab.h; \
if cmp -s config_gram.ht config_gram.h; then \
rm -f config_gram.ht ;\
else \
mv config_gram.ht config_gram.h; \
fi; \
fi
if test -f y.output; then \
mv y.output config_gram.output; \
fi
sed '/^#/ s|y\.tab\.c|config_gram.c|' y.tab.c >config_gram.ct && mv config_gram.ct config_gram.c
rm -f y.tab.c
if gcc -DHAVE_CONFIG_H -I. -I. -I. -DCONFIG_DIR=\"/usr/local/etc\" -Wall -g -O2 -MT avrdude-config_gram.o -MD -MP -MF ".deps/avrdude-config_gram.Tpo" -c -o avrdude-config_gram.o `test -f 'config_gram.c' || echo './'`config_gram.c; \
then mv -f ".deps/avrdude-config_gram.Tpo" ".deps/avrdude-config_gram.Po"; else rm -f ".deps/avrdude-config_gram.Tpo"; exit 1; fi
/bin/bash /home/fredrik/AVR/avrdude-5.3.1/missing --run flex lexer.l
/home/fredrik/AVR/avrdude-5.3.1/missing: line 46: flex: command not found
WARNING: `flex' is missing on your system. You should only need it if
you modified a `.l' file. You may need the `Flex' package
in order for those modifications to take effect. You can get
`Flex' from any GNU archive site.
sed '/^#/ s|\.c|lexer.c|' .c >lexer.c
sed: can't read .c: No such file or directory
make[2]: *** [lexer.c] Error 2
make[2]: Leaving directory `/home/fredrik/AVR/avrdude-5.3.1'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/fredrik/AVR/avrdude-5.3.1'
make: *** [all] Error 2
Hmm?
Häpp, problemet löst! Man behövde tydligen flex också...
Summa sumarum:
För att utveckla AVR från Ubuntu krävs:
Lite paket:
bison
flex
gcc-avr
(binutils-avr fås med gcc-avr)
avr-libc
gdb-avr
Lite okompilerad kod:
libusb-0.1.12.tar.gz
avrdude-5.3.1.tar.gz
Sedan är det bara att köra:
tar xvzf libusb-0.1.12.tar.gz
cd libusb-0.1.12
./configure
make
sudo make install
tar xvzf avrdude-5.3.1.tar.gz
cd avrdude-5.3.1
./configure
make
sudo make install
Edit: libusb behövs egentligen bara för usb-programmerarna (AVRISPmkII mfl) men det är ju aldrig fel att ha =)
Summa sumarum:
För att utveckla AVR från Ubuntu krävs:
Lite paket:
bison
flex
gcc-avr
(binutils-avr fås med gcc-avr)
avr-libc
gdb-avr
Lite okompilerad kod:
libusb-0.1.12.tar.gz
avrdude-5.3.1.tar.gz
Sedan är det bara att köra:
tar xvzf libusb-0.1.12.tar.gz
cd libusb-0.1.12
./configure
make
sudo make install
tar xvzf avrdude-5.3.1.tar.gz
cd avrdude-5.3.1
./configure
make
sudo make install
Edit: libusb behövs egentligen bara för usb-programmerarna (AVRISPmkII mfl) men det är ju aldrig fel att ha =)