Portál AbcLinuxu, 14. května 2025 05:48
sudo ./vmware-server-2.0.x-kernel-2.6.3x-install.sh You have VMware Server archive: VMware-server-2.0.2-203138.i386.tar.gz cat: /etc/*-release: Directory doesnt exits cat: /etc/*-release: Directory doesnt exits cat: /etc/*-release: Directory doesnt exits Extracting the contents of VMware-server-2.0.2-203138.i386.tar.gz Found .tar file for vsock module Found .tar file for vmnet module Found .tar file for vmci module Found .tar file for vmmon module Extracting .tar files in order to apply the patch… Untarring /home/polo/vmware/vmware-server-distrib/lib/modules/source/vsock.tar Untarring /home/polo/vmware/vmware-server-distrib/lib/modules/source/vmnet.tar Untarring /home/polo/vmware/vmware-server-distrib/lib/modules/source/vmci.tar Untarring /home/polo/vmware/vmware-server-distrib/lib/modules/source/vmmon.tar Testing patch… Creating some simlinks for the newer kernels… Applying patch… Preparing new tar file for vsock module Preparing new tar file for vmnet module Preparing new tar file for vmci module Preparing new tar file for vmmon module Checking that the compiling will succeed… Trying to compile vmnet module to see if it works Performing make in /home/polo/vmware/vmware-server-distrib/lib/modules/source/vmnet-only Using 2.6.x kernel build system. /home/polo/vmware/vmware-server-distrib/lib/modules/source/vmnet-only/driver.c: In function ‘VNetFileOpUnlockedIoctl’: /home/polo/vmware/vmware-server-distrib/lib/modules/source/vmnet-only/driver.c:1190: error: implicit declaration of function ‘lock_kernel’ /home/polo/vmware/vmware-server-distrib/lib/modules/source/vmnet-only/driver.c:1192: error: implicit declaration of function ‘unlock_kernel’ make[4]: *** [/home/polo/vmware/vmware-server-distrib/lib/modules/source/vmnet-only/driver.o] Error 1 make[3]: *** [_module_/home/polo/vmware/vmware-server-distrib/lib/modules/source/vmnet-only] Error 2 make[2]: *** [sub-make] Error 2 make[1]: *** [all] Error 2 make: *** [vmnet.ko] Error 2 There is a problem compiling the vmnet module after it was patched.Googlil jsem vyznam hlasky implicit declaration of function az jsem nasel nasledujici odpoved proc se dana hlaska vyskytuje:
You forgot to provide a prototype for a function within the scope visible to the compiler at the point where it was compiling a call to that function.Jeste uvedu ze skript, ktery spoustim provadi kompilaci:
make -s -C "$MODULES_SOURCE/$MODDIR"Volba -s je silent a -C znaci ze pro kompilaci bude predhozen cely adresar. Podle me ten kompilator potrebuje ke zdarne kompilaci deklaraci prototypu funkci, ktere jsou zvyrazneny v chyb. hlasce. Ty by podle me mely byt v hlavickovych souborech linux-headers-2.6.38-bpo.2-686-bigmem(jadro mam 2.6.38-bpo.2-686-bigmem), ale nejsou tam.
Ptam se znovu v jine poradne proto, ze ted se na to divam z jineho uhlu pohledu - programatorskeho. Rikal jsem si, ze muj dotaz patri spise sem... a ze tu bude mit take vetsi sanci na vyreseni s tim, ze jsem chtel vyresit pricinu chyby, ne pouzit nejaky patch (pokud je to to co myslite tou odpovedi, kterou jsem dostal), ktery neni primarne urceny na software, ktery si chci instalovat. Uznavam, o modulech pro VMware nevim temer nic, takze mozna ten odkaz na patch co jsem dostal v Linux poradne bude fungovat, ale radeji bych preferoval tu "spravnou" cestu.Nevím, co si představuješ pod tou správnou cestou, ale jak jinak bys to chtěl řešit než patchem?
No ja se nebranim patchi. Mne slo o to pouzit ten patch ktery je urceny pro VMware server 2 a ne pro jine produkty. Neveril jsem, ze by to fungovalo... Popripade by to mohlo fungovat jen castecne - nerad bych treba po nekolika dnech provozu virt. stroju zjistil, ze diky pouziti jineho patche neco proste nebude fungovat.Vzhledem k tomu, že VMware Server už dávno není podporovaný mu stejně nemůžeš moc věřit. Každopádně moduly do jádra jsou takřka stejné u všech virtualizačních produktů VMware. Celkem běžně jsem používat patche z Workstation na Playeru a jednou když jsem takový patch vytvořil sám, děkovala mi spousta lidí, kteří ho použili na Workstation.
To proc se porad snazim jit tou "svou" cestou podle navodu je to ze autoru toho navodu se to povedlo take na jadru 2.6.38, potom nevidim duvod proc by to nemelo jet mne.Autor toho návodu má, podľa všetkého, v jadre aj podporu pre BKL.
BKL nejde jen tak vypnout nebo zapnout. V okamžiku, kdy se poprvé objevila podpora SMP v linuxovém jádře (IIRC s řadou 2.0), bylo potřeba začít nějak řešit konkurenční přístup ke zdrojům. První řešení bylo cestou nejmenšího odporu - udělal se jeden zámek (ten, kterému se později začalo říkat big kernel lock), kterým se zamykalo všechno. To samozřejmě jakž takž fungovalo, ale jak se postupně Linux dostával na systémy s více procesory a větší zátěží, vedlo to de facto k serializaci i u činností, které si vlastně vůbec konkurovat nemusely. Proto se postupně od BKL přecházelo na jemnější a jemnější zámky, které zamykají jen konkrétní zdroje, a relativně nedávno byl BKL konečně odstraněn definitivně.
Distribuční jádra jsou často dost odlišná od vanilla verze, ale až na výjimky to bývá spíš tak, že se do staršího jádra backportují opravy nebo funkcionalita z novějších. Dokážu si sice představit, že by někdo naportoval funkce lock_kernel()
a unlock_kernel()
do novějšího jádra, ale stejně by to nemělo smysl, pokud by zároveň nevrátil použití BKL i všude tam, kde se dřív používal (v takovém počínání ale nevidím moc smyslu). Jinak by totiž kompilace sice prošla, ale za běhu by nevyhnutelně vznikaly kolize, protože by kód VMware modulu předpokládal, že BKL hlídá i přístup ke zdrojům, které by mezitím příslušné subsystémy jádra zamykaly jinak.
Ptam se znovu v jine poradne proto
To rozdělení na různé "poradny" je čistě formální záležitost, kterou IMHO nikdo moc vážně nebere.
takze mozna ten odkaz na patch co jsem dostal v Linux poradne bude fungovat
Aha. Takže vy jste sice dostal odpověď, ale ani jste se ji neobtěžoval vyzkoušet a ptáte se znovu? A budete se ptát tak dlouho, než někdo vymyslí nějakou, která uspokojí jakási vaše estetická kritéria? Tak to vás asi zklamu: dokud VMware nevydá verzi, která bude fungovat "out of the box" (což jinými slovy znamená, že zahrne ten patch), tak vám nezbývá než patch použít nebo downgradovat váš systém na takovou verzi jádra, se kterou to bude fungovat.
ale radeji bych preferoval tu "spravnou" cestu.
Proč je podle vás ten patch "špatná" cesta?
budu muset zkouset pouzit patche pro jiny produkt VMware
Ty host moduly jsou (až na mírně odlišné verze) v podstatě stejné, ať jde o Workstation, Server nebo Player.
Aha. Takže vy jste sice dostal odpověď, ale ani jste se ji neobtěžoval vyzkoušet a ptáte se znovu? A budete se ptát tak dlouho, než někdo vymyslí nějakou, která uspokojí jakási vaše estetická kritéria? Tak to vás asi zklamu: dokud VMware nevydá verzi, která bude fungovat "out of the box" (což jinými slovy znamená, že zahrne ten patch), tak vám nezbývá než patch použít nebo downgradovat váš systém na takovou verzi jádra, se kterou to bude fungovat.Tady bych to rad uvedl na pravou miru. Sice uz jsem to napsal vyse, ale jeste jednou zopakuju.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.