- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 01/2000

Často kladené dotazy

Zdeněk Pytela, 13. prosince 1999

V odborných konferencích se po jistém čase začnou opakovat ty stejné dotazy. Málokoho z těch, kteří odpověď znají, baví psát odpovědi pořád dokola, a vyhledávání v archívu není univerzální řešení. Protože je to případ i konference linux@linux.cz, vznikají pro ni v tuto chvíli odpovědi na často kladené dotazy (můžete se setkat i s anglickou zkratkou FAQ). Definitivní podoba bude oznámena v samotné konferenci, zde jsou některé z nich.

Nemůžu přeložit jádro!

Typická hláška při nezdařeném překladu jádra po zadání příkazu make zImage vypadá asi takto:

make[1] as86: Command not found
make[1] ***[bootsect.0] Error 127
make[1] Leaving directory ...

Odpověď je jednoduchá: není nainstalován některý balík, který je pro překlad potřeba. Obecně pro překlad programů potřebujeme: zdrojové kódy, překladač, hlavičkové soubory a knihovny.

  • Zdrojový kód jádra je umístěn v adresáři /usr/src/linux; v distribuci RedHat se nachází v balíku kernel-source
  • Překladač: gcc je v balíku egcs, u starších verzí v balíku gcc
  • Překladače assembleru: as (balík binutils), as86 (bin86)
  • Program pro koordinaci závislostí: make (make)
  • Hlavičkové soubory a knihovny: glibc-devel, kernel-headers
  • Pro konfiguraci pomocí menuconfig: ncurses, ncurses-devel
  • Pro konfiguraci pomocí xconfig: správně nainstalované X
  • Pro patchování nových verzí: patch

Na co ještě můžete narazit:

  • kernel too big. Přeložte jádro jako big (bzImage) nebo oddělte část ovladačů, které nejsou potřeba při startu systému, do modulů.
  • System.map je soubor se jmény a adresami všech symbolů použitých v jádře. Po přeložení a nainstalování každého nového jádra je vhodné tento soubor překopírovat z adresáře /usr/src/linux na místo, kde ho najdou programy, které ho budou potřebovat, nejlépe /boot/System.map-VERZEJÁDRA. Více v manuálové stránce příslušného programu, např. ps(1).

Nezapomeňte: po každé změně jádra je třeba upravit /etc/lilo.conf a spustit program lilo.

Linux a velký disk

Na většině počítačů je zavaděčem systému program lilo (LInux LOader). Tento zavaděč využívá pouze informací z BIOSu počítače, a pro omezení daná kdysi dávno nelze přistupovat k částem disku umístěným za 1024. cylindrem. To je případ všech disků větších než 8 GB i v případě zapnuté volby LBA.

Možná řešení:

  • Zajistit, aby celý kořenový svazek nebo přinejmenším adresář /boot, kde je umístěno jádro a další soubory nutné ke startu systému, byl v části disku do 1024. cylindru. Například samostatný svazek /boot (stačí velikost v jednotkách megabajtů), zbytek systému umístit do jiné oblasti, která už hranici 1024 cylindrů může překročit. Disk můžete rozdělit jakkoliv jinak podle svých potřeb (nejrozsáhlejší je obvykle adresář /usr, případně ještě /var).
  • Místo lilo použít grub, který toto omezení nemá.
  • Bootovat z dosu pomocí programu loadlin.
  • Zavádět linux z diskety (nouzové řešení).

Z historie

Tabulka rozdělení disku může mít dvě podoby:

  • číslo cylindru, hlavy, sektoru (zkratka CHS) z historických důvodů je v BIOSu omezení: 10 bitů na číslo cylindru, 8 bitů na čislo hlavy, 6 bitů na počet sektorů; Při velikosti sektoru 512 B lze adresovat disk maximálně do velikosti 2^10 * 2^8 * 2^6 * 512 B = 2^33 B = 8 GB (1024 * 256 * 64 * 512 B = 8589934592 B)
  • absolutní počet sektorů od začátku. Toto číslo má velikost 4 byty, lze proto adresovat 2^40 B (2 TB).

BIOS ovšem k disku přistupuje první metodou, a proto zavaděče, které se na BIOS spoléhají, na vzdálenější části nemohou při zavádění systému dosáhnout.

Doporučená literatura:

  • LILO mini HOWTO
  • Linux+NTLoader mini HOWTO
  • Loadlin+Win95 mini HOWTO
  • manuálové stránky: lilo, lilo.conf, bootparam, initrd

Odkazy na další zavaděče:

1. grub http://www.uruk.org/grub/

2. gag: grafický, intuitivně ovládaný zavaděč http://raster.cibermillennium.com/SOFTWARE/GAG/gageng.htm

3. mbtmgr http://www.tdp.cz/martin/mbtmgr/

Terminál pro Windows

V Linuxu se dá celkem pohodlně pracovat i z nepřátelských prostředí, jakými jsou operační systémy Microsoftu, stačí mít nainstalován dobrý terminál. Můžete si vybrat z následující nabídky:

1. teraterm ftp://ftp.penguin.cz/pub/win32/. Umožňuje spojení přes telnet i ssh.

Je dobře počeštěný http://www.fi.muni.cz/~xsmerk/, celá klávesnice funguje. Pouze pro Win32 (95, 98, NT).

2. putty http://www.chiark.greenend.org.uk/~sgtatham/putty.html. Umožňuje spojení přes telnet i ssh. Dobré zobrazení, snadno se konfiguruje. Pouze pro Win32 (95, 98, NT).

3. Console Telnet http://www.clnet.cz/pub/OS/Windows95/Net/ConsoleTelnet/. Umožňuje spojení pouze přes telnet, obsahuje vzorový INI soubor pro Linux. Lze jej přepnout na fullscreen.

4. dtelnet http://www.dccs.com.au/~dave/dtelnet.html. Umožňuje spojení pouze přes telnet. Stačí nastavit fonty a jede; jen neumí převod ISO 8859-2 na CP 1250. Binárka má pouze 70 KB.

Program se nechce spustit

Problém: nejde mi spustit program z aktuálního adresáře, i když má nastaven atribut pro spouštění (chmod +x soubor).

Z bezpečnostních důvodů není standardně aktuální adresář přítomen v cestě (proměnná $PATH). Programy, které chcete spouštět častěji, překopírujte do adresáře, který už v cestě máte, např. /usr/local/bin nebo /bin. Jinak spouštějte programy s úplnou absolutní nebo relativní cestou ./program. Přidávat aktuální adresář do cesty se nedoporučuje. *


- předchozí článek - následující článek - obsah - úvodní stránka -