Biete Hilfe beim Programmieren unter Linux an

  • Auf dem Gießener Amateurfunktreffen hat ein OM mir erzählt, daß aus seiner Sicht die Linux-Leute elitistisch seinen (Worte von mir). Es wäre nicht einfach, als Anfänger Hilfe beim Programmieren zu bekommen.


    Ich kann das zwar nicht ganz so nachvollziehen, aber ich bin natürlich hier auch kein Anfänger mehr (programmiere seit 1979, unter Linux seit etwas über 10 Jahren).


    DL2FI meinte, daß das QRP-Forum auch- und gerade für "dumme" Fragen wäre. Deswegen biete ich gerne an, daß man mit "dummen" Fragen zur Linux-Programmierung auf mich zukommen kann.


    Allerdings kann man unter Linux mit seeeehr vielen Programmiersprachen und Toolkits arbeiten -- genauso wie unter Mac oder Win. Nicht jeder Windows-Programmierer, der fit in Delphi ist, ist auch fit in .NET. Und so geht's mir auch. Meine Bereiche liegen:

    • Scripte in "bash" und "python"
    • Textprogramme in C (mit POSIX-API)
    • dito in C++
    • grafische Programme mit Qt 3, Qt 4 und Qt/Embedded
    • Bootloader für Embedded-Systeme, z.B. mit ARM oder AVR32-Prozessoren (z.B. u-boot)
    • Linux-Kernel (Treiber, z.B. Touchscreen, WLAN)
    • Programmiererumfeld (Editor, Makefile, Source-Code-Management mit CVS, Subversion und GIT)

    Bei Fragen zu anderen Themen (z.B. Ruby, Perl, GTK etc) werde ich zumindest versuchen, weiterführende Hinweise zu geben. Allerdings möchte ich zur Konfiguration von Distributionen ("Wie stelle ich einen Drucker unter SuSE ein?") eher nicht helfen. Jede Distribution hat ihr Forum für diese Art von Fragen, das wäre hier fehl am Platz.

  • Hallo Holger!



    Bei meiner Frage geht es nicht wirklich ums Programmieren, aber ich wollte dich fragen, ob du vielleicht weiterführende Links zum Thema Kernelprogrammierung und Minimale Systeme im Bezug auf den AVR32, bzw den Grasshopper hast. Ich würde damit gerne etwas mehr lernen und allgemein mein "eigenes" Linux auf dem Hopper laufen lassen. Allerdings weiß ich wirklich nicht, wie ich das anstellen sollte. Kernelnewbies.org hat mir schon ein wenig mit so sachen, wie kompillieren weitergeholfen, allerdings stehe ich immernoch vor dem Rätsel, welche Dateien, bzw Dateistruktur ich für das Minimalsystem benötige und wie ich zb Busybox als Toolsammlung verfügbar mache.


    Bis jetzt habe ich nur vereinzelt Sachen gefunden, die mir weiterhelfen, insgesamt sieht der Support um die AVR32 Familie recht mau aus.


    Danke dir!

  • Zufällig kenne ich den Grasshopper: ich habe mit einem Grasshopper-ähnlichem Board den Software-Teil eines Projektes bei einem großen Lebensmittelhändler realisiert. Es ging um die Kopplung von RFID-Systemen, Lagersoftware und auf den Fahrzeugen mitfahrenden Handhelds. Wir brauchten massenhaft serielle Schnittstellen, Ethernet und einige Ports für eine "Ampel" sowie ein paar Leuchtdioden.


    Bei Embedded-Boards, insbesondere wenn sie auf einem nicht x86-Prozessor aufbauen, brauchst Du i.A. eine sog. Cross-Compilations-Umgebung. Das heisst, Du willst auf Deinem 3 GHz-Rechner (Dual-Core x86 oder sowas) compilieren, weil der sehr schnell ist. Das fertige Binary soll dann aber in der Maschinensprache des ARM oder (beim Grasshopper) AVR32 sein.


    Wenn Du ein Grasshopper hast, dann läuft auf dem schon ein Boot-Loader (entspricht ungefähr dem BIOS eines normalen PCs), und ein Linux-Kernel ist auch schon angepaßt. Auch einen Cross-Compiler kannst Du Dir runterladen. Damit kann man sehr einfach ein "Hello World"-Programm machen.


    Wenn Du aber umfangreichere Dinge machen willst, dann empfehle ich dir http://www.openembedded.org. Das ist ein System, um sich selbst Cross-Compiler, Kernel, Bootloader, Busybox, Libraries, X11, und wasweissich für Pakete zu compilieren. Die Einarbeitungszeit ist allerdings erheblich. Aber das entspricht so ungefährt am besten der Lösung für "wie ich mein eigenes Linux auf dem Grasshopper bringe"-Frage.


    Die AVR32-Unterstützung des Linux-Kernels ist ziemlich gut, ich konnte den Kernel-Source-Code out-of-the-box verwenden und mußte mir für meine Anwendung keinerlei Gerätetreiber selbst schreiben. Die AVR32-Unterstützung für GCC ist etwas schlechter, zum damaligen Zeitpunkt gab es den GCC 4.3 oder 4.4 nicht mit AVR32-Unterstützung, also habe ich halt den GCC 4.2 genommen. Für ARM ist sowas nie ein Thema --- aber letztlich war das kein Problem.