Keresés

Részletes keresés

NevemTeve Creative Commons License 2005.02.01 0 0 100
K: Mire jó az strace?
V: Egy programfutás rendszerhívásait lehet vele naplóztatani, hibakereséshez nagyon hasznos lehet.

K: Mik az opciói?
V: Néhány fontosabb:
-o: output file
-f: a gyermekfolyamatokat is kövesse
-s <méret>: stringeket milyen hosszban írja ki
-t vagy -tt: időpontot is naplózzon
-T: a rendszerhívás által elhasznált időt is naplózza
-p <pid>: egy már futó programot kövessen

K: Akkor egy példa:
V: strace -t -f -o /tmp/ls.log ls
K: Másik?
V: strace -f -p $(pidof inetd)

K: De én a programokat nem parancssorból indítom, hanem rákattintok egy desktop-ikonra...
V: Valahogy nyomozd ki, hogy az az ikon ténylegesen milyen programot indít el;)

K: Mégis mit keressek egy ilyen strace-s outputban?
V: Nem olyasmi ez, amibe ne tudnál pár hónap alatt belejönni;) Próbálj olyasmiket találni, hogy "-1, error, failed, wrong, not found"
NevemTeve Creative Commons License 2005.01.21 0 0 99
K: Hogy is van ez a DISPLAY?
V: Így: host:server.screen. Ebből a "host" elhagyható/elhagyandó, ha az a lokális gép, a "server" egy szám (0 vagy több), ami az X-server sorszáma a gépen belül, a screen szintén egy szám, akkor van jelentősége, ha az illető X-server több képernyőt (screen-t) kezel egymaga, alapértelmezése 0.
K: Például?
V: Például: export DISPLAY=:0 első (egyetlen) lokális szerver; export DISPLAY=100.101.102.103:0 távoli gépen futó első (egyetlen) szerver (mármint az X-klienshez képest távoli, a felhasználóhoz remélhetőleg közeli gép).
K: Szóval a ":0" az ugyanaz mint a "127.0.0.1:0"?
V: Nem egészen, az első unix-domain socketet fog használni, a második TCP-t... bármit is jelentsen ez;)
K: Ez nagy sebességkülönbség?
V: Nem szükségszerűen... elméletileg a unix-domain kicsivel gyorsabb kellene legyen, de könnyen lehet, hogy ez platformfüggő...
NevemTeve Creative Commons License 2005.01.21 0 0 98
K: Igaz, hogy az X Window System-ben a szerver a kliens, a kliens meg a szerver?
V: Azért ezt próbáljuk egy kicsit lassabban...

K: Mi az az X server?
V: Az a program, ami a grafikus kártyán és a monitor keresztül kapcsolatot tart a felhasználóval (továbbá a billentyűzetet, egeret, stb is kezeli).
K: Tehát az a program, amelyik a kliens gépen fut?
V: Attól függ, mit értünk "kliens gép" alatt... jobb lenne azt mondani, hogy a felhasználó helyi (magyarul: lokális) gépén fut az X server.

K: És mi az X kliens?
V: Az a program, ami a ki-/bemenetét az X-serveren keresztül végzi.
K: És a szerver gépen fut...
V: Mondjuk inkább úgy, hogy a felhasználóhoz képest távoli (magyarul: remote) gépen is futhat.

K: És hogyan jönnek-mennek a hírek a kettő között?
V: Értelemszerűen hálózaton: TCP-n (6000-es port) avagy unix-domain-socket-en (ha a kliens meg a szerver ugyanazon a gépen van - ls -l /tmp/.X11-unix/X0.
K: De milyen protokollal működik az X?
V: Úgy hívják, hogy X protokoll.

K: X server csak linuxon futhat?
V: X server nem csak UNIX-on futhat, hanem sok más rendszeren is, pl MS Windows-on is, sőt vannak (voltak) olyan grafikus terminálok, amik gyárilag X-servert futtatnak (X terminál a nevük).

K: Egy számítógépen csak egy X szerver futhat?
V: Nem szükségszerűen... próbáld ki a X :1 parancsot.
K: Jé, tényleg... és a két X-szerver ezek ugyanazokat a portokat használja?
V: Nem, hanem szépen egymás után, valahogy így:
X port file
0 6000 /tmp/.X11-unix/X0
1 6001 /tmp/.X11-unix/X1
...

K: Honnan tudja a kliens, hogy melyik X serverhez kapcsolódjon?
V: A DISPLAY változóból, vagy a -display opcióból.
K: Igaz, hogy a telnet/ssh kliens ezt automatikusan beállítja?
V: Kedvező esetben igen, egyébként be kell gépelned valami ilyesmit:
export DISPLAY="$(who am i | awk '{print substr ($6,2,length($6)-2)}'):0

K: És akkor bárkinek a gépére küldhetek egy X ablakot? Mondjuk ha van egy jó kis sokoban-om, azt átküldhetem a komámnak az "xsokoban -display ip.cim:0" paranccsal?
V: Azért nem egészen biztos, hogy ő vevő erre... Az xauth és xhost parancsokkal lehet szabályozni, hogy ki küldhessen ablakot az X-szerverre.

K: Tudnál egy példát mondani?
V: Egy nagyon egyszerűt, lokális gépen, nem rootként bejelentezve:
$ su -c "rxvt" # Nem megy, "Xlib: connection to "localhost:0.0" refused by server"
$ xhost +localhost # Akkor a lokális gépről bárki nyithasson ablakot
$ su -c "rxvt" # Most már megy

K: És mi az az X démon? Avagy xdm/ kdm/ gdm?
V: Egy olyan eszköz, amellyel grafikus felületen jelentkezhetsz be valahová...
K: Hogyhogy valahová?
V: Az X server kapcsolódik a (helyi vagy távoli gépen futó) az xdm-hez, amely egy bejelentkező ablakot nyit. Ha sikerült bejelentkezni, az xdm elindítja a felhasználó kedvenc programjait, például az ablakkezelőt (window manager).
K: És akkor mi is ennek az előnye?
V: Hogy kimarad egy lépés: lokális gép esetén a text-módú bejelentkezés, és az X szerver elindítása (X vagy startx parancs), távoli gép esetén pedig a terminálos (telnet,ssh) belépés.
K: De eddig arról volt szó, hogy az X-server kapcsolatokat fogad, itt meg kapcsolódik?
V: Jogos meglátás, ez tényleg 'fordított írányú' működés... bővebben az Xserver(1) manualban az XDMCP-nél (-query,-broadcast,-indirect stb opciók)

K: Akkor most a "startx" vagy az "X" indítja az X-servert? Vagy az xdm?
V: Legkönnyebben az utolsó kérdésre tudok válaszolni: az xdm beállítható úgy is, hogy a lokális gépen rögtön indítson el egy X-servert, amely azután konnektál őhozzá, de ez nem szükségszerű; lehet olyan gépen is futtatni (a többi X klienshez hasonlóan), amelyen egyáltalán nincs grafikus rendszer.
K: Szóval hogyan kell X-servert indítani?
V: Hát lehet pusztán az X parancsot futtatni, de kissé fapados lesz, próbáld ki:
X &
export DISPLAY=:0
xterm &
xeyes &
K: Nem értem, az ablakoknak nincs kerete, nem lehet őket átméretezni...
V: Nem, mert mindezeket egy újabb X-kliens csinálja, melynek ablakkezelő (magyarul: window manager) a neve.
K: Mint amilyen a KDE vagy a gnome?
V: Azért azok elég sok mindent tartalmaznak az ablakkezelőn kívül is... számos ablakkezelő van, például a twm.
K: Tehát a startx...
V: A puszta X-en kívül más programokat is elindít, például ablakkezelőt... itt már a manualhoz utasítalak szeretettel.
NevemTeve Creative Commons License 2005.01.19 0 0 97
K: Pontosan hogyan kell kiszámolni a az umask-kal módosított jogbiteket?
V: módosított_bitek = eredeti_bitek & ~umask
tehát az umask bitjeit invertálva logikai 'és' kapcsolatba hozzuk az eredeti bitekkel.
Előzmény: NevemTeve (96)
NevemTeve Creative Commons License 2005.01.19 0 0 96
K: Mifene az umask?
V: Egy file-jogosultságakot korlátozó eszköz, akkor lép életbe, amikor egy file-t (könyvtárat) hozol létre: a program által megadott jogokból 'kivonódik' az umask.

K: Hirtelen nem emlékszem, hogy is kell ezeket a biteket kiszámolni?
V: Add össze az alábbi táblázatból:
u+r 0400 tulajdonos olvashatja
u+w 0200 tulajdonos írhatja
u+x 0100 tulajdonos futtathatja
g+r 0040 csoport olvashatja
g+w 0020 csoport írhatja
g+x 0010 csoport futtathatja
o+r 0004 bárki más olvashatja
o+w 0002 bárki más írhatja
o+x 0001 bárki más futtathatja

K: És az umask által így korlátozott jogokat nem is lehet megváltoztatni?
V: De, a chmod(1) paranccsal vagy a chmod(2) rendszerhívással.

K: De én a mount-opcióknál is láttam umask-ot...
V: Az értelme hasonló az előbbihez: ezeket a biteket(=jogokat) kell elvenni a 0777 (=mindenkinek mindent szabad) -ból.

K: Jut eszembe, könyvtárak esetén mit jelentenek ezek a jogbitek?
V: Nézd meg a FAQ-ban az 58-as hozzászólást!
NevemTeve Creative Commons License 2005.01.05 0 0 95
egyes típusok, példul az enyém, nem mennek 2.6.8.1-es és 2.6.9-es kernellel
A 2.6.10 segített a dolgon...
Előzmény: NevemTeve (88)
NevemTeve Creative Commons License 2005.01.05 0 0 94
K: Programozni szeretnék, milyen (segéd)programokat érdemes megismernem?
V:
make Függőség-kezelő program (bármit is jelentsen ez)
gcc,g++ Egy úgynevezett front-end (előtét), amely az előfordítás, fordítás, szerkesztés valamelyikét vagy mindegyikét elvégzi az opcióktól és paraméterektől függően. (Általában érdemes ezt használni, nem pedig közvetlenül az alábbiakat.)
cpp preprocesszor
cc1,cc1plus a tulajdonképpeni fordító
as assembler
collect2 a szerkesztést megelőzően hajt végre valamilyen jócselekedet, ő szoktak észrevenni a feloldatlan extern-eket
ld linker (programszerkesztő program)
ar object modulokból könyvtárat (arhívumot) alkothatunk vele, ezeket könyvtáratakat programok linkelésénél használhatunk; az arhívumok hagyományosan .a kiterjesztésűek (Megj: Tkp a .deb csomagok is ar-arhívumok)
ranlib egy archívum elemeiből egy index-et képez, hogy gyorsítsa a linkelést (megtekintés: nm -s library.a)
nm egy object (vagy executable, vagy ar archívum) szimbolumait listázza
strip kitakaritja a szimbolumokat egy objectből (vagy executable-ból)
objdump mindenféle jópofaságot tudhatunk meg egy objectről; például a -S opcióval disassemblált listát láthatunk a forráskóddal összefésülve
readelf további okosságokat tudhatunk meg vele (az ELF az object-ek és executable-k formátuma, a mai linux-okban ez a szabványos)
ldd egy executable-ra futtatva listázza a használt shared-libeket (osztott programkönyvtárakat)
gdb a debugger
install ha kész a program, ez segít a telepítésben
libtool (saját állítása szerint) nagyban leegyszerűsíti a shared-libek készítését
ldconfig a shared-libek installálása után futtatandó, bővebb lásd GCC-Howto-ban
tar ezzel csomagoljuk össze projektünk számtalan file-ját
file megsaccolja egy file-ról, hogy mi van benne
strings egy bináris file-ban olvasható szövegeket keres
od egy bináris file-t oktálisan(!) listáz, "od -tx1 -Ax" opciókkal lehet hexa-kiíratást kapni
DonQuijote Creative Commons License 2004.10.23 0 0 93
XF86Config-4 (ma különösen jó formában vagyok)
Előzmény: DonQuijote (92)
DonQuijote Creative Commons License 2004.10.23 0 0 92
Természetesen az XF68Config-4-ban kell beállítani, nem az XFree86-4-ben.
Előzmény: DonQuijote (91)
DonQuijote Creative Commons License 2004.10.23 0 0 91
K: Szeretnék billentyűzetet váltani valamilyen billentyűzetkombinációval X alatt. Lehetőleg sem KDE-t, sem Gnome-ot nem akarok használni. Probáltam ugyan a Gnome-ot is, de az meg valami XKB hibát ír ki.
V: Ha XFree 4.4-ed van, akkor csak be kell állítanod az XFree86-4-ben, hogy
Option "XkbLayout" "us,hu"
Option "XKbOptions" "grp:alt_shift_toggle"
és máris tudsz angol és magyar kiosztás között váltani a bal Alt + jobb Shift kombinációval.
Ha 4.3-as XFree van a gépeden, akkor előbb még le kell töltened az 4.4-eshez adott új magyar billentyűzet definiáló fájlt (mert az a 4.3-ban még nem volt benne), és be kell másolnod a helyére, ami Debiánon az /etc/X11/xkb/symbols/pc.
NevemTeve Creative Commons License 2004.10.21 0 0 88
Off (Nyilván nem generikus nem-működésről van szó, annyira azért tesztelik a kernel-fejlesztők, ugyanakkor egyes típusok, példul az enyém, nem mennek 2.6.8.1-es és 2.6.9-es kernellel. (Lehet hogy ezt a thread-et nem itt kellene folytatni))
DonQuijote Creative Commons License 2004.10.21 0 0 87
Nekem is teljesen jól megy 2.6.8.1-es kernellel egy Asus M2400 laptopon meg egy Asus A7N8X alaplapon is. Mi a gond?
Előzmény: NevemTeve (85)
best sunday dress Creative Commons License 2004.10.21 0 0 86
bocs az offért, de ezt nem teljesen értem. nekem például gond nélkül mennek 1.1-es és 2.0-s usb eszközök is (digikam, mp3/ogg lejátszó, kétféle pendrive) 2.6.8-as kernellel, a konfigban benne vannak ezek (lehetn modul is , persze):

CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_STORAGE=y
Előzmény: NevemTeve (85)
NevemTeve Creative Commons License 2004.10.20 0 0 85
K: A legújabb 2.6.x-es kernelekkel nem megy a pendrive-on!
V: Nekem sem :(
K: Akkor mit tegyek?
V: Downgrade-elj!
NevemTeve Creative Commons License 2004.10.19 0 0 84
K: Mifene az 'errexit' a shell-ben?
V: Azt szabályozza, hogy a shell(script) kilépjen-e az első hibás parancsnál. A 'set -e'/'set +e' -vel lehet ki-/be kacsolni (hosszabb formában: 'set -o errexit'/'set +o errexit')
Próbáld ki a következő példa-scriptet:
#!/bin/sh
echo "Disabling errexit"
set +o errexit
echo 'előtte'
hiba
echo 'utána'
echo "Enabling errexit"
set -o errexit
ujhiba
echo 'végül' # ezt már nem fogod látni
NevemTeve Creative Commons License 2004.10.17 0 0 83
K: Ez miért nem működik: program 2>&1 1>file ?
V: Miért ne működne? A standard error a terminálra jön, a standard output file-ba.
K: Dehát én úgy képzeltem, hogy a 2>&1 átirányítja az error-t az output-ra, és így minden a file-ba megy.
V: Rosszul képzelted. A 2>&1 átirányítja az errort abba a file-ba, amibe az output abban a pillanatban irányul.
K: Tehát mit tegyek, hogy minden üzenet a file-ba menjen?
V: Ezt: program 1>file 2>&1
NevemTeve Creative Commons License 2004.10.08 0 0 82
K: Hogyan lehet a "vi"-ból kiszakadni?
V: Próbálkozz a :q! paranccsal, ha nem hajta végre, csak megjeleníti az aktuális pozíción, akkor előtte nyomjál ESC-et (inputmódból parancsmódba).
K: Most mégsem akarok kilépni, csak a képernyőm zavarodott össze valamitől...
V: A Control+L a te barátod (nem csak itt, pl a Midnight Commanderben is)
NevemTeve Creative Commons License 2004.07.06 0 0 81
K: Nem egészen értem a bash manualjában a "Parameter Expansion" című részt. Tudnál valamilyen példát mutatni az ott leírtakra?
V: Micsoda véletlen, épp most csináltam ilyesmit (Futtasd a scriptet, és figyeld a kimenetét!)
#!/bin/bash

unset UNSETV
SETV="value"
INDV="SETV"

echo "-----"
echo "*${INDV}*" Egyszerű behelyettesítés "(INDV)"
echo "*${SETV}*" Egyszerű behelyettesítés "(SETV)"
echo "*${UNSETV}*" Egyszerű behelyettesítés "(UNSETV)"

echo "-----"
echo "*${!INDV}*" Indirekt behelyettesítés "(INDV)"
echo "*${!SETV}*" Indirekt behelyettesítés "(SETV)"
echo "*${!UNSETV}*" Indirekt behelyettesítés "(UNSETV)"

echo "-----"
echo "*${SETV-ha nincs}*" Alapértelmezés "(SETV)"
echo "*${UNSETV-ha nincs}*" Alapértelmezés "(UNSETV)"

echo "-----"
echo "*${SETV=ha nincs}*" Alapértelmezés értékadással"(SETV)"
echo "*${UNSETV=ha nincs}*" Alapértelmezés értékadással"(UNSETV)"
echo "*${UNSETV=default}*" Alapértelmezés értékadással"(UNSETV)"
unset UNSETV

echo "-----"
echo "*${SETV?Hibaüzenet}*" Hibaüzenet"(SETV)"
(echo "*${UNSETV?Hibaüzenet}*" Hibaüzenet"(UNSETV)")

echo "-----"
echo "*${SETV+Alternatíva}*" Alternatíva"(SETV)"
echo "*${UNSETV+Alternatíva}*" Alternatíva"(UNSETV)"

echo "-----"
echo "*${SETV:0:3}*" "Rész-string (előről) :0:3 (SETV)"
echo "*${SETV:(-3):3}*" "Rész-string (hátulról) :-3:3 (SETV)"

echo "-----"
echo "*${!S*}*" "Változók listája prefix alapján (S*)"

echo "-----"
echo "*${#SETV}*" "Változó hossza (SETV)"

echo "-----"
echo "*${SETV#v*}*" "Levágás az elejéről minta alapján (rövid)"
echo "*${SETV##v*}*" "Levágás az elejéről minta alapján (hosszú)"

echo "-----"
echo "*${SETV%*ue}*" "Levágás a végéről minta alapján (rövid)"
echo "*${SETV%%*ue}*" "Levágás a végéről minta alapján (hosszú)"

echo "-----"
echo "*${SETV/[aue]/A}*" "Csere (csak az első előfordulás)"
echo "*${SETV//[aue]/A}*" "Csere (minden előfordulás)"

NevemTeve Creative Commons License 2004.06.03 0 0 80
K: A kernelfordításnál (2.6.x) agpgart modult készíttettem, be is jelöltem a chipsetem típusát (pl CONFIG_AGP_INTEL), azután a "modprobe agpgart" mégsem működik...

V: Naná, mivel az <chipset>-agp modult (pl intel-agp, ati-agp) is be kell tölteni, hogy működjön a dolog.

K: Magamtól is kitalálhattam volna... és hogyan lehet ezt automatizálni?

V: Vagy rendszerinduláskor fixen betöltöd, vagy igény szerint automatikusan, de ahhoz kell a modprobe.conf file-ba egy ilyen alias:
alias char-major-10-175 intel-agp (vagy amilyen chipset-ed van).

NevemTeve Creative Commons License 2004.05.19 0 0 79
K: Na de végül is miért kell így tükrözni a betűkkel?
V: Főleg az alábbiak miatt lehet gond a képernyővel:
o a számítógép nem (feltétlenül) tudja, hogy neked mekkora a képernyőd
o a képernyőnek (általában) kisebb a felbontása mint a printernek
o a képernyőt (rendszerint) messzebbről nézzük mint a papírt
NevemTeve Creative Commons License 2004.05.19 0 0 78
K: És végülis miért jó ez nekem?
V: Azért, mert egyes programok lehetőséget adnak arra, hogy a képernyő felbontását (dpi) magad állítsd be, ezzel a betűk méretét növelhesd vagy csökkenthesd: Nagyobb dpi esetén több pixelből fognak állni a betűk, kisebb dpi esetén kevesebből.
K: Például?
V: Például az XFree86-nak az "X -dpi NN" opcióval.
NevemTeve Creative Commons License 2004.05.19 0 0 77
K: A "pont" ugyanaz mint a "pixel"?
V: Nem, a pont az inch 1/72-ed része (körülbelül vagy pontosan, attól függően hogy ki hogyan definiálja ;)
K: Na de hogyan lesz akkor a pont-ból pixel, ha például 12 pontos betűkkel akarok írni?
V: Ehhez kell a felbontás (dpi). A pont-ban vett méretet osztod 72-vel és szorzod a dpi-vel, pl:
dpi pixel
 72 12
 80 13.3
 90 15
100 16.7
NevemTeve Creative Commons License 2004.05.19 0 0 76
K: Mifene az a "dpi"?
V: Dot-per-inch, azaz hány pixel jut egy incsre valamilyen megjelenítő eszközön. Ha jobban átlátod, átszámíthatod arra, hogy milyen messze van egymástól két képpont, pl:
dpi mm
 75 0.339
 80 0.318
 85 0.299
 90 0.282
 95 0.267
100 0.254
300 0.085
600 0.042
K: Tehát ha tudom, hogy a képernyőmön pl 0.28mm a ponttávolság, akkor tudom hogy a felbontása kb 91dpi?
V: Azért ez a beállított üzemmódtól függ... tegyük fel, hogy a monitorod képének hasznos mérete 17" (13.6"*10.2").
Üzemmód dpi
 320x240 23.5
 400x300 29.4
 500x375 36.8
 640x480 47.1
 800x600 58.9
 900x675 66.2
1024x768 75.3
1144x858 84.1
1280x960 94.1
NevemTeve Creative Commons License 2004.05.12 0 0 75
K: És mindezt honnan tudja a pkg-config? Csak nem gondolatolvasó?
V: Nem, inkább az úgynevezett .pc file-okból?
K: És azok mifenék?
V: A csomagok információit tartalmazzák szöveges formában, az alábbi könyvtárakban fordulhatnak elő: /usr/lib/pkgconfig, /usr/local/lib/pkgconfig, /usr/X11R6/lib/pkgconfig.
K: Nagyszerű, szóval a pkg-config ezeket a könyvtárakat nézi végig, amikor egy csomagot keres?
V: Igen, de főleg akkor ha a PKG_CONFIG_PATH változó is így van beállítva:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/X11R6/lib/pkgconfig:/usr/local/lib/pkgconfig
Előzmény: NevemTeve (74)
NevemTeve Creative Commons License 2004.05.10 0 0 74
K:Valami example?
V:Tessék:
$ pkg-config --modversion xft fontconfig pango
2.1.0
2.2.94
1.4.0
Ez a verziószámokat írja ki

$ pkg-config --libs gtk+-2.0
-Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
Ez azt mondja meg, hogy miket kell hozzá-linkelni egy gtk+-2.0 -t használó programhoz

$ pkg-config --print-errors --exists 'glib-2.0 >= 1.3.4'
Csomagok meglétét és verziószámát ellenőrzi

Előzmény: NevemTeve (73)
NevemTeve Creative Commons License 2004.05.10 0 0 73
K: Mifene az a pkg-config?
V: Erre gondolsz: http://www.freedesktop.org/Software/pkgconfig
K: Igen, úgy tűnik, ez valami csomagkezelő rendszer, de nekem ez felesleges, mert én dpkg-t (rpm-et) használok.
V: Azért barátkozz meg ezzel is... a csomagok meglétének és verziószámának ellenőrzésén kívül a fordítás és szerkesztés opcióinak beállításában segít.
gir Creative Commons License 2004.05.02 0 0 72
K: Hogyan is van ez a SCSI emuláció cd-íráshoz?

V: Bár van már egy-két program ami scsi emuláció nélkül is képes cd-t írni, azért melegen ajánlatos a scsi emuláció használata. IDE CD-t kétféleképp lehet használni linux alatt:

1. normál ATAPI eszközként, ehhez mindössze 2 kernelmodul kell:

- cdrom (cd-romunk van ugye)
- ide-cd (ezmeg egy sima ide driver hozzá)

2. SCSI eszközként, emulálva. Ehhez azt kell tudni, hogy a scsi emuláció az "egyéb" scsi device-ok közé tartozik. A kernel scsi alapmeghajtója (scsi-mod) négyféle eszközcsoportot ismer, a scsi merevlemezeket (sd-mod), scsi disceket (sr-mod), scsi szalagos eszközöket (st) és scsi egyéb vagy általános eszközöket (sg). CD emulációhoz a köv modulok kellenek:

- cdrom (még mindig cd-romunk van)

Demost scsi drivert akarunk hozzá, ezért a scsi alrendszerből be kell húzni ezeket:

- scsi-mod (ez a scsi alapdriver, enélkül semmilyen scsi eszközt nem látunk)
- ide-scsi (ez az emulátor modul ami IDE-ből scsi-t emulál)
- sg (mégpedig általános scsi eszköznek emulálja, ezért ez a modul is kell)
- sr-mod (de mivel cd meghajtóként akarjuk elérni, köll ezis)

K: Olyat hallottam hogy a pendrive-ok is scsi eszközként látszanak, ugyi?

V: Debizonyhogyugyi. Éspediglen a pendrive besorolása 'USB mass storage device', azaz kölleni fog nekünk 1-2 dolog az USB alrendszerből is:

- usbcore (usb alaprendszer)
- uhci-hdc/ohci-hdc/ehci-hdc (USB port driverek, Intel/VIA chipsethez uhci, egyébhez ohci kell, ha USB 2.0 drivert akarunk akkor meg ehci)
- usb-storage (usb mass storage eszközök drivere)

A SCSI alrendszerből pediglen:

- scsi-mod (alap)
- sd-mod (merevlemezként akarjuk elérni a pendriveot)

K: Modulok megvannak, hogy érem el az eszközömet?

V: Fel kell mountolni ÷)

A scsi deviceok valahol ott vannak hogy:

/dev/scsi/host1/bus0/target0/lun0/part1 (ez a 2. scsi device 1-es partíciója)

Érdemes szimlinkeket csinálni hogy könnyebben hozzáférjünk, pl:

ln -s /dev/scsi/host1/bus0/target0/lun0/part1 /dev/sr1

Ez nyilván aszerint módosul hogy hanyadik scsi device a pendrive, hány partíció van rajta, stb.
------------------------------------------------
Megjegyzés/diszklémer:

Ezek a modulnevek 2.6.5-ös kernel alatt érvényesek, az egyéb kernelekért felelősséget nem vállalok. ÷) De pl a 2.4-es sorozatban az ohci-hdc/uhci-hdc/stb rendre usb-ohci/usb-uhci/...

gir Creative Commons License 2004.05.02 0 0 71
K: Mi a különbség a LILO és a GRUB között? Miért jobb a grub?

V:A GRUB előnye a teljesen más alapú működés és a grub shell amivel ezt ki lehet használni. A lilo-t mikor lefuttatod, az kiolvassa a konfigot, legenerálja a boot image-t és beteszi az MBR-be (a vinyó boot szektorába). Ezután ha bármit változtatsz a vinyó adatstruktúráján, a lilo nem fog semmit megtalálni, újra kell bootolni cd-ről, konfigot átírni, új image és új mbr. A lilo nem ért filerendszereket, csak megjegyzi a vinyón a megfelelő szektort ahol a kernel van és berántja - ha a kernel valamiért megváltozik vagy odébbmegy akkor a lilo meg van lőve.

Ezzel szemben a grub tud filerendszerekben navigálni, a konfigot nem előre olvassa be hanem mikor bebootolsz akkor keresi meg és ott helyben bootolás közben értelmezi. Ezért:

1. Nem kell minden változtatás után újrainstallálni, hiszen minden bootupkor újraolvassa a konfigot, minden változtatás a konfigfájlon automatikusan életbe lép
2. Ha valami gond van és megakad a bootfolyamat, akkor kapsz egy shellt, amiben el tudsz navigálni a kerneledig, azaz megmondod neki hogy ezen a partíción itt meg itt van a kernel amit indítani akarok, a grub pedig felismeri a partíció filerendszerét és behúzza a kernelt amit akarsz akkoris ha egy szó nincs róla a konfigban.

Azaz grubbal nem fogsz olyat látni hogy LI LI LI LI LI LI.... meg nem kell rescue cd-kről bootolni ha valami elromlik, simán bebootolsz, shellből megmondod hol a kernel és mit mountoljunk rootnak, aztán bent is vagy és megszereled a rendszert. A különbség nem ott van mikor minden rendben megy, hanem ha valami elromlik akkor grub-bal 5 perc megcsinálni, liloval sokszor órák ha nincs kéznél egy rescue cd.

Nomeg a grub mindenféle egzotikus trutyit be tud bootolni de ez linux szempontjából irreleváns. ÷)
-----------------------------------------------
Egy grub shell példa:
-----------------------------------------------
grub> kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791

[Linux-bzImage, setup=0x1400, size=0xe9a45]

grub> initrd (hd0,4)/initrd
[Linux-initrd @ 0x369000, 0x863c9 bytes]

grub> boot
-----------------------------------------------
Magyarázat:
1. a kernel paranccsal megadjuk hogy melyik kernelt akarjuk behúzni, a (hd0,4) az a hda5 partíciót jelenti (grubnál mindent nullától számozunk)
2. ha van initrd image a kernelhez akkor azt is megadjuk
3. a boot parancs elindítja a kernelt

További infók pl itt.

NevemTeve Creative Commons License 2004.04.28 0 0 70
K: Hogyan kellene az XFree86-nak megmagyarázni, hogy ne cserélje fel a Z-t az Y-nal, és a tizedespont is tizedespont legyen?
V: A /etc/X11/xkb/symbols/hu file elején a "Default layout" résznél az kell legyen, hogy:

default partial
xkb_symbols "default" {
 include "hu(102_qwerty_dot)"
};

Ha lejjebb lapozol, megnézheted, hogy még milyen más változatokat ismer...

kaktusztea Creative Commons License 2004.04.21 0 0 69
K: Realtek 8019(AS) chip-el szerelt ISA-s hálókártyám van. Hogy tudom beüzemelni Linux alatt?
V: Ehhez a Realtek chiphez (RTL8019AS) van egy kis DOS-os utility (RSET8019.EXE), amivel be lehet állítani a hálókártyát, aminek összesen 3 féle módja van!
1. Jumper mode: A kártyán kell beállítani egy jumperrel, hogy jumper, vagy jumperless módban legyen. Jumper mode-ban értelemszerűen a kártyán levő jumperekkel lehet(ne) beállítani a kívánt IRQ-t és I/O-t.
2. Jumperless mode - Egy sw-esen "beégetett" IRQ-t és I/O-t használ, amit a DOS-os utility-vel beállíthatunk.
3. Plug n play mode: A kártya automatikusan kap IRQ-t és I/O-t a Plug'n'Play felismerési folyamat során. A kártyát Jumperless-ből PnP módba szintén a DOS-os utility-vel lehet átállítani. Ez a kártya ne2000 kompatibilis, tehát az ne2000 támogatást forgassuk a kernelbe, vagy modulba (az utóbbi javasolt). Betöltése: modprobe ne

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!