WICHTIG: Bei manchen Distributionen (etwa Mandrake 7.2
dürfte darunter fallen) ist der
vorkompilierte und vorinstallierte Kernel ohnehin schon
ohne die IEEE 1284-Unterstützung kompiliert worden.
Sie könnten darum versuchen diesen Abschnitt zunächst zu
überspringen und nur im Fehlerfall hierher zurückzukehren.
Damit der Treiber einwandfrei arbeiten kann, ist es
eventuell notwendig den IEEE 1284 Transfermodus für
den parallelen Port abzuschalten. Bei der SuSE 7.2
ist in der Standardinstallation leider dieser
Transfermodus aktiviert. Heißt das, dass man sich
als SuSE 7.2 Besitzer nun einen neuen Kernel kompilieren
muss, obwohl das Handbuch und die SuSE selbst stark
davon abraten? JA. Es ist aber nicht so schlimm, wie
es klingt. Die Kernel-Sourcen hat man sowieso benötigt,
um den Plustek-Treiber mit make erstellen zu
können, siehe Abschnitt 2.1
über die Kernelsourceninstallation in diesem Dokument.
Und das allerbeste
ist: Man wird den neuen Kernel gar nie booten müssen,
sondern braucht ihn nur zu kompilieren, da dann das
entsprechende parport bzw. parport_pc Modul ohne IEEE 1284
erstellt wird und danach also auch beim ganz normalen
booten wie bisher mit dem Standardkernel die IEEE 1284
Unterstützung automatisch weg ist.
Der Rest ist nun auch nicht mehr schwer. Aufpassen muss
man aber trotzdem: Wenn nämlich der Kernel und die
Kernelmodule neu kompiliert werden, dann werden nur die
in der Konfiguration wirklich als Module angewählten
Kernelmodule erstellt UND DIE ANDEREN MODULE GELÖSCHT!!!
Man muss also aufpassen, dass man nicht die bisher immer
verwendeten und benutzten Module ohne es zu merken
plötzlich verliert. Zwei bequeme Möglichkeiten sehe
ich, wie man das am begibt es,
um das zu verhindern:
Man loggt sich als Benutzer root ein und wechselt ins Verzeichnis /proc/. Dort sieht man sich einmal an, was für Dateien und Verzeichnisse da sind. Bei mir sieht das alles wir folgt aus:
Welcome to SuSE Linux 7.2 (i386) - Kernel 2.4.4-4GB (tty4). mathplanet login: root Password: Last login: Fri Sep 14 19:12:16 on tty4 Have a lot of fun... mathplanet:~ # cd /proc mathplanet:/proc # ls . 3 4 461 508 625 8 devices ide ksyms net stat .. 359 408 465 543 626 apm dma interrupts loadavg partitions swaps 1 387 409 486 544 641 asound driver iomem locks pci sys 197 388 421 487 545 7 bus execdomains ioports meminfo scsi sysvipc 2 391 422 498 553 735 cmdline fb irq misc self tty 201 392 433 5 554 736 config.gz filesystems kcore modules slabinfo uptime 216 393 446 507 6 745 cpuinfo fs kmsg mounts splash version mathplanet:/proc #Die Datei config.gz ist es! Diese enthält die Konfiguration von genau dem Kernel, der momentan gebootet ist. Diese Datei kopiert man einfach ins Verzeichnis mit dem aktuellen Kernelsourcen, etwa so:
mathplanet:/proc # cp config.gz /usr/src/linux mathplanet:/proc # cd /usr/src/linux mathplanet:/usr/src/linux # dir co* -r--r--r-- 1 root root 9486 Sep 14 19:22 config.gz mathplanet:/usr/src/linux # gunzip config.gz mathplanet:/usr/src/linux # mv config config.VorinstallierterKernel mathplanet:/usr/src/linux # exitJetzt liegt die Konfiguration des voreingestellten Kernels bereit, sodass nur noch geringfügige Modifikationen nötig sein sollten, die wir gleich im Detail besprechen:
Nachdem das so einfach ist, machen wir uns nun ans Werk: Wir loggen uns zuerst wieder als root ein und gehen sodann nach /usr/src/linux. Bei mir sieht das etwa so aus:
Welcome to SuSE Linux 7.2 (i386) - Kernel 2.4.4-4GB (tty3).Dort starten wir die Kernelkonfiguration, und zwar durch
mathplanet login: root
Password:
Last login: Sat Sep 1 12:27:25 on tty3
Have a lot of fun...
mathplanet: # cd /usr/src/linux
mathplanet:/usr/src/linux #
mathplanet:/usr/src/linux # make menuconfigBei mir erscheint darauf ein Menü der folgenden Form:
Linux Kernel v2.4.4 Configuration %________________________________________________________________________________ _________________________________ Main Menu _________________________________ _ Arrow keys navigate the menu. <Enter> selects submenus --->. _ _ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, _ _ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help. _ _ Legend: [*] built-in [ ] excluded <M> module < > module capable _ _ _________________________________________________________________________ _ _ _ Code maturity level options ---> _ _ _ _ Loadable module support ---> _ _ _ _ Processor type and features ---> _ _ _ _ General setup ---> _ _ _ _ Binary emulation of other systems ---> _ _ _ _ Memory Technology Devices (MTD) ---> _ _ _ _ Parallel port support ---> _ _ _ _ Plug and Play configuration ---> _ _ _ _ Block devices ---> _ _ _ _ Multi-device support (RAID and LVM) ---> _ _ _ _ Networking options ---> _ _ _ _________________________________________________________________________ _ _____________________________________________________________________________ _ <Select> < Exit > < Help > _ _____________________________________________________________________________Bevor wir nun loslegen und die richtigen Einstellungen aktivieren, sollten wir zuerst die vorhandene Konfiguration des voreingestellten Kernels laden. Diese können wir dann modifizieren wie es uns gefällt. Das Risiko essentielle Module zu verlieren wird so minimiert. Wir gehen also im Menu ganz nach unten und wählen Load an Alternate Configuration File. Dann bekommen wir ein Menu, wo wir die gewünschte Konfiguration laden können. Wir tragen also ein:
_______________________________________________________
_ Enter the name of the configuration file you wish _
_ to load. Accept the name shown to restore the _
_ configuration you last retrieved. Leave blank to _
_ abort. _
_ ___________________________________________________ _
_ _config.VorinstallierterKernel _ _
_ ___________________________________________________ _
_______________________________________________________
_ < Ok > < Help > _
_______________________________________________________
Danach sollte die Konfiguration vom vorinstallierten Kernel geladen sein.
Man erkennt sie leicht daran, dass praktisch jeder Menupunkt
und jedes Kernelmodul aktiviert ist, auch wenn es so ,absurd` ist
wie Amatuerradio usw.. Man wird vielleicht Lust bekommen manche der Optionen,
dort wo man sich sicher ist, dass sie für das eigene Computersystem
völlig überflüssig sind, abzuschalten, sowie den eigenen Prozessortyp
genauer einzustellen, aber das muss man nicht unbedingt. Wir machen hier
nur die für den Plustek-Treiber notwenidgen Änderungen:
Dazu wählt man nun den Menüpunkt Parallel port support --> an. Dann
kommt ein Untermenü, etwa von folgender Form:
___________________________ Parallel port support ___________________________ _ Arrow keys navigate the menu. <Enter> selects submenus --->. _ _ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, _ _ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help. _ _ Legend: [*] built-in [ ] excluded <M> module < > module capable _ _ _________________________________________________________________________ _ _ _ <M> Parallel port support _ _ _ _ <M> PC-style hardware _ _ _ _ [*] Use FIFO/DMA if available (EXPERIMENTAL) _ _ _ _ [ ] SuperIO chipset support (EXPERIMENTAL) _ _ _ _ [ ] Support foreign hardware _ _ _ _ [*] IEEE 1284 transfer modes _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _________________________________________________________________________ _ _____________________________________________________________________________ _ <Select> < Exit > < Help > _ _____________________________________________________________________________Wie man sieht sind hier die Menüpunkte Parallel port support und PC-style hardware als Module konfiguriert (das M ganz vorne zeigt dies an). Das ist sehr erfreulich, denn der IEEE 1284 transfer mode, den wir wegbekommen wollen, ist demnach auch NUR IN DIESEM MODUL. Wenn wir also den Menüpunkt IEEE 1284 transfer mode abwählen und dann den Kernel neu kompilieren, dann wird das Modul auch neu erstellt und das alte Modul dadurch ersetzt. Wir stellen also um, sodass wir
___________________________ Parallel port support ___________________________ _ Arrow keys navigate the menu. <Enter> selects submenus --->. _ _ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, _ _ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help. _ _ Legend: [*] built-in [ ] excluded <M> module < > module capable _ _ _________________________________________________________________________ _ _ _ <M> Parallel port support _ _ _ _ <M> PC-style hardware _ _ _ _ [*] Use FIFO/DMA if available (EXPERIMENTAL) _ _ _ _ [ ] SuperIO chipset support (EXPERIMENTAL) _ _ _ _ [ ] Support foreign hardware _ _ _ _ [ ] IEEE 1284 transfer modes _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _________________________________________________________________________ _ _____________________________________________________________________________ _ <Select> < Exit > < Help > _ _____________________________________________________________________________erhalten. Danach verlassen wir die Kernelkonfiguration wieder und antworten auf die Frage
____________________________________________________________
_ Do you wish to save your new kernel configuration? _
____________________________________________________________
_ < Yes > < No > _
____________________________________________________________
natürlich mit Yes. Jetzt ist der neue kernel konfiguriert.
Alles weitere sollte sich nun in einer Zeile erledigen lassen. Wenn man den ganzen Kernel kompilieren lassen will, nur um sicher zu gehen oder weil man ihn vielleicht statt des Standardkernels verwenden will, schreibt man am besten
make dep clean bzImage modules modules_installin eine Zeile, damit auch wirklich ALLES erledigt wird. (Die Kernelkompilierung auf diese Weise hat bei mir etwa zweieinhalb Stunden gedauert!) Eventuell würde aber auch nur
make modules modules_installauch ausreichen. Ich habe es nicht getestet. Möglicher weise kann man sich so aber sehr viel Zeit ersparen.
depmod -a modprobe -r parport modprobe -r parport_pc modprobe parport modprobe parport_pcJetzt sollte die IEEE 1284 Unterstützung wirklich weg sein, und man kann bereits versuchen den Plustek-Treiber zu laden.