LINUX.ORG.RU

Mochip 9865 RS-232 на Centos 7

 


1

0

Добрый день. Использовал я плату расширения com портов Mochip 9865. В Centos5-6 c заводским драйвером и всё было «пучком». Но вот решил проверить на Centos 7.3(x64) 3.10.0-514.el7.x86_x84 1.Он самостоятельно находит (не используя заводской драйвер) это оборудование и «отмапивает» его в /dev/ttyS1(2,3,4..N) в заводском было /dev/ttyD1(2,3) 2.И вроде бы хорошо драйвер производителя ставить не надо...НО работает оно не так как хотелось. Первое чтение из порта после загрузки всегда с мусором. Следующие нормально. Например присоединил я сканер штрихкода rs-232..После перезагрузки сканирую(пикаю),- штрихкод с мусором...дальше сканирую всё номально. Виноват не Centos 7 /другие rs-232(ну например что на плате) работают сразу отлично. Такое поведение Mochip 9865 сильно снижает сферу его использования в Centos 7. Может кто-то знает как заставить форсированно линукс не использовать собственный драйвер, а использовать заводской.mcs9865.ko(Естественно modprobe mcs9865 ничего не даёт..ибо устройство занято «своим» драйвером.) P.S писал в тех.поддержку пока молчат.

На центоси ядро своеобразное, я бы на дебиане или убунте для начала попробовал. Иначе вы попадаете в ловушку между перепатченным ядром и отсутствующей техподдержкой.

steemandlinux ★★★★★ ()

Заблокируй загрузку своего драйвера.

kostik87 ★★★★★ ()

Может кто-то знает как заставить форсированно линукс не использовать собственный драйвер

Смотришь драйвер : lspci -k
Добавляешь в blacklist: blacklist parport_serial (ну или какой там у тебя) в /etc/modprobe.d/mcs9865.conf

arson ★★★★★ ()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от arson

Так мне наоборот надо...Нужно чтоб использовался mcs9865 для Moship 9865...И свои собственные Centosовские для остальных чипов rs-232.

irbis_al ()
Ответ на: комментарий от arson

black list =Чёрный список. Вы сказали добавить mcs9865 в чёрный список /etc/modprobe.d/mcs9865.conf Ну а мне в чёрный список надо добавить собственный драйвер Centos но только не весь ,а для 9865...

irbis_al ()
Ответ на: комментарий от irbis_al

blacklist parport_serial
Вы сказали добавить mcs9865 в чёрный список

Врешь :) lspci -k смотрел?

arson ★★★★★ ()
Ответ на: комментарий от irbis_al

Тебе сказали добавить строку с именем модуля, которое ты увидишь в выводе команды

lspci -k
вот такую строку:
blacklist имя_модуля
файл предложили назвать mcs9865.conf.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

Команду делал 07:01.0 Serial controller: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller Subsystem: Device a000:1000 Kernel driver in use: serial Kernel modules: parport_pc

Т.е мне нужно заблокировать parport_pc? Но у меня есть ещё на плате rs-232 и он использует тоже parport_pc(Или я ошибаюсь? ) Добавив его parport_pc в чёрный список я лишаюсь потов на плате.(К которым претензий нет)

irbis_al ()
Ответ на: комментарий от arson

Т.е у Вас сохранились другие порты? не 9865(у Вас 9855) (Я не очень силён в этом) Т.е...я делаю команду blacklist parport_pc Ну и потом modprobe mcs9865

irbis_al ()
Ответ на: комментарий от irbis_al

Т.е у Вас сохранились другие порты?

Да и это было не 4.12, а 3.10, но драйвер parport_serial. Пробуй.

arson ★★★★★ ()
Ответ на: комментарий от irbis_al

В таком случае тебе нужно грузить модуль mcs9865 раньше модуля parport_pc.

Честно я не знаю как настроить приоритет загрузки модулей или указать, что для вот этого устройства нужно заместо ядерного модуля использовать другой.

Поэтому выход вижу один:
- заблокировать загрузку parport_pc автоматически ядром.
- написать скрипт, который будет загружать в начале модуль mcs9865, затем уже модуль parport_pc.

modprobe mcs9865
modprobe parport_pc

скрипт добавить куда-нибудь в загрузку.

kostik87 ★★★★★ ()
Ответ на: комментарий от arson

Я скорее такой продвинутый пользователь linux ...а обновить ядро наверное к высокому пилотажу относится. Меня в принципе и в текущем Centose всё устраивает(Меня держит СУБД Oracle...Как настоящая по developerской лицензии, так и бесплатная...он(oracle) очень хорошо работает под Centos(Мне кажется лучше чем сертифицированные линукса).. (Под тем же дебианом...я например не могу поднять оракле...или же там что-то не так работает) Помимо этого POS (Кассовое оборудование...сенсорные терминалы). Если решу проблему с Moship ...то вообще всё завелось.

irbis_al ()
Ответ на: комментарий от irbis_al

Я скорее такой продвинутый пользователь linux ...а обновить ядро наверное к высокому пилотажу относится.

Ты ни когда не делал yum update?!
Если у тебя оборудование без доступа к интернету, то качай последний rolling iso (установочный образ с последними обновлениями) — https://buildlogs.centos.org/rolling/7/isos/x86_64/ (CentOS-7-x86_64-Everything-1706-01.iso 2017-07-03)

arson ★★★★★ ()

Можно попробовать выгрузить стандартный драйвер и загрузить свой:

# rmmod mcs9865
# insmod /home/irbis_al/mcs9865.ko
alx777 ()
Ответ на: комментарий от arson

Прикиньте никогда не делал yum update ...всегда только yum install :-) По текущей проблеме. Пока не получилось. Так ли я всё сделал. 1.Создал файл /etc/modprobe.d/blacklist.conf(его не было) Его содержание blacklist parport_pc

Перезагружаюсь Потрты отмапились. lspci -k даёт ту же картину что и выше.

делаю rmmod parport_pc Пишет Ошибку модуль не загружен.

2.Комментирую /etc/modprobe.d/blacklist.conf #blacklist parport_pc Перезагружаюсь.... lspci -k даёт ту же картину что и выше. rmmod parport_pc Комада отрабатывает без ошибок.

irbis_al ()
Ответ на: комментарий от irbis_al

сомневаюсь что parport_pc юзается. он собссно для параллельных портов.

юзается serial драйвер. который похоже не модулем.

пробуйте сделать unbind по аналогии с https://lwn.net/Articles/143397/

NiTr0 ★★★★★ ()
Ответ на: комментарий от irbis_al

Потрты отмапились.

Почему ты так решил? Куча /dev/ttySX создается даже если их нет. Смотри dmesg | grep ttyS.

Где лежит твой модуль? Скопировал куда-нибудь в /lib/modules/3.10.0-514.el7.x86_64/misc и сделал depmod? Или вручную пробовал загрузить?

arson ★★★★★ ()
Ответ на: комментарий от arson

Kernel driver in use: serial Kernel modules: parport_pc

Да, parport_pc не поможет, serial_core вкомпилен в ядро.

Readme читал?

To build driver on kernels from v2.6.34 till latest:
----------------------------------------------------
  Since the device ID 9865 is included (as built-in) with kernel versions
    starts from v2.6.34 and above, the following procedure is required to
    follow to detect MCS9865 devices.

  a) Go to the path,
        "/usr/src/linux-x.y.z/drivers/serial" before v2.6.37
...
Обновись и попробуй встроенный драйвер. Если не поможет, то или ядро пересобирать или пробовать unbind, как выше советовали.

arson ★★★★★ ()
Ответ на: комментарий от arson

Я работаю с POS...И очень много работаю с rs-232 ..я точно знаю,что порты отмапились..я делал и команду stty -a -F /dev/ttyS1 (и получал соответствующий вывод) в случае если в dev/ttySN нет rs-232 на эту команду я получаю ошибку...и сканер штрихкода включал...проверить...а вдруг после всех этиъ танцев с бубном поведение улучшится...так что порты отмапились однозначно.

irbis_al ()
Ответ на: комментарий от arson

readmee то я читал...но там инструкции не соответствующие структуре моего CentosА...там до 3.2... Но я всё равно смотрел...в частности там советуется по пути ядра /usr/src/linux-x.y.z/drivers/serial...Подкорректировать файл 8250_pci.c Нет такого файла вообще в системе искал find / -name 8250_pci.c Буду пробовать bind...но пока там по ссылке вообще ничего не понял :-)

irbis_al ()
Ответ на: комментарий от kostik87

MCS9865-PCI to Multi IO

Салам, подскажи, у меня Минт 19.1 на тесте, всё работает кроме принтера, HP Laserjet 6p, подключен через плату расширения MCS9865-PCI to Multi IO, через капс не могу настроить, печатает на пропалую пока есть бумага без остановки пока не перегрузишь принт. Капс не видит принтер, хотя на тестовую страницу запрос уходит и печатает до конца бумаги. 03:06.0 Serial controller: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller Subsystem: Device a000:1000 Kernel driver in use: serial Kernel modules: parport_pc 03:06.1 Serial controller: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller Subsystem: Device a000:1000 Kernel driver in use: serial Kernel modules: parport_pc 03:06.2 Parallel controller: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller Subsystem: Device a000:2000 Kernel driver in use: parport_pc Kernel modules: parport_pc

Hein_Dec ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.