» »

USB printer pod Linux Suse 8.2 PRO

USB printer pod Linux Suse 8.2 PRO

iso2000 ::

Evo! Še ena težava za majstre. Sem si downlovdal driverje za printer (Lexmark Z33) in ko hočem instalirat napiše, da v jedru ni instaliranega USB vodila. Zazna mi pa USB čist ok. Kaj je za narest? Natančno kaj mi napiše sedajle ne morem pogledat. Bom zvečer sporočil.

LP

Brane2 ::

Mislim, da moraš v kernelu prevest tudi modul za USB printer.

iso2000 ::

Kako?

Brane2 ::

na www.kernel.org potegni dol tazadnjo verzijo kernela (IIRC 2.4.19), nato pa zadnji uradni patch zanjo (IIRC 2.4.21rc2 ali nekaj takega).

Postavi gzipan kernel source v mapo /usr/src nato pa ga tam razgzipaj in raztaraj z ukazi

gzip -d imekernelfileta.gz
tar -xvf imetarfajla.tar

Dobil boš novo mapo "linux-2.4.19whatever", kamor odnesi patch file in zazeni ukaz

"patch -p1 /znak za manjše/imepatch filetka"

Aja, če ima patchfile končnico gz, ga moraš najprej razgzipati

ko maš to narejeno pojdi eno mapo gor, torej v /src/usr

in se pobrigaj, da boš imel tam eno bližnjico z imenom "linux", ki bo kazala na tvojo mapo z imenom "linux-2.4-itd"

pri tem "linux-2.4-itd" zamenjaj z dejanjskim imenom nastavle mape...

če bližnjica obstaja a kaže drugam, jo izbriši.

Nato pa z ukazom "ln -s -linux.2.4.19-itd linux"

naredi bližnjico v /usr/src

Ta bližnjica je zato, da instalacijske rutine za mnoge programe vedo kam it iskat določene stvari, ki jih potrebujejo iz tekočega kernela. Ker imaš lahko na istem stroju lahko več kernelov, bližnjica kaže vedno na source mapo aktualnega kernela, torej v /usr/src/linux.
Linus sicer pravi, da po novem tega ni treba početi in da je celo škodljivo, vendar se jaz tega držim zaradi kompatibilnosti...


V glavnem, ko imaš to opravljeno, se lahko lotiš prevajanja kernela.

Skočiš v mapo kernel sourcea in rečeš:

"make mrproper"

S tem zadeva prevoha tvojo mašino in ugotovi, kam se bo instalirala ter počisti morebitne prevedene preostanke iz prejšnjih poskusov prevajanja kernela, če je kaj takega bilo.

Nato rečeš:

make menuconfig


S tem si zadeva naredi najprej nek majhen programček. Ki ti v DOSovskem stilu preko sistema menijev določitev, kaj bi rad od kernela. Ker je kernel jedro, ki je vezano na sam stroj, ima mnogo možnosti, ki so prilagojene mnogim mašinam, od Atarija preko Alfe in milijona drugih mašin (PowerPC) do tvojega PCja.
Meniji so razdeljeni po temah, od izbire procesorja, preko izbire podpore čipovju na plati, IDE portov, SCSI protokolov itd.
Za mnoge stvari lahko določiš ali naj bodo zabetonirane v kernel ali pa naj bodo v obliki lego kocke-modula, ki bo naložena v sistem samo v primeru potrebe.
Tako si lahko določiš tudi podprte filesysteme (znimivi zate so za Linux predvsem ext2, reiserfs in ext3 ter za branje Winstuffa, VFAT, NTFS, ISO 9660 in Joliet) itd itd.

ČE imaš v sistemu CDRW, potem recimo moraš določiti:
-v meniju "IDE" določiš podporo CD na ide OBVEZNO KOT MODUL
-v meniju IIRC "razno" določiš podporo LOOPBACKu bodisi vdelano ali kot modul
-tam tudi določiš SCSI emulacijo KOT MODUL
-v meniju SCSI določiš popdoro SCSIju KOT MODUL
-tam tudi določiš podporo SCSI CD(RW) napravam

Se tem recimo se prevedeta dva modula za delo s CDji:
-ide-cd, ki vidi CD kot navaden IDE CD
-ide-scsi, ki dela s CDjem kot ATAPI enoto v SCSI jeziku.

Ker zna CDRECORD peči na CDjke samo kot SCSI enoto, rabiš to emulacijo. Ker je lahko naenkrat aktiven samo eden od obeh modulov, ga lahko ročno aktiviraš in po potrebi prej deaktiviraš drugega.
-aktiviraš ga z ukazom modprobe ide-scsi ali ide-cd
-deaktiviraš ga z ukazom rmmod ide-scsi ali ide-cd

To je samo eden od primerov.

V glavnem, pod IIRC "printers" ali "I/O devices" ali nekaj takega imaš tudi "support for USB printing", ki ga pač aktiviraj...

Ko si v menijih opršavil svoje, rpeden zapustiš zadevo, obvezno shrani nastavitve pod nekim svojim imenom, da boš pozneje lahko delal popravke, ne pa vnašal vse znova.

V glavnem, kozapustiš menije, program shrani seznam spremenljivk v config file.

Ta file nato uporablja tvoj naslednji ukaz "make bzImage" da pač ve, kaj mora prevesti in kako vse skombinirati, da dobiš delujoč kernel.
Ko je tega konec, prevedi module z ukazom "make modules" in jih nato instaliraj z "make modules_install"

POtem ti samo še ostane, da prkopiraš sam ekrnel v mapo /boot

kernel boš našel v mapi arch/i386/kernel pod imenom bzImage. SKopiraj ga v /boot. Če tam že obstaja kernel pod tem imenom, pač uporabi drugo ime.

Nato moraš predelati config file GRUB-a da prepričaš bootloader, da ti ob bootanju ponudi tudi možnost bootanja tudi tega kernela.

Za to pa si preberi GRUBova navodila. V glavnem, spremenit moraš (dodati še eno paostavko) v datoteki /boot/grub/menu.lst

dr.J ::

Najprej poskusi kot root tole:

insmod printer

N.pr. v RedHat 9 je modul (=driver) za USB printer preveden in se nahaja v direktoriju
/lib/modules/2.4.20-9/kernel/drivers/usb

Če na podobni lokaciji v tvojem suse8.2 ni driverja printer.o, boš pač moral prevesti jedro.

Namesti zadnji kernel source za tvoj Suse8.2 (poglej za errata kernelom na www.suse.com), pojdi v /usr/src/linux-2.4.20 (ali nekaj takega - ne vem točno verzije za suse) in v datoteki .config nastavi
CONFIG_USB_PRINTER=m
Seveda je treba imeti tudi nekatere druge USB opcije izbrane, ampak te bi moralo biti izbrane po defaultu, vključno s printerjem in me čudi, da ni. Potem prevedi kernel in module ter namesti zadevo.

Zgodovina sprememb…

  • spremenil: dr.J ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Skoraj že obupal pri inštalaciji Linuxa

Oddelek: Operacijski sistemi
141396 (1215) Brane2
»

kako mountat USB ključ v linuxu

Oddelek: Operacijski sistemi
492461 (1968) Senzacionale
»

Linux in NTFS

Oddelek: Operacijski sistemi
331816 (1269) moj_nick
»

Kernel težave - xtime

Oddelek: Operacijski sistemi
91066 (965) operater
»

ipv6

Oddelek: Omrežja in internet
246446 (6118) Kostko

Več podobnih tem