• # Limitation des 2.6

    Posté par . En réponse au message utilisation de /dev/mem. Évalué à 2.

    Je ne sais pas exactement pourquoi tu veux acceder a /dev/mem. En general on survit tres bien en s'en abstenant. Je ne sais pas non plus a quel niveau se produit ton erreur (ouverture ? lecture des le debut ? lecture au-dela du premier mega ?). En tous les cas, en 2.6 sur x86_32, tu vas difficielement pouvoir depasser le 1er mega de RAM (les autres acces hors ram sont permis, si ils ont un sens bien sur). Extrait de arch/i386/mm/init.c :
    /*
     * devmem_is_allowed() checks to see if /dev/mem access to a certain address is
     * valid. The argument is a physical page number.
     *
     *
     * On x86, access has to be given to the first megabyte of ram because that area
     * contains bios code and data regions used by X and dosemu and similar apps.
     * Access has to be given to non-kernel-ram areas as well, these contain the PCI
     * mmio resources as well as potential bios/acpi data regions.
     */
    int devmem_is_allowed(unsigned long pagenr)
    {
     if (pagenr <= 256)
     return 1;
     if (!page_is_ram(pagenr))
     return 1;
     return 0;
    }
    
    On dirait que c'est une limitation propre au x86 (32 et 64), sur les autres archi, visiblement pas de limitation. Mais, encore une fois, je me demande bien a quoi ca peut te servir. A mon sens, /dev/mem ne devrait pas exister autrement qu'"a but educatif".