• [^] # Re: nombre de distrib...

    Posté par . En réponse à la dépêche Pré-installer Linux chez Dell (et ailleurs) : l'avis de Mark Shuttleworth d'Ubuntu. Évalué à 3.

    Ça ne marche pas. Le libre est ainsi fait que chaqu'un peu modifier les sources.

    Un 2.6.18 de RHEL n'est pas compatible avec un 2.6.18 de Fedora par exemple. Du moins pour l'ensemble de l'API Linux.
    Une possibilité qui est en cours d'exploration :
    $ rpm -q --provides kernel-2.6.20-1.2925.fc6.me.3
    kernel-drm = 4.3.0
    kernel-i686 = 2.6.20-1.2925.fc6.me.3
    kernel(kernel) = aa379f785647068167279fe977abbefd49558625
    kernel(sound_pci_ac97) = c17bb5b75a98c358fc4e50ba1a68d102c9e3ccf4
    kernel(fs_fat) = 4f58d5adf02e04d3f7d074944a7adeea0bcd70c1
    kernel(drivers_block) = c51b783b03079f4f3c1d2c0ecea6254075711b1a
    kernel(vmlinux) = b615d6a067429c450102a019e2e8c41a2e0cb29a
    kernel(drivers_base) = 27d6155f5cc2ce5e616b51df6e4ae7c904688a78
    kernel(lib) = fad50b1c96388a20da15215e3eb0fc595a7ddd8d
    kernel(drivers) = 129cee6fc81f6285b941097866e3236a676eec23
    kernel(init) = 437513b2b973c27fbf9f98de741a800df640ad74
    kernel(drivers_parport) = 70cb72012a9fcc732173735cdf2b74c98130f210
    kernel(drivers_char_agp) = 09ebcf5f93476391306c3a909e00987a7a82e7e6
    kernel(net) = fd29213730f92db025e51e8c8d9bb51e2af70d34
    kernel(sound_core) = ae9ca09602944868b4450d6b06981263cf41ebe1
    kernel(drivers_usb_core) = 5081cf1425597f9bbd5381f84a76375f38aec463
    kernel(arch_i386_power) = de04d9f2cc5bf34387eadbdd5d128e92b2738109
    kernel(drivers_md) = a4fca911d31b0bc4505eb47207f9385ee85083e2
    kernel(fs) = 5b32252c1f776ba422c8d3b941dd05d95b7a5f3e
    kernel(drivers_cdrom) = e5578527961e6012d907b8ef3a6e5bb4bd7a423b
    kernel(fs_jbd) = b6061769355ba0e938730d59e3791db98c410d72
    kernel(security) = 4623a287a722d1572a2c77f08959479918b025ce
    kernel(drivers_char_drm) = efdcf2dcd9f84124eb5788c65ede0a2e3b67ec54
    kernel(sound) = 1d34eecea0272060960946bc1e9c5cf600730464
    kernel(mm) = 22806249e68eccb01bc4ada405feac6cbf08ff7b
    kernel(sound_drivers_mpu401) = 317f2458674d88dd5cffdd0b4300cfd2b49afcad
    kernel(drivers_scsi) = 35dc22f4eabd047d22eab4a4fae58492372c9a9f
    kernel(crypto) = 67490bf33babdd749c429f908f1a92c072a7264b
    kernel(drivers_char) = 61ed37ffddec48898bb33caa3b4873e8ca18cb37
    kernel(arch_i386_kernel) = 900c13cdcd280c06d709f507b0df5db7f7580b6a
    kernel(drivers_net) = b0491c46092242da7733b63ef6bc2a1f3eba64da
    kernel(drivers_ide) = a585e46797485e145c68add8f606b47ca05de1e3
    kernel(arch_i386_mm) = bea3d4383eef67713e506859455364b834f4de50
    kernel(block) = 73a6b0c62230ab0433f79eb16c1b56c2be5daf98
    kernel = 2.6.20-1.2925.fc6.me.3

    Ici la liste est "courte" car j'ai un noyau "mini". Sinon ça fait 150 lignes.

    On ne passe pas par un numéro de version, mais par un identifiant d'un sous-ensemble de l'api de Linux. Donc un module ne va pas dire "j'ai besoin de Linux 2.6.18", mais il va dire "j'ai besoin de "kernel(drivers_scsi) = 35dc22f4eabd047d22eab4a4fae58492372c9a9f", kernel(...) = "...", etc".

    Dans Fedora lorsqu'on met à jours un noyau, il regarde les modules dans le répertoire "extra" et les copies pour la dernière version (/lib/modules/`uname -r`/weak-updates) si l'API n'a pas bougé pour les fonctions utilisées par le module.
    Ça marche bien. J'ai par exemple un module qui était pour 2.6.18 et marche pour 2.6.19 et 2.6.20. Ce module utilisait une partie de l'api Linux qui n'a pas bougé entre Linux 2.6.18 et 2.6.20.
    Je crois que c'est principalement Red Hat et Novell qui bossent sur ça. Je crois que l'idée est de Novell.