Portál AbcLinuxu, 30. dubna 2025 17:08
Když mě se tak nechce to přeinstalovat. Migrace se mi zatím nepovedla, ale problém se částečně podařilo vyřešit.
Když jsem se jednoho dne rozhodoval, co dál dělat, x86 gentoo pro mě byla jasná volba. Opravdu nevím, proč jsem zvolil právě x86. Možná jsem měl strach z funkčnosti a podpory amd64, nebo jsem si říkal, že víc jak 2G paměti v notebooku stejně mít nebudu. Co já vím, každopádně jsem musel mít v hlavě pěkně temno. Alespoň z toho bude nějaký ten zápisek (vlastně doufám, že budou dva).
Co se nevyhnutelně muselo stát, stalo se. Došla mi trpělivost nad swapováním, když jsem si otevřel víc tabů ve webovém prohlížeči. Vyvinul jsem tedy nezbytné úsilí, zvedl prd*l a z města si přinesl tu malou destičku, která problém řeší. V notebooku najednou byla paměť 4G. Následující dění je tedy jasné - přemluvit toho chudáka tučňáka, aby si dokázal hrát s více než cca 3G.
První má myšlenka byla - ještě že mám gentoo, beztak budou potřeba jen nějaké knihovny, pár jednoduchých nástrojů, změna pár řádků v make.conf a následným překompilováním celého systému dostanu amd64 systém. Možná, před tím stáhnu nový stage3 a sloučím pár adresářů. Koukal jsem na fórech, zda tohle někdo řešil, ptal se na irc, ale odpověď byla vždy stejná: "Ne, tohle tedy nelze". Byl jsem trošku zklamaný, ale vidím to jako určitou výzvu. Nevěřím tomu, že přeinstalování systému (tak jak ho znám) je jediná cesta.
Proč tu ten blábol vlastně píši ? Podařilo se mi tuto situaci (částečně) vyřešit. Možná blbě, proto bych rád znal vaše názory, možná použitelně a někdy to třeba někomu pomůže.
V teorii se moc nevyznám, ale 64bitové jádro za určitých okolností (v configu nastavíte tuto magickou věc - IA32_EMULATION=y) dokáže pracovat se 32bitovými aplikacemi. A je to jádro, na kom závisí, zda uvidíme víc než 3G paměti. Tak proč to nezkusit ?
Obnášelo to pouze opsání pár příkazů a jeden reboot. Vycházel jsem z tohoto zápisku.
Nejdříve jsem aktualizoval celý systém. To jen ať nevzniknou problémy, které by jinak vůbec nemusely být.
Nainstalování nástroje, za pomocí kterého je možné přeložení 64bit aplikace na 32bit systému
emerge crossdev
crossdev mi nadával, že /etc/portage/package.use a /etc/portage/package.keywords nejsou adresáře, tak jsem mu vyhověl
mv /etc/portage/package.keywords /etc/portage/keywords mkdir /etc/portage/package.keywords mv /etc/portage/keywords /etc/portage/package.keywords mv /etc/portage/package.use /etc/portage/use mkdir /etc/portage/package.use mv /etc/portage/use /etc/portage/package.use
Aby bylo možné sestavit jádro
crossdev -S -s1 --target x86_64-pc-linux-gnu
Zkopíroval jsem zdrojáky jádra, které právě používám, uklidil a zkopíroval současný config
cd /usr/src cp -ra linux amd64 cd amd64 make mrproper cp ../linux/.config . make ARCH="x86_64" oldconfig
Config jsem editoval - přidal podporu o které jsem mluvil dříve. Navíc mi z něj zmizela podpora pro ext4 (možná můj specifický problém).
CONFIG_IA32_EMULATION=y CONFIG_EXT4_FS=y
Následovalo sestavení jádra
make ARCH="x86_64" CROSS_COMPILE="x86_64-pc-linux-gnu-"
Nakonec stačilo zkopírovat sestavené jádro do /boot, upravit záznam v grubu a rebootovat
sudo cp arch/x86_64/boot/bzImage /boot/gentoo-x86_64 reboot
K mému nepříliš optimistickému očekávání systém naběhl, žádné chyby se neobjevily a zatím mi to běží.
Jádro:
$[FrostyX ~]-> uname -m x86_64
Paměť:
$[FrostyX ~]-> free -m total used free shared buffers cached Mem: 3789 3144 644 0 194 1687 -/+ buffers/cache: 1263 2526 Swap: 3082 0 3082
Tiskni
Sdílej:
Musel jsem se ujistit:
mike@lion:~> date Čt čen 28 06:24:35 CEST 2012
Opravdu je červen 2012, nevrátil jsem se nějakým nedopatřením do roku 2003 nebo 2004…
With 64 bits you're just pushing more zeros through the bus.
Takhle už (hlavně z lenosti) jedu přes 2 roky. Má to dva problémy - některej SW se při x86_64 v uname kompiluje jako 64b, což dopadá špatně a tím druhým je VirtualBox - 64b kernel modul si nerozumí s 32b userspace, ale to se dá vyřešit chrootem.
No tak dalším krokem by byl přechod na normální 64b distro, samozřejmě . Provozuju to tak na notebooku, ale úplně spokojenej s tím nejsu, protože tam mám "jenom" 4GiB RAM a je docela znatelnej rozdíl spotřeby paměti mezi 32b userspace a 64b userspace, takže občas nemám daleko k tomu, abych měl plno. Jinak na Archu 64b kernel necrossuju, ale používám 64b balíčky. A pokud potřebuju něco kompilovat, tak jsem si udělal 64b chroot.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.