HowTo: AVR in C programmieren mit Eclipse
Veröffentlicht von Benibr
Eclipse ist eine sehr mächtige IDE fürs Programmieren in allen möglichen Sprachen. Beim Versuch alle meine Projekte in einer Programmierumgebung zusammen zufassen bin ich darauf gekommen, dass das Programmieren von AVRs mit Eclipse sehr einfach ist. Ich habe hier kurz zusammengetragen was fürs AVR-C Programmieren in Eclipse notwendig ist.
Ich nutze hierfür Ubuntu 11.10 und Eclipse Indigo (3.7.1) das hier heruntergeladen werden kann.
Zusätzlich sollten noch folgende Packete installiert werden: avr-gcc avr-libc gcc binutils-avr libc6 libc6-dev libc6-dev-i386 avrdude
sudo apt-get update sudo apt-get install avr-gcc avr-libc gcc binutils-avr libc6 libc6-dev libc6-dev-i386 avrdude
sudo apt-get upgrade
Wenn man Eclipse dann startet, kann man gleich von dem tollen neuen programmeigenen Packetmanager Gebrauch machen.
Unter Help -> Eclipse Marketplace findet man mit dem simplen Suchbegriff “AVR” sofort, das AVR Eclipse Plugin! Ist dies installiert sollte man Eclipse einmal neustarten.
Nun können wir mit File -> New -> C Project ein neues Project erstellen, Name und Ort sind selbsterklärend und als Projekttyp wird “AVR Cross Target Aplication” ausgewählt. Der nächste Schritt bietet uns nun die Möglichkeit die zwei Standardkonfigurationen “Debug” und “Release” anzuwählen. Wenn ihr euch unsicher seid wählt einfach nur Release. In den meisten Fällen reicht das.
Unter Advanced settings -> AVRDude sollte noch der vorher angelegte Programmer ausgewählt werden, falls dies nicht schon automatisch der Fall ist. Achtung! Häufiger Fehler: Apply und dann OK.
Auf der nächsten Seite kann man nun den Prozessortyp und die Arbeitsfrequenz einstellen. Fertig! Das Programmieren kann beginnen. Alle Einstellungen können unter Project -> Properties noch im Nachhinein verändert werden.
Mit File -> New -> Source File bzw. Header File können Dateien zu Projekt hinzugefügt werden. Schreibt euren Code und wählt Project -> Build All aus. Wenn er keine Errors beim Kompilieren gibt, könnt ihr anschließen euer Programm mit
AVR -> Upload Project to Target Device auf euren Microcontroller flashen.
Auch wenn für Anfänger Eclipse auf den ersten Blick ein wenig nach Overkill aussehen mag so bietet es doch alle Möglichkeiten die man sich wünschen kann in einer netten grafischen Oberfläche an.
Viel Spass
Update: Ein häufig auftretendes Problem ist, dass AVRDude root-Rechte benötigt um auf den Controller zu schreiben. Dies ist zum Beispiel der Fall bei dem USB zu ISP Wandler den ich benutze (USBasp).
Zur Lösung des Problems muss man eine neue udev Rule anlegen, mit folgendem Befehl:
sudo gedit /etc/udev/rules.d/45-USBasp.rules
In diese Datei wird folgender Inhalt eingetragen:
SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="plugdev", MODE="0660"
Und anschließend muss udev noch neugestartet und der Programmer aus- und wieder eingesteckt werden.
sudo restart udev
Quelle: http://78.46.161.153/wiki/index.php?n=Linux.Udev4User
Homeserver Setup mit Ubuntu: Samba Fileserver
Veröffentlicht von Benibr
Da immer mehr Leute sich gerne zuhause einen eigenen Homeserver aufsetzen um ihre Filme, Bilder oder andere Dateien gemeinsam zu speichern und zu nutzen, wollte ich dieses Thema auch hier im Blog mal aufgreifen.Ich habe selbst einen eigenen, kleinen Homeserver mit 1,5 TB Speicher und einem µATX Board mit Intel Atom Prozessor. Ich nutze den Server hauptsächlich zum lagern von Filmen, die an allen Rechnern im Haus abgespielt werden können. Dafür nutzte ich XBMC an den Clients.
Auf dem Server selbst läuft ein Ubuntu Server Edition 11.04 mit einem Samba Fileserver. Da die Konfiguration von Samba nicht immer auf Anhieb funktioniert werden ich meine Vorstellungen und (gelöste) Probleme hier mal beschreiben in der Hoffung damit jemanden zu helfen.
Die INSTALLATION gestaltet sich unter Ubuntu Gott sei Dank sehr einfach:
sudo apt-get update sudo apt-get install samba-common samba
Ist Samba installiert hat man verschidenen Möglichkeiten die Konfiguration vorzunehmen. Zum einen kann sie über das Webinterface SWAT, welches eines der bekanntesten Konfigurationstools ist, vorgenommen werden. Andere GUI Tools gibt es auch hier.
Wer ein wenig tiefer gehen möchte, oder wer auf der Suche nach Bugs ist, wird schnell feststellen, dass man um manuelles konfigurieren nicht herumkommt. Unter Ubuntu findet sich die Configfile von Samba under /etc/samba/smb.conf
Diese Datei ist in verschiedene Sektionen aufgeteilt. Es wird hier hauptsächlich zwischen allgemeinen und Freigabespezifischen Einstellungen unterschieden (siehe unten). Ich will hier nicht alle Konfigurationenmöglichkeiten durchkauen, das würde auch den Rahmen dieser Seite sprengen. Mein Ziel war zu Anfang Freigaben wie Musik und Filme für alle (inkl. Nutzer ohne Account) zugänglich zu machen und bestimmte Freigaben wie private Dateien und Backups nur für ausgewählte Nutzer freizugeben. Nutzer die Schreibrechte in privaten Ordnern haben, sollen auch Schreibrechte in den öffentlichen Ordnern haben.
Hierzu muss man erst einmal die Benutzer im System anlegen. Jeder Nutzer in Samba muss auch ein echter Linuxuser sein. Das heißt wir legen alle Nutzer zu erst einmal im System an:
sudo useradd nutzerXYZ -N -M
Mit diesem Befehl wird der User nutzerXYZ angelegt, es wird jedoch kein Home-Ordner erstellt (-M) und auch keine extra Gruppe für den Benutzer angelegt (-N). Mit
sudo smbpasswd -a nutzerXYZ
wird der Nutzer als Sambauser angelegt und kann fortan benutzt werdern um sich auf Freigaben einzuloggen. Die Benutzer können mit
sudo smbpasswd -x nutzerXYZ
sudo userdel nutzerXYZ
wieder gelöscht werden. Nun schauen wir uns mal die smb.conf selbst an. Die Datei beginnt mit der [global] Sektion in der sämtliche allgemeine Einstellungen stehen.
[global] workgroup = HEIMNETZ server string = SMB-Server01 log file = /var/log/samba/log.%m security = user map to guest = bad user guest account = nobody
- workgroup – Ist natürlich die Arbeitsgruppe in der der SMB-Server erscheinen soll.
- server string – Ist der Hostname der, etwa in der Netzwerkumgebung von Windows, angezeigt wird
- log file – gibt die Datei an in der alle Ereignisse des SMB-Servers festgehalten werden
- security – ist diese Option auf “user” gesetzt muss sich ein User am Samba Server zuerst anmelden und sieht dann die verschiedenen Freigaben. Ist die Option auf “share” gestellt, werden dem User erst die Freigaben angezeigt und er loggt sich dann bei einer einzelnen ein
- map to guest - “bad user” bedeutet wenn sich jemand mit einem User versucht einzuloggen der in Samba nicht existiert. In diesem Fall wird der Benutzer als Gast eingeloggt und hat auch nur entsprechende Rechte.
- guest account – ist der Account der als Gast verwendet wird. Normalerweise ist diese Option auf nobody gesetzt. Es wäre allerdings auch möglich hier einen anderes Benutzer einzutragen.
[Freigabe1] path=/media/Speicher/ comment=oeffentlicher Ordner public=yes write list=nutzerXYZ force create mode=0777 force directory mode=0777
- path – ist der Pfad zu freizugebenden Ordner
- comment - Kommentar
- public – Die Freigabe kann grundsätzlich von jedem angesehen werden. Schreibrechte werden in der nächsten Option geklärt.
- write list – hier werden die Nutzer angegeben die in der Freigabe Schreibrechte haben. Alle anderen haben automatisch nur read-only zugriff.
- force create mode/ force directory mode – Hier werden die Datei- und Ordnerrechte für neue Objekte gesetzt. Mit 0777 hat auf eine neu erstellte Datei bzw. einen neu erstellten Ordner jeder Zugriff.
[Freigabe 2] path=/media/Speicher2/ comment=privater Ordner public=no write list=nutzerXYZ force create mode=0777 force directory mode=0777
- Hier ist nur die Option public = no gesetzt. Das hat zu Folge, dass niemand die Freigabe öffnen kann, es sein denn sein Nutzername steht in der write list
Mttink für Epson Stylus D92
Veröffentlicht von onny
Ich hatte in der letzten Zeit Kontakt mit dem Entwickler von Mttink, ein Programm welches man in den offiziellen Ubuntu-Paketquellen vorfinden kann. Leider konnte gerade mein Epson-Drucker-Modell nicht vom Programm erkannt werden und somit konnte ich die Funktionen zum ermitteln des Tintenfüllstandes oder die Druckerkopfreinigung nicht verwenden. Der Entwickler hat aber sehr schnell geantwortet und das Problem mit mir gelößt ![]()
DIe neue Version kann man wie folgt herunterladen und installieren:
cd ~/
wget http://xwtools.automatix.de/files/mtink-1.0.17.rc6.tar.gz
tar xvf mtink-1.0.17.rc6.tar.gz
cd mtink-1.0.17.rc6
sudo aptitude install lesstif2-dev (libgimp2.0-dev optional)
./Configure
make
sudo make install
rm -r ~/mtink-1.0.17.rc6.tar.gz ~/mtink-1.0.17.rc6
Jetzt lässt sich auch gut der Tintenfüllstand ausgeben:
ttink -d /dev/usb/lp0
Oder .z.B. die Druckerköpfe reinigen (was unbedingt notwendig ist, wenn man über längere Zeit mit Unterbrechungen den Epson-Drucker unter Linux verwenden will):
ttink -d /dev/usb/lp0 -c
Falls Jemand noch Probleme mit einem anderen Drucker-Modell hat, sollte man mit dem Windows-Programm USBSnoop z.B. in einer virtuellen Machine sämtliche Kommunikationen des Windows-Druckertreibers/Programmes aufzeichnen und kann diese auf Anfrage an den Entwickler von mttink schicken (http://xwtools.automatix.de) oder direkt versuchen am Sourcecode zu hacken


