Как найти адресс LPT в Linux?

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

В /proc/sys/dev/parport/parport0/base-addr

только

888 1912
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Попробовал посмотреть устройства PCI:

sun@sun-desktop:~$ lspci
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 01)
00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation N10/ICH7 Family SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
04:00.0 Non-VGA unclassified device: NetMos Technology PCI 9835 Multi-I/O Controller (rev 01)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Ворон226 писал(а):В /proc/sys/dev/parport/parport0/base-addr

только

888 1912
Получается так:

888 - это адрес LPT в десятичной системе, а в 16ричной будет - 378
1912 = 778

Прописываю адрес в .hal

loadrt hal_parport cfg="0x778 out "

Карточка не работает...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Какой-то бред!
После очередной проверки адреса 778 при запуске LCNC получил ошибку адреса порта. Перегрузил комп. Выполнил в терминале:
sun@sun-desktop:~$ grep parport /proc/ioports
0378-037a : parport0
0778-077a : parport0
1020-1022 : parport1
1023-1027 : parport1

ПОЯВИЛСЯ порт 1020! Прописал его и карточка заработала!!!
В чем может быть причина такого поведения компа?

Также при проверки /proc/sys/dev/parport появилась папка parport1, а в ней base-addr, в котором появился порт

4128 0
что означает, что есть parport1 по адресу 1020

БРЕД
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Перегрузил комп - опять нет parport1... Что делать?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Serg »

В BIOS поставь "Other OS" или как-то там, но не про виндовс.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Ни разу не нашел в БИОСе упоминания об ОС... И порты включены...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Serg »

Ну может что-то типа "PnP OS" - надо выключить.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Прочитал о PnP OS и обо всем, что касается распределения ресурсов - в своем БИОСе не нашел опции по Plug-@-Play устройствам... Беда...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Сергей Саныч »

Так, к слову - адрес 778h не имеет отношения к parport1. Это дополнительные регистры parport0 (378h + 400h). Используются только в режиме ECP.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Это я уже додумал...
Завтра буду проверять на другой карточке: в чем причина? в железе или в ПО? Посмотрим...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Serb01 »

Дано:
Пульт:
http://www.aliexpress.com/snapshot/263999341.html
PCI LPT:
STLabs MCS9815
Ubuntu 10.04 с LinuxCNC.
Самодельная плата опторазвязки.
Задача - скрестить всё с максимальным результатом.
В дополнение приобрёл 2 кабеля LPT ( как я наивно полагал - они впоследствии оказались урезанными шнурками ).
Подключил PCI LPT , подключил шнурок - в нём оказались распаяны только данные - ножки 1-9 и земля - для выяснения этого ушло полдня пока не вскрыл разъёмы.
Сначала подключил всё к намамному LPT порту - убедился что всё работает.
Настройки порта в HAL - loadrt hal_parport cfg="0x378 out ". Проверить можно без опторазвязки, подключив к нужному входу +5В от компьютера через сопротивление 5кОм, через LinuxCNC - Санок - HAL-скоп, выбрав нужный сигнал в настройках сигналов. У меня энкодер, поэтому проще (или сложнее). Кстати по настройкам энкодера здесь http://cnc-club.ru/forum/viewtopic.php? ... 360#p26578.
Думал - сейчас переключу шнурок, установлю драйвер, перепишу адрес порта и всё - но игры только начинались...
Попытки установить дрова на Linux - это как заставить русского работать - если дрова не нужны будет куча отговорок типа: WARNING: All config files need .conf: /etc/modprobe.d/emc2, и др.
В попытках установить драйвер прошло ещё полдня...
Смеркалось. Плюнув на всё решил попробовать перебрать порты которые выдаёт команда lspci -v:

Код: Выделить всё

03:00.0 Communication controller: NetMos Technology PCI 9815 Multi-I/O Controller (rev 01)
	Subsystem: LSI Logic / Symbios Logic Device 0020
	Flags: medium devsel, IRQ 5
	I/O ports at df00 [size=8]
	I/O ports at de00 [size=8]
	I/O ports at dd00 [size=8]
	I/O ports at dc00 [size=8]
	I/O ports at db00 [size=8]
	I/O ports at da00 [size=16]
	Kernel modules: parport_pc
И, о боги, первый же адрес I/O ports at df00 дал положительный результат.
Потом уже не помню на каком форуме прочитал что нужно намамный порт BIOSe переключить в режим ЕРР
сделать его вторым и настроить на вход а PCI LPT первым и настроить на выход - в итоге HAL выглядит так:

Код: Выделить всё

loadrt hal_parport cfg="0xdf00 out 0x378 in "
. Получаем 12 выходов и 5 входов в parport0 и 13 входов и 4 выхода parport1 - вот как-то так...
Вложения
IMG_20131220_234854.jpg (7519 просмотров) <a class='original' href='./download/file.php?id=28666&sid=fbb2a0d6189a7ba330d3136b0d5236f8&mode=view' target=_blank>Загрузить оригинал (1.69 МБ)</a>
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Serb01 писал(а):настроить на вход а PCI LPT первым и настроить на выход - в итоге HAL выглядит так:


loadrt hal_parport cfg="0xdf00 out 0x378 in "

Получаем 12 выходов и 5 входов в parport0 и 13 входов и 4 выхода parport1 - вот как-то так...
Как-то у меня не уложилось именно вот это подключение порта в режиме входов и в режиме выходов... Рахве это делается только прописыванием строчки в HAL, или именно входы и выходы определяем для карточки в БИОСе?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Serb01 »

В БИОСе, LPT порт, который на материнке, устанавливаешь в режим EPP.
Режим ЕРР (Enhanced Parallel Port) (EPP Mode) - двунаправленный обмен данными. Управляющие сигналы интерфейса генерируются аппаратно во время цикла обращения к порту. Эффективен при работе с устройствами внешней памяти и адаптерами локальных сетей.
http://life-prog.ru/view_shpargalkiCompStroi.php?id=32
Строкой инициализации порта в HAL

Код: Выделить всё

loadrt hal_parport cfg="0xdf00 out 0x378 in "
назначаешь в каком режиме работать пинам, которые могут быть и входами и выходами

Код: Выделить всё

0x378 in
, а дальше настраиваешь входы-выходы типа:

Код: Выделить всё

setp parport.0.pin-01-out-invert 1
net xenable => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
.
Как настроить в таком режиме поры на PCI карте в Linuxe я не знаю, но как говорил мой старый друг ещё во времена ZX Spectrum - программно можно всё.
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Ворон226 »

Я правильно понял?

В БИОСе мы только назначаем двунаправленный режим порта, а уже в HAL , если " <адрес> in ", то порт с 13 входами и 4 выходами, а если " <адрес> out ", то порт с 12 выходами и 5 входами...

Так?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Serb01 »

Так.
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Serb01 »

Кстати:
Serb01 писал(а):Как настроить в таком режиме поры на PCI карте в Linuxe я не знаю
Вот и ответ:
http://cnc-club.ru/forum/viewtopic.php?f=15&t=150#p1456
В моём варианте возможно 2 порта на вход и 1 порт на выход :good:
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Serb01 »

LPT в режиме OUT:
01 pin - out;
02 pin - out;
03 pin - out;
04 pin - out;
05 pin - out;
06 pin - out;
07 pin - out;
08 pin - out;
09 pin - out;
10 pin - in;
11 pin - in;
12 pin - in;
13 pin - in;
14 pin - out;
15 pin - in;
16 pin - out;
17 pin - out;

LPT в режиме IN:
01 pin - out;
02 pin - in;
03 pin - in;
04 pin - in;
05 pin - in;
06 pin - in;
07 pin - in;
08 pin - in;
09 pin - in;
10 pin - in;
11 pin - in;
12 pin - in;
13 pin - in;
14 pin - out;
15 pin - in;
16 pin - out;
17 pin - out;
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
slk
Почётный участник
Почётный участник
Сообщения: 280
Зарегистрирован: 03 мар 2014, 09:42
Репутация: 24
Настоящее имя: Вячеслав
Откуда: РФ, НСО, Бердск
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение slk »

Доброго дня всем!
может есть у кого дрова под такую плату http://ru.aliexpress.com/item/Parallel- ... rue#extend под Линукс?
поделитесь пожалуйста?!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Как найти адресс LPT в Linux?

Сообщение Nick »

А что ты хочешь на нем делать? Он похоже не для всего подойдет, даже китайцы пишут что supports printers only.
Ответить

Вернуться в «LinuxCNC»