- Иллюстрированный самоучитель по Linux
- Параллельные порты в Linux
- Последовательные порты в Linux
- USB-порты в Linux
- Linux узнать адрес lpt
- cnc-club.ru
- Как найти адресс LPT в Linux?
- Как найти адресс LPT в Linux?
- Re: Как найти адресс LPT в Linux?
- Re: Как найти адресс LPT в Linux?
- Re: Как найти адресс LPT в Linux?
Иллюстрированный самоучитель по Linux
В среде Linux каждому периферийному физическому устройству или порту подключения сопоставляется один или несколько файлов в специальном каталоге / dev. Это относится к жестким дискам, устройствам CD-ROM, параллельным и последовательным портам.
Основной принцип достаточно прост. Рассмотрим для примера жесткий диск.
В Linux каждому жесткому диску IDE присваивается имя hdx, где х принимает значения «а» (для первого диска на первичной шине IDE), «b» (для второго диска на первичной шине IDE), «с» (для первого диска на вторичной шине IDE) и т.д. Таким образом, имя главного вторичного диска – /dev/hdc.
Примечание
Жесткие SCSI-диски и SCSI-диски CD-ROM аналогичным образом обозначаются sdx.
В каталоге /dev имеется составляющая для каждого дискового раздела. Например, второму разделу первичного подчиненного диска присваивается имя /dev/hdb2, первому разделу вторичного главного – /dev/hdcl.
Параллельные порты в Linux
Рассмотрим параллельные порты. В DOS и Windows параллельным портам присваиваются имена LPT1:, LPT2:, LPT3: и т.д. Как правило, в ПК один параллельный порт с именем LPT1:.
В Linux параллельным портам сопоставляются файлы устройств 1рх, где х – номер порта. Это основное отличие от DOS и Windows: нумерация портов начинается не с единицы, а с нуля, так что LPT1: в Linux соответствует /dev/lp0, a LPT2: – /dev/ lpl. В DOS возможна ситуация, когда единственный параллельный порт компьютера имеет имя, отличное от LPT1:; в Linux этому порту будет присвоено имя /dev/lpO, как первому доступному порту.
Теперь перейдем к последовательным портам, понимание принципов рабств которых важно для правильной установки модема.
Последовательные порты в Linux
В Linux каждому последовательному порту сопоставляется два файла устройств – для исходящих и входящих соединений. Файлы исходящих соединений называются ttySx, где х — номер, начинающийся с нуля. Таким образом, порту СОМ1: из DOS в Linux соответствует /dev/ttyS0, COМ2: – /dev/ ttySl. В ранних версиях Linux последовательному порту сопоставлялся еще один файл устройства. Это файл сиах, где х – номер, начинающийся с нуля. Таким образом, в этих версиях СОМ1: соответствовали файлы /dev/ ttyS0 и /dev/cua0, COM4: – /dev/ttyS3 и dev/сuаЗ. Адреса портов сведены в таблицу 18.2.
Табл. 18.2. Последовательные порты в DOS и Linux.
Имя DOS | Файлы устройств Linux | Унаследованные файлы устройств |
---|---|---|
СОМ1: | /dev/ttyS0 | /dev/cua0 |
COM2: | /dev/ttyS1 | /dev/cua1 |
COM3: | /dev/ttyS2 | /dev/cua2 |
COM4: | /dev/ttyS3 | /dev/cua3 |
Но запомнить эти имена устройств для большинства людей сложно. К счастью, при конфигурировании модема большинство Linux-дистрибутивов организует связь между файлом /dev/modem и реальным устройством. Это можно проверить, выполнив команду 1s – 1 /dev/modem. Результат должен быть таким:
lrwxrwxrwx 1 root root 10 Feb 3 19:21 /dev/modem – > /dev/ttyS0
Примечание
В современных версиях Linux используется только файл /dev/ttySx, поддержка же /dev/cuax остается исключительно для обеспечения совместимости. Со временем надобности в поддержке этого файла не будет.
USB-порты в Linux
Теоретически, можно подсоединить до 32 USB-модемов к Linux-компьютеру. Чтобы использовать USB-модемы, необходимо убедиться в том, что соответствующие USB-модули включены в ядро (вопросы конфигурирования ядра обсуждаются в гл. 20). Некоторые USB-модули уже включены в состав последних дистрибутивов, включая Red Hat Linux 7.1.
Для USB модемов также необходим модуль Communication Device Class Abstract Control Module, кратко acm; о. Если он не входит в ядро, следует включить его в текущую конфигурацию. В Red Hat Linux 7.1 необходимо компилировать этот модуль в состав ядра. Более подробно вопросы модификации ядра рассмотрены в гл. 20. Покончив с формированием необходимого ядра, можно запускать следующую команду:
# /sbin/insmod /lib/modules/2.4.2-2/kernel/drivers/usb/acm.o
Если версия вашей команды insmod или ядра другая, задайте ее в команде соответствующим образом. Используемый в вашем Linux-дистрибутиве каталог может отличаться.
Соответствующие устройства уже должны существовать в каталоге /dev/usb. Проверьте это с помощью команды Is – I /dev/usb/ ttyACM*. Результат должен выглядеть приблизительно так:
crw-rw-- – 1 root root 188, 0 Aug 24 09:00 /dev/usb/ttyACM0 crw-rw-- – 1 root root 188, 0 Aug 24 09:00 /dev/usb/ttyACM1 crw-rw-- – 1 root root 188, 0 Aug 24 09:00 /dev/usb/ttyACM2 crw-rw-- – 1 root root 188, 0 Aug 24 09:00 /dev/usb/ttyACM3
Если у вас результат отличается от приведенного, выполните следующую команду:
mknod /dev/usb/ttyACM0 с 166 0
Повторите эту команду, подставив ttyACM1, ttyACM2 и другие USB-порты по мере необходимости.
Linux узнать адрес lpt
LPT (параллельный порт) предназначен для связи компьютера с внешними (перефирийными) устройствами и имеет базовый адрес &H378 (LPT1), &H278 (LPT2), &H3BC (LPT3), что в десятичной системе соответствует адресам: 888 (LPT1), 632 (LPT2) и 956 (LPT3).
Эти три адреса являются базовыми и при загрузке операционной системы происходит опрос именно этих трех адресов. По этим адресам посылается байт после чего происходит считывание этого байта. Если считанный байт равен записанному, то по данному адресу обнаруживается активный LPT-порт. На этом принципе и основан алгоритм программы LPT Port Scaner , о которой пойдет речь ниже. Современные компьютеры всё реже стали оснащать LPT — портами, что уж говорить о ноутбуках, на которых они и вовсе исчезли, почем не заслуженно. Существует множество программаторов, работающих через LPT — порт. Что же делать пользователям этих устройств? Рынок наводнили разного рода адаптерами, работающими через интерфейс USB, PCMCIA (произносится пи-си-эм-си-ай-эй), ExpressCard (ранее NEWCARD) и др. и теперь нам есть из чего выбрать. Но даже сделав правильный выбор мы не всегда можем прийти к желаемому результату, как это было со мной. Купив PCMCIA to LPT карту я надеялся оснастить свой ноутбук полноценным LPT — портом, но тут меня ожидало разочарование: мои программы никак не могли найти порт, как и программы сторонних производителей. Оказалось, что адрес, выделяемый устройством не всегда находится в стандартном диапазоне. Это и стало причиной, сподвигшей меня к написанию программы LPT Port Scaner .
Рисунок 1. USB to LPT
Рисунок 2. PCMCIA to LPT
Рисунок 3. Expresscard to LPT
Рисунок 4. PCI to LPT Если Вы не можете обойтись без LPT — порта в силу сложившихся обстоятельств или еще чего-нибудь, то Вы можете преобрести одно из вышеуказанных устройств. Однако, при использовании таких адаптеров зачастую возникают проблемы с адресами портов, т. к., они бывают расположены не в стандартном для LPT — порта адресном пространстве, а в пространстве, присвоенном устройству во время обнаружения, что особенно касается Plug and Play устройств. Существует множество программ для программаторов, работающих через LPT и поддерживающих ручную настройку адресации. Такие программы не найдя LPT — потра по стандартному адресу обычно вместо адреса выводят надпись «Hex». Зная адрес порта можно ввести его вручную, если того позволяет ПО, с которым Вы работаете. Попробуем разобраться в этом на примере адаптера PCMCIA to LPT. После установки устройства и драйвера к ниму в диспетчере устройств появится устройство с именем LPT Port1 или что-то в роде того (На Рис. 5 PCI Parallel Port (LPT3)). Кликаем на Устройстве, после чего переходим на вкладку «Ресурсы» (Рис.6.), где отчетливо видим все доступные ресурсы этого устройства и диапазоны ввода/вывода. Адрес LPT — Порта будет находится в диапазоне ввода/вывода ресурса устройства, который отображается в шестьнадцатиричной системе счисления (0 1 2 3 4 5 6 7 8 9 A B C D E F) в столбце «Параметры». Теперь, для того, чтобы найти адрес LPT — Порта, Вам понадобится программа LPT Port Scaner .
Рисунок 5. Диспетчер устройств. Рисунок 6. Свойства LPT — Порта. Рисунок 7. Интерфейс программы LPT Port Scaner
Рисунок 8. Распиновка LPT — Порта. Сразу должен предупредить, что программа LPT Port Scaner использует библиотеку inpout32.dll, которая находится в архиве с программой и всегда должна находиться в папке с ней, иначе возникнет ошибка. Так же, в архиве находится картинка с распиновкой LPT — порта. И так, как было сказано выше, адрес порта находится в диапазоне ввода/вывода ресурса устройства в столбце «Параметры». По-этому, после того, как вы скачали программу и запустили её (рисунок 7) имеет смысл узнать в каком диапазоне находится адрес порта на Вашем компьютере (как это сделать сказано выше.). Определив минимальное значение ресурса, вводим его в поле рядом с надписью «С адреса:» (на рисунке 6 минимальное значение = FDE0). Следом определяем максимальное значение (на рисунке 6 оно равно FDEF), вводим его в поле рядом с надписью «по адрес:» и нажимаем кнопку «Задать», после чего в полях справа должен определиться диапазон в десятичной (Dec) системе счисления. Ну а теперь можно нажать кнопочку «Scan» и в текстовом окне справа выведется результат опроса портов в заданном диапазоне.
В столбце «Dec» выводится адрес в десятичной системе счисления
В столбце «Hex» — в шестьнадцатиричной.
В столбце «Запись» выводится число, посылаемое в порт и оно зависит от параметров, выставленных в разделе «Вывод данных» (по умолчанию флажки установлены так, чтоб число, посылаемое в порт было равно 0).
В столбце «Чтение» выводится считанное из порта число. Если оно равно записанному, то, возможно, по данному адресу находится искомый LPT. А самым простым способом, по моему мнению, является поиск в столбце «Чтение» числа 120 (Рисунок 7). Это регистр состояния (status) и если не одна из цепей не заземлена (разьем отключен), то считываемое число будет именно 120. Строкой выше будет находиться регистр данных (Data) с цепями D0-D7, а строкой ниже — регистр управления (Control) с цепями C0-C3 (рисунок 8).
Таким образом мы получили адреса FDE8, FDE9 и FDEA, которые в нашем случае соответствуют стандартному LPT — Порту с адресами 378, 379 и 37A. Чтобы убедиться в том, что мы нашли именно нужный нам порт, можно вставить светодиод прямо в разъем порта анодом в любую цепь с D0 по D7 (c 2-го по 9-й пин см. рисунок 8), катодом в любую цепь с 18-го по 25-й пин (это общая земля), после чего необходимо выставить верхний диапазон равный нижнему (например: с адреса FDE8, по адрес FDE8), и поставить соответствующую галку в разделе «Вывод данных». После чего при каждом нажатии кнопки «Scan» цепи регистров будут включаться в соответствии с конфигурацией галок в разделе «Вывод данных».
Если вы захотите подключить светодиод к регистру управления Control (1-й, 14-й, 16-й и 17-й пин(C0-C3)), то учтите, что три из четырех цепей инвертированы. В программе учтена эта особенность, и по умолчанию на всех цепях регистров будет логический ноль. Скачать программу для сканирования LPT — Портов LPT Port Scaner v1.0.0 Источник
cnc-club.ru
Как найти адресс LPT в Linux?
Как найти адресс LPT в Linux?
Сообщение aftaev » 10 июн 2011, 20:36 Пытаюсь к ноуту подключить плату MESA 7i43 через PCMCIA — LPT = не работает. На плате 7i43 возле штекера LPT есть группа светодиодов 8шт. Полагаю они должны светиться при обращении к 7i43. Есть специальная плата для проверки LPT портов. Втыкаю ее к PCMCIA — LPT .
При включении ноута показывает 00: Сигнал через PCMCIA проходит. Нужно в настройках ЕМС прописать правильный адресс LPT порта. Как его найти в Linux?