Hallo,
wir haben ein neues Open-Source Projekt für den Einstieg in die
Linux-Welt gestartet: GNUBLIN (http://www.gnublin.org)
Das Ziel war es ein ganz günstiges Board für erste und einfache
Linuxbastelein zu haben. Ergebnis ist das Board auf der Homepage für das
Projekt: http://www.gnublin.org
Heute kamen die ersten Boards an. Ich such aktuell Leute die Lust haben
das Projekt mit zu gestalten. Es gibt noch einige Sachen zu tun.
Ein Paar nette Dokus schreiben, Anwendungen vorstellen etc oder den
einen oder anderen Artikel fürs Wiki oder embedded projects Journal
schreiben.
Wir haben 10 Boards die wir gerne für solche Arbeiten / Hilfen spenden
würden.
z.B. Beschreibung wie man ein Relais über eine Webseite steuert (z.B.
USB-LAN Adapter), Videos die bestimmte Sachen mit GNUBLIN zeigen.
Einfache Anwendungen selbst entwickeln. Ansteuerung eines Sensors usw...
Ihr seit da wahrscheinlich viel kreativer.
Übers Wochenende stelle ich die aktuellen Patchdateien und
Beschreibungen online, wie die aktuelle mitgelieferte SD-Karte gebaut
worden ist.
Wer Lust hat meldet sich bitte bei mir.
Gruss Bene
Netzwerkanschluss? Ich kenne fast kein Embedded Linuxboard das ohne
Ethernet-Anschluss daher kommt. Irgendwie ist das auch der Hintergedanke
von Linux gewesen, dass das OS von sich aus netzwerkfähig ist.
Hallo,
man kann jetzt GNUBLIN Ding als USB-Netzwerkkarte erkennen lassen (USB
Kernel Treiber) und eine Route vom PC umlenken, oder ein USB-LAN- oder
besser USB-WLAN Stick anstecken.
Das Board ist aktuell ein 2-Lagen Board, dass man als Student oder
Interessierter komplett verstehen kann.
Gruss Bene
Ich wäre bereit, da mitzumachen :)
Was mir direkt einfällt, was ich machen könnte wäre:
* einen/mehrere Artikel wie den zum mini2440 schreiben, bei dem das
wichtigste grob beschrieben und angerissen wird.
* einzelne genaue Artikel zu bestimmten Themen
* "Cross-Compiling-Guide" schreiben
* Beispielcodes für ADCs, DACs, IO, telnet-/serielle-/...-Kommunikation
Auch wenn ihr bestimmte Aufgaben zu vergeben habt, wäre ich gern dabei.
Nachher mal Chef anhauen, der spendet vielleicht ja auch noch ein wenig,
ist ziemlich begeistert von Embedded-Geschichten.
Benedikt Sauter schrieb:> wenn du Zeit und Lust hast müsstest du mir deine Adresse zukommen> lassen.
Bin jetzt noch arbeiten, melde mich nachher bei dir per Nachricht :)
Hallo Benedikt,
Was wird den aktuell noch benötigt um Mitzumachen, welche Themen stehen
noch aus?
Auf der Seite steht man benötigt eine microSD für Kernel und Co wird die
bereitgestellt oder kann man sich irgendwo ein Image runterladen?
Wo gibt es den vollstände Atomboards für den Preis und mit den
Abmessungen?
Das "selbst dran löten" ist sicher auch kein Ziel solcher Boards und
wenn kannst du doch per USB noch extra was dranhängen wenn du unbedingt
löten willst ;)
Hallo Läubi,
aktuell gibt es ein ELKD RootFS, angepasste Patch-Dateien für den Kernel
und Bootloader.
Wir passen gerade alles an und laden es dann auf ein öffentliches SVN.
1.)
Was spannend wäre, wäre ein Generator für ein RootFS übers Web. So dass
man sich zusammenklicken kann, ich will nen Webserver, DHCP-Server,
kleine Datenbank etc., PHP, Python, Perl, Ruby etc. lädt sich dann ein
Skript herunter, das startet man dann und hat zwei Stunden später ein
fertiges Image für eine SD-Karte. Oder wir lassen es gleich auf einem
Server bauen und man muss sich nur das Image ziehen.
2.)
Oder auch so allgemeine Sachen. Wie baue ich mir eine
Entwicklungsumgebung auf und kann bequem testen und programmieren.
3.)
Oder ein Beispielrahmen + Guide für eine typische Steuerung mit Anzeige
(übers Web).
4.)
Oder wir suchen ein paar Sensoren und zeigen wie man die verwendet.
Temperatur, Licht.
5.)
Oder wie integriert man eine RTC mit Batterie, so dass das Linux weiss
wie spät es ist.
6.)
Cool wäre auch so eine Art Mini-PC. Man sucht ein einfaches Display
Pixel oder Zeichen und kann dann direkt mit einer USB-Tastatur, dem
GNUBLIN und dem Display Mini-Notebook spielen. Das Board braucht aktuell
ca. 70 mA eventuell kann man diesen Mini-PC mit einer Solarzelle
betreiben, oder gar aus einem 9V Block. So als Mini Texteditor PC :-).
So Sachen die es dann später erleichtern Anwendungen zu schreiben.
Gruss Bene
Kennt jemand ein gutes Display das per SPI oder I2C angesteuert werden
kann und nicht teuer ist? Letztens hatte ich so eins:
http://www.lcd-module.de/deu/pdf/grafik/dogxl160-7.pdf aber ich glaube
die sind nicht so billig. Bei Reichelt knappe 30 EUR.
Hallo Benedikt,
das hört sich doch ganz interessant an, hätte Interesse würde mich dann
für den Bereich Webserver/Mini-PC "engagieren", was natürlich knapp
werden könnte sind die 8MB Ram stimmt die Angabe oder ist das ein
Schreibfehler auf der HP? Und ist eventuell eine weitere Variante mit
etwas mehr RAM geplant?
kannst ja einfach mal eine PN schreiben.
Das ist Absicht. Das Board kriegt man so auf knappe 30 EUR bei 100
Stück. Kein Schnickschnack ein einfaches Board zum Lernen. Außerdem soll
der Mini-PC ja nur ein Konsolen-PC werden :-) und man hat wenn man will
Gigabytes an Swap. Aktuell ist eine 64 MB swap Datei eingerichtet. Man
kann problemlos auf dem Board den gcc anschmeißen. Man könnte aber auch
durch Bestückung einen größeren Speicher auflöten. Ein Pin muss man noch
routen, aber das sollte klappen.
Ideal läuft ein Texteditor, Screen, SSH-Client und Mutt oder so wenn das
jemand verwendet. Online kann man über das USB-Kabel, ein WLAN Stick
o.ä. gehen.
Hallo,
joooah, sehr nettes board, leider sind die Pins vom Displaycontroller
nicht herausgeführt, bin besessen von Grafikanwendungen und deren
Programmierung im Embeddet Bereich, warte schon sehr gespannt auf die
'GNUBLIN imx287'-Version, könnte da meinen Part dazusteuern.
Gruß Alex ;)
Hallo,
ich würde sehr gerne bei deinen Projekt mithelfen.
Ich würde gerne ein RFID Zugangssystem damit aufbauen wollen oder mich
mit anderen sensoren Beschäftigen!
mfg Wolfgang
Ok. Ich schreibe ab morgen jeden nochmal nach und nach eine mail um
genau zu klären für was und wo hin ich die Boards schicken soll. Wenn es
noch was gibt, schreibt gerne weitere Ideen.
Benedikt Sauter schrieb:> Ich schreibe ab morgen jeden nochmal nach und nach eine mail um> genau zu klären für was und wo hin ich die Boards schicken soll.
Freu mich schon drauf :)
Hab dir ja geschrieben, was ich so aus'm FF wüsste, was ich machen kann.
Wenn dir noch mehr einfällt, einfach schreiben.
Diejenigen, die mitmachen sollten sich vielleicht auch noch per Mail
austauschen, nicht dass manche Sachen 5-fach gemacht werden und andere
Wochenlang liegen bleiben.
Ja, ich weiss Beispiel-Kernel-bauen und Wiki-Artikel dazu schreiben kann
nerven oder zigmal durchgekaute Sachen wieder durchzukauen, aber muss ja
eben auch sein ;)
Benedikt Sauter schrieb:> Das ist Absicht. Das Board kriegt man so auf knappe 30 EUR bei 100> Stück.
hmm. Da finde ich das hier spannender: http://www.raspberrypi.org/
Die wollen im Dezember ihre Boards für 35 EUR fertig haben.
Da ist nen ARM11 mit 700MHz und 128 MB RAM drauf. Außer USB ist noch
Ethernet und HDMI drauf. Man hat also doch gleich viel mehr
Möglichkeiten das zu vernetzen.
Wenn ich mir das Foto von Deinem Board so anschaue, sieht mir der
Prozessor nicht so aus, als wäre der für Löt-Anfänger von Hand zu
bestücken. Von der Seite her sind also beide Boards gleichauf.
Gruß,
Gerd
Gerd E. schrieb:> Da finde ich das hier spannender: http://www.raspberrypi.org/> Die wollen im Dezember ihre Boards für 35 EUR fertig haben.
Herstellungs und Verkaufspreis sind ja 2 paar Stiefel. Geht man mal von
20€ Herstellungskosten aus, lässt sich das höchstwahrscheinlich nur
durch Stückzahlen erklären.
Benedikt Sauter schrieb:> Kennt jemand ein gutes Display das per SPI oder I2C angesteuert werden> kann
Hallo Benedikt,
bist du dir ganz sicher, daß du beim Entwurf des Boards nix verkehrt
gemacht hast? Ich meine nicht irgendwelche Schaltungsfehler, nee, ich
meine, was du da draufprojektiert hast und was nicht. Irgendwie vermisse
ich eine klare Linie.
Wenn man das Board nicht bloß irgendwo in irgendeinem Netz unbemannt
herumwerkeln lassen will, dann sind Hände und Füße angesagt, also ein
Display (bei der Controller-Liga QVGA oder 480x272), IR-Anschluß, Tasten
oder PS2, Drehgeber, Audio und so weiter. Und 8 MB wären für ein WinCE
zu klein, da wären zumindest 32 MB angesagt. Ob 8 MB für ein Linux mit
ner Oberfläche und Anwendungen ausreicht, wage ich zu bezweifeln. Für
ein Eigenbau-OS oder solche Dinger wie Contiki sollte es hingegen
ausreichen - aber ganz ohne Interface zum Menschen?
Wie stellst du dir eigentlich ein per SPI oder gar I2C angeschlossenes
Display vor? ich weiß, daß es QVGA-TFT-Displays mit paralleler
Schnittstelle gibt, aber deren Benutzung ist grottenhäßlich, kompliziert
und langsam - kein Vergleich zu einem Display, das wie ein Stück RAM im
Adreßvolumen liegt.
Kurzum, ich hab bei deinem Board kein gutes Gefühl.
W.S.
Wie schon geschrieben, das soll kein PC werden, sondern ein kleines
Controllerboard mit Linux.
Niemand mäkelt an einem SAM-Board mit FreeRTOS herum, dass es keine
Tastatur hat und kein VGA-Display. Aber die Funktionalität und
Einfachheit eines kompletten Linuxsystems wünscht sich fast jeder -
zumindest beim Entwickeln.
Immer schneller und bessere Grafik - so muss es sein!
PS: Ich weiss schon, was ich damit machen würde. 3,5"+ SPI-Display dran,
ADCs, 24 Fader, RS485, >100 Buttons und ich hab ein DMX-Pult mit
ordentlich Power.
PS2: @Benedikt: hast du schon geschrieben?
Hallo,
hatte einiges um die Ohren heute. Es gibt ein neues Foto.
Das ganze ist eine einfache Plattform die man gut verstehen und
nachvollziehen kann. Das war das wichtigste Ziel.
Man kann alles mit einem USB-Kabel betreiben (USB-RS232 für Konsole +
Stromversorgung).
Ich schau das ich morgen das schaff, was ich heute machen wollte.
Gruss Bene
Nils S. schrieb:> Niemand mäkelt an einem SAM-Board mit FreeRTOS herum, dass es keine> Tastatur hat und kein VGA-Display.
Naja, aber ein Farb-Grafik-LCD mit resistivem Touchscreen sowie
einen separaten Bereich mit Feldern für QTouch haben die mittlerweile
auch. ;-)
Die Platine ist eine 2 Lagen Platine. Leider geht es nicht "viel
Kompakter" ich stell das Wochenende mal die Layouts online.
Allgemein werde ich erst am Wochenende zu den versprochenen Mails
kommen. Wir haben gestern die ersten Boards aktiviert.
Hallo habe eine frage:
Hat jemand links zu dem Thema embedded Linux? Unter wiki und der
offiziellen Seite steht nicht wirklich etwas... Kann ich mir das
vorstellen wie einfach Linux ohne GUI nur im konsolenmodus aber ohne
tastertur und Bildschirm ?!
Würde mich gerne in die Materie einarbeiten, jedoch wären hier paar tuts
von Vorteil!
Danke im voraus
Mfg
Das ist eine sehr gute Idee. Ich habe gleich mal eine Seite im Wiki
angelegt für den Einstieg für den absoluten Neuling.
http://www.gnublin.org/index.php?title=Hauptseite (aus der Startseite
der Link).
Hat jemand einen guten Link? Ich kenne so aus dem Bauch nichts. An der
FH Augsburg gibt es eine Vorlesung von Prof.Dr. Hoegl leider ist der
Server gerade offline.
Ich probiers nachher nochmal.
Hallo ich nochmal
Habe mir dein Video tut angesehn und ich denke ich werde mir das Board
zulegen! Ich würde mich freuen wenn es Anleitungen geben würde wie ich
i2c spi oder die ads ansprechen kann, mein vorhaben wäre ein i2c lcd zu
betreiben um die Daten die man per uart bekommt am Display sieht!
Hallo,
kurzer Status. Wir kriegen gerade nicht soviel Boards aus der Produktion
wie wir brauchen. Aber es läuft alles auf Hochtouren.
Heute werden die ersten Boards versendet. Ich schreibe jetzt gleich mal
alle Leute an die mich angeschrieben hatten.
Gruss Bene
Hallo,
so danke für die Zurschriften. Ich habe mit allen Kontakt aufgenommen.
Die erste Runde der Board gegen Hilfe ist dann mal geschlossen.
Ich hoffe wir kriegen die Board die kommende Woche an alle raus.
Gruss Bene
avrfreak, erstmal haben ganz andere Dinge Vorrang.
Wenn du z.b. solch ein Netzwerk-Modul bauen willst, tu das. Stellst du
es jemandem zur Verfügung, der sich mit Chip XY auskennt, mit dem Linux
Kernel, Netzwerken usw, schreibt dir derjenige vielleicht ja einen
Treiber ;)
Hallo,
die Spannungen werden von AS1324 erzeugt. Ich glaub 0,6V höher muss die
Spannung sein.
Für die 1,8V und 1,2V ist das kein Problem.
Mit etwas weg löten und Brücken einbauen kann man auch mit 3,3V die
Schaltung versorgen.
Gruss Benedikt
Habe ein Board bestellt und bekommen.
Macht Spass.
Nur im WIKI scheint es überhaupt nicht weiter zu gehen.
Wer das Bord kaufen und nutzen will, der sollte selbst mit Linux auf Arm
Rechnern umzugehen wissen - und bereit sein viel zusammenzusuchen.
Ich würde auch gern den weg in das Embedd Linux finden, aber das schaff
ich defenitiv nur wenn da was in form eines howtoo kommt. Wenigstenz für
den Einstieg. Es währe sehr schade wenn das Projekt daran scheitert
Hallo,
ich hab das Board auch und es ist schon ganz schnuckelig. Allerdings
kämpfe ich noch damit, die seriellen Schnittstellen zu nutzen.
Ich find zwar SPI und I²C im sysfs aber ein Device existiert nicht. Kann
mir nicht wer sagen, wie ich jetzt ein beliebiges I²C-Device damit
ansteuere?
@Benedikt Sauter
Ohne mir den ganzen Thread durchzulesen, falls noch ein Display gesucht
wird:
http://www.watterott.com/de/MI0283QT-2
Das Ding kann man per SPI und per Parallel-Schnittstelle ansprechend und
es hat nen Touchscreen. Ich habe es selbst in Benutzung und finde es
sehr gut.
Bei Watterott gibts auch gleich ne Breakout Platine dafür.
MfG
Nils
Hallo,
Ich habe soeben mal die ersten Seiten aufgeräumt (www.gnublin.org)
Toolchain & Linux Kernel sollten soweit klappen.
I2C und SPI sollten eigentlich vom Kernel aus funktionieren.
Um per Netzwerk mit GNULIN zu arbeiten gibts das hier:
http://www.gnublin.org/index.php?title=GNUBLIN-EINSTIEG-Netzwerk
Ich schau, dass ich noch ein paar so Texte heute schreib.
Die Boards sollten hoffentlich die Woche an euch rausgehen.
Guten Morgen.
Ich hab nur mal eine kurze Frage;
Warum sollte ich dieses Board im Gegensatz zu den Starterkits aus dem
Shop oder, wie oben schon angesprochen, einen Raspberry PI (falls das
Projekt fertig wird) nehmen? Ich bin völlig neu in der ARM-Kategorie, da
ich vorher nur auf der 8-Bit AVR Architektur programmiert habe. Welche
Vorteile bekomme ich durch ein embedded Linux?
Hallo,
habe heute mein GNUBLIN bekommen, und funktioniert einwandfrei...
Habe mir nun wie auf http://www.gnublin.org die GNU/Linux Umbegung
für Windows heruntergeladen und installiert. Habe zum testen erseinmal
das Beispiel aus dem getting-started.pdf auf Seite 25 kopiert.
Wird compiliert mit
arm-none-linux-gnueabi-gcc -o factorial main.c
es klappt, und es wird im Projectordner ein File das factorial heißt
erzeugt.
Dieses übertrage ich nun mit zmodem ans gnublin board, ins Verzeichnis
c-demo, dies funktioniert ebenfalls. Wenn ich aber nun Eingebe
./factorial
so bekomme ich "-sh: ./factorial: Permission denied" zurück.
Was habe ich vergessen/falsch gemacht??
Ich bin blutiger Linux Anfänger..
Gruß
Stephan
Stephan_II schrieb:> Habe zum testen erseinmal> das Beispiel aus dem getting-started.pdf auf Seite 25 kopiert.
Wo gibts das PDF zum download? Kannst Du mal einen Link posten oder das
PDF hier hochladen?
Hallo,
weiss jemand wie man die led1 auf dem board ein/ausschalten kann.
Gibt es ein bereits header file wie include"lpc3131.h" wo die
Pins definiert sind, so das man sie in c mit outb inb ansprechen kann?
Gruß
Stephan
Gibt es ja auf gunblin.org eine nette Beschreibung! Würde mich auch über
mehr Testprogramme freuen bzw. Die uart Ausgabe auf ein Display
"umzuleiten"
Danke
Hi,
kann ich mit dem Board ein WLAN-Radio bauen? Habe hier einen VDR PC der
einen MPEG TS im LAN bereitstellt. Dieses müsste über USB WLAN
reinkommen, und über einen USB-Audio abgespielt werden. Mit dem o.g.
Touch Display von Watterott wäre auch eine Bedienung machbar. Hätte das
Board genügend Leistung dafür?
Gruss
...Alex
Hallo,
also auf der GNUBLIN Seite sammelt sich nach und nach mehr info an.
Um die GPIO Geschichte nutzen zu können müsst Ihr das zImage auf der SD
Karte gegen das neue bei Downloads austauschen. Einfach unter einem
Linux Rechner hineinkopieren bzw. überschreiben.
- 5 Boards gehen heute hier an Bastler raus. Dann könnt Ihr die
Weihnachtszeit nutzen.
Gruss Benedikt
Hallo!
Ich habe eine kleines Kernel-Modul geschrieben, um bequemen Zugriff auf
die GPIO Pins des Boards zu haben.
Um es auszuprobieren, könnt ihr entweder das Modul selbst gegen euren
Kernel Source kompilieren (gpio-module-src.tar.gz) oder zum Testen
meinen Kernel und das fertig kompilierte Modul verwenden
(gpio-module-bin.tar.gz)
Am besten ihr kopiert das Modul "gpio-module.ko" in das home-Verzeichnis
und führt dann "insmod gpio-module.ko" aus um es in den Kernel zu laden.
Entfernt werden kann es mit "rmmod gpio-module.ko" beziehungsweise durch
einen Neustart.
Das Modul erstellt die virtuellen Dateien "/proc/gpio_dir",
"/proc/gpio_in", "/proc/gpio_out" um auf die Pins zuzugreifen.
Es liegt auch beiden Archiven der Header "gpio.h" bei, den ihr einfach
in C Programmen verwenden könnt um auf die Pins zuzugreifen.
Im Anhang ist auch noch ein Beispiel wie man das Modul in C verwenden
kann.
Das ist mein erstes Kernel Modul und ich nehme gerne
Verbesserungsvorschläge entgegen ;)
Benedikt Sauter schrieb:> hättest du Lust das gleiche für ADC und oder PWM zu machen :-).
Ja, ich bin gerade dabei mich in das Datenblatt des LPC3131 einzulesen
und habe vor, einen Treiber für den ADC zu schreiben.
Da das meine ersten Versuche mit Treiberprogrammierung sind kann ich
aber nichts garantieren ;)
Michael Schwarz schrieb:> Da das meine ersten Versuche mit Treiberprogrammierung sind kann ich> aber nichts garantieren ;)
Kernel-Module und ein /dev- und/oder /proc-Interface sind absolut kein
Hexenwerk. Schwieriger wirds, den ADC anzusprechen.
Siehe "Linux Kernel Module Programming Guide".
Nils S. schrieb:> Kernel-Module und ein /dev- und/oder /proc-Interface sind absolut kein> Hexenwerk.
Das stimmt, das habe ich bereits für das gpio Modul in meinem vorigen
Post gemacht.
Beim ADC ist eben das Problem, wie du schon erwähnt hast, dass ich ihn
erst ansprechen muss. Aber soweit ich das verstanden habe, sind alle
Register des ADC memory mapped und ich kann damit ganz einfach darauf
zugreifen.
Ich werde heute ein wenig damit experimentieren und falls ich
Fortschritte mache hier posten.
Kurzes Update:
es ist mir jetzt gelungen den ADC anzusprechen und im Single Conversion
Mode Werte vom ADC zu bekommen.
Ich werde also voraussichtlich noch diese Woche ein Kernel-Modul (und
einen Patch für den Kernel) herausbringen.
Hallo,
gestern gingen die ersten Boards per Post an euch. Bis Weihnachten
wollen wir, dass alle draußen sind.
Gruss Bene
@Michael kann ich deinen Treiber ins Wiki mit aufnehmen?
In der .h Datei die C Funktionen ist nicht wirklich hübsch. Lieber
schnürt man eine kleine Bibliothek gegen die man dann linkt. Oder man
schreibt in der Anleitung, dass man die C Funktionen mit aufnehmen soll.
In der .h Datei sollten nur Definitionen etc. sein.
Sonst sieht das doch für deinen ersten Treiber gut aus.
Gruss Bene
@Benedikt: Ja kannst du gerne ins Wiki stellen.
Mit dem Header hast du völlig recht, das war nur schnell zum Probieren
gedacht. Es ist auch nicht besonders effizient, da bei jedem Pin Zugriff
die Datei geöffnet, geschrieben und geschlossen wird.
Besser wäre es, die Datei am Anfang zu öffnen und dann mit rewind()
immer wieder an den Anfang der Datei zu gehen und sie erst am Ende zu
schließen.
Ich habe jetzt das ADC Kernel-Modul fertiggestellt. Es unterstützt den
Single Conversion Mode mit 10bit Auflösung für alle drei herausgeführten
ADC Kanäle.
Das Modul wird mit "insmod adc-module.ko" eingefügt (wenn ihr das fertig
kompilierte Modul aus "adc-module-bin.tar.gz" verwendet, müsst ihr auch
meinen Kernel verwenden)
Das Modul erstellt die drei Devices /proc/adc0, /proc/adc1 und
/proc/adc3. Jedesmal wenn von einem dieser Devices gelesen wird, führt
der ADC eine A/D Wandlung durch und liefert das Ergebnis zurück.
Testen kann man das z.B. mit "cat /proc/adc0 | od -i -An | tr -d ' '"
Achtung: Die maximale Eingangsspannung des ADC ist 3.3V!
Wer das Modul selbst kompilieren will, muss zuerst noch den Kernel Patch
anwenden, der die Register des ADC definiert:
"cd linux-2.6.33-lpc313x/
patch -p1 < ../adc-registers.patch"
Benedikt,
nachdem vor zwei Tagen die Versandbestätigung kam (Post war heute noch
nicht da...), wollte ich mich schonmal ans Wiki mit einem
Beispiel-Kernelmodul machen. Nun siehts aber so aus, als wäre die
Anmeldung gesperrt... oder übersehe ich da was?
Michael,
wieso hast du /proc genommen? Für Geräte ist eigentlich /dev da. Im
LKMPG gibts kein komplettes Beispiel für ein Kernel Modul, welches
/dev-Nodes bereit stellt, die man lesen und schreiben kann.
Ich hänge hier mal ein Modul an, welches nichts weiter tut als von sich
lesen und sich beschreiben lassen.
Weil das in dem Tutorial das ich mir über Kernel Modul Programmierung
durchgelesen habe so erklärt worden ist ;)
Aber du hast recht, /dev wäre natürlich besser.
Danke für die Beispiele, ich werde meine Module also umschreiben, dass
sie /dev statt /proc verwenden.
Ich hatte eigentlich vor, heute noch ein Modul für PWM reinzustellen,
aber dann werde ich das noch so abändern, dass es unter /dev liegt und
entweder heute Abend oder morgen reinstellen.
Vorschlag, ich würde den adc nicht mit mehreren /dev-Nodes machen,
sondern mit einer.
Beim starten ist automatisch ch0 aktiv und jenachdem, ob man 0-3 rein
schreibt, gibt er ab da den passenden channel aus.
Das ist ein guter Vorschlag, das werde ich gleich umsetzen nachdem ich
das PWM Modul fertig habe.
Aber falls du Lust (und Zeit und einen Google Account) hast, kannst du
auch gerne das Modul ändern. Ich habe ein Projekt auf Google Code
angelegt (http://code.google.com/p/gnublin-adc-module/) und wenn du mir
eine PN mit deiner E-Mail Adresse schickst könnte ich dich hinzufügen.
In der Header Datei hat sich beim Kommentieren noch ein Fehler
eingeschlichen, fehlende Escape-Sequenzen. Dadurch wird es nicht
compilieren, hier berichtigt.
So, ich habe jetzt auch noch das Modul für PWM fertig gestellt.
Das Modul wird ebenfalls durch "insmod pwm-module.ko" geladen. Dann muss
jedoch (falls noch nicht vorhanden) das PWM Device angelegt werden. Wie
das geht, zeigt das Modul beim Laden an. Es sollte im Normalfall
"mknod /dev/pwm c 253 0" sein.
Dann kann man einfach den PWM Wert in das Device schreiben. Für ein
Beispiel dazu siehe die angehängte "pwm.c".
Wie immer: wer das Modul ausprobieren will, muss auch meinen Kernel
verwenden (beide in "pwm-module-bin.tar.gz")
Ich denke das wären einmal die wichtigsten Module die man so braucht.
Wer noch Ideen für neue Module oder Verbesserungsvorschläge für die
Module hat, immer her damit ;)
Hallo Michael und Nils,
wir könnten es so machen, dass wir die ganze Entwicklung und Texte
schreibei auf code.google.de/p/gnublin machen und von dort gehts dann
ins Wiki etc. Ihr hättet dann auch Zugriff auf das Repos.
@Michael könntest du dann gleich zwei Artikel über die Treiber
schreiben? So dass man es als Benutzer nachmachen kann. Was genau hast
du am Kernel geändert? Nur eine andere Config? Hast du ein Google
Account?
@Nils hast du auch einen Google Zugang? dann kann ich euch da alle
eintragen.
Das wichtigste beim Projekt GNUBLIN ist, dass wir immer eine klar
Struktur auf der Tutorial Homepage haben. Wenn Ihr hier noch Anregungen
habt immer raus damit. Eventuell ist es daher besser, wenn wir auf
Google arbeiten und wenn alles passt wir es auf gnublin.org gezielt
übernehmen?
Gruss Benedikt
ADC-Treiber bin ich grad dran, haben per PN noch geschrieben, wird heute
Abend oder morgen im Lauf des Tages fertig sein.
Läuft dann so, dass man in eine Device Node schreibt und von ihr liest,
wie weiter oben geschrieben.
googlecode ist zwar google aber hab ich kein Problem mit :) -> Mail.
So, ADC Treiber funktioniert mal so halbwegs.
Was noch nicht tut, ist das ändern der resolution (10bit Messung
funktioniert, beim Laden vom Modul auf 10bit gestellt) und das
durchführen von Mehreren Messungen und bilden vom Durchschnitt (hab es
im Module "averaging" genannt.
Compilieren:
Im Makefile ARCH, CROSS_COMPILE und KDIR angeben (Kernel Quellcode
Verzeichnis)
$ make
Modul kopieren
Auf dem Board:
$ insmod /path/to/lpc3131_adc.ko
$ echo "0" > /dev/lpc3131_adc schaltet auf CH0
$ echo "1" > /dev/lpc3131_adc schaltet auf CH1
$ echo "3" > /dev/lpc3131_adc schaltet auf CH3
$ cat > /dev/lpc3131_adc gibt aus
$ echo "help" > /dev/lpc3131_adc gibt Hilfe auf dmesg aus.
Den EDLK compiler, der mit der ISO kam, aber das gefällt mir nicht so,
ist x86 und ich hab x86_64. Ich werd mir mit crossdev auf gentoo im Lauf
der Tage noch was bauen.
Das Problem bei crossdev ist leider, dass man nie weiss, was man bei
rausbekommt - eine Käferfamilie oder einen Compiler...
Mal ne blöde Frage: Wie meldet man sich fürs Wiki an oder kann das nicht
"von jedem" editiert werden?
Eventuell kann jemand mit Schreibberechtigung mal den Abschnitt:
http://www.gnublin.org/index.php/LPC3131-Fortgeschrittene#Toolchain_installieren_und_die_Umgebungsvariable_setzen
editieren, einmal sollten "temporäre" Medien ggf. nach /media gemountet
werden und ansonsten ist es eventuell etwas unklug nach /mnt zu mounten
da dort (in Unterverzeichnissen) bei vielen Systemen auch ander FS
gemountet sind welche man dann überdeckt (was dann die installation
schwierig macht und dem Rest des Systems ggf. auch nicht schmecken mag).
Dann hätte ich noch eine Frage zu Netzwerkkarte, benötigt man da dieses
spezielle OTG Kabel oder tut es auch ein "einfaches", das wird aus dem
Text nicht ganz klar.
Hall Läubi,
habs angepasst. Ich werde glaube ich ein zweites wiki einrichten,
in dem jeder Schreibzugriff hat. Von dort aus werden die Texte dann auf
die Hauptseite übernommen.
Oder es finden sich ein paar freiwillige die Moderator spielen. Hätte da
jemand Zeit und Lust? Dann könnten wir auch das Wiki mal offen lassen
und schauen was passiert?
Wenn du den ID Pin der USB Buchse manuell gegen GND ziehst kannst du
jedes Kabel verwenden.
http://www.gnublin.org/images/thumb/b/b4/Usb-id-jumper.jpg/800px-Usb-id-jumper.jpg
Gruss Bene
Ich denke, dass es gar nicht so viel Arbeit macht, das Wiki frei
zugänglich zu machen. Du kannst ja auch einstellen, dass es nur mit
Anmeldung geht, das hält schonmal einige Spammer fern.
Irgendwie bin ich gerade blind und seh' nicht wie $GNUBLINDIR definiert
werden muss... Es wird zwar fröhlich drauf verwiesen aber niergendwo
gesagt wo das liegen soll oder was man dafür installieren soll...
Hallo Benedikt,
ist es möglich einen Blick auf das Layout zu werfen? In nächster Zeit
werde ich in der 4ma einen ARM9 mit DDR2 Speicher und anderer schneller
Logik layouten. Wie kritisch sind Leitungslängen etc. wenn du das auf
einer simplen Doppelseitigen Platine geschafft hast?
Viele Grüße,
So, gerade eben noch ein wenig dran getan...
das senden von Strings hielt ich dann doch für zu umständlich,
einerseits das Parsen im Modul, andererseits das Erzeugen des Strings im
Anwenderprogramm.
Jetzt kommt ein 16bit-Hex-Wert rein, in der README.txt die Auflistung
der Bits für die config.
Beispiele:
echo "0900" > /dev/lpc3131_adc # setze ADC auf 10bit, CH0, 75 messungen
cat /dev/lpc3131_adc
Das 0x als Prefix muss weggelassen werden, einfach nur die 4 Nibbles
angeben.
0x0900 = 10bit, 75 messungen, ch0
0x0901 = 10bit, 75 messungen, ch1
0x0902 = 10bit, 75 messungen, ch2
0x0903 = 10bit, 75 messungen, ch3
0x0100 = 10bit, "single shot", ch0
0x0101 = ..., ch1
...
Nur das setzen der Auflösung klappt noch nicht, kommen immer 10bit bei
raus.
Zum I2C Bus,
Wenn man im Kernel, das i2c-dev Interface hat, dann kann man über
/dev/i2c-0 und /dev/i2c-1 auf die beiden Busse, des Boards zugreifen.
i2c-0 ist nicht angeschlossen, i2c-1 schon.
Der Bus scheint im Treiber "hardcoded" auf 100khz eingestellt zu sein.
Ich werde demnächst mal versuchen, das auf 400 zu ändern und wenns geht,
die Geschwindigkeit irgendwie zur Laufzeit einstellbar machen.
Hier im Anhang das wichtigste der i2c-tools compiliert fürs Board.
Ich habe im Datenblatt nichts zu 5V-Toleranz gelesen, aber es scheint zu
gehen. Aus lauter Dummheit und nicht nachdenken, habe ich zwei PCF8574
1:1 an das Board angeschlossen und erst am nächsten Tag bemerkt. Jetzt
hab ich in SDA und SCL noch je 50Ohm Widerstände drin.
"i2cdetect -y 1" durchsucht den I2C Bus, welcher auf dem
Erweiterungsstecker liegt.
LM75 mit lm-sensors läuft auch schon. Eine DS1307 RTC hab ich auch shcon
angeschlossen, nur bekomme ich da kein /dev/rtcN bei heraus. Wenn ich es
von Hand anlege, sagt mir hwclock und ähnliche "no such device".
Der Chip wird am Bus erkannt, aber der Treiber fürs Linux scheint nicht
zu machen, was ich will.
Hallo,
so ich habe das Wiki zum Anmelden mal geöffnet. Schauen wir was
passiert.
Am besten macht Ihr eure Beschreibungen bei Beispielcode unter
Codeschnippsel rein oder?
Wir sollten dann wenn adc und pwm stabil läuft dies fest in den Kernel
mit aufnehmen, so dass es in der Standardkonfiguration dann ist.
Man müsste einen Patch 0002-adc-and-pwm basierend auf dem Standardkernel
mitmit 0001 etc machen und die passende 0002-config dann auch.
http://code.google.com/p/gnublin/source/browse/#git%2Flpc3131%2Fkernel%2F2.6.33
So dass es dann fester Bestandteil vom zImage ist.
Gruss Bene
Den Patch für den ADC auf den Kernel kann ich machen, muss aber erstmal
schauen, wie ich das Modul fest in Kernel gebacken bekomme. Werd ich mal
unseren Code mit nem kleinen Treiber wie dem LM75 o.ä. vergleichen.
Wird wohl nicht in ein paar Stunden soweit sein, aber kommt bald ;)
Wiki melde ich mich später auch noch an und fang mal an was zu
schreiben.
Ich hab da eine Idee für den Aufbau des Wikis. Meiner Meinung nach ist
das mit Abstand sauberste und übersichtlichste Wiki, das von OSDev
http://wiki.osdev.org/Main_Page
Die Struktur mit den Kategorien könnte man für gnublin ja übernehmen und
für wirklich jede Kleinigkeit einen eigenen Artikel machen und dann in
der Übersicht alles "zusammenlinken".
Ist übersichtlicher, wartungsfreundlicher und vorallem findet man viel
leichter was man sucht, als wenn zig Sachen in einem Artikel
verschwinden.
Hallo Leute,
da jemand nach gpio-orig.h sucht, wollte ich ein paar Sachen dazu sagen.
Das ist die originale gpio.h, die ich so umbenannt habe. Das habe ich so
gemacht, weil ich auch das gpio/sysfs installiert habe, das ich bei den
Patches auf lpclinux.com gefunden habe.
Ich verwalte die Kernel Quellen zum Gnublin Board in einem Git
Repository,
das man hier im Web ansehen kann:
http://elk.informatik.fh-augsburg.de/cgi-bin/gitweb.cgi?p=gnublin-linux-2.6.33.git;a=summary
Man sollte das Repository so klonen koennen:
git clone
git://elk.informatik.fhugsburg.de/srv/git/repositories/gnublin-linux-2.6
.33.git
Darin findet man den Branch 111218, das ist meine letzte Version mit
gpio/sysfs und allen sonstigen Kleinigkeiten die man bei Gnublin
braucht.
Vielleicht waere es eine gute Idee, wenn man die Erweiterungen, die hier
im Forum entstehen, als eigene Branches im Git Repo ausprobieren wuerde.
Bereits vorkompiliert findet man den Kernel hier:
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/downloads/kernel-2.6.33/kernel-111218/
Da ist auch nochmal der Patch drin und die Konfigurationsdatei, die ich
verwendet habe. Dieses Verzeichnis brauche ich fuer gnublin-card.py,
das hier drin ist:
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/downloads/
Damit kann man sich eine Micro-SD Karte mehr oder weniger automatisch
erstellen lassen (bin aber noch beim Testen). Daneben findet man auch
noch den fuer Gnublin angepassten Apex Bootloader und das aktuelle Root
FS. In /usr/local/bin/ sind einige Programme hinzugekommen, die ich
kompiliert habe oder aus Debian/ARM genommen habe:
gforth jimsh lighttpd lynx rttest stress
gforth-0.7.0 jove lua nano sq zile
Mit der Sprache lua kann man Skripte schreiben um die Peripherie
anzusprechen, abgeleitet davon ist sq (Squirrel). Da ich Leute
kenne, die gerne mit Forth mal auf dem Board arbeiten wuerden, habe
ich gforth installiert. Jim ist eine weiter Sprache zum Skripten
(jimsh),
das ist im wesentlichen Tcl. Fuer Vi-Hasser habe ich jove und zile
vorgesehen, das sind kleine Emacs Klones. Wer auch die nicht mag, sollte
nano nehmen.
Meine bisherigen Experimente mit dem Board habe ich hier
zusammengeschrieben:
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/gnublin-ug/
Ein paar Beispielprogramme aus meinem aktuellen Gnublin Homeverzeichnis
sind hier:
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/work_eplpc3131/home/
Viele Gruesse,
Hubert
Läuft OTG mit dem Patch den auch?
Sobald ich den ID-Pin auf Masse ziehe, schiebt der Kernel panic.
Mit dem alten zImage-33-7 funktioniert alles problemlos.
Habs mir noch nicht angeschaut aber könnte noch ein Bug im GPIO Patch
sein, der USB_ID / M1 falsch interpretiert?
Hallo Phil J.,
stimmt, ich habe den Fehler auch. Tatsaechlich habe ich USB Host
schon ein Weilchen nicht mehr getestet. Vielleicht hat es mit einer
Aenderung in gpiolib.c zu tun, die ich gemacht habe, so dass die GPIO
Pins 11 bis 15 in sysfs richtig abgebildet werden. Ich schaue mir das
morgen mal genauer an.
Gruesse,
Hubert
Ich hatte Probleme mit dem gnublin-card.py-Script.
Auf allen meinen Systemen kam eine Fehlermeldung, fdisk betreffend, dass
die Kommandozeilenoption -S noch einen Parameter erwarte.
Ich hab dann das --gnu-fdisk rausgenommen und das gefährliche
vordefinierte /dev/sdb auch gleich.
Würde ich bei sdb YES tippen, würden mir gleich zwei Platten im RAID
fehlen - HILFE ;)
Meine Änderungen im Ordner mit den python-card.py: patch -p0 <
0001_python-card.py-gnufdisk-sdbdef.patch
Überprüfung auf freien Speicherplatz im Tempverzeichnis halte ich noch
für sinnvoll und eine Überprüfung auf die Seriennummer der Karte (was
z.B. fdisk -l ausgibt: "Disk identifier: 0x66205247").
Wenn eine andere identifier-Nummer beim Script ankommt, als das letzte
mal, soll er noch nachfragen "Really?".
Bei den TODOs im Script steht auch noch was davon, das temp-Verzeichnis
nach ~ auszulagern, halte ich aber nicht für sinnvoll, wieder ein Ordner
mehr im sowieso schon vermüllten ~...
Man möchte die geladenen Dateien ja auch mehrmals verwenden können, wenn
die irgendwo anders liegen, der User weiss womöglich nichtmal genau wo,
sind die schnell mal gelöscht...
Wegen der Partitionsgröße. BootIt soll immer 16MB haben und der Rest für
rootfs, oder?
Hallo Nils,
danke fuer die vielen Tipps, auch den mit "fdisk -l". Kurz vor
Weihnachten hatte ich noch eine neue Version dahin kopiert (Version 6):
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/downloads/
Die Sache mit dem fdisk ist mir auch aufgefallen, da mein Skript
wie sich herausgestellt hat nur auf Ubuntu funktionierte. Auf Debian
lief es nicht, weil da eine andere fdisk Variante installiert ist. In
der Version 6 teste ich die vorhandene fdisk Variante und gebe dann
unterschiedliche Optionen.
Ich suche noch nach einer besseren Loesung, um sich nicht die
eingebauten
Platten kaputt zu machen. Das mit dem eingebauten "/dev/sdX" und "YES"
Abfrage gefaellt mir auch nicht. Ich wollte noch irgendwo im /proc
Filesystem herumsuchen, ob ich nicht mehr Informationen ueber die
eingesteckte SD Karte bekomme. Da sich das Skript aus meiner Sicht
hauptsaechlich an Anfaenger richten soll, die mit fdisk auf der
Kommandozeile nichts anfangen koennen, muss es gerade an dieser Stelle
noch besser werden.
Die Groesse fuer die BootIt Partition ist auch noch ein Punkt, der
mir nicht gefaellt. Als schnelle Loesung hatte ich einfach einen
ganzen Zylinder in fdisk spendiert, die Groesse von BootIt ist damit
auch
von der Kapazitaet der Karte abhaengig. Wer sich besser mit fdisk
auskennt, kann gerne einen Tipp geben.
Viele Gruesse,
Hubert
> Ich wollte noch irgendwo im /proc> Filesystem herumsuchen, ob ich nicht mehr Informationen ueber die> eingesteckte SD Karte bekomme.
Schau dir z.B. mal unetbootin an, die haben eine Erkennung drin, ob
Stick/..., und wenn's nur nach der Größe des Devices geht, z.B. alles
was grösser als 16GB ist, wird erstmal als Festplatte behandelt (kleine
SSDs mit 32GB... dürften ja auch noch einige unterwegs sein). Dann kommt
halt eine Abfrage, ob wirklich partitioniert und formatiert werden soll.
>Die Groesse fuer die BootIt Partition ist auch noch ein Punkt, der>mir nicht gefaellt. Als schnelle Loesung hatte ich einfach einen>ganzen Zylinder in fdisk spendiert, die Groesse von BootIt ist damit>auch>von der Kapazitaet der Karte abhaengig. Wer sich besser mit fdisk>auskennt, kann gerne einen Tipp geben.
Ein script zu fdisk schreiben ist ja kein allzugrosser Aufwand, wie
genau sind denn die Vorgaben für die BootIt Partition? Ich habe gerade
eben ein wenig gesucht, aber nicht viel zu BootIt gefunden, mir
vollkommen neu.
Achja, was ist mit uboot? Gibts ja auch für lpc313x..
Ich komme seit zwei Tagen nicht mehr weiter, darum hab ich vorhin auch
die Karte erstmal neu bespielt um Fehler mit dieser auszuschliessen.
Wenn ich den Kernel neu compiliere, hängt mein Board am Ende der Kernel
Messages bei "Waiting for root device /dev/mmcblk0p1...", der originale
Kernel läuft. e2fsck habe ich auch schon durchlaufen lassen.
Im Anhang die komplette Ausgabe vom Booten.
Configs habe ich mehrere versucht, meine Eigenen und die offiziellen.
Die Config, die ich zum Laufen kriegen will ist die hier:
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/downloads/kernel-2.6.33/kernel-111218/
Kernel stammt von "git clone
git://elk.informatik.fh-augsburg.de/srv/git/repositories/gnublin-linux-2
.6.33.git".
Hat jemand eine Idee, woran das liegen könnte?
gpio_set_value(GPIO_MI2STX_DATA0, 0);
+ lpc313x_gpio_set_value(GPIO_MI2STX_DATA0, 0);
+ //gpio_set_value(GPIO_MI2STX_DATA0, 0);
/* set cd pins as GPIO pins */
- gpio_direction_input(GPIO_MI2STX_BCK0);
+ // --hh gpio_direction_input(GPIO_MI2STX_BCK0);
+ lpc313x_gpio_direction_input(GPIO_MNAND_RYBN2);
+ //gpio_direction_input(GPIO_MNAND_RYBN2);
/* select the opposite level senstivity */
Das sollte alles passen. Ich teste es auch mal heute abend.
Der mmc Patch ist drin, aber da fiel mir ein, dass ich am GPIO Code
herumgespielt habe und dort scheint wohl ein Fehler drin zu stecken, mit
einem "frischen" Kernel, ohne meine Basteleien funktionierts.
Andere Basteleien sind ADC, PWM und der RNG, daran wirds wohl kaum
liegen.
Danke :)
Zum Script,
Ich habe gerade gesehen, der Disk Identifier ändert sich bei jedem
Formatieren, würde also nichts bringen.
Man könnte noch eine Karte mit einem eindeutigen Identifier versehen,
z.B. 0x88884444 oder so.
Der Vorteil hierbei wäre eben, wenn sich das script die bisherigen
bekannten Identifier im Temp Ordner merkt und nochmal nachfrägt, wenn
ein unbekannter kommen sollte.
Irgendwas scheint gewaltig zu spinnen an dem gnublin-card.py script in
der aktuellen Version.
Das hinterlässt mir immer eine komplett leere Karte, Disk Identifier
bleibt aber gleich.
Ich hab meine micro-SD Karten bis heute immer per Handy bespielt und
deshalb gerade noch einen Card Reader und einen Adapter auf SD geholt.
Mit allen drei Lesegeräten habe ich das selbe Problem.
Das alte Script funktioniert, aber nur, wenn ich neustarte, auch
an/abstecken und partprobe funktioniert nicht. fdisk von hand auch nicht
mehr, dd auch nicht mehr.
Das Problem habe ich auch beiden grossen PCs und auf meinem Laptop, alle
drei laufen unter Gentoo (amd64), zwei unstable, einer stable.
Habt ihr dieses Problem auch? Werde mal debian in einer VM installieren
und schauen wie es dort läuft.
Hallo Nils,
mit Gentoo habe ich noch gar keine Erfahrung gemacht, was das
Skript betrifft. Vielleicht koenntest Du mal eingeben:
fdisk -v
fdisk -h
und die Ausgaben hier posten. Vielleicht ist das wieder eine andere
fdisk Variante, die ich noch nicht kenne.
---
Wegen des Problems mit der Kernel-Panic bei USB_ID habe ich heute
eine Aenderung gemacht. Bitte mal ausprobieren:
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/downloads/kernel-2.6.33/kernel-120102/
Bei diesem Kernel ist nun auch das (veraltete) USB device filesystem
aktiviert, so dass man unter /proc/bus/usb/ die Geraete am USB Host
Controller sieht. Damit geht auch das lsusb Kommando und man kann
Geraete ueber die libusb ansteuern (habe das heute mit Benedikt's
Octopus ausprobiert).
Gruesse,
Hubert
Ich habe vorhin noch das verbose vom tar weggenommen um mal die ganzen
Konsolen-Ausgaben vom script zu sehen und so wie es aussieht, will er
eine Partition mounten/unmounten, die es nicht gibt nach dem Erstellen
der Partitionen.
Ich werd mich da morgen mal auf die Suche nach dem Fehler begeben :)
Hier mal die Ausgaben,
(**9999 sind die Quellen aus dem SVN/GIT/WhatEver zu util-linux)
Als Ersatz für das unsäglich zu benutzende, normale, fdisk sollte man
vielleicht auch ein script-taugliches fdisk nehmen, z.B. parted.
Die letzten Tage hab ich eigentlich nur rumgedödelt und gebastelt, ich
will jetzt schleunigst ADC und PWM fest im Kernel einbauen und kann mich
dann an ein installer-script machen, welches parted nutzt und vielleicht
nicht unbedingt in Python - 7 Jahre portage schafft zwangsläufig eine
Pythophobie.
Wobei ich mit Python auch kein Problem habe, jenachdem ob dir das recht
ist, wenn ich eines mache und ob du bei Python bleiben willst.
Der grosse Vorteil von parted ist, dass es eben genau für scripting
gemacht wurde und sich die Optionen/Befehle nicht unter nahe beieinander
liegenden Versionen ändern, wie soll das auch gehen, bei so vielen
Geschichten, die mittlerweile auf parted aufbauen...
Vorallem würde ich dem Nutzer erstmal nicht so viele Freiheiten gewähren
- Script für min. 1GB Karte, das letzte MB auf der Karte für BootIt,
Rest für ext2. Umso größer das Script - umso mehr Fehler schleichen sich
ein.
Wem sowas nicht reicht, der soll von Hand installieren, auch nicht
schwer.
ADC und PWM patch ist fertig, ist im Anhang. Ebenso ist meine .config
mit dabei. Einfach ins Kernelverzeichnis kopieren und oldconfig laufen
lassen.
Ebenso dabei ist der adc-registers-patch, der gebraucht wird.
"Howto":
1. "$ git clone
git://elk.informatik.fh-augsburg.de/srv/git/repositories/gnublin-linux-2
.6.33.git"
2. Beide Patches ins gerade geladene Kernelverzeichnis kopieren
3. "$ patch -p1 < adc_registers.patch
4. "$ patch -p1 < 0005_lpc313x_ADC_PWM.patch
5. MMC/SD Patch einspielen: "$ patch -p4 < 01-mmc-card-detect.patch"
6. Konfigurieren/Compilieren
In menuconfig sind die beiden Treiber unter "Device Drivers -> NxP
lpc313x IO drivers (ADC, PWM, ...)"
Die Treiber können entweder als Modul oder fest eincompiliert werden.
Die von mir hinzugefügten Dateien liegen in "drivers/lpc313x_io/" und
dessen Unterverzeichnissen adc/ und pwm/. Dort sind auch die READMEs
,soweit ich schon was geschrieben habe, und TODOs drin.
Bitte anschauen - schlechten Code/Fehler bemeckern und/oder flicken.
@Hubert Hoegel/Benedikt/...:
Es wäre vielleicht auch gut, wenn ihr in die "Standard-Configs" den
Punkt
"General Setup -> Automatically append version information to the
version string" aktiviert, da damit dann die Ausgabe von uname so
aussieht:
"$ uname -sr
Linux 2.6.33-kt-g093e9d2-dirty"
So sieht man gleich am Anfang bei der Fehlersuche welches Release
derjenige verwendet. Ein einzelnes 2.6.33 kann vieles bedeuten...
Hallo Nils,
das hast du echt super hingekriegt :)
Einen kleinen Bugfix hätte ich noch. Beim ADC in der Funktion
device_write solltest du die Zeile
if(copy_from_user(message_from_user, buff, len)) return -EINVAL;
durch
if(copy_from_user(message_from_user, buff, (len < BUF_LEN) ? len :
BUF_LEN)) return -EINVAL;
ersetzen. So ein Buffer Overflow im Kernel kann recht unschön sein.
Nein, mir selbst ist das noch nicht passiert, sollte nur vorsorglich
sein.
Man kann ja nie wissen was manche User (mutwillig oder absichtlich) an
das Kernelmodul senden ;)
Hallo Nils,
noch zur Sache mit dem parted als besserem Ersatz fuer fdisk. Ich habe
tatsaechlich am Anfang mit pyparted begonnen (Python-Wrapper um
libparted)
bin aber an der eigentlich laecherlichen Sache gescheitert, dass ich
damit
den BootIt Partitionstyp nicht schreiben konnte (das ist 0xdf glaube
ich).
Nur mit diesem Typ bootet anscheinend der LPC von der SD Karte. Nicht
mal
cfdisk kennt diesen Typ, nur das ganz primitive fdisk. Dann habe ich
noch
ein wenig mit sfdisk herumgespielt und bin dann zum Schluss beim fdisk
gelandet. Die vielen Varianten mit unterschiedlichen Optionen habe ich
aber unterschaetzt. Mich stoert es ueberhaupt nicht, wenn Du ein
eigenes
Programm fuer die Aufgabe schreibst, muss ich nicht Python sein. Ich
muss auch nochmal einen Versuch starten.
Die Anleitung 1. bis 6. fuer den ADC/PWM Patch haben genau funktioniert.
Beim Punkt 1. koennte man vielleicht die direkte Quelle hinschreiben:
git clone git://git.lpclinux.com/linux-2.6.33-lpc313x
Von der habe ich auch die Sachen ohne Aenderung in meinen "master"
branch genommen. Ich wolle gerade mal die ADC/PWM Patches mit meinen
Aenderungen im branch "hhoegl" zusammenfuehren, da knirscht aber dann
irgendwas beim Kompilieren mit den GPIOs. Wahrscheinlich liegt es daran,
dass ich diese GPIO/Sysfs Sache aktiviert habe.
Gibt es eigentlich irgendwo schon ein huebsches Testprogramm fuer die
neuen ADC- und PWM-Treiber?
Gruesse,
Hubert
PWM Treiber Testprogramm gibts von "Michael Schwarz (misc)", weiter oben
im Thread, es ist ja nahezu 1:1 sein Treiber, den ich übernommen habe
für PWM, siehe Kommentare im Code.
Der ADC lässt sich ganz einfach per Kommandozeile abfragen:
cat /dev/lpc313x_adc gibt den gewählten channel aus
(habe keine eckige klammer auf der Tastatur hier, daher eine
geschweifte)
echo "f000" } /dev/lpc313x_adc gibt den Status des Treibers nach dmesg
aus.
echo "0000" } /dev/lpc313x_adc schaltet auf channel 0, 10bit, kein
Mittel bilden.
echo "0001" } /dev/lpc313x_adc schaltet auf channel 1, ...
Die Aufdröselung der Bits steht in der README Datei unter
drivers/lpc313x_io/.
Poste mal bitte, was bei dir klemmt mit den GPIOs + die config, die
klemmt, dann kann ich auch mal danach schauen.
Zum Install-Tool,
ich habe jetzt doch mit Python was angefangen, bisher funktioniert mal
Überprüfung auf Größe, removable und ob das device existiert. Ebenso die
Berechnung der Größe der beiden Partitionen, habe das allerdings
"schneller" gelöst als ihr: BootIt = 2MB, Ext2 = Rest, scheint mal zu
funktionieren, wenn ich so per Hand partitioniere.
Ich verwende parted allerdings nicht über die Python-Bindings, dafür
kann ich zu wenig Python, bisschen Python-Wikibooks rumklicken und
abtippen - das wars ;). Ich lasse einfach parted mit den entsprechenden
Kommandozeilenoptionen ausführen.
Das "umlabeln" auf BootIt lässt sich 100%ig mit dd und ein bisschen
Bitgeschubse machen, kann sich ja nur um ein Magic handeln um den es dem
lpc3131 geht, da apex.bin ja knallhart direkt auf die Karte geschrieben
wird, komplett ohne Dateisystem.
Hallo,
ich habe heute mal an meinen Aenderungen herumgebastelt und drei Patches
daraus gemacht. Sie sind unter
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/work_eplpc3131/kernel/2.6.33/.
Damit sollte nun folgendes klappen:
1. Kernel holen von
git://git.lpclinux.com/linux-2.6.33-lpc313x (Version
...a66fc573bcd7027)
2. Meine drei Patches anwenden
patch -p1 < 001-mmc-card-detect.patch
patch -p1 < 002-gpiolib.patch
patch -p1 < 003-usb-panic.patch
3. Dann die zwei von Euch anwenden:
patch -p1 < adc-registers.patch
patch -p1 < 0006_lpc313x_ADC_PWM.patch
4. Konfiguration config-adcpwm in .config kopieren (ist da wo auch
die Patches sind).
5. Kompilieren
make zImage
make modules
make modules_install INSTALL_MOD_PATH=<Pfad>
Ich kann es kaum glauben, GPIO ueber sysfs scheint zu klappen (habe
es mit input.sh von
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/work_eplpc3131/home/root/
schnell ausprobiert)
der USB Host geht auch:
root@armv5te:~# lsusb
Bus 001 Device 002: ID 07a6:8511 ADMtek, Inc. ADM8511 Pegasus II
Ethernet
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
und dann kann ich auch die beiden neuen Module laden:
root@armv5te:~# modprobe lpc313x_pwm
[lpc313x pwm] pwm frequency: 1464 Hz
[lpc313x pwm] driver loaded with major 253
[lpc313x pwm] >> $ mknod /dev/lpc313x_pwm c 253 0
root@armv5te:~#
root@armv5te:~# modprobe lpc313x_adc
[lpc313x adc] driver loaded with major 252
[lpc313x adc] >> $ mknod /dev/lpc313x_adc c 252 0
Na das ist ja echt erst mal Spitze, Schade dass Weihnachten schon
vorbei ist! Vielen Dank an die Treiberschreiber!
Gruesse,
Hubert
Danke für die Blumen, aber es ist noch nicht vorbei ;) :D
Ich bin grad dran, herauszufinden, wie ich ADC und PWM als Device im
Kernel registriere, dann funktioniert der Spass auch mit devtmpfs
(welches wirklich sehr praktisch ist) und mit udev, kein lästiges mknod
mehr.
Ebenfalls hab ich hier auch noch einen ADC Treiber, der auf gut die
Hälfte runtergeschrumpft wurde, aber der ist noch sehr sehr buggy,
dauernd Kernel Panics oder er tut nichts, der wird aber kommen.
Hallo, mal was neues von mir....
WiFi funktioniert bei mir auch mit einem alten D-Link Stick:
Für den rt73-Treiber braucht man noch die Firmware (rt73.bin), habs
nicht geschafft diese via /lib/firmware einzubinden.
Funktioniert aber erstmal auch wenn man in der Kernel menuconfig unter:
Generic Driver Options -> [*] Include in-kernel firmware blobs in kernel
binary
die rt73.bin einträgt und in $KERNELDIR/firmware/ ablegt.
Und wireless_tools müssen noch cross-compiliert werden. (Lassen sich
sogar via make install auf dem Board wunderbar installieren)
Der Rest ist dann ein vergleichsweise einfach:
modprobe rt73usb
ifup wlan0
ifconfig wlan0 192.168.x.x up
iwconfig wlan0 mode managed essid "x" key s:xxxxxx
(Das ganze muss ich immer zweimal aufrufen, weiß der Geier warum)
route add default gw 192.168.x.x
Habe probehalber mal lighttpd gestarted....klappt.
Momentan hab ich nur WEP zum laufen bekommen.
wpa_supplicant stresst noch.
Hat da vielleicht jemand schon was probiert?
Was auch noch nicht geht ist SSH. Habe mir die Config von dropbear noch
nicht angeschaut. Vielleicht hat da jemand einen Tip...
Weiterhin hab ich mal ne Webcam mit gspca probiert, funktioniert auch.
Werde mal morgen versuchen nen Stream ans laufen zu bekommen.
Erstaunlicherweise rattert alles an nem USB-Hub ohne externe
Stromversorgung (GNUBLIN hängt auch nur am USB). Wundert mich das alles
noch klappt.
Und nochmal zu den leidigen Patches:
Bei mir schmeißt einer der ADC Patches nen Fehler, wenn ich den Kernel
bauen will.
Ich geb zu ich war etwas Faul und hab die erstmal rausgeschmissen, aber
kann das jemand bestätigen?
Phil J. schrieb:> Momentan hab ich nur WEP zum laufen bekommen.> wpa_supplicant stresst noch.> Hat da vielleicht jemand schon was probiert?
Fehlermeldung? wpa_supplicant ist einfach, das Beispiel aus der
wpa_supplicant.conf manpage und wpa_supplicant -D wext -i wlan0 -c
/pfad/zur/config -dd -B
> Was auch noch nicht geht ist SSH. Habe mir die Config von dropbear noch> nicht angeschaut. Vielleicht hat da jemand einen Tip...
Fehlermeldung?
> Und nochmal zu den leidigen Patches:> Bei mir schmeißt einer der ADC Patches nen Fehler, wenn ich den Kernel> bauen will.> Ich geb zu ich war etwas Faul und hab die erstmal rausgeschmissen, aber> kann das jemand bestätigen?
Fehlermeldung?
So ich habe mal alles auf die Server/Gits etc. kopiert.
Desweiteren habe ich gnublin-card.py erweitert, dass es prueft ob man
root ist. Wenn nicht gibts eine Meldung. Sonst haengt das Skript immer
ewig und man kapiert nicht das nichts passiert weil die Rechte fehlen.
Mit der Datei aus dem Anhang hier sollte man eine neue Karte bauen
können die ADC, PWM und GPIO können.
Könnte ihr das auch mal testen?
sudo python gnublin-card.py --all --device=/dev/sd<?>
PWM testen:
root@armv5te:~# modprobe lpc313x_pwm
[lpc313x pwm] pwm frequency: 1464 Hz
[lpc313x pwm] driver loaded with major 253
[lpc313x pwm] >> $ mknod /dev/lpc313x_pwm c 253 0
root@armv5te:~#
ADC testen:
root@armv5te:~# modprobe lpc313x_adc
[lpc313x adc] driver loaded with major 252
[lpc313x adc] >> $ mknod /dev/lpc313x_adc c 252 0
oh man muss da noch zwei / drei Sachen machen.
1. Das check_root nicht so oft. So das man auch als User etwas
herunterladen darf.
2. Den Kernel entpacken und ins rootfs kopieren + die Module ebenfalls
kopieren. Aktuell erhalte ich beim booten eine Fehlermeldung:
cpuidle: using governor ladder
------------[ cut here ]------------
WARNING: at drivers/gpio/gpiolib.c:102 gpio_ensure_requested+0x4c/0xe4()
autorequest GPIO-48
Modules linked in:
[<c0028794>] (unwind_backtrace+0x0/0xd0) from [<c003b6d0>]
(warn_slowpath_common+0x48/0x60)
[<c003b6d0>] (warn_slowpath_common+0x48/0x60) from [<c003b720>]
(warn_slowpath_fmt+0x24/0x30)
[<c003b720>] (warn_slowpath_fmt+0x24/0x30) from [<c01063b4>]
(gpio_ensure_requested+0x4c/0xe4)
[<c01063b4>] (gpio_ensure_requested+0x4c/0xe4) from [<c01065bc>]
(gpio_direction_input+0x6c/0xfc)
[<c01065bc>] (gpio_direction_input+0x6c/0xfc) from [<c002e8e4>]
(mci_init+0x20/0x88)
[<c002e8e4>] (mci_init+0x20/0x88) from [<c0179eb0>]
(lpc313x_mci_probe+0x3ac/0x658)
[<c0179eb0>] (lpc313x_mci_probe+0x3ac/0x658) from [<c0128158>]
(platform_drv_probe+0x14/0x18)
[<c0128158>] (platform_drv_probe+0x14/0x18) from [<c0127350>]
(driver_probe_device+0xe4/0x1c4)
[<c0127350>] (driver_probe_device+0xe4/0x1c4) from [<c0127490>]
(__driver_attach+0x60/0x84)
[<c0127490>] (__driver_attach+0x60/0x84) from [<c0126590>]
(bus_for_each_dev+0x4c/0x78)
[<c0126590>] (bus_for_each_dev+0x4c/0x78) from [<c0126c60>]
(bus_add_driver+0xa8/0x234)
[<c0126c60>] (bus_add_driver+0xa8/0x234) from [<c01276b8>]
(driver_register+0xa8/0x12c)
[<c01276b8>] (driver_register+0xa8/0x12c) from [<c012855c>]
(platform_driver_probe+0x18/0x68)
[<c012855c>] (platform_driver_probe+0x18/0x68) from [<c0022444>]
(do_one_initcall+0x60/0x1b0)
[<c0022444>] (do_one_initcall+0x60/0x1b0) from [<c0008984>]
(kernel_init+0x94/0x10c)
[<c0008984>] (kernel_init+0x94/0x10c) from [<c0023dc4>]
(kernel_thread_exit+0x0/0x8)
---[ end trace 8411f10a23745b0c ]---
lpc313x_mmc lpc313x_mmc.0: LPC313x MMC controller at irq 26
TCP cubic registered
Kriegt das auch noch jemand?
Bin heute leider unterwegs. Schaue das ich es bis morgen oder so
hinbekomme.
Mit dem neuen Skript wird der Kernel jetzt auch auf die Karte gepackt.
http://www.gnublin.org/downloads/gnublin-card.py
(gleiche Prozedur wir oben --all)
Aber die Fehlermeldungen erhalte ich immer noch.
------------[ cut here ]------------
WARNING: at drivers/gpio/gpiolib.c:102 gpio_ensure_requested+0x4c/0xe4()
autorequest GPIO-48
Modules linked in:
[<c0028794>] (unwind_backtrace+0x0/0xd0) from [<c003b6d0>]
(warn_slowpath_common+0x48/0x60)
[<c003b6d0>] (warn_slowpath_common+0x48/0x60) from [<c003b720>]
(warn_slowpath_fmt+0x24/0x30)
[<c003b720>] (warn_slowpath_fmt+0x24/0x30) from [<c01063b4>]
(gpio_ensure_requested+0x4c/0xe4)
[<c01063b4>] (gpio_ensure_requested+0x4c/0xe4) from [<c01065bc>]
(gpio_direction_input+0x6c/0xfc)
[<c01065bc>] (gpio_direction_input+0x6c/0xfc) from [<c002e8e4>]
(mci_init+0x20/0x88)
[<c002e8e4>] (mci_init+0x20/0x88) from [<c0179eb0>]
(lpc313x_mci_probe+0x3ac/0x658)
[<c0179eb0>] (lpc313x_mci_probe+0x3ac/0x658) from [<c0128158>]
(platform_drv_probe+0x14/0x18)
[<c0128158>] (platform_drv_probe+0x14/0x18) from [<c0127350>]
(driver_probe_device+0xe4/0x1c4)
[<c0127350>] (driver_probe_device+0xe4/0x1c4) from [<c0127490>]
(__driver_attach+0x60/0x84)
[<c0127490>] (__driver_attach+0x60/0x84) from [<c0126590>]
(bus_for_each_dev+0x4c/0x78)
[<c0126590>] (bus_for_each_dev+0x4c/0x78) from [<c0126c60>]
(bus_add_driver+0xa8/0x234)
[<c0126c60>] (bus_add_driver+0xa8/0x234) from [<c01276b8>]
(driver_register+0xa8/0x12c)
[<c01276b8>] (driver_register+0xa8/0x12c) from [<c012855c>]
(platform_driver_probe+0x18/0x68)
[<c012855c>] (platform_driver_probe+0x18/0x68) from [<c0022444>]
(do_one_initcall+0x60/0x1b0)
[<c0022444>] (do_one_initcall+0x60/0x1b0) from [<c0008984>]
(kernel_init+0x94/0x10c)
[<c0008984>] (kernel_init+0x94/0x10c) from [<c0023dc4>]
(kernel_thread_exit+0x0/0x8)
---[ end trace 90413bf0670a2896 ]---
habe nur ich die oder ihr auch?
Das sieht so aus, als würde init kein Programm zum Login finden.
Überprüfe mal dein rootfs und die inittab.
Kann dir momentan leider nur ausm Kopf helfen, bin nicht zuhause oder im
Büro.
Habe die selben Fehler wie Benedikt. Ist also reproduzierbar.
@Benedikt:
Kleine Sache - Aktuell ist deine Homepage nur unter www.gnublin.org
erreichbar. Lässt man das www. weg gehts nicht, da läuft was ins
leere...
Hier ist ein einfacher Installer mit grafischer Oberfläche der recht
einfach zu bedienen sein sollte.
Zum Partitionieren und Erstellen des Dateisystems wird libparted
verwendet, sodass man sich nicht um die installierte fdisk Version
kümmern muss.
Die Größe des Bootsektors kann in den Einstellungen (Installer ->
Settings) geändert werden.
Wer sich den Installer selbst kompilieren möchte, braucht dazu die
libparted, libcurl, libwx und libarchive.
Zum Testen habe ich auch ein deb Package erstellt, welches die
Abhängigkeiten auflöst und das Programm als "gnublin-installer"
installiert. Zum Ausführen muss man dann nur "kdesu gnublin-installer"
(KDE) bzw "gksu gnublin-installer" (GNOME) ausführen.
Kritik und Verbesserungsvorschläge sind wie immer willkommen!
Ich hab endlich eins von den Digikey Displays amlaufen, doof nur, dass
es kein richtiges Datenblatt dafür zum Download gibt, habs dann aber von
jemandem bei avrfreaks bekommen. Heute abend kann ich ein paar Bildchen
posten.
Ich glaub ich bin blind oder finde wirklich nichts...
Ich versuche den SYSCLK_O Pin als 2kHz Taktquelle für ein SED1520
Display zu missbrauchen.
Anschalten kann ich ihn über die CGU, es kommen ziemlich genau 12MHz
raus. Ist das einfach nur der Referenztakt nach aussen gebracht oder
lässt sich dessen Frequenz auch einstellen? Ich konnte da nichts im
Datenblatt finden...
Achja, wieso hab ich da mehr Sägezahn als sonstwas drauf? Messleitung
ist nur die vom Oszi, direkt an die Pins der Stiftleiste dran.
Den Takt aktivieren:
cgu_clk_en_dis(CGU_SB_SYSCLK_O_ID, 1);
deaktivieren:
cgu_clk_en_dis(CGU_SB_SYSCLK_O_ID, 0);
Nils S. schrieb:> Ist das einfach nur der Referenztakt nach aussen gebracht oder> lässt sich dessen Frequenz auch einstellen? Ich konnte da nichts im> Datenblatt finden...
Hast du im Datenblatt unter Clock Generation Unit (CGU) nachgeschaut?
Dort sind alle Register für die Einstellungen der Frequenzen
aufgelistet, dort müsste etwas zu finden sein.
> Den Takt aktivieren:> cgu_clk_en_dis(CGU_SB_SYSCLK_O_ID, 1);> deaktivieren:> cgu_clk_en_dis(CGU_SB_SYSCLK_O_ID, 0);
Hast du schon die Funktionen cgu_get_clk_freq und cgu_set_subdomain_freq
probiert? Sind beide in arch/arm/mach-lpc313x/include/mach/cgu.h. Für
PWM hat das mit den Funktionen funktioniert (allerdings war
standardmäßig schon die höchste Frequenz).
ui man lernt nie aus. Mittlerweile gibt es in Debian / Ubuntu die
passende Toolchain:
sudo apt-cache search arm | grep gcc
libgcc1-armel-cross - GCC support library
libgcc1-dbg-armel-cross - GCC support library (debug symbols)
gcc-4.4-arm-linux-gnueabi - Der GNU C-Compiler
gcc-4.4-arm-linux-gnueabi-base - GNU Compiler-Collection (Basis-Paket)
gcc-4.5-arm-linux-gnueabi - Der GNU C-Compiler
gcc-4.5-arm-linux-gnueabi-base - GNU Compiler-Collection (Basis-Paket)
gcc-arm-linux-gnueabi - The GNU C compiler for armel architecture
Gruss Bene
Shift-Register (74595) lassen sich ganz einfach an das Board hängen.
Clock und MOSI vom Board mit Clock und Daten-Eingang vom Shift Register
verbinden.
Der RCK ("Enable") Pin kann auf 1 gelegt werden, dann werden die Daten
direkt beim Shiften übernommen.
Man kann den Pin natürlich auch auf einen GPIO vom Board legen und erst,
wenn dieser Pin auf 1 geht, werden die Daten übernommen.
Auf dem Board einfach das mitgelieferte SPI-Test-Programm laufen lassen.
//edit:
5V für Shift Register, geht ohne Probleme am 3,3V Bus. Nur bei Eingang
muss man aufpassen!! Also, was man am MISO anschliesst!
Habe hier gerade eine 250cm*60cm LED-Matrix aus 10mm LEDs, nur leider
nicht ganz so einfach wie ein einzelnes Shift Register, mehrere
Segmente, mehrere CS, ...
Muss auch nochmal dran :D
Ich hab das mit dem Ändern der Frequenz jetzt auch versucht, und es ist
mir auch nicht gelungen.
Das einzige was funktioniert hat, ist die Frequenz auf 36MHz zu setzen,
indem man als Base Frequenz die PLL statt den 12MHz verwendet:
So wie ich das verstanden hab, lässt sich dieser Takt nicht
beeinflussen, nur verschiedene Taktquellen können draufgeschalten
werden.
Es gibt noch die I2S/Audio PLL, die sich draufschalten lässt, die werd
ich mir demnächst angucken, jetzt nur keine Lust drauf ;)
Datenblatt, Seite 255, Tabelle 187, FS1 und FS2 Register (FS1_11 und
FS2_11 für SYSCLK_O).
Hier mal ein Bild vom COG-T177MXHA-02-2 Display von Digikey. Nicht am
Gnublin, den besitze ich (noch) nicht, sondern an eigener Hardware.
Nach Stundenlangem rumspielen an allen Parametern die es so gibt (und
das sind VERDAMMT VIELE) hab ich jetzt ein doch relativ
zufriedenstellendes Bild, vor allem wenn man den Preis des Displays
bedenkt. Leider ist es echt schwer aussagekräftige Bilder von solchen
Displays zu machen. Ich musste etwas daneben fokusieren, damit es
wenigstens halbwegs sinnvoll belichtet wurde. Außerdem hab ich noch
etwas an den Farben gespielt in Gimp um dem echten Eindruck etwas näher
zu kommen. Die Farbverläufe sind in Realität noch geschmeidiger als auf
dem Bild, und das Blau endet nicht in Violett sondern in sehr schönem
reinem Blau ;)
Der Blickwinkel ist von links nach rechts sehr gut, wird zwar dunkler
aber die Farben bleiben einigermaßen unverfälscht. Oben unten ist leider
nicht so gut, das Display invertiert nach oben bei ca 50-60° nach unten
wirds einfach nur kontrastärmer.
Achja, betrieben ists im 5-6-5 Farbmodus, effektiv bei 5-5-5.
Das billigste Display farbdisplay von Digikey kommt als nächstes dran.
Mal sehen wie das abschneidet.
Hallo Michael,
habe gerade mal probiert den neuen gnublin-installer zu kompilieren. Auf
meinem Umbuntu 10.04 LTS bekomme ich folgende Fehlermeldung:
hhoegl@aspire1:~/gnublin-installer-1.0-beta-src$ make
g++ -Wall -g `wx-config --cflags` -DVERSION='"1.0-beta"' -c
installer.cpp
In file included from /usr/include/wx-2.8/wx/window.h:23,
from /usr/include/wx-2.8/wx/sizer.h:17,
from settings.h:14,
from installer.cpp:31:
/usr/include/wx-2.8/wx/cursor.h: In constructor
‘wxBusyCursorSuspender::wxBusyCursorSuspender()’:
/usr/include/wx-2.8/wx/cursor.h:65: error: ‘wxIsBusy’ was not declared
in this scope
...
Das Kommando "wx-config --cflags" gibt bei mir aus:
hhoegl@aspire1:~/gnublin-installer-1.0-beta-src$ wx-config --cflags
-I/usr/lib/wx/include/base-unicode-release-2.8 -I/usr/include/wx-2.8
-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DwxUSE_GUI=0 -pthread
Das gleiche mit --libs sieht so aus:
hhoegl@aspire1:~/gnublin-installer-1.0-beta-src$ wx-config --libs
-pthread -Wl,-Bsymbolic-functions -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8
-lwx_baseu-2.8
Gruesse,
Hubert
Hubert Hoegl schrieb:> Das Kommando "wx-config --cflags" gibt bei mir aus:>> hhoegl@aspire1:~/gnublin-installer-1.0-beta-src$ wx-config --cflags> -I/usr/lib/wx/include/base-unicode-release-2.8 -I/usr/include/wx-2.8> -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DwxUSE_GUI=0 -pthread
So wie es aussieht ist dein wxWidgets ohne Unterstützung für eine GUI
kompiliert (wxUSE_GUI=0).
Wenn du libwxgtk2.8-dev installierst sollte es funktionieren.
Hallo Michael,
> Wenn du libwxgtk2.8-dev installierst sollte es funktionieren.
danke, das hat funktioniert. Jetzt habe ich nur noch ein kleines
Problem mit der Groesse der Anwendung auf meinem Bildschirm. Ich sehe
nicht die vermutlich weiter unten liegenden Knoepfe, weil meine
Aufloesung
1024 x 600 ist (ein Webbook). Ich schaffe es auch nicht, das Fenster
ueber den oberen Rand zu schieben. Was kann man da machen?
Gruesse,
Hubert
Hubert Hoegl schrieb:> danke, das hat funktioniert. Jetzt habe ich nur noch ein kleines> Problem mit der Groesse der Anwendung auf meinem Bildschirm. Ich sehe> nicht die vermutlich weiter unten liegenden Knoepfe, weil meine> Aufloesung> 1024 x 600 ist (ein Webbook). Ich schaffe es auch nicht, das Fenster> ueber den oberen Rand zu schieben. Was kann man da machen?
Hm, das ist natürlich ein Problem.
Ich werde mich ein bisschen mit dem Layout spielen und versuchen es so
zu ändern dass es mit 1024x600 auch funktioniert.
Hallo Liebe Gnublin-Gemeinde.
Hier mal eine Frage zum i.MX287-Gnublin...
Wie ist der aktuelle Stand?
Bis wann wird dieser im Shop erhältlich sein?
Vielen Dank!
Hallo Netzwerk_Stefan,
an dem Gnublin mit i.MX287 hat sich erst mal nichts mehr getan.
Die letzte Aenderung ist vom 25. Juni 2011, siehe
http://elk.informatik.fh-augsburg.de/gnublin-cdrom/eda/index.html.
Letzendlich war der hohe Preis fuer die 8-lagige Platine
ausschlaggebend, dass es erst mal nicht gebaut wurde, obwohl mir der
Platinenentwurf sehr gut gefallen hat. Ich glaube auch immer noch daran,
dass man es so bauen koennte. Es war auf alle Faelle sehr lehrreich zu
sehen, dass man die vielen Leitungen vom BGA Gehaeuse auch erst mal
wegbringen muss. Industrielle Boards mit aehnlichen Bauteilen haben alle
in der Gegend von 8 Lagen, wie sich spaeter herausstellte.
Mit dem Gnublin-LPC3131 hat Benedikt im Sommer dann den radikalen
Gegenentwurf gemacht, der mit nur zwei Lagen auskommt und bei dem alle
Signale wegfallen, die sich nicht routen lassen. Dadurch ist die Platine
so schoen preisguenstig, dass man getrost ein paar "verheizen" kann bei
BGA Loetversuchen. Trotz des minimalistischen Ansatzes ist das Board
auch fuer "richtige" Aufgaben zu gebrauchen. Manche haben schon
bemaengelt, dass keine Netzwerk-Buchse auf dem Board sei. Das war ganz
am Anfang so geplant, weil ich unter anderdem einen zerlegten SunSpot
(http://www.sunspotworld.com) auf dem Tisch liegen hatte, und mir
ueberlegte, wie man so eine Idee mit Embedded Linxu umsetzen koennte.
Bei den typischen Anwendungen des SunSpot stoert die Netzwerk-Buchse
eher. Durch die einfache Erweiterbarkeit mit Netzwerk ueber USB OTG
ist das sogar noch wesentlich besser als mit fest eingebautem Netzwerk.
Da das Loeten der BGA Bauteile nun ziemlich gut unter Kontrolle ist
(siehe Artikel von Benedikt im EP Journal), koennte ich mir gut
vorstellen, dass es nun nicht mehr so ein grosses Wagnis ist, ein paar
8-lagige Platinen in den Ofen zu schieben. Vielleicht gibt es auch mal
ein
Redesign mit ein paar Signalen/Lagen weniger, oder mit einem anderen
Controller, das wird sich zeigen.
Viele Gruesse,
Hubert
@Michael
Man könnte eventuell noch einen Punkt in das Tool bauen. Aktuelle
SD-Karte archivieren. So dass man sich einfach einen Zwischenstand oder
einfach eine Sicherung machen kann.
Gruss Benedikt
Hallo,
ich habe heute mal die Image angepasst. Wenn man sich mit dem grafischen
oder konsolenbasiertem Tool eine SD-Karte erstellt sollte alles wichtige
ohne Fehler gehen.
Das Konsolentool hängt bei mir irgendwie beim "delete partitions". Hat
das Problem auch jemand oder ist das nur bei mir? Ist gerade an zwei
Rechner.
Beides sind Ubuntu Rechner.
Gruss Bene
Änderungen im wesentlichen:
* OpenSSH statt Dropbear (jetzt kann man per sshfs mounten)
http://www.gnublin.org/index.php?title=AppNote-AP0012
* Fehler beim Booten auskommentiert
* Aktuellen Module in das Dateisystem kopiert
Ich habe das Wiki etwas strukturiert. Idee ist es immer zu einzelnen
Themen Application-Notes zu schreiben. Ihr könnt jederzet eine Nummer
bei mir euch geben lassen:
http://www.gnublin.org/index.php?title=ApplicationNotes
Den Artikel kann man dan immer dort wo es passt in die Gesamtstruktur
mit einhängen. Wenn es mal zuviele Application-Notes werden, kann man
noch eine bessere Suche installieren.
Gruss Benedikt
Wenn du mir eine AP-Nummer für den ADC, eine für PWM gibst, schreib ich
dazu.
Eine für Kernel-Treiber kann ich auch noch schreiben, Module/In-Kernel
und Menuconfig-Einbindung.
Hallo Hubert,
vielen Dank für Deine ausführliche Antwort.
Schade dass das mit dem i.Mx287 nicht geklappt hat. Wäre sehr daran
interessiert gewesen.
Werde mir jetzt vielleicht den LPC-Gnublin kaufen.
Hoffe aber immernoch, dass es vielleicht doch noch irgendwann in
Richtung i.Mx weitergeht.
Vielen Dank soweit.
@Benedikt
Gute Idee, das werde ich einbauen sobald die Prüfungszeit auf der Uni
vorbei ist und ich wieder Zeit habe damit herumzuspielen. Das wird
wahrscheinlich gegen Mitte Februar sein.
Das Problem hatte ich gestern auch, weiss auch nicht warum aufeinmal...
Mach die Datei "drivers/lpc313x_io/adc/lpc313x_adc.c" auf und
entferne/kommentiere aus die "module_init(...)" und
"module_exit(...)"-Zeilen.
Dann noch die init-funktionen:
aus "int init_module(void)"
machst du "int __init init_module(void)"
und aus "void cleanup_module(void)"
machst du "void __exit cleanup_module(void)".
Wie der Fehler aufeinmal zustande kommt, weiss ich noch nicht.
Hallo,
ich habe heute mein GNUBLIN Board bekommen. Sobald ich es mit Strom
versorge, gibt es hochfrequente Töne von sich. Woran liegt das? Am Quarz
oder an den Reglern?
Gruß
Hallo Flex,
Das habe ich ab und zu auch schon festgestellt.
Ich mach morgen mal ein paar Messungen. Wenn es zu laut ist schicke es
bitte ein,
dann tauschen wir es aus.
Gruss Benedikt
Also ich hör dort nichts pfeifen. Besuch, der gerade bei mir ist, meint
man hört es leicht, aber ganz leise.
Ist doch auch nicht die erste Schaltregler-Pfeiff-Anfrage hier, oder?
Hallo zusammen,
es gibt neues ;-)
Im Anhang is ein Programm mit dem man die LED auf dem Board via LAN ein-
und ausschalten kann...
-C Programm auf dem Board starten.
-Java Programm auf dem PC starten.
-Die IP Adresse vom Board eingeben.
-LED schalten / Programm mit exit beenden.
Zur Software:
Vorweg - Es wird dort kein Wert auf Sicherheit gelegt
Spaßeshalber kann man das ganze auch via PortForwarding ins Internet
bringen.
Das C-Programm stellt einen Socket Server auf Port 5000 zur Verfügung.
Der Zugriff auf die LEDs erfolgt einfach über system() calls.
Eine GPIO Bibliothek für C wäre noch interessanter, vor allem wenn man
Wert auf Geschwindigkeit legt (Ist bei nem Socket eh peng).
Das Programm hängt in einer Schleife und öffnet den Socket und wartet
auf nen Kommando.
Genau aus dem Grund kann aber
1
"echo 3 > /sys/class/gpio/unexport"
nicht ausgeführt werden.
Ist soweit nicht schlimm, aber wenn man die LED nicht permanent am
leuchten haben will, sollte man sie vorher abschalten, das JAVA Programm
erinnert aber auch dran.
Das Java Programm erklärt sich eigentlich von selbst...
Vielleicht wäre es auch cool ne mobile Anwendung zu basteln, vielleicht
hab ich darauf ja nochmal lust...
Generelles:
@Nils:
Danke, funktioniert soweit.
Das "Problem" mit dem pfeifen habe ich auch.
Es kommt drauf an, viele ältere Menschen oder Lärmzerstörte hören das
ganze wahrscheinlich nicht mehr.
Es fiepst tatsächlich. Mann hört auch wenn das Board startet und der
Stromverbrauch hoch geht.
Aber ich sehe das als "normal" für Schaltregler an, jedes Schaltnetzteil
ist lauter.
Was micht noch stört ist das momentan bei mir noch
1
INIT:Id"1"respawningtoofast:disabledfor5minutes
ständig rumfliegt.
Und Klumpatsch beim booten ist auch noch da...
WPA2-AES klappt immer noch nicht. Aber ich glaub das hat mehr damit zu
tun, das mein Uralt Stick das nicht kann.
Sollte aber möglich sein.
Aber irgendwie fehlt mir auch die Zeit um alles durchzuprobieren.
Leider.
Hallo Phil,
willst du auch einen Artikel für die embedded World Ausgabe schreiben?
Dieser müsste nur bis ca. naja ein paar Tage vor dem 10.2 bei uns sein?
Wir machen aus dem nächsten Journal eine GNUBLIN Spezial, mit dem wir
auch auf der embedded world sein werden.
Es gibt keine Vorgaben. Du kannst schreiben soviel wie du willst. Ideal
als OpenOffice und die Bilder als extra Archiv per Mail an mich.
Beste Grüße
Benedikt
Hallo Phil,
INIT: Id "1" respawning too fast: disabled for 5 minutes
in der etc inittab kannnst du die Zeile rausnehmen:
1:2345:respawn:/sbin/getty 38400 tty1
Dann gehts. Oder du baust dir eine neues Dateisystem bzw. eine neue
Karte dort ist auch der AD und PWM Treiber integriert.
Gruss Bene
hallo zusammen bin neu hier und Anfänger
Ich möchte gerne am Gnublin Temperatur(bis 150 Grad)
Drehzahl als optischer Sensor
Tankinhalt als Analogwert wird von einem 12 Volt System geliefert.
Loggen der Daten und Ausgabe als App auf handy
Wie beschaltet man Temperatur? Drehzahl usw...
Webserver auf Gnublin? aber wie
Wie kann man die Daten grafisch darstellen z.b. als drehzahlmesser
usw...?
Thomas Serwaty schrieb:> hallo zusammen bin neu hier und Anfänger>> Ich möchte gerne am Gnublin Temperatur(bis 150 Grad)
Temperatursensoren gibts viele. Da musst du hald schauen welcher bis 150
Grad geht, und dann dranhaengen. Digitale gehen ueber i2c/1wire/... -
wenns n analoger sein soll dann hald ne entsprechende beschaltung und
mit m adc aufnehmen.
> Drehzahl als optischer Sensor
Koennte schwieriger werden. Evtl. gehts ueber n Interrupt, aber wie
genau das dann wird weiss ich nicht - Ich wuerde das evtl. auf einen
kleinen AVR (Tiny 13 o.ae.) auslagern, der das mit nem Timer genau macht
und dann die Drehzahl ueber i2c ans gnublin sendet.
> Tankinhalt als Analogwert wird von einem 12 Volt System geliefert.
Im einfachsten Fall nen Spannungsteiler der die 12V auf 3,3V bringt,
dann ist das ueber ADC einlesbar. Im nicht einfachsten Fall mit nem OP.
> Loggen der Daten und Ausgabe als App auf handy
Evtl. ueber ne Webseite, dann reicht dir als App n browser und du musst
da nix neu machen.
Lighttpd gibts schon auf m gnublin - der kann alles was du brauchst
(cgi, etc.)
Als Anfaenger heisst das auf jeden fall viel Arbeit und viel neues, aber
du wirst dafuer einiges lernen!
schau einfach mal auf www.gnublin.org, da wird das meiste schon ziemlich
gut beschrieben!
Gruss Christoph
Hallo,
da bin ich ja froh, dass das Pfeifen nicht nur bei mir ist. Ich denke
ich werde das Board behalten, da es in ein Gehäuse kommt.
Wie sieht es mit der EMV aus? Die Spulen erzeugen ja ein
elektromagnetisches Feld, wie stark ist das?
Gruß
Flex
Hi,
ich wollte gerade das Board an mein USB Anschluss am PC anschließen und
dann einige Sachen über das Terminal konfiguieren, dann kommt aber diese
Fehlermeldung: .EXT2-fs (mmcblk0p1): error: ext2_lookup: deleted inode
referenced: 311052
Was ist das?
Danke für den Tipp, jetzt geht es wieder.
Mir ist aufgefallen, dass wenn ich die rote LED anschalte, das pfeifen
so gut wie weg geht, des halb möchte ich ein Programm schreiben, dass
die rote LED anschaltet, sobald das Board erfolgreich gebootet hat. Kann
mir hier jemand weiterhelfen, wo der Code stehen soll?
Gruß
Hallo,
schau mal nach /etc/init.d/. Die Skripte werden beim Booten ausgefuehrt.
Hier muesstest du ein Skript zur LED Ansteuerung speichern bzw. einen
link darauf dort erzeugen.
Gruss Christoph
Hallo,
danke Benedikt.
Jetzt habe ich aber schon wieder das Problem mit dem Dateisystem. Warum
kommt das ständig? Muss ich das Board erst über das Terminal
herrunterfahren oder kann ich es einfach aus dem USB Port ziehen?
Gruß Flex
Hallo zusammen
habe heute endlich den gnublin bekommen^^
Soweit gefällt mir der Kleine^^
Könnte mir jemand erklären wie ich den Wlan aus eurem Shop zum laufen
bekomme?
Ebenso wie steuert man die AD Eingänge an möchte Temperatur messen mit
NTC?
Und vllt eine kurze Erklärung wie man als Anfänger den Webserver startet
usw..
Gruss Tom
Das habe ich auch immer gehabt, wenn ich einfach das Board vom USB Port
gezogen habe. Mache mal ein neues RootFS auf deine SD Karte und wenn du
dann das Board ausschalten möchtest gib im Terminal folgendes ein:
shutdown now
mfg
PS: Ich habe die Datei blink.sh in das Verzeichnis /etc/init.d/ kopiert
mit dem Befehl cp, aber beim Starten passiert nichts.
Hallo,
ext2 unterstuetzt noch kein journaling, darum wird anscheinend das
rootFS inkonsestent, wenn man einfach aussteckt.
Ist dein blink.sh auch ausfuehrbar? Kannst du es mit
./etc/init.d/blink.sh ausfuehren?
Gruss Christoph
So endlich ahb die Root FS neu gemacht und sieh da er lebt wieder^^
Aber hätte nicht gedacht das er so empfindlich reagiert auf USB
rausziehn
Aber learning by Doing
Danke Jungs
Hi,
das mit dem Link erstellen verstehe ich noch nicht ganz. Erst benötige
ich mal ein gutes Terminalprogramm für Windows, wie Picocom für Linux.
Kennt ihr da ein Programm?
mfg
Das hat nichts mit USB abziehen zu tun, wenn du einen PC einfach so
ausschaltest, dann hast du das selbe Problem.
Man muss einen Computer herunterfahren> $ shutdown -h now
Das mit den Runlevels/Autostart steht doch glaube ich im Wiki, oder?
Wie man den ADC benutzt steht hier im Thema, wo auch die Patches (Code)
ist.
Hallo zusammen
bastel grade an der externen Versorgung vom Gnublin mit einem 3,7 V
400mah Lipo was soweit funzt^^
Frage:
Ich möchte die Spannung vom Lipo überwachen um sicher zu gehen das ich
ihn nicht unter 3,3 Volt betriebe.
Wie beschalte ich das ganze? Reicht ein Vorwiderstand für den AD? Wenn
ja wie berechne ich das?
Gruss Tom
WLAN mit Asus WL167gv3:
In dem Adapter steckt ein RTL8712 Chip.
http://gnublin.googlecode.com/files/zImage-asus167gv3-adc-pwm-gpio
Ich habe soeben mal den Treiber für den WLAN Stick getestet. Zusätzlich
braucht man noch im Dateisystem im Ordner /lib die Datei libiw.so.29
(siehe Anhang).
Und wenn man wpa verwenden will braucht man noch zusätzlich die
wpasupplicant. Parallel lade ich gerade ein neues rootfs rauf, dort ist
dann alles integriert.
http://www.gnublin.org/index.php?title=AppNote-AP0021
Gruss Benedikt
Hallo habe jetzt den jumper für OTG Host gesetzt aber leider tut sich
nichts?
Also er erkennt den Wlan Stick nicht
Habe ihn als Host gejumpert.
Hab ich was vergessen?
Thomas Serwaty schrieb:> Ich möchte die Spannung vom Lipo überwachen um sicher zu gehen das ich> ihn nicht unter 3,3 Volt betriebe.>> Wie beschalte ich das ganze? Reicht ein Vorwiderstand für den AD? Wenn> ja wie berechne ich das?
Spannungsteiler 1:1 (10k:10k z.B.) und nen 15k Widerstand vor den
ADC-Eingang.
So schnell kann man da eigentlich nichts kaputt machen. Kannst du mit
Lötlitze nochmal alles entfernen? Bzw. habe ich hier bei einem Board
einen gezielten Kurzschluss zwischen dem ganz Linken und eins neben dran
gemacht. Er ist jetzt immer Host.
Um zu sehen, ob das Board überhaupt noch was tut, kannst du auch mal die
verschiedenen Boot-Modi durchprobieren und immer Reset drücken, sodass
du im Terminal sieht, ob überhaupt noch eine Ausgabe kommt.
Ich hab erst auch gedacht, dass das Board hinüber wäre, aber
letztendlich war die Speicherkarte nicht 100%ig drin gesteckt und er hat
apex nicht laden können.
Rausgefunden hab ich das als ich den Test-Mode eingestellt hab und doch
eine Antwort kam.
Hallo zusammen,
habe mich mal an die externe Spannungsversorgung gewagt.
Habe dazu nen altes Netzteil mit 5 Volt genommen. Leerlaufspannung liegt
höher bei ca. 5,8 Volt.
Betreibt man das Board so werden die Regler schon heißt. Zumindest so
das es an den Pfoten weh tut.
Wie sehen die max. / min. Input Ratings von den Spannungsreglern aus?
Sind etwas mehr als 5 Volt schon kritisch? (BTW: Im Schaltplan ist ein
Label vom Spannugsregler falsch ;-) )
Oder kann es sein das da etwas schwingt was nicht schwingen soll?
Das würde auch das Fiepen erklären.
Gibts nen Link zum Datenblatt? - Meistens muss man beim Layout ganz
schön aufpassen mit den Dingern...
Wie sauber ist das Ausgangssingnal?
Am DS1307 habe ich mich auch versucht.
Es kommt leider gar nichts an.
Ich frage mich warum sich gar nix tut.
So verkorkst kann der Treiber nicht sein...(ohne einen Blick hinein
geworfen zu haben)
Ich habe jetzt auch mal wireless_tools aus den Debian Paketen geklaut.
Das funktioniert soweit.
Allerdings wären jetzt Hostnamen auch praktisch, wenn man schon im
Internet rumdackelt.
Interessant fände ich auch den CAN-Bus.
Da wäre vielleicht der MCP2515 von Microchip Interessant.
Dieser lässt sich via SPI ansteuern.
Das hatte ja Nils so wie ich gesehen hab mit einigen Registern schon
gemacht.
Für GCC gibts für den Chip schon eine sehr gute Lib, die sich wohl gut
portieren lässt.
Wobei ein eigener Treiber dafür über wär.
Zum Thema Windows, da es schon einige Nachfragen gab (was man vielleicht
auch als APPNote eintragen sollte):
Wer eine komplette Linux Plattform möchte lädt sich am besten VmWare und
ein passendes image (z.B.:
http://www.opensource-company.de/content/downloads/vm-debian-squeeze.php
) und kann da alles machen was er will.
Zugriff auf USB-Sticks und so weiter ist auch möglich.
Ich hab Benedikt schonmal geschrieben, aber ich weiß nicht obs unter
gegangen ist, das man den RNDIS Netzwerktreiber unter Windows auch für
das Board nutzen kann.
Allerdings krieg ich den nicht zum rennen.
Aber mittlerweile scheints in diversen Foren schon Lösungen zu geben.
Wer Programme kompilieren möchte kann das mit dem ELDK für Windows
machen.
Wers ganz kompliziert mag kann sich bestimmt auch mit quemu/cygwin
irgendwas zusammenbasteln...
Schaltregler/Netzteile geben nahezu immer Geräusche ab, manchmal hörbar,
manchmal nicht.
Ein kleines Steckernetzteil mit Trafo, Gleichrichter, 2200µ, 7805, 100n,
100µ tuts bei mir wunderbar für die Versorgung des Boards, die Regler
auf dem Board werden nicht heiss.
Daher denke ich, weiss aber nicht genau, dass 5,8V definitiv zuviel
sind, wenns heiss wird.
Der Linuxtreiber vom DS1307 funktioniert tadellos, ich empfehle dir
daher für die Fehlersuche, den DS1307 von Hand in C anzusprechen.
http://www.mikrocontroller.net/articles/Ports_benutzen_%28GCC%29#Der_I2C_Bus_.26_SMBus
Hier siehst du wie unter Linux über den Treiber, der die /dev-Node
bereitstellt, I²C Bausteine ansprechen kannst.
Phil J. schrieb:> Allerdings wären jetzt Hostnamen auch praktisch, wenn man schon im> Internet rumdackelt.
Namensauflösung sollte tun, sobald du per DHCP deine Config holst.
Von Hand in etwa so:
Router = 192.168.0.1 255.255.255.0
wpa_supplicant -D ... -c ... --background ...
ifconfig wlan0 192.168.0.2/24 up
route add default gw 192.168.0.1
"nameserver 192.168.0.1" in /etc/resolv.conf eintragen.
qemu wird auf nichts anderes als vmware rauslaufen, eine virtuelle
Maschine, kompiliziert ist cygwin auch nicht unbedingt.
Aber brauchbar ist für Linux-Entwicklung einfach ein Linux-System.
Habe das problem das der Gnublin zwar das Wlan erkennt aber er bekommt
keine IP vom DHCP sehe nur seine Macadresse und wenn ich mit ""ifconfig
wlan0 192.168.1.7" eine vergeben will er sie auch nicht.
dhclient wlan0 will er auch nicht^^
dhcpd wlan0 ebenfalls nichts^^
Habe gerade in der /etc/wpa_supplicant gefunden !
Nur ist sie leer
Was gehört da rein?
Kann der Befehl in der Anleitung(Wlan an Gnublin) falsch sein (-Dwext)
steht da sollte aber -D wext heissen oder?
man wpa_supplicant.conf
Die muss natürlich gemacht sein, sonst kann er sich ja auch gar nicht
authentifizieren ;)
Da die Frage jetzt schon ein paar mal aufgetaucht ist, hier ein
init-script für eigene Sachen:
$ vi /etc/init.d/user-init
Das funktioniert soweit laut Anleitung nur bekomme ich keine Ip Adresse
vom Router
die config-wpa2 habe ich geändert funzt alles soweit
Nur halt keine IP Adresse
Trotzdem ist da ein Tippfehler drin in der Anleitung Qwext und -Q wext
Habe auch das neue Image drauf gemacht mit gnublin-installer (geiles
Tool)
Ausser es gäbe ein neues von dir?
So hab es endlich am laufen war wohl das Problem mit der IP
192.168.0.115
Habe die 192.168.0.54 eingetragen jetzt läufts.
Hab mich genau wie im Video daran gehalten das andere hat bei mir nicht
zum Erfolg geführt.
Hallo zusammen,
habe noch einen Versuch gewagt.
Komm mir aber vor wie der Ochs vorm Berge.
Ich nutze die rt73.bin und habe sie im Kernel fest eingebaut.
WEP funktioniert.
Hallo Phil,
in deinem Kernel fehlen auch die Unix Domain Sockets glaub. Dann
sollte es klappen.
<*> Packet socket
und
<*> Unix domain sockets
sind bei mir aktiviert.
Gruss Benedikt
Ich möchte das der Wlan automatisch geladen wird,danach der Webserver
und dann soll blink.sh gestartet werden.
Habe mich versucht durchzulesen bekomm es aber nicht hin.
Gibt es darüber eine App Note oder ähnliches?
Gruss Tom
Sobald es in /etc/rc5.d/ gelinkt ist, wird es beim Booten und
Herunterfahren automatisch geladen/entladen.
Die start-Sektion beim Booten, die stop-Sektion beim Herunterfahren.
Von Hand:
/etc/init.d/user-init start
/etc/init.d/user-init stop
/etc/init.d/user-init restart
Alle anderen Argumente erzeugen die Usage-Ausgabe ("*)" im Skript).
Phil J. schrieb:> root@gnublin:~# wpa_supplicant -Dwext -i wlan0 -c config-wpa2 -dd &
Ich sehe das gerade, & ist ein fürchterlicher Weg, etwas in den
Hintergrund zu schieben. Solange ein Programm das kann, sollte man es
ihm selbst überlassen.
wpa_supplicant nimmt dafür "-B" als Parameter.
Schau mal in /lib und in /usr/lib ob da irgend eine Datei vorhanden ist,
die mit "libpcsclite.so" anfängt, wenn ja, mach einen Link:
ln -s /lib/oder/usr/lib/libpcssclite.so.bla /usr/lib/libpcsclite.so.1
Geb mal auf der Konsole
"$ which wpa_supplicant" ein.
Bei mir kommt da "/usr/sbin/wpa_supplicant" heraus, eben der Dateiname
inkl. Pfad. gib im Script den Pfad mal mit an.
Hat jemand schonmal nen Hub ohne externe Spannungsversorgung zwischen
den Stick geknallt?
Bei mir gibts Fehlermeldungen vom Treiber. Denke mal das geht nur mit
zusätzlicher Spannungsversorgung.
Was ich auch nicht hinkriege ist die rt73.bin vom Treiber ins firmware
Verzeichnis zu legen. Selbst bei einem simplen ifup wird die .bin nicht
gefunden.
Also meine Frage: Wo muss ich die .bin reinschieben und wo muss ich noch
was setzen?
Ich bin mit 54Mbit im W-Lan und bei mir ist SSH etwas träge.
Habs jetzt noch nicht unter Linux probiert wie sieht das bei euch aus?
@Benedikt:
Jepp das war der Fehler...
Phil J. schrieb:> Was ich auch nicht hinkriege ist die rt73.bin vom Treiber ins firmware> Verzeichnis zu legen. Selbst bei einem simplen ifup wird die .bin nicht> gefunden.> Also meine Frage: Wo muss ich die .bin reinschieben und wo muss ich noch> was setzen?
Ich habe hier einen Stick, der den rt73usb Treiber braucht und ebenfalls
die rt73.bin.
Die gehört normalerweise nach "/lib/firmware/".
Mein Problem ist, dass sich der Kernel jedes mal bei "requesting
firmware" aufhängt, egal ob die rt73.bin in /lib/firmware liegt oder
nicht.
Hat da jemand eine Idee zu?
Thomas Serwaty schrieb:> Kann mir jemand dabei helfen wie ich das Display initalisiere?
I2C mit gcc ein paar Posts weiter oben ansehen und init steht ja im
Datenblatt, bzw. alle Befehle.
Ja wenn man damit umgehen kann habe es aber noch nie gemacht und
verstehe es auch ein wenig.
Aber mir ist nicht bekannt was ich nach dem anschliessen machen
muss!!!!!!!!
Welcher Befehl irgend etwas runterladen usw...
Ich komme damit nicht weiter was ich installieren muss oder kann oder
soll!!!
Könntet ihr das mal jemand erklären der gar keine Ahnung davon hat?
Habe ich Kernel 2.4. 2.5 2.6?
Sind irgendwelche treiber schon auf der karte usw..?
Im root liegt i2c-device.sh kann ich damit was anfangen?usw...
Sorry wenn ich euch als Anfänger nerve aber das ist manchmal zu viel
Input
>Mein Problem ist, dass sich der Kernel jedes mal bei "requesting>firmware" aufhängt, egal ob die rt73.bin in /lib/firmware liegt oder>nicht.
Ja, genau das ist das selbe bei mir.
Hallo Ich habe auch das asus WL-167G V3 gekauft.
wenn ich LSUSB mache den kommt erst mal nichts
Habe den die firmware in /lib/firmware von hier rein kopiert:
http://gnublin.googlecode.com/files/zImage-asus167gv3-adc-pwm-gpio
Habe auch versucht eibe neue SD karte mit der letzten firmware erstellt.
Mir ist aufgefallen wenn ic "ifup wlan0" commt device nicht gefunden,
Mach ich den "wpa_supplicant -D wext -i wlan0 -c config-wpa2 -dd -B" und
danach nochmal " ifup wlan0" kommt wlan is configured
keine idee was ich nicht richtig mache
Danke
> wenn ich LSUSB mache den kommt erst mal nichts
Das ist schlecht. Klingt so als hättest du gar kein USB. Was sagt dmesg?
Hub dazwischen?
Hast du einen OTG Adapter der die oder hast du die Brücke zur
Spannungsversorgung an der USB Buchse?
Hast du den Jumper für den Host-Mode gesetzt?
>habe den die firmware in /lib/firmware von hier rein kopiert:>http://gnublin.googlecode.com/files/zImage-asus167...
Das ist ein zImage vom Kernel.
Keine Treiber firmware.
>Mach ich den "wpa_supplicant -D wext -i wlan0 -c config-wpa2 -dd -B" und>danach nochmal " ifup wlan0" kommt wlan is configured
Das ist normal. wpa_supplicant überschreibt alles.
Aber wenn kein Stick da ist gehts trotzdem nicht.
Mach dir mal eine vernünftige SD Karte mit nem vernünftigen Kernel ausm
Netz und allem drum und dran.
Hallo,
haben nun schon ein paar mal eiene neue SD gemacht. Nun nochmal über
command line.
wenn ich
dmesg | grep -i usb
mache bekomme ich das:
device class 'usbmon': registering
device: 'usbmon0': device_add
PM: Adding info for No Bus:usbmon0
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
Initializing USB Mass Storage driver...
bus: 'usb': add driver usb-storage
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
Freescale High-Speed USB SOC Device Controller driver (Apr 20, 2007)
bus: 'platform': add driver fsl-usb2-udc
bus: 'platform': driver_probe_device: matched device fsl-usb2-udc.0 with
driver fsl-usb2-udc
bus: 'platform': really_probe: probing driver fsl-usb2-udc with device
fsl-usb2-udc.0
driver: 'fsl-usb2-udc.0': driver_bound: bound to device 'fsl-usb2-udc'
bus: 'platform': really_probe: bound device fsl-usb2-udc.0 to driver
fsl-usb2-udc
bus: 'usb': add driver r8712u
usbcore: registered new interface driver r8712u
pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
bus: 'usb': add driver pegasus
usbcore: registered new interface driver pegasus
Kann das sein das ich treiber probleme habe ?
Danke
Wie kommst du darauf?
Er lädt die usbmon Treiber, Host-Controller, Mass Storage, udc (hat was
mit USB-OTG zu tun), einen WLAN-Treiber und die Pegasus LAN Treiber,
sieht alles normal aus.
Hallo,
Wie du sagst wenn USB alle treiber richtig geladen sind.
warum geht "lsusb" nicht.
wenn ich "lsusb" eingebe bleibt der cursor 2 secunden stehen und den
kommt wieder der command prompt
Ich habe "J3" auf pin 2 und 3 ich menien rechts gesetzt, ist doch
richtig so oder ?
Ich weiss nur nicht mehr wo ich suchen soll wen treiber richtig sind was
kann den noch sein ?
kann da was mit der firmware von den WLAN stick sein ?
Danke
Für mich sieht das so aus, als ob der ID-Pin auf Plus oder in der Luft
hängt. Überprüf das mal.
lsusb hat nichts mit den Treibern vom WLAN Stick oder irgend einer
Firmware zu tun.
Den onboard-Jumper auf "H" für Host, den angelöteten am ID Pin
schliessen, sodass ID mit GND verbunden ist.
Kernelconfig nochmal überprüfen.
Andere Geräte (USB Stick...) mal anschliessen.
Hallo Niels,
Da ich den GNUBLIN diese woche bekommen habe dachte ich das ich ein V1.3
habe. Nun habe ich aber festgestellt das ich eine V1.2 bekommen habe.
Nun muss ich noch was lötten( Sieht man sher gut beim USB-Stick
(Massenspeicher zugreifen)) application note) für V1.2.
also muss ich erst was lötten
danke für hinweis
mfg
Ich habe immer noch das Problem mit der Firmware.
Ich habe gemerkt, dass wenn man lange genug wartet, ein Timeout kommt.
Ich habe jetzt noch einen ZD1211-Stick, welcher auch eine Firmware
braucht bekommen, aber auch damit tut sich nichts.
Eine hotplug-binary gibts nicht, sonst auch nichts, nur einen Eintrag in
/proc, siehe oben.
Brauche ich hotplug zum laden der firmware? Hotplug ist doch auch schon
ein Weilchen "outdatet" und auf keinem aktuellen Rechner mehr.
Die neuste Version die mir mein Portage zeigt, ist von 2004...
Hi Nils,
schau dir doch mal das hier an:
http://www.kernel.org/doc/pending/hotplug.txt
In meinem Fall benötige ich /sbin/hotplug um die Firmware eines LSI
Kontrollers zu laden. Aber es gilt Firmware ist Firmware.
So sieht meine /sbin/hotplug aus:
#!/bin/sh
HOTPLUG_FW_DIR=/lib/firmware/
echo 1 > /sys/$DEVPATH/loading
cat $HOTPLUG_FW_DIR/$FIRMWARE > /sys/$DEVPATH/data
echo 0 > /sys/$DEVPATH/loading
Gruss,
Tobi
Hi @all,
also ich habe ein Problem bei dem ihr mir vieleicht weiterhelfen könnt.
Wenn ich mit den Befehlen
"echo 3 > export"
"echo 11 > export"
"echo 14 > export"
die gpio's aktiviere funktioniert alles richtig.
wenn ich dann aber mit
"echo 15 > export"
den gpio 15 aktivieren mochte, kann ich im Verzeichniss
"/sys/devices/virtual/gpio" nichts mehr ansprechen. Beim Versuch z. B.
den Inhalt aufzulisten bleibt das Board einfach stehen.
Ist das nur bei mir so ?
So habe endlich das Display EA T123-I2C im Bus drin wenn das so stimmt?
Fehlt nur noch das C-prog um das Display anzusprechen hoffe ich mal?
Denke auch das die Berechtigungen noch nicht stimmen der mknod aber vllt
schaut mal bitte ein Profi drüber!
--------------------------
root@gnublin:~# echo Display 0x74 >
/sys/bus/i2c/devices/i2c-1/new_device
i2c i2c-1: The new_device interface is still experimental and may change
in a near future
i2c i2c-1: new_device: Instantiated device Display at 0x74
root@gnublin:~# ls /sys/bus/i2c/devices
0-0060 1-0074 i2c-0 i2c-1
root@gnublin:~# mknod /dev/Display c 89 1
root@gnublin:~# ls /sys/bus/i2c/devices
0-0060 1-0074 i2c-0 i2c-1
root@gnublin:~# ls /sys/bus/i2c/devices
0-0060 1-0074 i2c-0 i2c-1
root@gnublin:~# ls -l /sys/bus/i2c/devices
total 0
lrwxrwxrwx 1 root root 0 Sep 28 02:32 0-0060 ->
../../../devices/platform/pnx-i2c.0/i2c-0/0-0060
lrwxrwxrwx 1 root root 0 Sep 28 02:32 1-0074 ->
../../../devices/platform/pnx-i2c.1/i2c-1/1-0074
lrwxrwxrwx 1 root root 0 Sep 28 02:32 i2c-0 ->
../../../devices/platform/pnx-i2c.0/i2c-0
lrwxrwxrwx 1 root root 0 Sep 28 02:25 i2c-1 ->
../../../devices/platform/pnx-i2c.1/i2c-1
root@gnublin:~# ls /sys/class/i2c-adapter/i2c-1
1-0074 device name power uevent
delete_device i2c-dev new_device subsystem
Hallo
habe das neue zImage grade getestet.
Gpio 15 geht damit jedoch bekomme ich beim benutzen des adc's folgende
Meldung:
[lpc313x pwm debug message] pwm to 12336 (301%)
[lpc313x pwm debug message] pwm to 4106 (100%)
Muss für diesen Kernel auch ein neues FS eingespielt werden ?
Danke schon mal
Gruß Peter
Hallo Benedikt,
also der original Treiber lpc313x_adc macht immer noch das selbe
(Debugmeldungen). Es gibt jetzt aber einen Treiber lpc3131_adc der
einfach immer das zurückschickt was man vorher an ihn gesendet hat. Wenn
ich z. B. mit "echo 0801 > lpc3131_adc" den Kanal 1 mit 64
Wiederholungen aktiviere kommt bei "cat lpc3131_adc" auch immer nur
"0801" zurück. Funktioniert der neue Treiber jetzt anders oder blicke
ich das wieder nicht?
Danke
Gruß
Peter
vor ab was ergibt denn bei dir ls -l als Ausgabe im Ordner /dev ?
-rw-r--r-- 1 root root 5 Sep 26 21:06 lpc3131_adc
crw-r--r-- 1 root root 254, 0 Sep 26 03:57 lpc313x_adc
crw-r--r-- 1 root root 253, 0 Sep 26 04:21 lpc313x_pwm
da ist bei mir. Man muss dieses Device verwenden lpc313x_adc
root@elektor-gnublin:/dev# echo 0801 > lpc313x_adc
set res to 10
root@elektor-gnublin:/dev# cat lpc313x_adc
0x135
root@elektor-gnublin:/dev# cat lpc313x_adc
0x125
Ist das bei dir dann auch so?
Gruss Benedikt
Ich vermute er hat die Major/Minor Nummern durcheinandergebracht,
Denn die Debug-Meldung kommt vom PWM und das "301%" kommt bei
ASCII-Eingaben auf die /dev-Node öfters heraus.
ls -al, wie schon geschrieben, lüftet das Geheimnis ;)
Im dmesg siehst du, welche Nodes der Treiber haben will mit welchen
Nummern.
Hallo
also ls -al ergibt unter anderem:
-rw-r--r-- 1 root root 2 Sep 26 07:48 lpc3131_adc
crw-r--r-- 1 root root 254, 0 Sep 26 03:57 lpc313x_adc
bei "echo 0801 > lpc313x_adc" kommt
[lpc313x pwm debug message] pwm to 14384 (351%)
[lpc313x pwm debug message] pwm to 4106 (100%)
anstatt wie bisher "set res to 10"
wieso der pwm meckert obwohl ich den adc anspreche versteh ich nicht.
Gruß
Peter
Hallo Peter,
leg am besten die Geräte Datei neu an.
erst löschen rm /dev/lpc3131_adc rm /dev/lpc313x_adc
cat /proc/devices
(schauen welche Nummern vergeben worden sind).
vermutlich:
mknod /dev/lpc313x_adc c 253 0
Peter Weiss schrieb:> da gibt es keinen adc
Dann wird wohl auch der Treiber nicht geladen sein.
$ dmesg | grep -i adc
Und schauen ob er nicht vielleicht als Modul herumliegt...
$ modprobe -l | grep adc
Wenn fest im Kernel, als Modul versuchen.
Hi,
vielen Dank jetzt geht er wieder. Habe die version von deinem link
genommen und dann den Treiber neu angelegt. Das war nicht die 253
sondern die 254 die 253 war der pwm-Treiber vieleicht hat der deshalb
geantwortet (also mit Debug message...).
Danke
Gruß
Peter
Tobi schrieb:> Hi Nils,>> schau dir doch mal das hier an:>> http://www.kernel.org/doc/pending/hotplug.txt>> In meinem Fall benötige ich /sbin/hotplug um die Firmware eines LSI> Kontrollers zu laden. Aber es gilt Firmware ist Firmware.
Bin jetzt erst dazu gekommen, danach zu sehen, das hat mein Problem
gelöst, 6 verschiedene Sticks von mir, alle mit Firmware, laufen jetzt
am Board :)
Ich glaube, damit bau ich jetzt mal ein debian-image :)
Benedikt Sauter schrieb:> vor ab was ergibt denn bei dir ls -l als Ausgabe im Ordner /dev ?> -rw-r--r-- 1 root root 5 Sep 26 21:06 lpc3131_adc> crw-r--r-- 1 root root 254, 0 Sep 26 03:57 lpc313x_adc> crw-r--r-- 1 root root 253, 0 Sep 26 04:21 lpc313x_pwm>> da ist bei mir. Man muss dieses Device verwenden lpc313x_adc
Die erste Datei lpc3131_adc ist eine stinknormale Textdatei. Sie ist 5
Bytes groß und keine Gerätedatei, wie man am ersten Minuszeichen in der
Zeile erkennen kann. Diese kannst Du beruhigt löschen ;-)
Gruß,
Frank
EDIT:
Das erklärt auch dieses hier:
Peter Weiss schrieb:> also der original Treiber lpc313x_adc macht immer noch das selbe> (Debugmeldungen). Es gibt jetzt aber einen Treiber lpc3131_adc der> einfach immer das zurückschickt was man vorher an ihn gesendet hat. Wenn> ich z. B. mit "echo 0801 > lpc3131_adc" den Kanal 1 mit 64> Wiederholungen aktiviere kommt bei "cat lpc3131_adc" auch immer nur> "0801" zurück. Funktioniert der neue Treiber jetzt anders oder blicke> ich das wieder nicht?
Peter hat da etwas in eine normale Textdatei geschrieben und auch daraus
wieder mit cat ausgelesen - kein Wunder ;-)
Toll das ich hier ne Frage stelle und sie bleibt unbeantwortet.(12 Posts
weiter oben)
Gibts hier niemand der mir ein Beispiel senden kann damit ich das
Display ansprechen kann eigentlich wollte Nils helfen aber anscheinend
ist das zu low für ihn?
Darum geht es gar nicht ich dachte hier wird geholfen und habe nach
einem BEISPIEL gefragt sonst nix.Oder das jemand mal von euch Profis
drüberschaut was ich gepostet habe.Versteh nicht was das mit Arbeit
MACHEN zu tun hat.Aber wie du richtig gemerkt hat niemand seit dem Datum
mal was etwas gepostet zu dem Thema.
Hi Leute,
ich habe mein Gnublin vor knapp 2 Wochen bestellt, morgen soll es ja
dann bestückt werden und endlich geliefert werden ;)
Meine Frage: Ist es möglich, eine UART Schnittstelle (von mir aus auch
eine virtuelle) zur Verfügung zu stellen?
Und noch eine Frage: Wie kann ich I2C Treiber schreiben? Kennt da einer
ein gutes Tutorial?
MFG Matthias
Hallo erstmal
Ich habe mir ein gnublin board besorgt und habe und möchte auch
audioanwendungen nützen. Kenne mich mit embedded Linux noch nicht so gut
aus und wollte fragen ob ich eine USB soundcard über ein HUB (ich
brauche eine weitere Schnittstelle fürs Netzwerk) anschliessen kann? Ich
habe zufällig eine transit M-AUDIO usb soundcard und bin über diese
Anleitung gestolpert:
http://www.theory.physics.ubc.ca/transit.html
Kann ich das so umsetzen? Schlussendlich wollte ich dann pocketsphinx
auf dem Gnublin board laufen lassen?
Freue mich auf eure Antworten.
Lg
Bernhard
Hallo,
erstmal ein großes Kompliment an Herrn Sauter zum
Gnublin Board. Das Lehrer Schüler Verhältnis scheint
ja nach wie vor in ihrem Fall befruchtend zu sein!
Wenn ich alles richtig verstehe hat Prof. Högl ja
nach wie vor einen tollen Einfluß auf das Gnublin Projekt.
Das wollte ich erstmal gesagt haben.
Bin seit einigen Stunden nun auch Besitzer eines Boardes und
habe soeben in meiner Mittagpause ein wenig getestet.
Der GNU Compiler ist ja wirklich langsam; klar war auch
nicht andres zu erwarten. Zu LUA, Python ua. sind ja
erste Beispiele genannt. Ist jemand aus dem Umfeld
hier ein C Interpreter, der auch hier übersetzbar wäre, bekannt?
Ich denke hier an Pawn, SLang ua. Bin auch mal einem C++
Interpreter "UnderC" begegnet der auch verwendbar erscheint?
Weiterhin wurden ja etliche Hinweise zu I2C gegeben.
Wird jemand eine Application Note dazu schreiben??
So erstmal genug
freundliche Grüße an alle
Rolftest99
Hallo Rolf,
wenn du willst kann du gerne eine Application Note schreiben und mit per
Mail schicken. Dann stelle ich es gleich allen zur Verfügung.
Gruss Benedikt
Application Note Gnublin - C-Interpreter
Wie bei "C und C++ Entwicklungsumgebung mit sshfs" gesagt dauert es
lange
bis selbst ein "Hello World" Programm übersetzt wird (ca. 5 Min.)!
Eine Lösung für den "Quick und Dirty" Programmierer scheint dann wohl
der Griff nach dem Interpreter zu sein. Zu Lua, Python u.a. werden auch
hier Beispiele angeführt und liegen auch direkt im Root Verzeichnis des
kleinen Gnublin Boardes und empfehlen sich zum testen.
Im letzten Jahr habe ich mich dann wieder mehr mit der Embedded Welt
beschäftigt, mich an kleinen Arduino Projekten versucht und dabei
entstand
der Wunsch nach einem kleinen C-Interpreter erst mal für den PC.
(Angelscript, Pawn und Slang sowie CH wurden ein wenig beschaut)
Heute kam denn mein Gnublin Board und während der ersten Tests habe ich
"gegoogelt" und bin auf "Picoc" gestoßen.
Runtergeladen, getestet auf meinem Ubuntu 10.04 System, siehe da
"Hello World" läuft.
http://code.google.com/p/picoc/
Anschließend die MiniSD Card mit den Sourcen bespielt!
auch hier Platform.H angepaßt:
/* all platform-specific includes and defines go in this file */
#ifndef PLATFORM_H
#define PLATFORM_H
/* configurable options */
/* select your host type (or do it in the Makefile):
* #define UNIX_HOST
* #define FLYINGFOX_HOST
* #define SURVEYOR_HOST
* #define SRV1_UNIX_HOST
* #define UMON_HOST */
#define UNIX_HOST
aus der Klammer genommen:
Make gestartet. Ca. 1 Stunde gewartet! Hello World Programm wie
vorher compiliert, hier lediglich interpretiert! Läuft!
Das war mein erstes Erfolgserlebnis mit dem Gnublin Board!
Man verzeihe mir meine etwas blumige Sprache!
Hallo Bernhard,
zu der Sache mit Audio: Ich habe mir vor ein paar Wochen einen USB
Audiostecker gekauft (Vigo USB Soundcard "Speedlink", mit CM-108
Chip, Preis ca. 7 Euro). Auf dem Gnublin Board musste ich einige Pakete
installieren, so dass alsa und ogg-vorbis funktioniert. Diese habe ich
einfach vom Debian/ARM Paket genommen und mit "alien" von .deb nach .tgz
umgewandelt:
libao4-1.0.0.tgz
libcurl3-gnutls-7.21.0.tgz
libgssapi-krb5-2-1.8.3+dfsg.tgz
libidn11-1.15.tgz
libk5crypto3-1.8.3+dfsg.tgz
libkeyutils1-1.4.tgz
libkrb5-3-1.8.3+dfsg.tgz
libkrb5support0-1.8.3+dfsg.tgz
libldap-2.4-2-2.4.23.tgz
libsasl2-2-2.1.23.dfsg1.tgz
libspeex1-1.2~rc1.tgz
vorbis-tools-1.4.0.tgz
alsa-utils-1.0.23.tgz
libasound2-1.0.23.tgz
linux-sound-base-1.0.23+dfsg.tgz
Der Treiber fuer die Audio Karte heisst snd-usb-audio. Nachdem dieser
Treiber geladen wurde, sieht man mit lsusb folgendes:
root@armv5te:~/gnublin-alsa/usr/bin# lsmod
Module Size Used by
snd_usb_audio 56402 0
snd_pcm 55025 1 snd_usb_audio
snd_timer 15782 1 snd_pcm
snd_page_alloc 3328 1 snd_pcm
snd_hwdep 4565 1 snd_usb_audio
snd_usb_lib 14247 1 snd_usb_audio
snd_rawmidi 14017 1 snd_usb_lib
snd 31773 6
snd_usb_audio,snd_pcm,snd_timer,snd_hwdep,snd_usb_lib,snd_rawmidi
soundcore 670 1 snd
pegasus 16772 0
mii 3416 1 pegasus
Wenn man sich mit aplay umsieht, dann sieht man folgendes:
root@armv5te:~/gnublin-alsa/usr/bin# ./aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: default [C-Media USB Headphone Set ], device 0: USB Audio [USB
Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
root@armv5te:~# aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=default
C-Media USB Headphone Set , USB Audio
Default Audio Device
Irgendwann war es dann soweit:
root@armv5te:~# ogg123 --help
ogg123 from vorbis-tools 1.4.0
by the Xiph.Org Foundation (http://www.xiph.org/)
Leider unterstuetzt anscheinend ogg123 Alsa nicht richtig, deshalb
muss man beim Abspielen von OGG Dateien ein wenig tricksen (habe ich in
einem Forum gefunden):
root@armv5te:~# ogg123 -d wav -f - sample.ogg | aplay
Ein laengeres Musikstueck mit 44100 Hz Abtastfrequenz wird leider nur
mit
regelmaessigen kurzen Pausen wiedergegeben, das liegt wahrscheinlich an
dem kleinen Hauptspeicher, denn der ARM9 mit 180 MHz muesste an sich
locker zum Entkomprimieren der OGG Dateien ausreichen. Nachdem ich
mein Musikstueck von einer CD mit 16 kHz neu gesampelt hatte mit
oggenc --resample 16000 -o out.ogg -q 2 in.wav
lief das Abspielen fluessig. Andere Funktionen, z.B. die Aufnahme mit
arecord haben auf Anhieb leider nicht funktioniert, ich nehme an, das
liegt an vielen fehlenden oder falschen Konfigurationsdateien. Wer sich
mit Alsa gut auskennt waere hier im Vorteil (leider habe ich davon fast
keine Ahnung).
Viele Gruesse,
Hubert
Hallo Rolf,
danke fuer den Tipp zu picocom! Ich habe gleich mal ausprobiert,
den Interpreter mit dem Cross-Compiler aus dem ELDK-5 zu kompilieren.
Dazu muss man im Makefile die Zeile mit CC aendern:
CC=arm-linux-gnueabi-gcc
Dann reicht zum Bauen einfach "make". Nach ein paar Sekunden ist der
Interpreter auf dem PC uebersetzt. Auf Gnublin dann folgendes kleine
Programm mit vi geschrieben:
root@armv5te:~# cat hello.c
#include <stdio.h>
int main()
{
printf("Hello Picoc!\n");
return 0;
}
und so aufgerufen:
root@armv5te:~# ./picoc hello.c
Hello Picoc!
Hat also auch sofort funktioniert. Ich schlage vor, den picoc
Interpreter
in das Root Filesystem aufzunehmen.
Viele Gruesse,
Hubert
Moin,
macht aus meiner Sicht kaum Sinn den pico-c ins Root Filesystem
aufzunehmen. Das mag für hello_world ja alles prima sein, wenn es um
ernsthafte Projekte geht dann übersetze ich den Code entweder per
Crosscompiler auf dem PC oder auf einem anderen ARM System wie dem
Pandaboard.
Außerdem würde sich die Größe des Root Filesystems nur unötig
vergrößern.
Gruss,
Tobi
Rolf Arhelger schrieb:> Wie bei "C und C++ Entwicklungsumgebung mit sshfs" gesagt dauert es> lange> bis selbst ein "Hello World" Programm übersetzt wird (ca. 5 Min.)!
Das liegt an dem viel zu knapp bemessenen RAM fürs GNUBLIN board. Schon
beim Compiler-Aufruf wird geswapped. Ich meine, dass hier an der
falschen Stelle gespart wurde.
Frank M. schrieb:> Rolf Arhelger schrieb:>> Wie bei "C und C++ Entwicklungsumgebung mit sshfs" gesagt dauert es>> lange>> bis selbst ein "Hello World" Programm übersetzt wird (ca. 5 Min.)!>> Das liegt an dem viel zu knapp bemessenen RAM fürs GNUBLIN board. Schon> beim Compiler-Aufruf wird geswapped. Ich meine, dass hier an der> falschen Stelle gespart wurde.
Man sollte mich nicht falsch verstehen. Wer direkt C-Programme fürs
Gnublin Board entwickeln will der soll wie Hubert das bestens vormacht
den Crosscompiler nehmen. Ich wollte mit meinem Beitrag lediglich einen
Hinweis auf einen C-Interpreter geben für denjenigen der mal schnell
direkt auf dem Board ein kleines Programm testen will. Weiterhin halte
ich den Einwand mit dem nicht einstellen ins Root ein wenig unfähr.
Jeder sollte nun mal wissen dass der Platz auf einem solch kleinen Board
sehr beschränkt ist, wo er auch immer liegt.
Gruß
Rolf
Moin,
ich finde es gut zu Dokumentieren wie man Pico-C auf dem Board zum
laufen bringt. So muss nicht jeder der Interesse an einem C Interpreter
hat das Rad neu erfinden. Aber weil eben der Platz sehr begrenzt ist
würde ich es nicht automatisch mit ins Root FS aufnehmen.
Das hat nichts mit unfair zu tun.
Gruss,
Tobi
Hallo,
hat jemand von euch schon einen dm9601 USB LAN Adapter ans laufen
bekommen und kann mir erklären wie ich dass hin bekomme?
Leider habe ich keine Ahnung wie ich Treiber nachinstallieren kann.
Gruß
Patrick
Hallo Patrick,
ich habe soeben mal eine Application Note geschrieben:
http://www.gnublin.org/index.php?title=AppNote-AP0026
Alternativ könntest du die Datei aus dem Anhang hier nehmen aufs
Dateisystem kopieren ideal nach /lib/modules/2.6.33/drivers/net/usb
und dort direkt zum Testen mal aufrufen:
insmod /lib/modules/2.6.33/drivers/net/usb/dm9601.ko
Gruss Benedikt
Für richtige Männer gibts jetzt eine Application-Note für Linux mit
Echtzeitverhalten :-)
http://www.gnublin.org/index.php?title=AppNote-AP0027
root@gnublin:~# uname -a
Linux gnublin 2.6.33-rt8 #27 PREEMPT RT Fri Mar 9 09:35:50 CET 2012
armv5tejl GNU/Linux
root@gnublin:~#
Gruss Benedikt
> Das Konsolentool hängt bei mir irgendwie beim "delete partitions". Hat> das Problem auch jemand oder ist das nur bei mir? Ist gerade an zwei> Rechner.>> Beides sind Ubuntu Rechner.
Hallo Benedikt,
ich hatte das Problem mit gnublin-card.py auch, dass es bei "delete
partitions" nicht weitergeht. Das liegt daran, dass fdisk je nach
Sprachpaket einen anderen Command-Prompt liefert (Englisch: 'Command (m
for help):' Deutsch: 'Befehl (m für Hilfe):').
Ich habe das im Skript mit F.expect('\r\n\w+ \(\m.*\):', timeout=None)
angepasst.
Gruß
Christopher
Hallo,
habe soeben versuch die dm9601.ko zu verwenden leider erhalte ich:
insmod: error inserting 'dm9601.ko': -1 Invalid module format
Die Toolchain einrichten und den Kernel neu kompilieren kann ich bedingt
meiner Netzanbindung leider erst wenn ich Montag alles in der Uni
runter-geladen hab.
Gruß
Patrick
Hallo Christopher,
danke fuer die Aenderung in gnublin-card.py. Ich moechte das Tool
ehrlich
gesagt gar nicht mehr empfehlen, weil der Aufruf von fdisk nicht bei
jeder Distribution gleich ist und es deshalb immer wieder zu Problemen
kommt. Ich habe vor ein paar Wochen mit einer Ueberarbeitung begonnen,
die nicht mehr fdisk, sondern libparted (pyparted) verwendet. Das klappt
auch schon ganz gut, muss es nur noch fertig machen.
Gruesse,
Hubert
Hallo Patrick (und Benedikt),
das Modul dm9601.ko ist anscheinend fuer X86, nicht fuer ARM kompiliert.
Wenn man "file dm9601.ko" eingibt, dann kommt heraus:
/home/hhoegl/dm9601.ko: ELF 64-bit LSB relocatable, x86-64, version 1
(SYSV), not stripped
Eigentlich sollte das sowas stehen wie
... ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
Gruesse,
Hubert
Hallo,
habs jetzt hinbekommen...hab jetzt die Toolchain am laufen.
Anbei die Version.
Woher bekomme ich eigentlich fehlende Tools wie ntpdate - leider finde
ich keinen Packetmanager wie apt-get
Gruß
Patrick
Hallo Patrick,
unser Root Filesystem ELDK-5.0 hat leider noch kein Paketverzeichnis
im Internet. Bei einer der naechsten ELDK Versionen (siehe www.denx.de)
wird es aber eines geben (mit ipkg Paketen), so dass man dann sich
aehnlich wie bei Debian die Pakete aus dem Netz holen kann. Das Tool
zum Installieren der Pakete heisst "opkg"
(http://code.google.com/p/opkg/).
Ich habe es gestern mal cross-kompiliert, siehe
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/work_eplpc3131/build/opkg-read-only-armv5/
Als Notloesung hole ich mir die Sachen aus dem Debian fuer ARM (ARMv5)
Projekt. Das ntpdate Paket gibt es hier:
http://packages.debian.org/squeeze/armel/ntpdate/download
Nach dem Download wandle ich das Paket in ein tar.gz Archiv um:
alien -t ntpdate_4.2.6.p2+dfsg-1+b1_armel.deb
Das entstandene Archiv
ntpdate-4.2.6.p2+dfsg.tgz
entpacke ich im Gnublin Root Filesystem (als auf die Micro-SD Karte)
tar zxvf ntpdate-4.2.6.p2+dfsg.tgz
Viele Gruesse,
Hubert
Hallo Hubert,
ich habe in gnublin-card.py auch ein paar kleinere Bug-fixes gemacht,
was die tar-Archive betrifft. Falls du es als Basis für die
überarbeitete Version machen möchtest, mache einen diff auf deine
Version 8. Es gab Probleme, wenn vorher noch kein entpacktes tar-Archiv
bestand. Vielleicht führte das auch zu den Problemen die Nils damit
hatte.
Grüße
Christopher.
Servus Leute,
ich versuche gerade mit dem Shellskript eine neue µSD-Karte start klar
zumachen, weil sich mein Gnublin nicht mehr startet, ich hoff es liegt
am Image,
Wenn ich, wie in der Anleitung vorgehe bekomm ich folgende
Fehlermeldung:
Hallo Matthias,
erst mit dmesg schauen welchen Namen Linux für dein Gerät vergeben hat,
und dann den Befehl anpassen:
sudo python gnublin-card.py --all --device=/dev/sde
(Diese Klammern hinten weg) dafür aber ja das richtige Device! nicht das
du deine Festplatte ausversehen überschreibst. Kontrolliere lieber 5 mal
ob es passt.
Gruss Bene
Hallo Leute,
noch habe ich mir kein Board bestellt, aber ich bin vom GNUBLIN-Projekt
grundsätzlich schonmal ganz begeistert ;)
Mich würde besonders interessieren, ob man damit auch 1-Wire ansprechen
kann.
Es gibt ja im Handel einen 1-Wire USB Adapter (DS9490R), den ich am
liebsten mit dem OWFS (1-Wire File System) auf dem GNUBLIN laufen lassen
würde - gibt es da schon irgendwelche Erfahrungen ?
Lässt sich OWFS relativ problemlos installieren (ein ARM Debian
Repository ist ja vorhanden) und bleiben danach auch noch Ressourcen
über, oder sind die 8MB RAM damit schon vollständig verbraten ?
Grüße,
- Thomas
Hallo Patrick,
ist das Problem immer noch? Es könnte ein Speicherproblem sein.
Eventuell sollten wir das Board austauschen.
Wenn das Problem weiterhin besteht, schreibe am besten eine kurze Mail
an unsere info@ Adresse.
Gruss Benedikt
Es gibt jetzt Version 1.3 (beta) meines GNUBLIN Installers mit folgenden
Neuerungen:
* Es können Backups erstellt und wiederhergestellt werden. Dabei wird
ein 1:1 Image von der SD Karte erstellt. Daraus folgt, dass ein Backup
nur auf die gleiche Karte wieder eingespielt werden kann.
* Es gibt ein Commandline Interface "gnublin-cmdline". Es kann alles,
was die GUI Version auch kann (außer das Downloaden von
Bootloader/Kernel/RootFS von der GNUBLIN Seite, das folgt in der
nächsten Version) nur ohne GUI ;).
Das Programm steht wieder als Source, Binary und *buntu Paketdatei zur
Verfügung, die Projektseite ist unter
http://code.google.com/p/gnublin-installer/ erreichbar.
Michael
Hallo, ich habe heute mein Gnublin Board das erste mal angeschlossen.
Auf der Console wird folgende Fehlermeldung immer wieder ausgegeben, so
daß man mit dem System nicht arbeiten kann:
EXT2-fs (mmcblk0p1): error: ext2_lookup: deleted inode referenced: 7487
Kann mir hier jemand weiterhelfen?
Hallo Lars,
am besten steckst du die Karte in einen Linux PC.
prüfst mit dmesg was für ein Gerätename vergeben wurde.
Eventuell /dev/sdc1 und /dev/sdc2
sudo umount /dev/sdc1
sudo umount /dev/sdc2
sudo e2fsck /dev/sdc1 (mit ja alles bestätigen)
sudo e2fsck /dev/sdc2 (mit ja alles bestätigen)
Gruss Benedikt
Hey,
ich wollte auf einem GNUBLIN-Board eine WLAN-Verbindung einrichten.
WLAN-USB-Stick: ASUS WL-167G V3.
Auf der GNUBLIN Seite habe ich folgenden Link dazu gefunden:
http://www.gnublin.org/index.php?title=AppNote-AP0021#ASUS_WL-167g_v3
Wenn ich den Befehl "ifup wlan0" ausführe, dann kommt eine Fehlermeldung
auf, dass das Board den WLAN-Stick nicht finden kann. Die LED am Stick
leuchtet auch nicht.
Was kann man machen?
Vielen Dank schon mal im voraus für die Hilfe.
Hallo Benedikt,
vielen Dank für die Antwort.
Der Jumper für den zweiten USB-Anschluss steckt auf Host. (Also der eine
Jumper der neben der USB-Schnittstelle steckt.)
Ich habe eben nochmal den Befehl ifup wlan0 ausgeführt und dann kommt
folgende Meldung auf. (siehe Screenshot).
Danke!
LG Kevin
----
Board v1.3
Du musst zwei Jumper setzen.
http://gnublin.embedded-projects.net/index.php?title=LPC3131-Schnittstellen
USB OTG PWR auf Host und USB OTG ID muss eigentlich gesteckt sein (da
ist nich ein Fehler im Bild wohl).
Mit lsusb kann man sich die erkennten USB-Geräte anzeigen.
Dort sollte der Stick auftauchen.
Gruss Benedikt
Hey Benedikt,
hat super funktioniert. Es lag an dem zweiten Jumper.
Nun habe ich weiteres Problem. Ich konnte die Verbindung WLAN aufbauen,
aber leider bricht die Verbindung wieder ab.
Wenn man einen PING durchführt, werden nach 3 erfolgreichen Paketen
immer wieder mehrere Verlustpakete angezeigt. (siehe Screenshot).
Wie kann ich das Problem beheben?
Danke! LG Kevin
Hallo zusammen,
ich bin daran mit Gnublin ein Aufnahmegerät für Ultraschall ab
Vorverstärker zu bauen. Ich habe eine Schaltung aufgebaut die mir die
5V-Speisung für Gnublin bereitstellt, und das Analog-Signal wie folgt
begrenzt:
Nun habe ich das Erste mal den Analog-Ausgang an Gnublin über GPA 1
angehängt. Messung mit einem Oszilloskop hatte zuvor konstante 1.6V am
Ausgang ergeben. Die Messung unter Gnublin ergab aber z.B. "39c", d.h
fast vollen Ausschlag. Ich vermute das beim aktuellen System (Gnublin
1.3 und System auf SD-Karte am 16.03. neu aufgesetzt) von 0 - 1.8V
Gemessen wird und nicht bis 3.3V. Lässt sich dieser Bereich einstellen?
Eventuell über Auswahl mit "ADC_SELVREF="(LPC3131-user-manual)?
Gnublin gefällt mir und ich würde mich über helfende Hinweise freuen!
Mit freundlichen Grüssen
Thomas Haller
@Kevin kann das sein das du ein schlechtes Funksignal hast ?
Wenn du nach verfügbaren Netzwerken scannst wird auch der Signalpegel
angezeigt.
@Thomas... Du versorgst dein Board mit 5 V also 0V gegen 5V daraus
machst du -1.6V und +1.6V. Das Board kann 0V - 3,3V Messen also denke
ich dass der ADC das 0V-Potential bei -1,6V hat das bedeutet, dass +1,6V
für den ADC bei 1,6V+1,6V=3,2V liegen und deshalb der fast
Vollausschlag. Du müsstest meiner Meinung nach einfach umrechnen, da
dein 0-Punkt bei für den ADC 1,6V liegt.
Das würde folgendes bedeuten -1,6V = 0 0V = 0x1FF +1,6V=0x3FF
Gruß Peter
Hallo Peter,
vom Vorverstärker kommen Sinusschwingungen mit Amplituden von maximal
300 mV. Dieses Signal wird von meiner Schaltung Verstärkt und mit
Gleichspannung um den halben Messbereich von Gnublin angehoben. Ohne
anliegendes Signal habe ich so nur den Gleichspannungsanteil. GND ist
von Gnublin und meiner Schaltung und dem Vorverstärker direkt verbunden.
Zusätzlich zeigt auch mein Multimeter direkt an den Klemmen von Gnublin
zwischen GPA 1 und GND ca. 1.6V. Bei maximalem Signal würde meine
Schaltung eine Schwingung zwischen 0 und 3.2 V am Ausgang haben (wie
oben Angegeben).
Soviel ich weiss misst auch Gnublin direkt zwischen den beiden
Anschlüssen. Der LPC3131 hat nach Datenblatt einen externen Anschluss
für die Vergleichspannung, sollte zwischen 2.7 und 3.6 V sein,
entsprechend der Obergrenze der zulässigen Spannung für die
Analogeingänge.
Ich glaube nicht, dass bei Gnublin an einem Anschluss eine negative
Spannung anliegt. Ich werde als nächstes mal das Ausgangsignal auf
0-1.8V reduzieren, nachdem ich mit "grep" im Quellcode vom Gnublin
Kernel und allen Patch-Files von NXP kein ADC_SELVREF gefunden habe.
Gruss Thomas
Hey,
leider habe ich immer noch die Probleme mit dem WLAN-Stick.
@Peter: Der Laptop hat eine gute Verbindung zum Netz. Das Board liegt
neben dem Laptop. Habe auch schon den Kanal gewechselt usw...
Der Stick wird erkannt und stellt auch eine Verbindung zu WLAN her, aber
nach drei erfolgreichen PINGs, bricht die Verbindung zusammen.
Zusätzlich kann ich keine USB-Sticks mounten.
root@gnublin:/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 8564:1000
root@gnublin:/#
dmesg
findet den Stick (sda)
Aber der mount Befehl kann ich den Stick nicht mounten.. (mount
/dev/sda1 /mnt/test)
Wie kann man das Problem lösen?
Ich hatte noch mal einen LANUSB Adapter getestet. Mit dem kann man eine
Verbindung zum Netzwerk aufbauen.
Danke!
LG Kevin
Hallo Kevin,
ich könnte dir notfalls einen neuen WLAN Stick schicken. Sag bescheid,
bzw. schreib uns am besten eine Mail, dann können wir einen Auftrag
anlegen.
Zu deinem Stick. Was für eine Meldung kommt?
Du musst das Verzeichnis /mnt/test haben mkdir -p /mnt/test
und dann muss es ein Dateisystem ext2 oder eine FAT Version sein.
Gruss Benedikt
Hallo Benedikt,
das wäre gut. Wir haben schon eine Mail über das Kontaktformular
gesendet. An welche Adresse soll ich schreiben?
Kann das sein, dass man beim WLAN-Stick noch eine Firmware oder
irgendwas anderes laden muss?
STICK:
Der Stick ist FAT32 formatiert. Das Verzeichnis wurde vor dem
Mount-Vorgang im mnt Verzeichnis angelegt.
Im /dev Verzeichnis kann ich keine Sticks oder Geräte finden die sda
heißen.
Wenn ich den Stick einstecke, wird der aber erkannt (sda, sda1).
Wenn ich den Stick mounten möchte, wird vom System die Fehlermeldung
ausgegeben, dass das Filesystem für den Stick angegeben werden muss.
Unter Debian auf einem anderen Rechner läuft der Stick.
Danke schon mal für die Hilfe.
LG
Kevin.
Hallo Kevin,
was sagt "cat /proc/partitions" ?
Schau dir mal mit "dmesg" das Kernel Log an. Und zwar einmal bevor du
den Speicherstick bzw. WLAN Stick eingesteckt hast und einmal danach.
Poste mal beides hier.
Wenn dir Firmware fehlen würde dürfte es gar nicht gehen, aber du sagst
ja das das WLAN mal ganz kurz funktioniert
Gruss,
Tobi
Hey Tobi,
danke für deine Antwort.
root@gnublin:/dev# cat /proc/partitions
major minor #blocks name
179 0 976896 mmcblk0
179 1 955867 mmcblk0p1
179 2 16033 mmcblk0p2
8 0 3921920 sda
8 1 3917824 sda1
dev ls-al (siehe Screenshot dev_01.png)
Das ist kein sda Laufwerk zu finden, wie es in der Online-Dokumentation
beschrieben ist.
dmesg Vorher (Siehe Textdatei dmesg_vorher.txt)
dmesg Nachher (Siehe Textdatei dmesg_nachher.txt)
LG Kevin
Moin Kevin,
du kannst als root User die Device Nodes selbst anlegen:
mknod /dev/sda b 8 0
mknod /dev/sda1 b 8 1
Bemerkenswert wieviele Meldung von usb-storage kommen.
Gruss,
Tobi
Hallihallo,
Ganz kurzes Statement: Gnublin macht richtig Spaß!
Ein Tipp zum Thema Kernel compilieren: Wenn jemand sich selbst einen
Kernel basteln will, dann sollte er die vorgepatchten sourcen von
http://www.gnublin.org/downloads/linux-2.6.33-lpc313x-gnublin-032012.tar.gz
verwenden.
Ich hatte mir zunächst gemäß online AppNotes einen vanilla 2.6.33 kernel
geholt und den von Hand gepatcht. Allerdings bekam ich da compile-Fehler
und nach deren Reparatur einen Kernel, der nicht bootete. Mit dem oben
genannten vorgepatchten Kernel klappt das compilieren + booten
wunderbar.
Noch ein Tipp: Wenn man in der Kernel Konfiguration des g_ether Moduls
"RNDIS support" einschaltet und ein geeignetes linux.inf hat, kann man
auch über Windows (bei mir: 7 64bit) mit USB Kabel eine
Netzwerkverbindung aufbauen.
Und noch ein Tipp: Meine Kernelversuche hinterließen irgendwann ein
unbrauchbares ext2 root filesystem. Die Reparatur hat mich Stunden
gekostet, da ich die SD Karte nicht direkt in einen Rechner stecken
konnte. Ich hab es schließlich geschafft, ein neues root file system zu
installieren. Dieses hab ich in ein ext3 konvertiert (tune2fs -j
/dev/mmcblk0p1), da ich hoffe, ein journaling filesystem wird mir das
root file system seltener korrupieren. Der default Kernel sollte ext3
automatisch erkennen.
Gruß
Jörg
Hey Tobi, danke dir. Das hat gut funktioniert.
Ist das normal? das man im DEV Verzeichnis die Datenträger hinzufügen
muss?
Den WLAN Stick teste ich noch mal.
Was bedeuten die Meldungen? (USB-Storage)
LG Kevin
Hey,
ich habe den neuen Stick ausgetestet und habe immer noch leider den
gleichen Fehler.
Siehe Screenshot.
Was könnten wir noch machen, um das Problem zu beheben. Danke!
LG Kevin
Hi Kevin,
wenn du auf ein Gerät zugreifen willst das keinen Device Knoten hat dann
kannst du den immer mit mknod selbst anlegen. Wie das gemacht werden
muss steht im Quelltext des Linux Kernels unter
/Documentation/devices.txt .
Alternative kann man auch UDEV einsetzen das die Device Knoten
automatisch erzeugen kann. Die Frage auf solchen kleinen Systemen wie
dem GNUBLIN ist ob man den ohnehin knappen Speicher für UDEV verwenden
will. Da kann es sinnvoller sein die paar benötigten Devive Knoten von
Hand an zu legen.
Was ist mit dem WLAN los ?
Der Ping vom GNUBLIN aus scheint ja dauerhaft zu klappen, nur von
Windows aus kommt es immer wieder zu Zeitüberschreitungen. Was zeigt
das Kernel Log (dmesg) nachdem ping eine Weile gelaufen ist ?
Gruss,
Tobi
Hallo Kevin,
das Problem kann auch am Router liegen. Ich hatte mir vor ca. 2 Monaten
einen neuen WLAN Router besorgt. Ausgerechnet der neueste Laptop hatte
ziemlich die gleichen Probleme, die du beschreibst. 2 Andere Rechner
nicht. Bei mir konnte ich das mit einem Firmware update auf Router Seite
beheben.
Wenn du die Gelegenheit hast, teste Gnublin + WLAN Stick mal mit einem
anderen Router.
Gruß
Jörg
Hallo,
Ich habe noch ein Problem beim compilieren des Kernels:
Sobald ich "make menuconfig" eingebe kommt bei mir eine Fehlermeldung...
set.sh hab ich vorher so "gesourced": ". ./set.sh"
Hat einer ne Ahnung, was ich falsch mache?
mfG Matthias
Okay, das mit dem Kernel hab ich hinbekommen :) An alle die Crunchbang
Linux nutzen: Ihr müsst noch ein zusätzliches Paket installieren ;)
Aber mit dem I2C hab ich immernoch so meine Probleme... es wäre
hilfreich, wenn einer von euch Gurus eine Application Note schreiben
würde ;)
LG Matthias
Hey,
vielen Dank für eure Antworten.
@Tobi: Auch der PING vom GNUBLI-Board aus, hat nicht richtig
funktioniert. Der Ping ist einfach stehen geblieben.
@Jörg: Danke für den Tipp. Ich habe es mit einem anderen Router
getestet. Dort hat es funktioniert.
Damit die Verbindung auch mit meinem AP funktioniert, habe ich in der
conf-wpa2 folgende Werte angepasst:
key_mgmt=WPA-PSK
proto=RSN
pairwise=CCMP
group=CCMP
Mit diesen Einstellungen kann ich erfolgreich eine Verbindung zum
Netzwerk herstellen (dauerhaft).
@Benedikt: Der alte Stick hat auch ein Problem mit einem anderen Rechner
gehabt. Der neue geht ohne Probleme. Danke!
LG Kevin
Hallo Benedikt,
kannst du die .config - Datei für folgenden Kernel posten:
zImage-asus167gv3-adc-pwm-gpio
ich würde den gerne mit FAT-Filesystem compilieren. Damit geht dann auch
der USB-Stick. Habe das versucht selbst zu basteln, bekomme aber den
WLAN-Stick nicht zum laufen. Es fehlt wohl irgendwie die Firmware.
Danke Gruß
Peter
i2c i2c-1: LPC313x-I2C1: Bus is still active after xfer. Reset it...
4
Error: Read failed
Mit dem Oszi sehe ich zunächst, dass die SCL Frequenz unter 50kHz liegt
?!?! Habs mal im Kernel verdoppelt. Das ändert aber nichts. Bei obigem
I2C get sehe ich, dass das Addressbyte und das Register byte vom slave
acknowledgt wird (zumindest sehe ich kein NAK). Nach fast genau 500us
erscheint aber nochmal das selbe register byte auf dem Bus... ?!?! Wenn
I2C "read register" richtig verstehe, sollte der Master aber zunächst
nochmal das device address byte senden. Möglicherweise ist das ein
Fehler - vielleicht von i2cget oder vom i2c Treiber. Dann nach ca. 1ms
kommt nochmal was, was ich noch nicht analysiert habe. Es könnte das
Address byte sein. Danach bleibt SDA auf 0.
Naja, ich mir mal nochmal den Linux I2C Treiber vom LPC3131 anschauen.
Gruß
Jörg
Hey,
ich habe noch drei Fragen zum Board
1. Wie kann ich auf dem Board einen NTP-Server hinterlegen?
/etc/ntp.conf finde ich nicht.
2. Kann man PHP 5 installieren für den Webserver?
3. Kann man einen MySQL Client installieren?
Wenn ja, wie?
Danke schon mal für die Hilfe.
Jörg G. schrieb:> Ich auch. Ich hab mal die i2ctools von> http://www.lm-sensors.org/wiki/I2CTools kompiliert und abwechselnd einen> LM75A und einen AD7416 drangehängt und bekomme immer die selbe> Fehlermeldung:> root@gnublin:~$ i2cget -y 1 0x48 0x01 b> i2c i2c-1: Master timed out. stat = 2a28, cntrl = 0066. Resetting master...> i2c i2c-1: LPC313x-I2C1: Bus is still active after xfer. Reset it...> Error: Read failed
Ja, das Programm hab ich auch schon ausprobiert... Ich hätte miir doch
sollen ein Beagle Bone kaufen... ich hab gedacht hier im Forum bekommt
man zumindest eine kleine Hilfestellung von Gurus, aber da hab ich mich
wohl getäuscht.
Wenn ich bei meinen nächsten Versuchen Erfolg haben sollte, melde ich
mich.
mfG Matthias
Hallo zusammen,
>ich hab gedacht hier im Forum bekommt man zumindest eine kleine Hilfestellung von
Gurus
Bekommst du auch, nur hier sind Studenten, die gerade Semesterbeginn
haben oder berufstätige die jetzt kurz vor Ostern noch alle wichtigen
Projekte durchprügeln müssen.
Das ganze ist hier nunmal OpenSource.
Bevor du mit i2ctools rumfummelst, wage dich vielleicht erstmal in die
RTC da ist es auf jeden Fall sicher das es gehen sollte und hilft bei
der Fehlersuche.
PHP und MySQL sollte etwas nach diesem Prinzip möglich sein, kann es
aber auch gerade nicht testen, gelobe aber Besserung:
http://www.howtoforge.de/anleitung/installation-von-lighttpd-mit-php5-und-mysql-unterstutzung-auf-centos-50/
Ich entschuldige mich gleich zu Beginn für so viel Text. Es sind aber
meine gesammelten Erkenntnisse zu Gnublin & I2C, die ich hier
wiedergeben will.
Ich hab möglicherweise einen workaround für das I2C Problem gefunden.
Ich bin mir aber nicht sicher, was das eigentliche Problem ist und wo
das verortet ist. Laut LPC3131 user Manual wird SCL immer auf LOW
gelassen, wenn TX buffer leer ist. Solange, bis irgendwann ein STOP bit
gesendet wird.
Nun hat aber zumindest der LPC3131-Linux-Treiber (i2c-pnx) offenbar ein
Interface, das nicht ganz zu diesem Konzept passt (bitte korrigiert
mich, wenn ich hier falsch liege). Der Treiber sendet nur für die
letzte message, die ihm übergeben wird das STOP bit.
Wenn ich ein I2C write/read Kommando
1
root@gnublin:~$ i2cget -y 1 0x48 1 b
an den Treiber schicke, werden 2 Linux I2C messages an i2c_pnx_xfer()
übergeben. Die erste enthält das I2C write mit address byte und register
byte, die zweite enthält das I2C master read mit einem address byte.
Der Treiber sendet die erste Message tadellos, hat aber danach SCL auf
LOW stehen, da das STOP bit erst mit der letzten message gesetzt wird.
Dann gibt es mindestens 2 Probleme: i2c_pnx_start() findet, dass der Bus
gerade von jemand benutzt wird (eigentlich ist es der Treiber selbst,
weil STOP erst nach der letzten message versendet wird. Das ignoriert
die Routine aber) und der Data Request Master Interrupt, der bereits
vor dem i2c_pnx_start() Aufruf schon scharf gemacht wurde, läuft los
(die Engine denkt ja immer noch, der TX ist nicht fertig und fordert
Nachschub an). Die Interrupt routine widerum entscheidet, dass sie schon
auf Empfang arbeitet, denn es handelt sich bei der zweiten message ja um
ein I2C read, dabei ist aber noch nicht die slave address verschickt
worden und daher landet das laut Manual erforderliche TX Dummy byte auf
dem Bus. Das dummy byte sollte eigentlich nur dafür sorgen, dass SCL
losläuft, da aber die Engine noch kein I2C read bekommen hat
(i2c_pnx_start() hat es nicht geschickt), denkt sie, sie muss auf den
Bus schreiben.
Also ich sehe hier Unklarheiten. Mir ist nicht klar, wie das Linux I2C
user <-> kernel interface eigentlich arbeiten soll (STOP bit erst nach
der letzten message? Oder Stop bit nach jeder message? Wer entscheidet
dann wie über Restart bits?). Wenn da jemand Bescheid weiß, bitte ich
ihn, mir es zu sagen. Dann weiß ich auch nicht, ob der I2C pnx Treiber
richtig arbeitet. Wenn die I2C engine mal im Nirwana ist, kann dieser
sie bis jetzt leider nicht zurückholen.
Mein workaround im Moment ist, nach jeder message ein STOP bit zu
senden. Das verkraftet zumindest der LM75A und auch der AD7416.
Ich hab das patch file für den Kernel angehängt. Es ist nur die Datei
drivers/i2c/busses/i2c-pnx.c betroffen.
Gruß
Jörg
@Matthias: ich kann dich teilweise schon verstehen. Meine Erwartung war
auch, dass ich mich nicht mehr mit I2C routinen rumschlagen muss, wenn
ich von Microkontroller auf Linux umsteige. War leider nicht so. Das
Forum allerdings kann auch nichts dafür.
Peter Weiss schrieb:> Hallo Benedikt,>> kannst du die .config - Datei für folgenden Kernel posten:>> zImage-asus167gv3-adc-pwm-gpio>> ich würde den gerne mit FAT-Filesystem compilieren. Damit geht dann auch> der USB-Stick. Habe das versucht selbst zu basteln, bekomme aber den> WLAN-Stick nicht zum laufen. Es fehlt wohl irgendwie die Firmware.>> Danke Gruß> Peter
@Benedikt hat sich erledigt. Ich habe es hinbekommen.
Gruß
Peter
Hallo Michael Schwarz und Nils Stec,
erst mal danke für die Programmierung vom lpc313x_adc, es klappt gut mit
diesem Modul Einzelwerte zu messen.
Ich versuche derzeit den Wandler zu Messungen im kontinuierlichen Modus
zu bewegen, bisher ohne Erfolg. Hat jemand von euch in mit dieser
Funktion erfolge gehabt? Ich brauche für meine Anwendung 320'000 oder
mehr Messungen pro Sekunde, was mit Einzelmessungen natürlich nicht
möglich ist.
Ich werde mal weiter Versuchen, wenn schon Ansätze zur Lösung da sein
sollten würde ich mich aber über Hinweise freuen.
Gruss Thomas Haller
Jörg G. schrieb:> @Matthias: ich kann dich teilweise schon verstehen. Meine Erwartung war> auch, dass ich mich nicht mehr mit I2C routinen rumschlagen muss, wenn> ich von Microkontroller auf Linux umsteige. War leider nicht so. Das> Forum allerdings kann auch nichts dafür.
Hi,
Ich habe jetzt eine meiner Meinung nach relativ nützliche Seite
gefunden, die auch Beispielquellcodes für I2C OHNE Treiber, soweit ich
das jetzt verstanden habe, beinhaltet.
Gruß Matthias
Sry, hab den Link vergessen...
Hier: http://free-electrons.com/
und hier:http://lxr.free-electrons.com/source/drivers/misc/bmp085.c
mfG Matthias
@Jörg: Ich werd dein Patch mal ausprobieren an meinem Kernel, an dem ich
schon ein bisschen "gemodded" hab, würd mich auch mal interessieren, ob
man so einen ARM übertakten kann g 200MHZ wären bestimmt drin :)
Guden,
Habe ein Problem mit dem "GNUBLIN" Board.
Habe die spidev_test_2 Routine getestet, funktioniert auch soweit.
Aber :-) (musste ja kommen) ich kann den SPI mode nicht konfigurieren.
Kann das jemand bestätigen ???
root@gnublin:~# ./spidev_test_2 -H
spi mode: 1
can't set spi mode: Invalid argument
Aborted
Gruß Kubuntufan
Es müsste eigentlich gehen, ABER bis jetzt wurde es nicht
dokumentiert... Bei den AVRs hätte ich dir mit ISP, I2C, UART etc. alles
sagen können, aber bei Linux muss ich mir das erstmal aneignen ;)
Hallo,
richtig zufrieden mit der Gnublin Homepage ware ich nie. Jetzt haben
wir folgendes gemacht:
http://wiki.gnublin.org
Dort kann jeder frei mitarbeiten.
http://forum.gnublin.org
Ein Forum, in dem wir uns dann auch gezielt an Anfänger richten.
http://www.gnublin.org wird nur noch die klassische Beschreibung
inkl. dem Schnelleinstieg für das Board sein.
Gerne könnte Ihr auf http://wiki.gnublin.org euch registrieren und die
Texte schreiben anpassen etc.
Gruss Benedikt
Guden,
So habe mich im Forum angemeldet, würde mich auch als Moderator zu
verfügung stellen. Aber wenn man nicht die Berechtigung hat zu Posten
oder eine PN zu verfassen ist das schwierig.
Gruß KubuntuFan
Hallo Dominik,
hm ich habe gerade zwei Sachen umgestellt. Neu registrierte dürfen jetzt
hoffentlich mehr. Ebenfalls habe ich die als Moderator aktiviert.
Gruss Benedikt
Hi Benedikt,
Kannst du noch die PN Geschichte freigeben ???
Das erleichtert die Kommunikation ;-)
Ich kann leider immer noch keine Beiträge verfassen usw.
Gruß Dominik
@Jörg: ich kann deinen Patch leider nicht anwenden... Lad ihn mal als
.zip hoch, evtl. kopier ichs auch falsch in die Datei(bei mir wird bei
öffnen ein neues Fenster geöffnet, wo der Code steht)
Kennst du eine gute Anleitung, wie man Patchs schreibt? C-Programmieren
kann ich (nur C, kein C++ oder C#, aber ich denke, viel Unterschied ist
da nicht)
LG Matthias
Hallo zusammen,
bin gerade am überlegen, wie man CAN auf dem GNUBLIN Board realisieren
könnte.
Fänd ich relativ wichtig, auch im Hinblick auf Home-Automatisierung,
etc...
Ich denke der mcp2515 wäre ganz interessant.
Dieser wird per SPI gesteuert.
Die Ansteuerung ist in C per SPI relativ einfach...da könnte man schnell
Code zusammenstricken.
Ich sehe aber auch gerade das es einen CAN4Linux Treiber gibt, der ein
CAN Device anlegt.
Das wäre vielleicht sogar noch schöner...
Ist die Frage ob man das Ding auf für Gnublin gebaut kriegt...vll weiß
da jemand mehr weiß oder hat mehr Zeit übrig hat und idealerweise noch
nen mcp rumfliegen, meine Reste sind grad weg.
Hallo Phil,
ich haette noch ein paar MCP2515 und auch die CAN Transceiver
herumliegen. Als Treiber wuerde ich aber "SocketCAN" verwenden,
der kann bereits mit dem 2515 umgehen.
http://developer.berlios.de/projects/socketcan/
Hier ist noch ein Artikel darueber, den ich gerade gefunden habe:
http://www.can-cia.org/fileadmin/cia/files/icc/13/kleine-budde.pdf
Vor einiger Zeit haben wir mal einen 2515 an die SPI Schnittstelle
eines AVR32 (NGW100) gehaengt und socketcan cross-kompiliert. Das hat
auch ziemlich schnell funktioniert.
Gruesse,
Hubert
Hallo I2C Freunde,
Kurzer Hinweis: ich hab unter
http://forum.gnublin.org/viewtopic.php?f=4&t=6 einen I2C Treiber patch
für den LPC3131 hinterlegt, der zumindest auf meinem Gnublin board jetzt
richtig flutscht (aktuell ist v3 weiter unten im Thread).
Gruß
Jörg
Hi Jörg,
Ich hab jetzt deinen Patch (v4) ausprobiert. Also beim compilen
funktioniert alles super, wenn ich die i2c-pnx.c und die zugehörige .h
ersetze.
ABER, der Kernel bootet dann nicht, er hängt sich immer bei
Resetting_I2C-Master aus... Woran könnte das liegen?
Desweiteren benötige ich für mein Projekt 400khz I2C Clock-Speed, wie
muss ich deinen Patch modifizieren? Du kennst dich da besser aus als
ich.
MFG Matthias
Hi,
I have a usb wifi usb stick based on the Realtek chipset as in the
asus167v3.
But the device ID is a more recent version. The driver therefore does
not recognise it.
It's ID = 0BDA:8176
Is it possible to make the driver recognise this newer version?
Regards
Luc
Hallo zusammen,
mal wieder ein zwei neue Dinge von mir an diesem warmen Tag.
Grafisches Gnublin-Tool:
- in der aktuellen Curl Version gibt es die types.h nich mehr. Da mecker
der Compiler. Dementsprechend einfach auskommentieren.
- das ganze lässt sich auch für 64bitter zusammenkleben, allerdings
liegen dort die wx Bibliotheken in '/usr/lib/x86_64-linux-gnu' das muss
im Makefile geändert werden. Wei das aktuell auf anderen Architekturen
aussieht wäre zu testen.
-Eine offizielle 64-bit release wäre trotzdem schön.
Serielle Schnittstelle:
- Ich konnte via picocom zunächst nicht auf das Board zugreifen.
Symptomatisch nach einem Blick in dmesg festzustellen das ttyUSB0 sofort
wieder ausgehängt wurde.
Ursächlcih hierfür ist das Paket "brltty".
Wers nicht brauch entfernt es am pesten via apt-get (etc) und hat dann
ruhe.
- hat jemand schon das 5.2er ELDK in Nutzung?
- Ich ärgere mich immer noch mit Hotplug rum. Es will nicht. Es reicht
doch eigentilch /sbin/hotplug mit entsprechendem Eintrag anzulegen und
die Firmware in den firmware ordner zu legen? Oder fehlt beim Kernel
backen irgendwo der Haken?
Gibt noch ein paar andere Dinge aber die muss ich erst noch in Ruhe
testen, allersdings ist es heir unterm Dach etwas warm, daher neues zu
späterer Stunde.
Hi Luc,
i consider that you are using a RTL8188CUS 802.11n WLAN Adapter.
The driver for this device is not implemented in lpclinux yet (even not
in staging version).
So there is no possibility to use this device with any of the current
drivers at the moment.
There are some version of the rtl8192cu driver (which should support
your device) available for embedded systems.
Maybe there is the possibility to modify those files and create a new
driver.
But this is still a lot of work.
Regards
Hi Luc,
sometimes it helps to add the Device ID into the driver source. For
example you extend the rtl8187_dev.c (below from Row41 ...), this file
you find in linux-2.6.33-lpc313x/drivers/net/wireless directory:
{USB_DEVICE(0x0bda, 0x8176), .driver_info = DEVICE_RTL8187B},
But this is not the best solution and there is no guarantee that this
will work. It helps me to enable a Belkin F7D2101 v1 Stick which is
using the "rtl8712_8188_8191_8192SU". I downloaded the Linux driver from
Realtec web page and put this into the wireless drivers directory. After
some modifications it was possible to build the kernel and the modules.
The Belkin Stick isn't working 100% stable yet (problems after 3-4
hours).
Regards
Klaus
Hallo zusammen,
es gibt neues...unter anderem auch was zur Webcam...
Weil ich immer alles vergesse, habe ich mal angefangen alles was so
machbar ist aufzuschreiben.
Unter
http://beph.de/gnublin/
habe ich mal alles was so funktioniert in Form von kleinen "Anleitungen"
oder Ideen hochgeladen.
Hier wird das wahrscheinlich etwas unübersichtlich und fürs Wiki ist es
ohne sprachlihe Überarbeitung weniger nützlich.
Wäre schön wenn es noch mehr Artikel gäbe, wie etwas RNDIS unter
Windows, dann wäre die Seite abgedeckt.
Oder wie man ne RTC oder Temperatursensoren anschließt...
-Im Anhang mal ein Bild was ich mit meiner Webcam gemacht habe.
Dort sieht man auch das bei mir das Board mittlerweile in einem Reichelt
Gehäuse haust.
Viellicht kann man ja auch ein Gehäuse oder ein Experimentierboard für
GNUBLIN herausbringen, welches genaus passt. Einige FHs sind im Gehäuse
bauen ja scheinbar Spezialisten (hust).
-Ich habe gesehen das der CAN-Bus bereits unterstüzt wird. Auch MCPs und
SJAs. Jetzt muss ich mir dochmal so ein Ding klauen und es an das Board
hängen. Oder jemand von euch ist schneller ;-)
- Ein Problem scheint es bei der Stromversorgung der USB Ports zu geben.
Ich hatte ja bereits berichtet, das es nicht möglich war Geräte via Hub
an das Board anzuschließen.
Dachte zunächst das Ausgangsseitig nicht genug Strom zur Verfügung
stände.
Sieht aber anders aus:
Speist man den Hub (ich gebe zu es ist ein
China-blink-blink-Werbegeschenk) zusätzlich mit 5 Volt kann ich ohne
Probleme mehrere Geräte anhängen und sie funktionieren alle Einwandfrei.
Im Hinblick auf die Fiepserei der Schaltregler lässt sich vielleicht
noch was überarbeiten.
-Etwas stören tut mich (wenn auch nur minimal) die Größe der Löcher für
Schrauben auf der Platine. Sie könnten ein kleinen Ticken größer sein,
dann passen zumindest M3(?) Schrauben.
hallo,
unabhängig von phil habe ich mich dran gemacht ebenfalls meine webcam
ans laufen zu bekommen... im anhang findet ihr gjpg-streamer fertig
kompiliert für gnublin. da ich linux neuling bin wollte ich auf die
schnelle noch ein startskript schreiben um die jeweiligen module und
pfade anzupassen, hat aber noch nicht so recht funktioniert mit copy &
paste (wird aber noch folgen).
das ganze kann mit der anleitung von phil (kurz überflogen) gemacht
werden, wichtig hierbei ist aber das einbinden der uvcstream module bei
make menuconfig der kernelcompilierung.
wenn dies erfolgt ist die beiden befehle (unter in dem missglückten
path.sh skript gespeichert) im verzeichnis von gjpg-streamer ausführen
(wichtig für die ld_libriary_path) und schon kann gjpg-streamer benutzt
werden. momentan läuft das ganze bei mir mit einer creative CREATIVE
LIVE WEBCAM CHAT HD (conrad 976199 - 62) bei 352x288 pixeln und 30
frames einwandfrei! :-)
weitere anfänger erkundungen folgen... eine ausführliche ausarbeitung
ebenfalls!
grüße
philipp g.
Ich habe jetzt Version 1.3.1 (beta) meines GNUBLIN Installers
veröffentlicht.
Neuerungen gibt es diesmal keine, es sind nur ein paar Fixes damit der
Installer auch unter Ubuntu 12.04 läuft. Er sollte sich jetzt auch auf
64bit System kompilieren lassen.
Das Programm steht wieder als Source, Binary und *buntu Paketdatei zur
Verfügung, die Projektseite ist unter
http://code.google.com/p/gnublin-installer/ erreichbar.
Michael
Hallo Michael,
danke dir für deine Arbeit!
Ich habe hier einen 64 Bit Rechner und habe es mal mit make release
übersetzt und nach amd64 umbenannt.
Reicht das so, dass es für 64 Bit Ubuntu 12.04 geht?
Kann das jemand mal testen?
Gruss Benedikt
Hier mal ein Bild was es in ca. 2-3 Wochen geben wird.
Wenn es der eine oder andere noch nicht entdeckt hatte.
1:1 die Schaltung von GNUBLIN unten hängt die SD-Karte drinnen.
http://wiki.gnublin.org/index.php/GNUBLIN-DIP
Gruss Benedikt
Ubuntu 12.04 64 Bit Version.
Bitte um Kommentare ob man diese so verwenden kann.
Die Version oben hatte noch intern eine falsche Architektur angegeben.
Gruss Bene
Hallo Gnublin-Gemeinde,
ich möchte hier nochmal das Thema von Thomas Haller aufgreifen. Er hatte
ein Problem mit dem ADC Range.
Bei 10Bit Auflösung bekomme ich bei ca 1,8V (gemessen am GPA1 Pin gegen
GND) 3ff zurück. Ich vermute es muss die Referenzspannung geändert
werden? Kann mir da jemand unter die Arme greifen damit ich schneller zu
dem schreiten kann was ich eigentlich mal vorhabe mit dem Board.
Vielen Dank im Voraus
Kompass Modul via I2C Daten erfassen, OK. Beschleunigunssensor via A/D
klappt auch. Jetzt aber: über USB Daten übertragen.
picocom benutzt doch /dev/ttyS0, oder?
Pseudo Netzwerk (modprobe g_ether, ifconfig usb0 10.11.12.1 up)
klappt auch. Da wird ja USB OTG benutzt. Merkwürdigerweise sehe ich
an meinem Linux-PC nur /dev/ttyUSB0, obwohl ich doch 2 Kabel
angeschlossen habe.
Statt Pseudo Netzwerk aufzubauen schliesse ich dieses Gerät an - siehe
Bild. lsusb zeigt nix an am GNUBLIN.
Jetzt schliesse ich das Gerät - also das Kabel - an den Linux PC an.
Sofort wird /dev/ttyS1 sichtbar.
lsusb am Linux PC zeigt:
Bus 002 Device 016: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial
Was ist also zu tun, um USB OTG anzusprechen?
Wo finde ich das Gerät in /dev wieder?
Hallo Volker,
Du muesstest beim Kernel die Option USB_SERIAL_PL2303=m setzen, dann
bekommst Du ein Treibermodul fuer den Prolific Chip.
Gruesse,
Hubert
Hello Luc,
in my Gnublin kernel repository (branch "gnublin") at
http://elk.informatik.fh-augsburg.de/cgi-bin/gitweb.cgi?p=gnublin-linux-2.6.33.git;a=summary
you find the directory "drivers/staging/rtl8712/" (I took the code
from a 2.6.39 kernel). The driver "r8712u" works for Asus WL-167G V3
and similar adaptors. In file "usb_intf.c" you find the supported
Vendor/Product-IDs pairs. Maybe this could be the place to add the
VID/PID of your adaptor.
Wish you the best,
Hubert
Hallo Hubert,
Option USB_SERIAL_PL2303=m setzen heisst doch: ein neues zImage auf die
sdcard bringen.
1. gnublin-installer: fetch from gnublin.org für Bootloader,RootFS und
Kernel klappt, aber dann ist nicht die Option gesetzt
2. sudo python gnublin-card.py --all holt apex.bin, kernel.tar.gz und
rootfs.tar.gz. und dann bleibt das Programm hängen in der Zeile
i=F.expect
Aber ich finde in config-gnublin die Zeile, die zu ändern ist. Nur: oben
steht: make config: don't edit.
Bringt auch nix, denn alle drei - auch ohne Änderung - mit
gnublin-installer und fetch from file erstellt zwar eine neue boot card.
Aber beim booten bleibt es hängen:
# copy ext2://1/zImage 0x30008000
2160332 bytes transferred
# boot
ARCH_ID: 9998 (0x270e)
ATAG_HEADER
ATAG_MEM: start 0x30000000 size 0x00800000
ATAG_CMDLINE: (55 bytes) 'console=ttyS0,115200n8 root=/dev/mmcblk0p1 rw
rootwait'
ATAG_END
Booting kernel at 0x30008000...
Gruß Volker
Hallo Volker,
man muss die Option fuer den PL2303 mit "make menuconfig" setzen (das
ist eine Option in "drivers usb serial ", dann muessen der Kernel
(zImage) und die Module neu uebersetzt werden und anschliessend
auf die SD Karte uebertragen werden.
Ich habe gerade mal meinen aktuellen Kernel neu uebersetzt mit dieser
PL2303 Option und alles wichtige in ein Archiv gepackt:
http://www.hs-augsburg.de/~hhoegl/tmp/delete-me/kernel-120618-pl2303.tar.gz
Du musst das zImage und den Ordner /lib/modules/2.6.33 auf Deiner
SD Karte ersetzen.
Gruesse,
Hubert
Hallo Hubert,
vielen Dank für den Kernel! Folgendes Problem: ich nehme das Programm
rts.c aus rts.c-gnublin-OpenEmbedded GNU/Linux Plattform (siehe Anhang)
und bekomme die Fehlermeldung: upscheck: /dev/ttyS1: No such device or
address
Und zwar bei dem Befehl
(fd = open(argv[1], O_RDWR | O_NDELAY)) < 0)
Das Device habe ich vorher erzeugt mit mknod /dev/ttyS1 b 4 64
Dasselbe Programm am PC funktioniert einwandfrei.
Anhang: rts.c
Befehlsfolge.txt
dmesg.txt
ll_dev.txt zeigt /dev
Gruß und Dank schon im Voraus
Volker
Hallo Volker,
der USB-zu-UART Adapter verwendet ziemlich sicher die Geraetedatei
/dev/ttyUSB0. Die USB-UARTs legt man so an:
mknod /dev/usb/ttyUSB0 c 188 0
mknod /dev/usb/ttyUSB1 c 188 1
mknod /dev/usb/ttyUSB2 c 188 2
...
Gruesse,
Hubert
Hallo Hubert,
das war die Lösung, vielen Dank!
Folgendes hatte ich noch vergessen:
Jumper "USB OTG PWR" und "USB OTG ID" auf "Host" setzen.
Sobald der USB->Rs232 reingesteckt wird:
usb 1-1: New USB device found, idVendor=067b, idProduct=2303
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: USB-Serial Controller
usb 1-1: Manufacturer: Prolific Technology Inc.
root@gnublin:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial
Port
Noch eine Bemerkung zu I2C:
in Deinem _config war "CONFIG_GPIO_PCA953X is not set".
Deshalb habe ich den Gerätetreiber nachinstalliert, so wie in
APPNote-AP0026 beschrieben (ganz stolz, dass ich das hingekriegt hab).
Auf dem Bild zu sehen: angeschlossen sind Mitsubishi Kleinsteuerung via
Rs232, KompassModul HDMM01 via I2c und ein Beschleunigungssensor MemS1
via A/D
Gruß und vielen Dank
Volker
Servus miteinander,
wen es interessieren würde auf dem Gnublin ein Debian oder Emdebian,
ohne viel Aufwand, zum Laufen zu bekommen, der kann sich ja mal
folgendes ansehen:
Debian:
http://forum.gnublin.org/viewtopic.php?f=4&t=45
Emdebian:
http://forum.gnublin.org/viewtopic.php?f=4&t=65
Die Skripte wurden im Rahmen eines Semesterprojekts bei Herrn Professor
Högl erstellt und sind inzwischen soweit nutzbar, dass ich sie guten
Gewissens auch hier posten kann.
Soll heißen, mit den verlinkten Skripten könnt ihr euch ohne viel
Arbeit, eine komplette SD-Karte mit der gewünschten (Em-)Debian-Version
(squeeze, wheezy, unstable) erzeugen und anschließend sofort damit
booten.
Gruß
Ingmar
Hallo,
Seit kurzem wird die USB Console bei meinem Gnublin Board (v1.5) nicht
mehr vom PC erkannt. Ich hatte den "error: ext2_lookup" Dateisystem
Fehler, welchen ich gemäß Wiki Artikel behoben hab. Seit dem wird der
USB Console Port nicht mehr erkannt. Windows meldet (am selben Port wie
zuvor) "Unknown Device" und Linux meldet "device descriptor read/64,
error 64", bzw. "device descriptor read/8, error -61".
Meine Frage nun: Gibt es eine Möglichkeit zu prüfen ob das Board
überhaupt noch booted? Was kann dazu führen, dass der USB Port nicht
mehr erkannt wird?
Vielen Dank
Stefan
Hallo,
zur Sache mit dem ADC (Beitrag vom 9.6.12 von Thomas K.). Ich habe mir
gerade nochmal den ADC-Eingang GPA1 angeschaut und zufaellig den
gleichen
Effekt gehabt (0x3ff bei 1,8V). Allerdings habe ich dann gesehen, dass
der ADC Wandler bei kleineren Spannungen gar nicht richtig funktioniert.
Die Loesung ist, dass ich vergessen hatte, den GPA1 Pin zunaechst mal
auszuwaehlen ueber
echo "1" > /dev/lpc3131_adc
Danach hat es sofort funktioniert. Der analoge Messbereich ist wie zu
erwarten zwischen 0 und 3,3V (= 0x3ff). Es gibt keine Referenzspannung,
die man aendern koennte. Man sollte darauf achten, dass keine hoehere
Spannung als 3,3V an die AD Eingaenge kommt.
Gruesse,
Hubert
Hallo Hubert
der analoge Messbereich geht bei meinem Gnublin (Version 1.5) nur bis
1.6 Volt!
Auch nach dem Befehl:
echo "1" >/dev/lpc3113x_adc
cat /dev/lpc3113x_adc
Ergebnis: 0x3da bei 1.6 Volt
0x3ff bei 1.7 Volt
Dein Vorschlag
echo "1" >/dev/lpc3131_adc"
ist doch sicherlich nur ein Schreibfehler, oder?
Gruß
Volker
Hallo,
ich versuche gerade meine Webcam ans laufen zu bekommen (logitech hd
c270),
sollte mit uvc treibern laufen, funktioniert aber nicht.
Ich habe den Kernel mi uvc und v4l2 kompiliert.
Beim booten bleibt gnublin stehen, mit folgenden Meldungen.
Linux video capture interface: v2.00
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
lpc313x-wdt lpc313x-wdt: Watchdog device driver initialized.
cpuidle: using governor ladder
lpc313x_mmc lpc313x_mmc.0: LPC313x MMC controller at irq 26
TCP cubic registered
NET: Registered protocol family 17
Waiting for root device /dev/mmcblk0p1...
mmc0: new SD card at address b368
mmcblk0: mmc0:b368 NCard 1.83 GiB
mmcblk0: p1 p2
EXT2-fs (mmcblk0p1): warning: mounting unchecked fs, running e2fsck is
recommended
VFS: Mounted root (ext2 filesystem) on device 179:1.
Freeing init memory: 104K
Kernel panic - not syncing: No init found. Try passing init= option to
kernel.
[<c0028794>] (unwind_backtrace+0x0/0xd0) from [<c021f31c>]
(panic+0x3c/0x118)
[<c021f31c>] (panic+0x3c/0x118) from [<c00223bc>] (init_post+0xd0/0xf8)
[<c00223bc>] (init_post+0xd0/0xf8) from [<c00089cc>]
(kernel_init+0xdc/0x10c)
[<c00089cc>] (kernel_init+0xdc/0x10c) from [<c0023dc4>]
(kernel_thread_exit+0x0/0x8)
Hab ich was beim kompilieren falsch bemacht? Kann mir da Bitte jemand
weiterhelfen?
Hallo,
das Problem mit der Webcam c270 hat sich gerade gelöst.
Ich habe den Fehler gemacht den kompletten lib Ordner auf die Karte zu
kopieren. Jetzt scheint es zu funktionieren. Mache gerade Bilder mit
mjpg-streamer.
Nach dem anstecken erscheint
usb 1-1: New USB device found, idVendor=046d, idProduct=0825
usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=2
usb 1-1: SerialNumber: 1FC3BC00
uvcvideo: Found UVC 1.00 device <unnamed> (046d:0825)
input: UVC Camera (046d:0825) as
/devices/platform/lpc-ehci.0/usb1/1-1/1-1:1.0/input/input0
Nach Aufruf von mjpg-streamer von Philipp G. erscheint diese Ausgabe.
root@gnublin:~/streamer/mjpg-streamer# export LD_LIBRARY_PATH="$(pwd)"
root@gnublin:~/streamer/mjpg-streamer# modprobe uvcvideo
root@gnublin:~/streamer/mjpg-streamer# ./mjpg_streamer -i
"./input_uvc.so" -o ".
/output_http.so -w ./www"
MJPG Streamer Version: svn rev:
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MJPEG
Adding control for Pan (relative)
Adding control for Tilt (relative)
Adding control for Pan Reset
Adding control for Tilt Reset
Adding control for Pan/tilt Reset
Adding control for Focus (absolute)
mapping control for Pan (relative)
mapping control for Tilt (relative)
mapping control for Pan Reset
mapping control for Tilt Reset
mapping control for Pan/tilt Reset
mapping control for Focus (absolute)
mapping control for LED1 Mode
mapping control for LED1 Frequency
mapping control for Disable video processing
mapping control for Raw bits per pixel
o: www-folder-path...: ./www/
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled
Wieso wird eigentlich /dev/video0 verwendet und nicht
input: UVC Camera (046d:0825) as
/devices/platform/lpc-ehci.0/usb1/1-1/1-1:1.0/input/input0 ?
Das Device habe ich neulich nach der Anleitung von Phil J. angelegt.
Gruß
Rudi
Gnublin ist ja sehr interessant und ebenso die Liste der (geplanten)
Scriptsprachen. Gerade für Embedded-Anwendungen finde ich Scriptsprachen
über die Shell hinaus auf dem Board für einen unschätzbaren
Produktivitätsvertärker.
Die Liste enthält Scriptsprachen, die nur mit g++, also dem GNU c++
Compiler kompilieren. Wird die ARM-Prozessorfamilie vom g++
unterstützt? (Ich habe bisher keine ARM-Erfahrung, Internetsuche nach
g++ mit Ziel ARM war erfolglos, fand nur gcc. Vielleicht suchte ich aber
an der falschen Stelle oder mit der falschen Suchfrage?)
Möglicherweise gibt es außerdem ein Speicherproblem. Entpackt hat der
tar-File von Squirrel bereits 1 MB, der von LUA ist nur knapp unterhalb
(die paar kB an Texten der Einfachheit halbermal mitgerechnetr. Das
Python-Verzeichnis hat gleich 61,8 MB. Für jimtcl habe ich mich im
Zusammenhang mit "embedded" schon früher interessiert, das
jimtcl-0.73-Verzeichnis hat 9,3 MB. Vermutlich müßte man ziemlich viel
abspecken, was praktisch einer Neuentwickjlung (zeitintensiv) geich
kommt.
Unabhängig von Speicherfragen wäre es schön,wenn mir jemand einen
Hinweis zu einem g++ Compiler für Gnublin zum "Spielen" geben könnte.
Gruß BB
Nachgeschoben:
Im ubuntu Repository befindet sich ein g++-Crosscompiler für ARM,
Version 4.5. (Habe den nicht probiert, bin leider Theoretiker und muss
erst mal die DOKU lesen.)
GPIO mit Interrupt registrieren:
Hallo zusammen,
ich bin gerade dabei über den GPIO_Keys-Treiber einen GPIO-Pin mit
zugehörigem Interrupt zu registrieren.
Hierzu habe ich in der Quelldatei ea3131x.c die drei Strukturen für den
Treiber eingefügt und der init-Struktur übergeben.
Quelltext siehe:
http://pastebin.com/PF9nsfB4
Im menuconfig habe ich den dazugehörigen Treiber unter Keyboard
aktiviert.
Das ganze lässt sich auch einwandfrei compilieren. Wenn ich nun das
Board starte kommt folgende Fehlermeldung in der Konsole:
gpio-keys gpio-keys: Unable to get irq number for GPIO 5, error -1
gpio-keys: probe of gpio-keys failed with error -1
Ich weiß nicht wieso er hier den IRQ für GPIO 5 sucht, obwohl ich GPIO11
angegeben habe?!
Bin dankbar für jeden Tip :)
Gruß
chk
Hallo an Alle,
bin jetzt durch und habe Debian auf Gnublin ans laufen bekommen, nur
aber mit Hilfe von Win32DiskImager ??!!Sonst nicht!Ich habe alles
ausprobiert was beschrieben wurde, Fehlschlag.Einfach alles nur Super,
habe ich gedacht.Jetzt kann aber GPIO im WebServer nicht schalten, es
fehlt die Grundversorgung im /sys/class/gpio ?! Man man, das ist ja ein
starkes Stück!
Nur ärger damit, habe viel Geld investiert in das Board,
Netzwerkadapter, Relays und jetzt kann alles in die tonne kicken? Warum
wurde das Werk nicht vervollständigt??Soll das eine Bastelstunde sein
oder was?Vielen Dank an Alle für die tolle zusammenarbeit,super Leistung
keine Frage!Aber nicht mit mir!Mfg Alex.
Hallo Alex,
wir sind mit Hochdruck an der Debian Distribution dran. Seit gestern
haben wir eine fertige Version. Ich stell Sie nachher mal online, in der
alles geht, was im Wiki beschrieben ist.
Ich hoffe du bist dann wieder besser darauf besser zu sprechen.
In ca. 3-4 Stunden kopiere ich den Link hier rein.
Gruss Benedikt
Alex schrieb:> Nur ärger damit, habe viel Geld investiert in das Board,> Netzwerkadapter, Relays und jetzt kann alles in die tonne kicken? Warum> wurde das Werk nicht vervollständigt??Soll das eine Bastelstunde sein> oder was?Vielen Dank an Alle für die tolle zusammenarbeit,super Leistung> keine Frage!Aber nicht mit mir!Mfg Alex.
PEBKAC ?
Hallo,
also hier ist das Debian mit GPIO etc...
Es ist ein Snapshot aus dem Buildprozess den wir gerade aufbauen:
http://www.gnublin.org/downloads/gnublin_debian.tar.gz
tar xvzf gnublin_debian.tar.gz
und dann das Image mit dd oder Windows tools auf eine 2 GB Karte
schieben.
In ca. 1-2 Wochen geht die Distribution inkl. allen Anleitungen online.
Gruss Benedikt
Hallo
Ich bin am überlegen, mit ein gnublin Board in der DIP ausführung zu
bestellen. Habe mir auch die Tutorials überflogen. Allerdings frage ich
mich noch, wie ich bei der DIP Version an einen Kommandozeile komme.
Geht das über die USB Schnittstelle auf den Pins oder über die UART
Schnittstelle auf den Pins?
Können hier vielleicht auch ein paar schon berichten, wie sie mit der
DIP Version zurecht gekommen sind? (Einstieg?)
Kann ich über die USB Schnittstelle auf den PIN`s einen USB WLAN Stick
anschließen? Gibt es hier wie beim raspberry pi eine Liste mit WLAN
Sticks, die getestet wurden?
Danke im Voraus
Gruß
Bean
Hallo,
ich habe nochmal ein Frage zum Gnublin Board.
Darf man mit dem Board kommerzielle Elektronik verkaufen.
Also hat das Board schon CE und ist bei der WEEE regestriert?
Oder muss man das sleber erledigen dann?
Hallo,
bei WEEE ist es registriert. EMV Messungen wurden einzeln mal gemacht.
Jedoch kommen die Probleme meist erst bei zusätzlichen Leitungen etc.
also das hängt dann sehr stark vom Einbau ab.
Im Zweifel kannst du uns gerne kontaktieren. Wir haben das gerade öfters
auf dem Tisch.
Gruss Benedikt
Ich habe ein Problem beim erstellen der SD-Karte. Ich arbeite mit Arch
Linux und da funktioniert leider weder der GUI-Installer noch das Python
Script um eine Karte zu erstellen.
Der GUI Installer funktionier nicht, da in neuen Versionen der
1
libparted
unter anderem die Funktion
1
ped_file_system_create
nicht mehr vorhanden ist (deprecated). Das Python Script wird ja leider
schon lange nicht mehr gewartet.
Jetzt habe ich wie [http://wiki.gnublin.org/index.php/SD-Karte_wechseln
hier] beschrieben die Karte partitioniert. Aus dem XML-File des
Installers habe ich mir die Links zu den Dateien
1
kernel.tar.gz
,
1
gnublin_debian_rootfs.tar.gz
und
1
apex.bin
geholt und heruntergeladen. Den Kernel und das RootFs habe ich auf die
grosse EXT3 partition entpackt, die
1
apex.bin
einfach mal mit
1
dd
auf die zweite 16MB Partition kopiert.
Danach kommt im Terminal folgedes und er belibt beim Booten des Kernels
hängen:
1
APEX Boot Loader 1.6.8-ep -- Copyright (c) 2004-2008 Marc Singer
2
compiled for Embedded Projects EPLPC3131 on 2013.Mai.22-14:30:42
3
4
APEX comes with ABSOLUTELY NO WARRANTY. It is free software and
5
you are welcome to redistribute it under certain circumstances.
6
For details, refer to the file COPYING in the program source.