amd64 nVidia a 32 bitov
Uź dlho používam doma 64-bitovú verziu Debianu. Podpora 64-bitových aplikácií je výborná a bez väčších problémov aj väčšina 32-bitových programov, ale nedávno som sa stretol s problémami v Jave a Wine. A mohol za to ovládač grafickej karty...
Po príchode nového KDE do Debianu som sa dostal do problémov. Migrácia z KDE 3 na KDE 4 mi priniesla veľa starostí, tak som sa rozhodol namiesto pátrania po zdrojoch problémov nainštalovať celý systém od začiatku. Toto problém nebol, zozálohoval som si /etc i svoje $HOME, nainštaloval všetko od začiatku, vrátane 32-bitových knižníc. Trochu som sa pohral s nastaveniami, niečo som obnovil zo zálohy, niečo ponastavoval od začiatku a všetko vyzeralo super!
Mám ešte v blahej pamäti ako dlho mi takáto reinštalácia Windows, tam znova ponastavovať programy bol beh na dlhé trate...
Po nejakom čase som si však všimol, že mám problémy s niektorými programmi vo Wine a jednym (jediným) programom v Jave, ktoré používam. Proste nešli. Po troche pokusov a pátrania na internete som zistil, že nestačia 32-bitové knižnice, ale je treba nainštalovať aj 32-bitové knižnice ovládača nVidia. Ak používate distribučný balík s ovládačmi, je to balík nvidia-glx-ia32. Lenže ja používam binárny driver od nVidie. Chyba však nebola v tomto ovládači, ale v mojej nevedomosti.
nVidia poskytuje na stiahnutie vždy tri súbory danej verzie ovládača, označené v názve slovom pkg0, pkg1 a pkg2. Už kedysi dávno som vyštudoval, že rozdiel medzi pk0 a pkg1 je v zahrnutých predkompilovaných moduloch jadra. Teda, pkg1 tieto moduly zahrnuté má a aj preto je veľkosť tohoto balíka výrazne väčšia. Keďže som však medzi týmito modulmi nikdy nenašiel aj modul pre Debian a vždy ho kompilovalo, už dávno som prestal sťahovať balík s týmito modulmi.
Lenže balík pkg0 nie len, že neobsahuje predkompilované moduly, ale neobsahuje ani 32-bitovú verziu knižníc ovládača. Na starom systéme som si to nevšimol pravdepodobne preto, že som niekedy nainštaloval ovládač aj s týmito ovládačmi a ďalšie preinštalácie už preinštalovali len 64-bitovú časť. Ale na čistom systéme neostali žiadne staré zbytky, a tak mali 32-bitové programy problém s akcelerovaným zobrazením.
Ak teda chcete na systéme amd64 aj 32-bitové knižnice, používajte inštalačný balík pkg2!
Ale to bola len prvá časť problému. Keď som teda vyriešil problém so správnym inštalačným súborom, nastal problém druhý, a to ako tieto 32-botvé knižnice nainštalovať. Problém, ktorý je pravdepodobne charakteristický pre súčasný Debian testing, spôsobený presúvaním adresára s 32-bitovými knižnicami v systéme. Ovládač nVidie sa ich predvolene pokáša nainštalovať do adresára /emul/ia32-linux, ale v Debiane to má byť adresár /usr/lib32. Jednu chvíľu som si všimol, že tieto adresáre sú nalinkované jeden na druhý (už neviem, ktorý na ktorý), ale ak chcem nainštalovať 32-bitovú podporu dnes, tak sa mi to s predvolenými nastaveniami nepodarí. Nie je to problém neriešiteľný, len treba inštalačnému skriptu poskytnúť parametre, s novými cestami:
sh NVIDIA-Linux-x86_64-185.18.36-pkg2.run --compat32-chroot= --compat32-prefix=/usr --compat32-libdir=lib32
Aj toto riešenie síce počas inštalácie zobrazí chybové upozornenie o neexistencii adresára pre chroot, ktoré má predvoelnú voľbu pre ukončenie inštalácie, ale zvolením Yes pre pokračovanie v inštalácii nainštaluje všetko na správne miesto. A všetko funguje ako má...


