Portál AbcLinuxu, 30. dubna 2025 23:37
Minule sem skončil s kompilací a instalací pomocného systému. Po několika dnech, při pokusu pokračovat v načaté práci, mne lfs dovedlo do temnot které zatím neprosvětlily paprsky mého poznání. Pravděpodobně budu muset zvolnit a cosi trošku nastudovat. Ale popořádku.
Minule jsem skončil s diskovým oddílem, kam jsem do adresáře tools zkompiloval několik nástrojů, pomocí kterých chci vybudovat funkční linuxový systém. Jde samozřejmě o gcc, assembler, linker, základní knihovny, hlavičky kernelu a pár dalších věcí.
Napřed je třeba vybrat si vlastní peklo a zvolit úroveň na které se bude pokračovat. Standard (hurt me plenty), využití všech možných optimalizačních nastavení flagů a přepínačů (hardcore) a kompilace a instalace systému nikoliv jako root ale specialní user install, kvůli lepší kontrole nad instalovanými věcmi (nightmare). Poslední dvě volby vedou dle autorů knihy k hlubšímu poznání systému za cenu "náhodných záhadných chyb, které často objevíte až dlouho po kompilaci příslušného tarballu." ) Děkuji, někdy příště, stačí mi hurt me plenty.
Protože cílem budování pomocného minisystému bylo odstínění od hostitelské distribuce (v mém případě LFS liveCD), přichází okamžik kdy ze stávajícího adersáře /lfs s nástroji a zdrojáky uděláte root svého nového systému, postavíte adresářovou strukturu a do ní začnete kompilovat finální systém.
A narazil jsem poprvé. před a po chrootu je třeba korektně nastavit a přimontovat filesystémy a zařízení. Používá se udev a spousta vychytávek okolo dev/pts, /dev/shm, ramfs a věci z proc a sys. Jeden kámen úrazu byl v tom, že vím prd jak to přesně funguje a druhý, že liveCD používá filesystémy dílem rozhozené po cd a dílem načtené do RAM. A po chrootu už sem nebyl schopen zjitit jak se dostanu k některým adresářům hostitelské distribuce původně někde v ramfs a samozřejmě přestaly v chrootnutém prostředí fungovat věci instalované zatím pouze na hostovi, tedy třeba vim. Což by ani tak nevadilo, protože pokud jsem se držel návodu, šlo všechno dobře. Po rebootu ale (bylo třeba zaplatit složenky a na livecd neni java nutná pro netbanking) už sem si nebyl jist, co všechno je třeba udělat znovu (přimountovaní virtual kernel filesystems, obecně operace kolem /dev) a co ne.
I udělal jsem to podle svého nejlepšího vědomí a schopností, tvářilo se to ok, zkompiloval sem glibc (skoro hodina), ale test suite skončila s chybou (neexistující cosi v /dev/xxx/). Instalace sice tvrdila, že moje nové glibc seems to be ok, ale test před kompilací dalších balíků (gcc a binutils) řekl že "my system has no more ptys", což je údajně špatně a autoři tvrdí že must be solved before continue a prej track back a correct Chyba ukazuje buď někam k /dev/pts a tty a nebo právě glibc (pt_chown). Amatérské pokusy o nápravu nevedly nikam, navíc sem si vrtáním do věcí okolo glibc rozhodil linker, kterej teď neukazuje do kam by měl ale někam do pryč, takže už configure skripty řvou jak pominutý.
Protože byla pokročilá noc, nechal sem toho. Buď začnu znovu od kompilace glibc, nebo do toho budu ještě chvilku šťourat. Nevíte někdo kde bych sehnal zajímavé čtivo k tématu, které jsem popatlal?
Tiskni
Sdílej:
mount -o bind /dev /mnt/new-root/dev
... Ale možná že si to už pamatuju blbě mount -t proc none /mnt/new-root/proc
proc on /proc type proc devpts on /dev/pts type devpts
mount --bind /proc/ /mnt/hda3/gentoo/krivanek/proc/ mount --bind /dev/ /mnt/hda3/gentoo/krivanek/dev/ mount --bind /tmp/krivanek/ /mnt/hda3/gentoo/krivanek/tmp/ mount --bind /usr/portage/ /mnt/hda3/gentoo/krivanek/usr/portage/ mount --bind /mnt/hda3/gentoo/distfiles/ /mnt/hda3/gentoo/krivanek/usr/portage/distfiles/
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.