2.6os kernel: <linux/version.h>

 ( vmiklos | 2004. július 4., vasárnap - 14:16 )

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

nálam vanilla 2.6.7 kernelben még van version.h:

[code:1:21a9aeee2b]
#define UTS_RELEASE "2.6.7"
#define LINUX_VERSION_CODE 132615
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))[/code:1:21a9aeee2b]

Ugyszinten
include/linux/version.h

[quote:c8ece4d650="ZsoL"]Ugyszinten
include/linux/version.h[/quote:c8ece4d650]
milyen disztro?
most néztem kernel forrásban, nincsen benne, azt sztem a disztro kellett, h belerakja :wink:

version.h generalodik

A 2.4-nél már a make *config is legenerálta a version.h-t, 2.6-nál nem, ott ezzel próbálkozz:
make include/linux/version.h

András

[quote:e7dd0714c6="samson"]version.h generalodik[/quote:e7dd0714c6]
aham. kérdés megoldva :D

[quote:6b02d6e10a="andrash"]A 2.4-nél már a make *config is legenerálta a version.h-t, 2.6-nál nem, ott ezzel próbálkozz:
make include/linux/version.h
[/quote:6b02d6e10a]
kösz, ez bejött :D
erre nehezen jöttem volna rá :wink:

Nekem ez még a linuxfromscratch-es emlékeim között volt :D

András

egyébként gentoo.
Én épp az imént olvastam, hogy ezt így kell generálni, csak még gyorsan megnéztem a wimbledon döntõt :)

gondolom minden disztró előbb-utóbb át fog térni a 2.6os kernel szériára
ez együtt jár azzal, h majd 1x a glibct is a 2.6os kernel headerekkel fogják forgatni, és a /usr/include/{asm,linux} könyvtárak is a 2.6os kernel széria forrásából fognak kikerülni

természetesen erre sok alkalmazásnak fel kell készülnie, mert a jelen esetben még sok gond van vele. vegyünk egy példát:

x alkalmazásnak kell az új headerekkel egy #define vmi

ekkor vhogy így kéne a jelen esetben megoldani:

#include <linux/version.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,47)
#define vmi
#endif

csak az a baj, h az újabb kernelek nem tartalmaznak version.h-t

egy 2.4.25ös kernelnek így néz ki a version.hja:

#define UTS_RELEASE "2.4.25"
#define LINUX_VERSION_CODE 132121
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

kérdés: hogyan kéne átírni ezt a version.ht, h az adott progi a fenti feltételének megfeleljen, vagyis definiálja a 'vmi't?
jelen esetben (mivel nincs version.h) hiába van jól megírva, csak úgy fog lefordulni, ha kiszedem a feltételeket, és mindenképpen definiálja a vmit :(

pontosabban így:
[code:1:ca07332aef]#define UTS_RELEASE "2.4.25"
#define LINUX_VERSION_CODE 132121
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))[/code:1:ca07332aef]

A BBCode-ot kikapcsolhattad volna :wink:

[quote:b9d927e767="lacipac"]A BBCode-ot kikapcsolhattad volna :wink:[/quote:b9d927e767]
jobb később, mint soha :wink: