Forum Linux.débutant SVP AIDE pr une version minimal.

Posté par  .
Étiquettes : aucune
-11
28
juil.
2011

**Slt tt le monde.

Pour comprendre Linux j'aimerais bien, svp, construire une version HYPER minimal qui ne fait rien à part d'exécuter un programme qui affiche un message sur un afficheur LCD genre 2x16 relié au port // de PC.

  • pas besoin de messages lors de démarrage ni par le boootloader ni par le kernel.

  • une version minimaliste de GRUB ou LILO qui lance dirctement le kernel (pas besoin de fichier .config ni aucun message).

  • aucun driver: le programme controle directemnt le port//

-etc etc...

Merci beaucoup par avance**

  • # Proposition d'aide

    Posté par  . Évalué à 6.

    Bonjour et bienvenue.

    Pour 180 € HT de l'heure, je peux t'aider. Contactes moi sur uy2lru2v3x1teqm@jetable.org

    Peut-être que d'autres te proposerons moins cher, mais mon offre inclut un porte-clefs LCD pour briller en société !

    • [^] # Re: Proposition d'aide

      Posté par  . Évalué à 5.

      Si ça peut aider au développement de MultiDeskOS, je veut bien le faire bénévolement!

      PS : Mon offre inclus un porte clé adaptateur parallèle/wifi pour briller en galante compagnie.

      • [^] # Re: Proposition d'aide

        Posté par  . Évalué à 1.

        Je veux bien être payé pour faire semblant de le faire, et j'offre un adaptateur 10BASE2 <-> IPoAC pour briller dans la nuit.

        THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

        • [^] # Re: Proposition d'aide

          Posté par  (site web personnel) . Évalué à 3.

          J'en demande 42 milliards d'euros de l'heure, et j'offre un phare pour briller en société et auprès des filles sur les plages et les yachts de plaisance. C'est lumineux !©

          Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

  • # il faut pas griller les étapes

    Posté par  . Évalué à 7.

    il te faut une distrib super légère,
    1. savoir utiliser linux et en particulier une micro-distrib type tomsrtbt
    2. savoir coder en C
    3. savoir faire un minimum d'éléctronique
    4. être capable de comprendre le lien hardware/software pour piloter efficacement le periphérique que tu aura construit

    et surtout un propgramme que tu lanceras au boot,
    qui pilotera le port //

    //exemple hyper basique :
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <asm/io.h>
    
    #define base 0x378           /* printer port base address */
    #define value 255            /* numeric value to send to printer port */
    
    main(int argc, char **argv)
    {
       if (ioperm(base,1,1))
        fprintf(stderr, "Couldn't get the port at %x\n", base), exit(1);
    
       outb(value, base);
    }
    

    que tu compiles
    gcc -Wall -O9 para.c -o para && strip para
    chmod 750 para

    pour savoir QUOI et dans quel ordre envoyer et comment cabler tes diodes :
    pin function
    2 D0
    3 D1
    4 D2
    5 D3
    6 D4
    7 D5
    8 D6
    9 D7
    Pins 18,19,20,21,22,23,24 and 25 are all ground pins.

    image d'un cablage :
    circuit

    resultat

    correspondances :
    Pin 2 3 4 5 6 7 8 9
    Bit D0 D1 D2 D3 D4 D5 D6 D7
    Value 1 2 4 8 16 32 64 128

    tu mets ton code dans /usr/local/bin
    tu le fais lancer au boot et c'est fini

    J'ai pas le temps de tester ce genre de solution mais ça doit marcher, ça marchait y'a genre 15 ans quand je faisais de l'éléctronique de façon quotidienne...
    Mais le principe est celui-là.
    Y'a plus qu'à adapter.

    • [^] # Re: il faut pas griller les étapes

      Posté par  . Évalué à -3.

      Merci pr votre réponse c très gentil à vous.
      J'ai une bonne connaissance en electronique j'ai déjà fait ce genre de projet avec des Pic et des AVR!!
      Pour linux, j'ai réussi à craker une clé WEP (pour apprendre)!
      Suis pas fort en programmation mais je connais les rédiments de C.
      -Quelle est la configuration minimal du noyau avant la compilation?
      -Comment lancer mon programme par le kernel?

      • [^] # Re: il faut pas griller les étapes

        Posté par  . Évalué à 2.

        -Quelle est la configuration minimal du noyau avant la compilation?

        celle de la distribution de base (celle avec laquelle tu vas travailler)

        -Comment lancer mon programme par le kernel?
        le kernel ne lance pas de programme, c'est le boulot de l'init.sh que tu donnes à grub/lilo
        apres chargement du noyau il va lancer un script qui va lire dans certains dossiers et en lancer d'autres.

        donc tu peux commencer par :
        - faire ton programme sur ton linux standard
        - une fois qu'il marche essayer de le faire se lancer au demarrage à la place de tout en faisant un niveau d'execution à toi (rc9 ?) qui ne ferait par exemple que ca.
        - si ca marche, tu peux mettre le runlevel9 dans grub/lilo pour que ce soit systematique

        • ensuite tu reflechiras à reduire linux au minimum car tu connaitras tes besoins.

        Sinon tu peux regarder linux from scratch qui te permet alors de creer un linux rien qu'a toi, qui ne contient vraiment que ce dont TOI tu as besoin.

  • # presque

    Posté par  . Évalué à 1.

    C'est pas le kernel qui lancera le programme le programme sera lancé après le boot de la conf linux. (dans l'init de niveau 3)
    Genre /etc/rc3.d/moncode.sh (script qui lancera et arretera ton programme il doit pouvoir gerer les parametres start/stop) et un lien symbolique dans /etc/init..d qui pointe sur ce script mais nomé forcément Sxxmoncode ou xx est le n° d'ordre de démarrage.
    tout simplement.

    la config minimale du noyau est celle proposé sur les micro-distributions, pas de drivers à part les drivers génériques (port série, port parallèle et clavier pour faire simple)
    c'est pour ça que je proposais tomsbtrt parce toute la distrib fait la taille d'une disquette donc 1.7Mo (taille maxi formatage d'une disquette), donc si après tu veux passer sur aurte chose genre FPGA ou un intégré encore plus compact, ça ne posera pas de difficultés.

    si tu connais un peu le C tu dois t'en sortir.
    reprends le bout de code d'exemple et améliore le, complètes le.
    tel qu'il est là il fait allumer toutes les diodes d'un bloc de 8leds.

    • [^] # Re: presque

      Posté par  . Évalué à 1.

      C'est pas le kernel qui lancera le programme

      Bah si, tu peux.
      cp mon_programme /sbin/init et c'est le kernel qui lance ton programme.

      • [^] # Re: presque

        Posté par  (site web personnel) . Évalué à 6.

        ou init=/bin/mon-programe-lcd dans les arguments du kernel
        ça offre l'avantage de pouvoir revenir a un init normal just in case

  • # j'y avais pas pensé ...

    Posté par  . Évalué à -1.

    ah oui comme ça ...
    mais bon ça reste problématique pour la pluspart des softs...
    imagines que tu veuilles faire évoluer ton appli un jour vers un double affichage
    resultats sur led / simu sur écran, tu peux plus parcequ'il te faut X Xdialog tk ou autre comme couche :)

  • # éviter Linux ?

    Posté par  (site web personnel) . Évalué à 1.

    Si tu veux quelque chose de vraiment minimal, Linux est un peu bloated quand même. Heureusement il y a des alternatives : http://en.wikipedia.org/wiki/List_of_operating_systems#Other_embedded
    FreeRTOS a l'air sympa.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: éviter Linux ?

      Posté par  . Évalué à 1.

      a ce compte là c'est trop minimaliste pour valoir quelque chose, mieux vaut donc passer à l'open harware et au diy comme les fpga etc...

  • # LFS?

    Posté par  . Évalué à 2.

    Merci beaucoup pr vos réponses très instructives.
    Je vais me pencher sur LFS et on verra.
    Est-ce que vous connaissiez, svp, des projets qui utilisent linux? genre lecteur mp3 ...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.