Підключення принтера (parport + kernel> .1.32), Linux, Операційні системи, статті

Дмитро Румянцев, ( 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>

*

*