PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anleitung: avrgcc + avrdude installieren



kater
25.10.2005, 18:09
avrgcc und avrdude installieren

Es gibt bereits eine sehr gute Anleitung für das installieren vom avrgcc, aber sie ist etwas
veraltet. Für den original Text siehe: http://www.tldp.org/linuxfocus/English/November2004/article352.shtml
Ich werde im folgenden nur das nötigste von diesem Artikel kopieren.

Es gibt drei Teile. Im ersten Teil wird die Installation erklaert, im zweiten wird gezeigt wie man
damit denn nun seine Programme fuer den MCU erstellt. Im dritten Teil stehen noch ein paar
typische Fehlermeldungen und die Loesungen.

== Teil 1==

Also los. Wir brauchen folgende Software:

binutils-2.16.1.tar.bz2 Zu finden bei ftp://ftp.gnu.org/gnu/binutils/
gcc-core-4.0.2.tar.bz2 ftp://ftp.gnu.org/gnu/gcc/gcc-4.0.2/
avr-libc-1.2.5.tar.bz2 http://savannah.nongnu.org/download/avr-libc/ Dort findet ihr auch das Manual fuer die avrlib
avrdude-5.0.tar.gz http://savannah.nongnu.org/download/avrdude/

Als erstes erstellen wir das Verzeichnis in das der avrgcc installiert wird:

# Als root:
mkdir /usr/local/avr

Und das Verzeichnis in dem die Programme liegen werden:

# Als root:
mkdir /usr/local/avr/bin

Dieses Verzeichnis wird auch gleich in die PATH Variable geschrieben:
export PATH=$PATH:/usr/local/avr/bin

Achtung, dieser Befehl ist nur in dieser eine Konsole in der ihr seit gueltig und auch nur solange
wie sie offen ist. Um die Aenderung Systemweit wirksam zu machen muesst ihr in die Datei /etc/profile
den PATH nachtragen. Bei mir sieht das z.B. so aus:

# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/local/avr/bin"


Installation von binutils:

Mit den binutils bekommt ihr Programme wie z.b. avr-as (Assembler), avr-ld (Linker), avr-objcopy (Um die Hex-Files zu erstellen).
Und so wirds gemacht:

tar jxf binutils-2.16.1.tar.bz2 (Das entpacken kann eine Weile dauern)
cd binutils-2.16.1/
mkdir obj-avr
cd obj-avr
../configure --target=avr --prefix=/usr/local/avr --disable-nls
make

# Als root:
make install

Installation vom avr-gcc

Der avr-gcc ist unser eigentlicher Compiler. Er installiert sich wie folgt:
tar jxf gcc-core-4.0.2.tar.bz2
cd gcc-4.0.2

mkdir obj-avr
cd obj-avr
../configure --target=avr --prefix=/usr/local/avr --disable-nls --enable-language=c

make

Hinweis: Falls ihr jetzt beim installieren Fehler bekommt die sich z.B so aeussern:
make[2]: avr-ranlib: Command not found
Dann liegt /usr/local/avr/bin wider erwarten nicht in PATH. Fuehrt diesen Befehl als root nochmal aus, dann sollte es gehen:
export PATH=$PATH:/usr/local/avr/bin
/Hinweis Ende

# Als root:
make install


Installation der avr C-library

tar jxf avr-libc-1.2.5.tar.bz2
cd avr-libc-1.2.5

PREFIX=/usr/local/avr
export PREFIX
sh -x ./doconf
./domake

cd build

# Als root:
make install


Installation vom avrdude

tar xzf avrdude-5.0.tar.gz
cd avrdude-5.0
./configure --prefix=/usr/local/avr
make

#Als root:
make install

Wer den avr910 Programmer benutzt, muss avrdude erst fit fuer einige neue Controller machen.
(tini2313, mega162, ...). Dazu muesst ihr die Configdatei von avrdude anpassen. Ihr findet
sie hier: /usr/local/avr/etc/avrdude.conf

Folgende Zeilen muessen ergaenzt werden:

#------------------------------------------------------------
# ATtiny2313
#------------------------------------------------------------

part
id = "t2313";
desc = "ATtiny2313";
stk500_devcode = 0x23;
## Try the STK500 devcode:
avr910_devcode = 0x23;
.....

#------------------------------------------------------------
# ATmega8535
#------------------------------------------------------------

part
id = "m8535";
desc = "ATMEGA8535";
stk500_devcode = 0x64;
avr910_devcode = 0x69;

Genauso Verfahren für die ATMega 64, 162 und 169. Die devicecodes hiefür sind:

m64: avr910_devcode = 0x45;
m162: avr910_devcode = 0x62;
m169: avr910_devcode = 0x78;


Werbung ;)
Wer sich uebrigends einen eigenen avr910 Programmer bauen will, dem sei diese Seite ans Herz gelegt:
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html
Ich habe die Version genommen und um ein Buffer erweitert. Die Bauanleitung dafuer gibt es bald auf unserer Roboterseite: http://www.amee-bot.de
/ Werbung Ende


Somit haetten wir nun alles was wir brauchen installiert.

== TEIL 2 ==

Hier erstmal ein winziges Beispielprogramm fuer den ATTiny2313.


/*
* blink.c
* ATTiny2313 mit 1 MHz
* PORTB wird ueber ein Timer alle 0.263s ein- und ausgeschaltet. Das entspricht 3.81Hz
*/

#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

SIGNAL(SIG_TIMER0_OVF)
{

PORTB =~ PORTB; // PORTB inventieren

}

int main()
{

DDRB = 0xFF; // PORTB als Ausgang schalten
PORTB = 0x00; // Alle Ausgaenge auf 0 schalten

TCCR0B |= (1 << CS02) | (1 << CS00); //Prescaler auf 1024 stellen
TIMSK |= (1 << TOIE0); // Timer 0 Overflow Interrupt enable

sei(); // Interrupts einschalten

for(;;); //ever

}

Den Quelltext nehmt ihr und speichert ihn in die Datei blink.c.

Jetzt kommt das Makefile. Ich habe schonmal ein einfaches vorbereitet:


TARGET=blink
MCU=attiny2313
CC=avr-gcc
OBJCOPY=avr-objcopy
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues -save-temps

all: $(TARGET).hex

$(TARGET).hex : $(TARGET).out
$(OBJCOPY) -R .eeprom -O ihex $(TARGET).out $(TARGET).hex

$(TARGET).out : $(TARGET).o
$(CC) $(CFLAGS) -o $(TARGET).out -Wl,-Map,$(TARGET).map $(TARGET).o

$(TARGET).o : $(TARGET).c
$(CC) $(CFLAGS) -c $(TARGET).c


load: $(TARGET).hex
avrdude -p t2313 -c avr910 -U flash:w:$(TARGET).hex -v

clean:
rm -f *.o *.map *.out *.hex *.s *.i

Das speichert ihr in der Datei Makefile im selben Ordner in der auch die Datei blink.c liegt.
Dann einfach in der Konsole make tippen und es sollte compiliert werden. Mit make load wird das Hexfile dann in den MCU uebertragen.

Und nun zur Erklaerung.

MCU=attiny2313 ist eine Variable mit dem Inhalt attiny2313. Ueberall wo jetzte $(TARGET) steht, wird der Variabelninhalt benutzt. Genauso funktioniert das auch mit CC, OBJCOPY und CFLAGS. Nachdem ihr make erfolgreich ausgefuehrt habt, liegt in dem Ordner nun die Hexfile und eine Datei mit der Endung .s .
Darin sind die Assemblerbefehle die der Compiler aus dem C-Code gemacht hat. Wer so etwas nicht braucht, der kann den Parameter -save-temps in der Variable CFLAGS getrost entfernen.

Wenn ihr make load ausfuert wird avrdude gestarte. -p gibt an um welchen MCU es sich handelt. Mit -c gebt ihr an um welchen Programmer es sich handelt. Hier koennte z.B stk500 stehen.
-U flash:w:$(TARGET).hex bedeutet einfach, das dass Programm in den Flash geschrieben werden soll.
w steht fuer schreiben, r fuer lesen und v fuer verify. Dann kommt die Variable $(TARGET) die besagt
welche Datei genau uebertragen werden soll. Und am Schluss steht noch ein -v. v Bedeutet Verbose Output und gibt euch mehr Informationen auf der Konsole aus.

Mit make clean werden alle Temp Dateien geloescht.


== TEIL 3==

FEHLER

sollten eigentlich keine vorkommen. Wenn doch, vergewissert euch, dass ihr euch genau an die
Anleitung gehalten und nichts falsch abgeschrieben habt.

Hier ein paar typische Fehlermeldungen und ihr Loesungen:

Wenn ihr Fehlermeldungen ala "Permission denied" erhaltet, hab ihr nicht die Rechte um diesen Befehl auszufueren. Hoechswahrscheinlich muesst ihr den Befehl als root ausfueren.


make[2]: avr-ranlib: Command not found
/usr/local/avr/bin liegt nicht in $PATH. Folgendes Command ausfueren:
export PATH=$PATH:/usr/local/avr/bin

programmer is not responding
Es kann keine Verbindung zum Programmer aufgenommen werden. Defektes Kabel, Programmer an der
falschen Schnittstelle angeschlossen (default: /dev/ttyS0), kein Strom am Programmer etc.

can't open device "/dev/ttyS0": Permission denied
Als normaler User darf man auf die Serielle Schnittstelle nicht lesen oder schreiben. Folgenden
Befehl als root ausfueren:
chmod 666 /dev/ttyS0

chki
25.10.2005, 21:21
Vielen Dank für die sehr schöne Anleitung. Ich habe dank fertiger Pakete für Debian keine Probleme mit der Installation gehabt, aber ich denke dieser Artikel wird vielen nicht Debian Anwendern eine grosse Hilfe sein.

Grüsse
Christian

bluebrother
26.10.2005, 09:32
wobei ich keinen Grund sehe das nach --prefix=/usr/local/avr zu tun -- ich hab das bei mir unter /usr/local. Da liegt eh nur Zeug was ich von Hand installiert hab und ich muss keinen Pfad anpassen -- find ich sinnvoller.

kater
26.10.2005, 10:19
Es ist eben etwas geordneter. Alles was mit dem avrgcc zu tun hat liegen dann unter avr/ und nicht versteut in /usr/local/. Ist vorallem sinnvoll wenn man es wieder loeschen will. Kann aber natuerlich jeder machen wie er will.

chki
26.10.2005, 12:28
Um eine bessere Verwaltung der Software zu ermöglichen ist es am besten man erzeugt sich ein eigenes Paket für die Distribution. Bei Debian wäre dies ein deb und bei Redhat und vielen anderen ein rpm. Dann kann man mit den Distributionseigenen Tools die Software verwalten.

izaseba
26.10.2005, 22:17
Um eine bessere Verwaltung der Software zu ermöglichen ist es am besten man erzeugt sich ein eigenes Paket für die Distribution. Bei Debian wäre dies ein deb und bei Redhat und vielen anderen ein rpm. Dann kann man mit den Distributionseigenen Tools die Software verwalten.


Du magst schonmal recht haben, aber so wie der Kater es beschrieben hat ist es Distriunabhängig und zum Teil auch auf andere Systeme anwendbar z.B. Mac

Am sonsten schöne Beschreibung, was man noch hinzufügen könnte, ist daß man für avrdude und Parportprogrammer das modul ppdev und /dev/parport0 benutzen soll, es gab schon Probleme damit hier im Forum.

Gruß Sebastian

donni
22.06.2006, 19:16
Unter Gentoo ist es auch möglich avr-bitutils, avr-gcc, avr-libc und einige weitere Tools über Emerge (den Paketmanager) zu installieren.
Dabei muss man nur mit Layman folgenden Overlay einfügen:
* erazor [Rsync ] (source: rsync://erazor-zone.de/port...)

Anleitung zu layman gibts hier:
http://www.gentoo.de/main/de/downloads.xml

...ich finde so ist es etwas einfacher (habe den beschriebenen Weg auch schon hinter mir).
Ich habe diesen Weg vorallem gewählt weil Binutils target=avr nicht annhemen wollte.

izaseba
22.06.2006, 19:41
ein


crossdev -t avr


unter Gentoo bewirkt Wunder.

Gruß Sebastian

SprinterSB
23.06.2006, 09:23
Ich hab's mal nach MediaWiki transcriptet: avr-gcc und avrdude installieren (https://www.roboternetz.de/wissen/index.php/Avr-gcc_und_avrdude_installieren).

Noch eine Frage: Offenbar ist es gcc 4.x, in dem C-Beispiel sehe ich aber avr/signal.h, die in 4.x deprecated ist...; :-k

Und der ISR-Name scheint mir auch nicht auf 4.x zu passen, sie haben doch die Suffix _vect?

kater
23.06.2006, 15:02
Das hat weniger was mit dem gcc-4.x zu tun sonder ehr mit der avr-libc.
Ich weiss nicht ab welcher Version avr/signal.h deprecatet ist. In meinem Beispiel hatte ich jedenfalls keine Compiler Meldungen bekommen, sonst waer ich der Sache erst nachgegangen bevor ich es hier veroeffentlich haette.

Wenn ich in den Ferien Zeit finde, werd ich mich mal auf den aktuellesten Stand lesen.

izaseba
23.06.2006, 15:08
Noch eine Frage: Offenbar ist es gcc 4.x, in dem C-Beispiel sehe ich aber avr/signal.h, die in 4.x deprecated ist...;

Naja kompiliert wird es auf jedem Fall, es wird "nur" eine Warnung ausgegeben, aber ganz richtig ist es ja nicht, sollte vielleicht mal berichtigt werden.

Es ist aber noch was anderes, was totall falsch ist, wer hat das so geschrieben?


can't open device "/dev/ttyS0": Permission denied
Als normaler User darf man auf die Serielle Schnittstelle nicht lesen oder schreiben. Folgenden Befehl als root ausfueren:

chmod 666 /dev/ttyS0



Wer das so macht, hat wohl den Sinn der Gruppen unter UNIX nicht verstanden [-X

Richtig ist den User in die entsprechende Gruppe aufzunehmen !
bei Gentoo z.B. tty

Gruß Sebastian

kater
23.06.2006, 16:37
Jo und?
1. Der User soll nur auf dieses eine Interface zugang erhalten
2. Haette ich mich ja komplett neu einloggen muessen. Bin ja hier nicht unter Windows mit seinen staendigen reboots.

Und ich hatte damals auch keine Warning bekommen, sonst haette ich das erst berichtigt.

izaseba
23.06.2006, 17:15
Jo und?

Das ist eine tolle Antwort.

zu 1. Eben, lass Dir das auf der Zunge zergehen "der User soll..."
mit chmod 666 /dev/ttyS0 hat die ganze Welt Zugang drauf
und was ist wenn der User sich ein usb<->rs232 Konverter kauft/baut ?
hat er wieder Permission denied weil er jetzt auf /dev/ttyUSB0 zugreifen will...
dann mach direkt ein chmod 666 /dev/* , hast alle Problemme vom Hals.

zu 2. Verstehe ich nicht ganz, was heißt hier komplett neu einloggen? und selbst wenn man sich nach Gruppenzugehörigkeitsänderung neu einloggen muß ist es noch ganz weit von reboot entfernt...

Naja, eigentlich wollte ich nur einen Verbesserungsvorschlag machen, ist nicht mein Problem, wenn Du Dich direkt angegriffen fühlst, nur wenn man schon was in Wiki schreibt soll das auch richtig sein und das mit dem chmod ist Käse.

Gruß Sebastian

kater
23.06.2006, 17:32
An dieser Stelle ein Danke an Sprinter der den Artikel gut genug fuers Wiki hielt und ihn dort eintrug.
Der User ist in den meisten Distries doch eh schon in tty eingetragen. Ich werds aendern wenn ich es mal aktualisiere. Solange kann es jeder machen wie er mag.

//edit

chmod 666 /dev/* , hast alle Problemme vom Hals.
Hehe, den merk ich mir. ;) Hab ich wieder ne dumme Antwort mehr fuer die Kinder dich mich am MO in der Scuhle 100%ig wieder mit dummen Fragen nerfen.

SprinterSB
24.06.2006, 11:40
Naja, eigentlich wollte ich nur einen Verbesserungsvorschlag machen, ist nicht mein Problem, wenn Du Dich direkt angegriffen fühlst, nur wenn man schon was in Wiki schreibt soll das auch richtig sein und das mit dem chmod ist Käse.

Gruß Sebastian

Der Artikel im RN-Wissen ist von mir. Den obigen Beitrag habe ich wie gesagt nur übertragen und am Inhalt nichts verändert.

Wenn der Inhalt nicht ok ist oder etwas besser gemacht werdrden kann, ist jeder, der das Wissen dazu hat, gerne dazu eingeladen den Artikel zu verbesser, zu korrigieren oder zu vervollständigen.

Mein Intention es nach RN-Wissen zu übertragen, war schlicht, weil dort sowas besser gefunden wird und nicht so schnell untergeht wie in einem Forum. Zudem hat man andere Darstellungsmöglichkeiten.

izaseba
24.06.2006, 13:00
hmmm,
sorry Sprinter, es war nicht böse gemeint, ich wollte nur darauf hinweisen,
daß man es halt so nicht machen soll.
Jeder der sich mit Benutzerverwaltung auf Unix Systemen beschäftigt hat würde mir recht geben.
Leider hab ich keine Rechte um in Wiki schreiben zu dürfen, mal sehen wie und ob ich sie erlangen kann, dann könnte ich es verbessern/ergänzen.

Gruß Sebastian

SprinterSB
25.06.2006, 10:18
Leider hab ich keine Rechte um in Wiki schreiben zu dürfen, mal sehen wie und ob ich sie erlangen kann, dann könnte ich es verbessern/ergänzen.

Du musst nochmal ein Profil anlegen. Du schaffst es! *g*

izaseba
25.06.2006, 17:03
So, ich habe mein Senf dazugegeben :-)

Superhirn
24.08.2006, 13:00
Hi,
Ich bin jetzt vollständig auf Linux umgestiegen. Zurzeit hab ich SuSE 10.0

nur ich schaff es nicht eines dieser programme zu installieren. Diese fehlermeldung erhalte ich bei binutils (alles als root gemacht, mkdir hab ich schon früher gemacht und tar über die grafische oberfläche):

dhcppc0:/home/thomasgruebler # export PATH=/usr/local/avr/bin:${PATH}
dhcppc0:/home/thomasgruebler # cd install
dhcppc0:/home/thomasgruebler/install # cd bin*
dhcppc0:/home/thomasgruebler/install/binutils-2.17 # cd obj-avr
dhcppc0:/home/thomasgruebler/install/binutils-2.17/obj-avr # ../configure --target=avr --prefix=/usr/local/avr --disable-nls
loading cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking target system type... avr-unknown-none
checking build system type... i686-pc-linux-gnu
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for gcc... no
checking for cc... no
configure: error: no acceptable cc found in $PATH
dhcppc0:/home/thomasgruebler/install/binutils-2.17/obj-avr #

Ich kapier mein problem nicht.

Google sagt mir das ich das in der profile den path nachtragen soll. nur ich weis nicht wie. bei mir sieht alles ganz anders aus:
#
# Make path more comfortable
#
if test -z "$PROFILEREAD" ; then
PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin
if test "$HOME" != "/" ; then
for dir in $HOME/bin/$CPU $HOME/bin ; do
test -d $dir && PATH=$dir:$PATH
done
fi
if test "$UID" = 0 ; then
test -d /opt/gnome/sbin && PATH=/opt/gnome/sbin:$PATH
test -d /opt/kde3/sbin && PATH=/opt/kde3/sbin:$PATH
PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH
fi
for dir in /var/lib/dosemu \
/usr/games \
/opt/bin \
/opt/gnome/bin \
/opt/kde3/bin \
/opt/kde2/bin \
/opt/kde/bin \
/usr/openwin/bin \
/opt/cross/bin
do
test -d $dir && PATH=$PATH:$dir
done
unset dir
export PATH
fi
bzw alles:
# /etc/profile for SuSE Linux
#
# PLEASE DO NOT CHANGE /etc/profile. There are chances that your changes
# will be lost during system upgrades. Instead use /etc/profile.local for
# your local settings, favourite global aliases, VISUAL and EDITOR
# variables, etc ...

#
# Check which shell is reading this file
#
if test -f /proc/mounts ; then
case "`/bin/ls -l /proc/$$/exe`" in
*/bash) is=bash ;;
*/rbash) is=bash ;;
*/ash) is=ash ;;
*/ksh) is=ksh ;;
*/zsh) is=zsh ;;
*/*) is=sh ;;
esac
else
is=sh
fi

#
# Initialize terminal
#
tty=`tty 2> /dev/null`
test $? -ne 0 && tty=""
if test -O "$tty" -a -n "$PS1"; then
test -z "${TERM}" && { TERM=linux; export TERM; }
test "${TERM}" = "unknown" && { TERM=linux; export TERM; }
# Do not change settings on local line if connected to remote
if test -z "$SSH_TTY" ; then
test -x /bin/stty && /bin/stty sane cr0 pass8 dec
test -x /usr/bin/tset && /usr/bin/tset -I -Q
fi
# on iSeries virtual console, detect screen size and terminal
if test -d /proc/iSeries -a \( "$tty" = "/dev/tty1" -o "$tty" = "/dev/console" \) ; then
LINES=24; COLUMNS=80; export LINES COLUMNS TERM
test -x /bin/initviocons && { eval `/bin/initviocons -e`; }
fi
fi
unset TERMCAP

#
# Time until a complete key sequence must have arrived
#
#ESCDELAY=2000
#export ESCDELAY

#
# The user file-creation mask
#
umask 022

#
# ksh/ash soemtimes do not know
#
test -z "$UID" && UID=`id -ur 2> /dev/null`
test -z "$EUID" && EUID=`id -u 2> /dev/null`
test -z "$USER" && USER=`id -un 2> /dev/null`
test -z "$MAIL" && MAIL=/var/spool/mail/$USER
test -z "$HOST" && HOST=`hostname -s 2> /dev/null`
test -z "$CPU" && CPU=`uname -m 2> /dev/null`
test -z "$HOSTNAME" && HOSTNAME=`hostname 2> /dev/null`
test -z "$LOGNAME" && LOGNAME=$USER
case "$CPU" in
i?86) HOSTTYPE=i386 ;;
*) HOSTTYPE=${CPU} ;;
esac
OSTYPE=linux
MACHTYPE=${CPU}-suse-${OSTYPE}
# Do NOT export UID, EUID, USER, MAIL, and LOGNAME
export HOST CPU HOSTNAME HOSTTYPE OSTYPE MACHTYPE

#
# Adjust some size limits (see bash(1) -> ulimit)
# Note: You may use /etc/initscript instead to set up ulimits and your PATH.
# Setting of ulimits are skipped if /etc/initscript (ulimit package) exists.
if test "$is" != "ash" -a ! -r /etc/initscript; then
#ulimit -c 20000 # only core-files less than 20 MB are written
#ulimit -d 15000 # max data size of a program is 15 MB
#ulimit -s 15000 # max stack size of a program is 15 MB
#ulimit -m 30000 # max resident set size is 30 MB

ulimit -Sc 0 # don't create core files
ulimit -Sd $(ulimit -Hd)
ulimit -Ss $(ulimit -Hs)
ulimit -Sm $(ulimit -Hm)
fi

#
# Make path more comfortable
#
if test -z "$PROFILEREAD" ; then
PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin
if test "$HOME" != "/" ; then
for dir in $HOME/bin/$CPU $HOME/bin ; do
test -d $dir && PATH=$dir:$PATH
done
fi
if test "$UID" = 0 ; then
test -d /opt/gnome/sbin && PATH=/opt/gnome/sbin:$PATH
test -d /opt/kde3/sbin && PATH=/opt/kde3/sbin:$PATH
PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH
fi
for dir in /var/lib/dosemu \
/usr/games \
/opt/bin \
/opt/gnome/bin \
/opt/kde3/bin \
/opt/kde2/bin \
/opt/kde/bin \
/usr/openwin/bin \
/opt/cross/bin
do
test -d $dir && PATH=$PATH:$dir
done
unset dir
export PATH
fi

#
# Many programs using readline library for line editing
# should know about this (e.g. bash)
#
if test -z "$INPUTRC" ; then
INPUTRC=/etc/inputrc
test -s $HOME/.inputrc && INPUTRC=$HOME/.inputrc
export INPUTRC
fi

#
# Most bourn shell clones knows about this
#
if test -z "$PROFILEREAD" ; then
HISTSIZE=1000
export HISTSIZE
fi

#
# Set some environment variables for TeX/LaTeX
#
if test -n "$TEXINPUTS" ; then
TEXINPUTS=":$TEXINPUTS:$HOME/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX"
else
TEXINPUTS=":$HOME/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX"
fi
export TEXINPUTS

#
# Configure the default pager on SuSE Linux
#
if test -z "$LESS" ; then
LESS="-M -I"
LESSKEY=/etc/lesskey.bin
LESSOPEN="lessopen.sh %s"
LESSCLOSE="lessclose.sh %s %s"
LESS_ADVANCED_PREPROCESSOR="no"
PAGER=less
export LESSOPEN LESSCLOSE LESS LESSKEY PAGER LESS_ADVANCED_PREPROCESSOR
fi

#
# Minicom
#
if test -z "$PROFILEREAD" ; then
MINICOM="-c on"
export MINICOM
fi

#
# Current manpath
#
if test -z "$PROFILEREAD" ; then
tmp="$MANPATH"
unset MANPATH
if test -n "$tmp" ; then
MANPATH="${tmp}:`test -x /usr/bin/manpath && /usr/bin/manpath -q`"
else
MANPATH="`test -x /usr/bin/manpath && /usr/bin/manpath -q`"
fi
unset tmp
export MANPATH
fi

#
# Some applications do not handle the XAPPLRESDIR environment properly,
# when it contains more than one directory. More than one directory only
# makes sense if you have a client with /usr mounted via nfs and you want
# to configure applications machine dependent. Uncomment the lines below
# if you want this.
#
#XAPPLRESDIR="$XAPPLRESDIR:/var/X11R6/app-defaults:/usr/X11R6/lib/X11/app-defaults"
#export XAPPLRESDIR

#
# Set INFOPATH to tell xemacs where he can find the info files
#
if test -z "$PROFILEREAD" ; then
tmp="$INFODIR"
if test -n "$tmp" ; then
INFODIR="${tmp}:/usr/local/info:/usr/share/info:/usr/info"
else
INFODIR="/usr/local/info:/usr/share/info:/usr/info"
fi
INFOPATH=$INFODIR
unset tmp
export INFODIR INFOPATH
fi

#
# These settings are recommended for old motif applications
#
if test -z "$PROFILEREAD" ; then
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
export XKEYSYMDB
XNLSPATH=/usr/X11R6/lib/X11/nls
export XNLSPATH
fi

if test -s /etc/nntpserver ; then
read NNTPSERVER < /etc/nntpserver
export NNTPSERVER
fi

if test -s /etc/organization ; then
read ORGANIZATION < /etc/organization
export ORGANIZATION
fi

#
# Midnight Commander needs this to run in color mode
#
if test -z "$PROFILEREAD" ; then
COLORTERM=1
export COLORTERM
fi

#
# For RCS
#
#export VERSION_CONTROL=numbered

#
# Source the files generated by SuSEconfig
#
if test -z "$PROFILEREAD" ; then
test -r /etc/profile.d/sh.ssh && . /etc/profile.d/sh.ssh
test -r /etc/SuSEconfig/profile && . /etc/SuSEconfig/profile
if test -z "$SSH_SENDS_LOCALE" ; then
if test -r /etc/sysconfig/language -a -r /etc/profile.d/sh.utf8 ; then
tmp="$(. /etc/sysconfig/language; echo $AUTO_DETECT_UTF8)"
test "$tmp" = "yes" && . /etc/profile.d/sh.utf8
unset tmp
fi
fi
fi

#
# Source profile extensions for certain packages
#
if test -d /etc/profile.d -a -z "$PROFILEREAD" ; then
for s in /etc/profile.d/*.sh ; do
test -r $s && . $s
done
unset s
fi

if test "$is" != "ash" ; then
#
# And now let's see if there is a local profile
# (for options defined by your sysadmin, not SuSE Linux)
#
test -s /etc/profile.local && . /etc/profile.local
fi

#
# Avoid overwriting user settings if called twice
#
if test -z "$PROFILEREAD" ; then
readonly PROFILEREAD=true
export PROFILEREAD
fi

#
# System BASH specials, maybe also good for other shells
#
test -r /etc/bash.bashrc && . /etc/bash.bashrc
if test "$is" = "bash" -a -z "$_HOMEBASHRC" ; then
# loop detection
readonly _HOMEBASHRC=true
test -r $HOME/.bashrc && . $HOME/.bashrc
fi

#
# KSH specials
#
if test "$is" = "ksh" ; then
test -r /etc/ksh.kshrc && . /etc/ksh.kshrc
fi
if test "$is" = "ksh" -a -z "$_HOMEKSHRC" ; then
# loop detection
readonly _HOMEKSHRC=true
test -r $HOME/.kshrc && . $HOME/.kshrc
fi

#
# End of /etc/profile
#

Am liebsten wär mir wenn mir wer die rpms geben lkönnte. ich schaffte es auch nicht sie zu erstellen.

Grüße
Thomas

kater
24.08.2006, 14:05
Installier doch erstmal den gcc. Ohne den kannste die Binutils auch nicht compilieren.

SprinterSB
24.08.2006, 14:12
gcc ist bei SuSE dabei (sollte eigentlich standardmässig installiert sein in /usr/bin/gcc :-k)

Superhirn
24.08.2006, 17:14
Also Gcc ist installiert. ich hab überhaupt die ganze "C/C++ Entwicklung" Programmgruppe installiert.
Am Compiler sollte nichts scheitern denk ich.

Grüße
Thomas

Superhirn
30.08.2006, 09:50
Hi,

falls es jemanden interressiert. ich installierte jetzt mal alle packages von cdkavr. ist alles suse rpm (auch für debian erhältlich). der compiler wurde von xavrtools gefunden. also hoffe ich das es jetzt geht. getestet habe ich noch nichts.
die binutils waren warscheinlich schon installiert. ist im suse packet drinnen aber ich denk nicht das die zu avr gehören.

jibyz
18.09.2006, 17:48
Hallo,
zuerst danke für die Anleitung der Installation des avr-gcc...
Bei der installation habe ich folgendes Problem:
Folgende Dateien befinden sich in dem Verzeichnis: usr/local/avr

avrdude-5.0.tar.gz.htm bin gcc-core-4.0.2.tar.bz2
avr-libc-1.2.5.tar.bz2.htm binutils-2.16.1.tar.bz2

Warum kann ich nicht mit dem folgenden Befehl auspacken?
usr/local/avr> tar jxf binutils-2.16.1.tar.bz2

bekomme ich dieser Fehlermeldung:
bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
tar: Fehler beim Beenden, verursacht durch vorhergehende Fehler.

Was mache ich falsch oder was soll ich eingeben?
Ich bin neuling in der Sache...

Danke
Didier

izaseba
18.09.2006, 19:57
Folgende Dateien befinden sich in dem Verzeichnis: usr/local/avr

avrdude-5.0.tar.gz.htm bin gcc-core-4.0.2.tar.bz2
avr-libc-1.2.5.tar.bz2.htm binutils-2.16.1.tar.bz2


Bist Du Dir sicher, daß die so heißen ?
Welche Distribution verwendest Du ?
Warum nimmst Du nicht die fertigen Distripakete ?

Gruß Sebastian

jibyz
18.09.2006, 20:01
ja,
ich habe kopiert und eingefügt!
habe aufm Linux- rechner. Oder was meinst mit Distribution?

Didier

izaseba
18.09.2006, 20:11
ich habe kopiert und eingefügt!

Ich frage wegen diesen Leerzeichen dazwischen...
Das ist nicht gut Leerzeichen in Datennamen zu haben, und wenn doch welche da sind mußt Du sie mit \ maskieren, etwas so:


tar xvjf vrdude-5.0.tar.gz.htm\ bin\ gcc-core-4.0.2.tar.bz2



habe aufm Linux- rechner. Oder was meinst mit Distribution?

Ja was wohl... Suse,Debian,Gentoo,...<100 andere>,RedHat
Die Frage wiederum weil man besser fertige Pakete nimmt um uptodate zu bleiben.

Gruß Sebastian

jibyz
18.09.2006, 20:17
sorry..
mit Suse...
wo kann ich die fertige Pakete finden?

izaseba
18.09.2006, 20:31
Suse.... hmmmmm, da kann ich dir wohl nicht ganz helfen,
Suse hab ich mal mit der Version 6.blabla probiert, und seitdem nicht mehr aber, es gibt da den Yast, oder Yast2 oder so....
Vielleicht gibt es da auch einen Paketmanager, wo man was suchen kann :-k
einfach avr eintippen und schauen was er alles findet.

Gruß Sebastian

jibyz
18.09.2006, 20:57
Jetzt klappts!
habe ein kapputes Paket runtergeladen!
danke