Hallo!
Ich möchte gerne ein AVR32-basiertes System (am Anfang habe ich ein
EVK1100 mit 32UC3A) zur Darstellung meiner Desktop-Oberfläche benutzen.
Dabei soll das eigentliche Programm auf einem per Ethernet verbundenen
Client laufen.
Spontan fallen mir zwei mehr oder minder "standardkonforme" (im Sinne
von kompatibel mit existierenden Clients) Lösungen ein:
- uClinux und dann versuchen X11 Server läuffähig zu bekommen
- Das X11 Protokoll direkt zu implementieren
Letzteres ist sicher schneller und ressourcensparender, aber
wahrscheinlich auch aufwendiger?
Hat jemand Tipps oder ist jemanden bekannt das sowas schon mal gemacht
wurde?
Danke!
Gruß
Jan
Viel Spaß, wenn du die µCLinux-Variante nimmst.
Auf den UC3*-µCs läuft Linux nämlich nicht. Und es schaut im Moment
nicht danach aus, dass sich das in nächster Zukunft ändert.
Deshalb empfehle ich dir, dass X11 Protokoll direkt zu implementieren.
Ist wahrscheinlich insgesamt einfacher. Denn selbst wenn du Linux ans
Laufen bringst, ist es noch nicht sicher, dass du dann auch den XServer
aufsetzen kannst. Von daher lieber den direkteren Weg nehmen.
MfG
Marius
Der poster moechte einen X11 kompatiblen Grafikdisplay bauen ? Wow. Das
beinhaltet zuerst mal die Ansteuerung eines Displays auf pixelebene. Das
VGA(XGA..) Signal selbst erzeugen ? Mit Framebuffer usw. Dann kommen
dann noch ein Paar library routinen oben drauf. Oder einen Grafik chip
ansteuern ? Dann muss man die Informationen zusammentragen. X11
bedeutet, dass es ein Vektordisplay ist, der auf dem display selbst
rastert. Und Kommunikation...
Viel glueck.
Danke für den hilfreichen (Marius) und den weniger hilfreichen Post.
Generell gehe ich davon aus dass die Ansteuerung z.B. eines "PSP
Displays" wie hier schon an der ein oder anderen Stelle gezeigt aus dem
Framebuffer mit akzeptablem Aufwand möglich ist. Da waren ja einige
schon sehr erfolgreich.
Mich würde interessieren ob jemand evtl. Erfahrung damit hat, einen auf
dem Linux-Kernel aufsetzenden Code in ein Standalone-uC Programm zu
wandeln? Dann müsste man nicht X11 neu implementieren sondern "nur" die
entsprechenden Systemaufrufe emulieren/bereitstellen. Alles mal aufs
Blaue hin gefragt - ich versuche lediglich den besten Startpunkt zu
finden.
Gruß
Jan
Also das mit dem PSP-Display kenne ich bisher nur vom AT32AP7000. Das
ist der AVR32-Controller, auf dem auch Linux lauffähig ist. Dieser hat
einen integrierten LCD-Controller, der die Ansteuerung des LCDs
übernimmt.
Soweit ich das jetzt im Datenblatt des AT32UC3A gelesen habe, hat dieser
keinen LCD-Controller. Das heißt, du müsstest die Ansteuerung komplett
in Software machen.
Die Anpassung des Linux-Kernels auf den UC3A halte ich persönlich auch
für ein sehr umfangreiches Projekt, was auch nicht ganz trivial ist
(sonst hätte es bestimmt schon jemand gemacht).
Wenn du dich dafür interessierst, dann solltest du dir die Sourcen des
Linux-Kernels mal ansehen. Besonders die Dateien für den AVR32 (AP7000)
im arch-Verzeichnis.
MfG
Marius
Du solltest vielleicht auch in Erwägung ziehen, statt dem X11-Protokoll
etwas einfacheres zu implementieren, VNC bietet sich da an.
Damit sparst du dir auf Display-Seite z.B. das ganze Font-Handling
(truetype etc), und das Protokoll ist recht kompakt und sollte leicht zu
implementieren sein.
Und vorhandene X11-Applikationen laufen trotzdem, dann halt über einen
VNC-X11 Server.
Man kann schon (siehe µCLinux), es hat nur bisher niemand gemacht.
Der Linux-Kernel hat nen Config-Flag, welches die MMU-Benutzung aus-
oder einschaltet.
Allerdings müsste der komplette Hardwarespezifische Code überarbeitet
und angepasst werden. Das zu tun ist viel Arbeit.
MfG
Marius
In der Mailinglist war erst am 20. Dez die Frage auch aufgetaucht,
leider finde ich die Antwort nichtmehr, deshalb nur soviel:
Ein Uniteam ist dran, aktueller Stand ist, das es einen Hardwarebug im
Controller (glaub im Speicherinterface fürs Ram) gibt, was im Moment die
Entwicklung bremst. Trotz alledem soll nach den Weinachtferien ein
erster bootfähiger Kernel verfügbar sein. Was allerdings nicht heißt das
er verwendbar ist ;)
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.