Підключення принтера (parport + kernel> .1.32)

Дмитро Румянцев, (http://dimitr.obninsk.net)
Linux RSP Web Site

Не так давно разом з материнською платою від ABIT мені в руки потрапив дистрибутив Gentus Linux 2.0, побудований на базі RedHat 6.1 з ядром 2.2.13, який був негайно проставлений в конфігурації GNOME Workstation. Дистрибутив спочатку викликав неоднозначну думку про його придатності, проте, коли через пару днів в моєму розпорядженні була цілком працездатна робоча GNOME-станція, я зрозумів, що життя не таке вже й погана, як здається. І ось тут я з подивом виявив, що в ядрі геть відсутнє поняття lp.

# cat /proc/devices
Character devices:
1 mem
2 pty
3 ttyp
4 ttyS
5 cua
7 vcs
10 misc
14 sound
29 fb
36 netlink
128 ptm
136 pts
162 raw

Block devices:
1 ramdisk
2 fd
3 ide0
9 md
22 ide1

До цього моменту я працював в RedHat 5.2 (kernel 2.0.36), і ніяких проблем з друком не відчував. Запустивши printtool і встановивши Canon BJC-210, я й думати перестав про паралельних портах і іже з ними.
У ситуації з Gentus Linux справа йде в наступному. Починаючи з ядра 2.1.33 (для ядра 2.0.30 доступно у вигляді патча) пристрій lp є клієнтом нового пристрою parport. Введення parport вирішує деякі проблеми, пов'язані з lp – Тепер можна розділяти паралельні порти з іншими драйверами, динамічно пов'язувати порти з пристроями, не встановлюючи жорсткої відповідності між адресами I / O і номером порту і т. д. Основна відмінність полягає в тому, що з'явилася можливість динамічного зв'язування номера порту з lp – Пристроями. parport складається з двох модулів – загального, який забезпечує поділ порту, та архітектурно – залежного, який відповідає за використання порту на даній платформа, орабативая всі операції введення-виведення.
Більшість BIOS розпізнають паралельний порт як пристрій PnP. Взагалі, це досить кумедно, навіщо було городити город для такого тривіального пристрою. Краще буде відключити режим PnP, встановивши "LEGACY", "ISA" або "0x378" (у мене – 0x378), тому що буває, що драйвер порту не знаходить його.
Я ще не зустрічав дистрибутива Linux, в якому при інсталяції заповнювався б /etc/modules.conf (За винятком мережевого інтерфейсу і іноді звукової карти), тому спочатку підключимо LPT1 вручну, а потім автоматизуємо цей процес.
Переглянемо список завантажених модулів:

# lsmod
Module      Size   Used by
nls_cp437   3548   1 (autoclean)
vfat 9308 1 (autoclean)
fat 30304 1 (autoclean) [vfat]
opl3       11208   0
sb 33524 0
uart401     5936   0 [sb]
sound 58424 0 [opl3 sb uart401]
soundlow     300   0 [sound]
soundcore   2404   6 [sb sound]

Як видно, немає нічого, пов'язаного з паралельним портом. Завантажуємо модуль (всі модулі лежать в /lib/modules/`uname -r`/misc):

# insmod parport.o

Потім необхідно завантажити архітектурно – залежний модуль:

# insmod parport_pc.o io=0x378 irq=7

Або, якщо є другий паралельний порт,

# insmod parport_pc.o io=0x378,0x278 irq=7,auto

У першому випадку parport завантажується для єдиного порту з параметрами I / O address = 0x378, IRQ = 7 на платформі PC (для Sun Ultra / AX, наприклад, необхідно завантажувати parport_ax). Під другому випадку присутні 2 порти – LPT1 (I / O address = 0x378) і LPT2 (I / O address = 0x278, IRQ призначається автоматично).
Після завантаження parport_pc можна протестувати принтер. Увімкніть принтер і завантажте parport_probe

# insmod parport_probe.o
parport0: Printer, BJC-210 (Canon)

OK, принтер знайдений.
У каталозі /proc/parport створюються файли, що містять інформацію про паралельне порте і пристроях, підключених до нього (<X> позначає номер порту)

Після того, як з parport'Ом розібралися, залишається призначити порти.

# insmod lp.o parport=0

Все! Виконуємо для перевірки звичайне `ls > /dev/lp0`. Якщо після цього переглянути список завантажених модулів, то побачимо наступне:

# lsmod
Module Size Used by
parport_probe   2980   0 (autoclean)
parport_pc 5592 1 (autoclean)
lp 5052 0 (autoclean)
parport 7060 1 (autoclean) [parport_probe parport_pc lp]
….

Залишилось саме мале – автоматизувати процес ініціалізації порту. Для цього додамо в /etc/conf.modules наступні рядки:

alias parport_lowlevel parport_pc
options parport_pc io=0x378 irq=7
lp=parport0

Перезавантажуємо, перевіряємо список завантажених модулів, перевіряємо друк з консолі, і запускаємо X. Далі следут звичайна налаштування принтера через printtool.
  

Посилання

1. Документація на parport
2. Web-сайт parport
3. Linux On-Line – документація HOW-TO

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*