LINUX.ORG.RU

Сообщения mosolovs

 

Allwinner A40i полностью рабочий USB-OTG

Форум — Linux-hardware

Добрый день!

Возможно ли предусмотреть работу usb0 в режиме OTG на Allwinner-A40i?

Судя по информации из интернета это возможно: https://lore.kernel.org/linux-arm-kernel/daf5c543-a1d1-04d2-6486-6cc9cd72d8e5@sholland.org/T/#md5e9ce01feb201041467c136f09e80628f414557

В моем случае пин ID USB OTG - PI11. Настроил следующим образом файл дерева устройств:

/ {
#include "sun8i-r40.dtsi"  /* <--- в этом файле ничего не менял */
...
   /* ohci0 and ehci0 need to be included to work with USB OTG */
   ohci0: usb@1c14400 {
      compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
      reg = <0x01c14400 0x100>;
      interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>,
          <&ccu CLK_USB_OHCI0>;
      resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;
      status = "okay";
   };

   ehci0: usb@1c14000 {
      compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
      reg = <0x01c14000 0x100>;
      interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>;
      resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;
      status = "okay";
   };
...
}
...
&usb_otg {
/* в dtsi определено dr_mode = "peripheral"; */
   status = "okay";
};

&usbphy {
   dr_mode = "otg";
   usb0_id_det-gpios = <PIN_PI 11 GPIO_ACTIVE_HIGH>;
   usb0_vbus-supply = <&reg_vcc5v0>;
   status = "okay";
};

USB-OTG работает, но проблема в том, что своё состояние host или client он определяет единственный раз при старте по пину ID.

Для меня все выглядит так, как будто драйвер настраивается на работу через прерывание по пину GPIO PI11, c отладочными принтами в подсистеме прерываний есть регистрация EINT23 в драйвере pinctrl:

[   11.578919] sun4i-pinctrl 1c20800.pinctrl: 1c20800.pinctrl: request IRQ for GPIO 267, return 23
[   11.587657] devm_request_irq data->id_det_irq: 74, ret: 0

 74:          0          0          0          0  sunxi_pio_edge  23 Edge      usb0-id-det

Все прерывания:
# cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       
 26:          0          0          0          0     GICv2  54 Level     timer@1c20c00
 27:          0          0          0          0     GICv2  29 Level     arch_timer
 28:     198416      45783      21540      10341     GICv2  30 Level     arch_timer
 31:          0          0          0          0     GICv2 152 Level     arm-pmu
 32:          0          0          0          0     GICv2 153 Level     arm-pmu
 33:          0          0          0          0     GICv2 154 Level     arm-pmu
 34:          0          0          0          0     GICv2 155 Level     arm-pmu
 35:          0          0          0          0     GICv2  59 Level     1c02000.dma-controller
 37:          0          0          0          0     GICv2 102 Level     gpmmu
 38:          0          0          0          0     GICv2 104 Level     ppmmu0
 39:          0          0          0          0     GICv2 107 Level     ppmmu1
 40:        175          0          0          0     GICv2 101 Level     gp
 41:        128          0          0          0     GICv2 103 Level     pp0
 42:        128          0          0          0     GICv2 106 Level     pp1
 43:          0          0          0          0     GICv2  71 Level     ehci_hcd:usb1
 44:          0          0          0          0     GICv2  72 Level     ohci_hcd:usb2
 45:       1289          0          0          0     GICv2  61 Level     sun4i-ts
 46:          0          0          0          0     GICv2  56 Level     1c20400.rtc
 47:          0          0          0          0     GICv2 125 Level     1400000.deinterlace
 48:          0          0          0          0     GICv2 126 Level     sun8i-ce-ns
 49:          0          0          0          0     GICv2  85 Level     1c0e000.video-codec
 74:          0          0          0          0  sunxi_pio_edge  23 Edge      usb0-id-det
 83:         28          0          0          0     GICv2  33 Level     ttyS0
 84:          0          0          0          0     GICv2  44 Level     sun6i-spi
 85:      80306          0          0          0     GICv2  39 Level     mv64xxx_i2c
 86:          0          0          0          0  sunxi-nmi   0 Level     axp22x_irq_chip
109:          0          0          0          0  axp22x_irq_chip  22 Edge      axp20x-pek-dbr
110:          0          0          0          0  axp22x_irq_chip  23 Edge      axp20x-pek-dbf
113:          0          0          0          0     GICv2  40 Level     mv64xxx_i2c
114:          0          0          0          0     GICv2  41 Level     mv64xxx_i2c
115:          0          0          0          0     GICv2 120 Level     mv64xxx_i2c
116:          0          0          0          0     GICv2 121 Level     mv64xxx_i2c
117:          0          0          0          0     GICv2 129 Level     tvd0
118:          0          0          0          0     GICv2 130 Level     tvd1
119:          0          0          0          0     GICv2 131 Level     tvd2
120:          0          0          0          0     GICv2 132 Level     tvd3
121:      10281          0          0          0     GICv2  68 Level     ths
122:        245          0          0          0     GICv2  66 Level     sunxi-mmc
123:       5690          0          0          0     GICv2  64 Level     sunxi-mmc
129:          0          0          0          0     GICv2  88 Level     ahci-sunxi[1c18000.sata]
130:     168336          0          0          0     GICv2  87 Level     eth0
131:      81204          0          0          0     GICv2 117 Level     eth1
132:        401          0          0          0     GICv2  70 Level     musb-hdrc.2.auto
133:          0          0          0          0     GICv2  96 Level     ohci_hcd:usb3
134:          0          0          0          0     GICv2  97 Level     ohci_hcd:usb4
135:       9114          0          0          0     GICv2  76 Level     1c71000.lcd-controller
136:      13939          0          0          0     GICv2  83 Level     1c73000.lcd-controller
137:        515          0          0          0     GICv2  90 Level     1ee0000.hdmi
138:          0          0          0          0     GICv2 110 Level     ehci_hcd:usb5
139:          0          0          0          0     GICv2 108 Level     ehci_hcd:usb6
IPI0:          0          0          0          0  CPU wakeup interrupts
IPI1:          0          0          0          0  Timer broadcast interrupts
IPI2:         71         81        134        106  Rescheduling interrupts
IPI3:       5850      17893       6323       6836  Function call interrupts
IPI4:          0          0          0          0  CPU stop interrupts
IPI5:      16353       2205       1054        417  IRQ work interrupts
IPI6:          0          0          0          0  completion interrupts
Err:          0

Но по какой-то причине запуска обработчика прерывания не происходит.

Реально проверил - пин ID меняет свое состояние в зависимости от подключения разъема OTG. Внешнее прерывание на пине возможно - PI11/SPI0_CLK/UART5_RX/EINT23.

Привожу ссылку на архив с syslog и полный dts: https://disk.yandex.ru/d/0H5tnCl1qQIE2g

Прошу по возможности помочь с диагностикой и посоветовать ресурсы/направления диагностики, буду очень благодарен, если требуется какая-либо дополнительная информация - пожалуйста сообщите.

 , , , ,

mosolovs
()

USB тач реплаг ломает Qt

Форум — Linux-hardware

Добрый день!

Прошу помощи в проблеме реплага USB тачскрина нагорячую.

Есть контроллер тача Zytronic zxy100, подключенный по USB, работающий через tslib. При старте системы запускается Qt(5.15) с плагином linuxfb (иксов нет).

Проблема в том, что если вынуть и вставить обратно USB разъем контроллера тача - в Qt больше нет событий тача. Если перезапустить все приложение - все опять будет работать корректно. Схожая ситуация и с ts_test.

При работе с сенсорным экраном были моменты когда в логе dmesg самопроизвольно появлялись сообщения о USB disconnected тача. Кабель проверил, тач в наличии только один и статистики нет, не хотелось бы, чтобы во время работы из-за временно отвалившегося USB перестал работать тач в Qt.

Подскажите пожалуйста есть ли какое-либо решение для схожих ситуаций?

Детали:

# cat /proc/bus/input/devices 
...
I: Bus=0003 Vendor=14c8 Product=0005 Version=0101
N: Name="Zytronic Displays Limited Zytronic Touchscreen Controller Touchscreen"
P: Phys=usb-1c1c400.usb-1/input0
S: Sysfs=/devices/platform/soc/1c1c400.usb/usb5/5-1/5-1:1.0/0003:14C8:0005.0001/input/input1
U: Uniq=
H: Handlers=event1 
B: PROP=0
B: EV=1b
B: KEY=420 0 0 0 0 0 0 0 0 0 0
B: ABS=100 3
B: MSC=10

# cat /sys/devices/platform/soc/1c1c400.usb/usb5/5-1/5-1:1.0/0003:14C8:0005.0001/input/input1/event1/dev
13:65

Я создаю файл через mknod:

# mknod /dev/uinput c 13 65

и травлю на него Qt:

# cat /root/run_affine_fb.sh 
export QT_DEBUG_PLUGINS=1

export QT_QPA_FONTDIR=/usr/lib/fonts
export QT_PLUGIN_PATH=/usr/lib/qt/plugins

export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export QT_QPA_FB_HIDECURSOR=0

export QT_QPA_GENERIC_PLUGINS=tslib:/dev/uinput
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/uinput

export TSLIB_TSEVENTTYPE='INPUT'
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_CONFFILE='/etc/ts.conf'
export TSLIB_CONSOLEDEVICE='none'
export TSLIB_FBDEVICE='/dev/fb0'
export TSLIB_PLUGINDIR='/usr/lib/ts'
export TSLIB_TSDEVICE='/dev/uinput'

export QT_LOGGING_RULES=qt.qpa.input=true

/root/affine

выхлоп:

# ./run_affine_fb.sh 
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/platforms/libqeglfs.so"
Found metadata in lib /usr/lib/qt/plugins/platforms/libqeglfs.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "eglfs"
        ]
    },
    "archreq": 0,
    "className": "QEglFSIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/platforms/libqlinuxfb.so"
Found metadata in lib /usr/lib/qt/plugins/platforms/libqlinuxfb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "linuxfb"
        ]
    },
    "archreq": 0,
    "className": "QLinuxFbIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/platforms/libqminimal.so"
Found metadata in lib /usr/lib/qt/plugins/platforms/libqminimal.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimal"
        ]
    },
    "archreq": 0,
    "className": "QMinimalIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/platforms/libqminimalegl.so"
Found metadata in lib /usr/lib/qt/plugins/platforms/libqminimalegl.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimalegl"
        ]
    },
    "archreq": 0,
    "className": "QMinimalEglIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/platforms/libqoffscreen.so"
Found metadata in lib /usr/lib/qt/plugins/platforms/libqoffscreen.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "offscreen"
        ]
    },
    "archreq": 0,
    "className": "QOffscreenIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/platforms/libqvnc.so"
Found metadata in lib /usr/lib/qt/plugins/platforms/libqvnc.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "vnc"
        ]
    },
    "archreq": 0,
    "className": "QVncIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("vnc")
QFactoryLoader::QFactoryLoader() checking directory path "/root/platforms" ...
loaded library "/usr/lib/qt/plugins/platforms/libqlinuxfb.so"
qt.qpa.input: evdevkeyboard: Using device discovery
qt.qpa.input: static device discovery for type QFlags<QDeviceDiscovery::QDeviceType>(Device_Keyboard)
qt.qpa.input: doing static device discovery for  "/dev/input/event0"
qt.qpa.input: doing static device discovery for  "/dev/input/event1"
qt.qpa.input: doing static device discovery for  "/dev/input/event2"
qt.qpa.input: Found matching devices ()
qt.qpa.input: evdevmouse: Using device discovery
qt.qpa.input: static device discovery for type QFlags<QDeviceDiscovery::QDeviceType>(Device_Mouse|Device_Touchpad)
qt.qpa.input: doing static device discovery for  "/dev/input/event0"
qt.qpa.input: doing static device discovery for  "/dev/input/event1"
qt.qpa.input: Found touchpad at "/dev/input/event1"
qt.qpa.input: doing static device discovery for  "/dev/input/event2"
qt.qpa.input: Found matching devices ("/dev/input/event1")
qt.qpa.input: Adding mouse at /dev/input/event1
qt.qpa.input: create mouse handler for "/dev/input/event1" ""
qt.qpa.input: evdevtouch: Adding device at /dev/uinput
qt.qpa.input: evdevtouch: Using device /dev/uinput
qt.qpa.input: evdevtouch: /dev/uinput: Protocol type A  (single), filtered=no
qt.qpa.input: evdevtouch: /dev/uinput: min X: 0 max X: 4096
qt.qpa.input: evdevtouch: /dev/uinput: min Y: 0 max Y: 4096
qt.qpa.input: evdevtouch: /dev/uinput: min pressure: 0 max pressure: 0
qt.qpa.input: evdevtouch: /dev/uinput: device name: Zytronic Displays Limited Zytronic Touchscreen Controller Touchscreen
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt/plugins/generic" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/generic/libqevdevkeyboardplugin.so"
Found metadata in lib /usr/lib/qt/plugins/generic/libqevdevkeyboardplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
    "MetaData": {
        "Keys": [
            "EvdevKeyboard"
        ]
    },
    "archreq": 0,
    "className": "QEvdevKeyboardPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("evdevkeyboard")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/generic/libqevdevmouseplugin.so"
Found metadata in lib /usr/lib/qt/plugins/generic/libqevdevmouseplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
    "MetaData": {
        "Keys": [
            "EvdevMouse"
        ]
    },
    "archreq": 0,
    "className": "QEvdevMousePlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("evdevmouse")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/generic/libqevdevtabletplugin.so"
Found metadata in lib /usr/lib/qt/plugins/generic/libqevdevtabletplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
    "MetaData": {
        "Keys": [
            "EvdevTablet"
        ]
    },
    "archreq": 0,
    "className": "QEvdevTabletPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("evdevtablet")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/generic/libqevdevtouchplugin.so"
Found metadata in lib /usr/lib/qt/plugins/generic/libqevdevtouchplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
    "MetaData": {
        "Keys": [
            "EvdevTouch"
        ]
    },
    "archreq": 0,
    "className": "QEvdevTouchScreenPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("evdevtouch")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/generic/libqtslibplugin.so"
Found metadata in lib /usr/lib/qt/plugins/generic/libqtslibplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
    "MetaData": {
        "Keys": [
            "Tslib",
            "TslibRaw"
        ]
    },
    "archreq": 0,
    "className": "QTsLibPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("tslib", "tslibraw")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/generic/libqtuiotouchplugin.so"
Found metadata in lib /usr/lib/qt/plugins/generic/libqtuiotouchplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
    "MetaData": {
        "Keys": [
            "TuioTouch"
        ]
    },
    "archreq": 0,
    "className": "QTuioTouchPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("tuiotouch")
QFactoryLoader::QFactoryLoader() checking directory path "/root/generic" ...
loaded library "/usr/lib/qt/plugins/generic/libqtslibplugin.so"
qt.qpa.input: Initializing tslib plugin "tslib" "/dev/uinput"
qt.qpa.input: tslib device is /dev/uinput
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt/plugins/styles" ...
QFactoryLoader::QFactoryLoader() checking directory path "/root/styles" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt/plugins/imageformats" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt/plugins/imageformats/libqico.so"
Found metadata in lib /usr/lib/qt/plugins/imageformats/libqico.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "ico",
            "cur"
        ],
        "MimeTypes": [
            "image/vnd.microsoft.icon",
            "image/vnd.microsoft.icon"
        ]
    },
    "archreq": 0,
    "className": "QICOPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("ico", "cur")
QFactoryLoader::QFactoryLoader() checking directory path "/root/imageformats" ...
loaded library "/usr/lib/qt/plugins/imageformats/libqico.so"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt/plugins/accessiblebridge" ...
QFactoryLoader::QFactoryLoader() checking directory path "/root/accessiblebridge" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt/plugins/accessible" ...
QFactoryLoader::QFactoryLoader() checking directory path "/root/accessible" ...
qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 0 pending handler(s)

^^^ на этом этапе все ОК - тач работает

вынимаем USB, новый выхлоп (с таймкодом строка от syslogd):

[  944.460293] usb 5-1: USB disconnect, device number 2
evdevtouch: Could not read from input device (No such device)
evdevmouse: Could not read from input device (No such device)

вставляем обратно, появляется:

[  995.002997] usb 5-1: new full-speed USB device number 3 using ohci-platform
[  995.300499] input: Zytronic Displays Limited Zytronic Touchscreen Controller Touchscreen as /devices/platform/soc/1c1c400.usb/usb5/5-1/5-1:1.0/0003:14C8:0005.0002/input/input4
[  995.316735] input: Zytronic Displays Limited Zytronic Touchscreen Controller Mouse as /devices/platform/soc/1c1c400.usb/usb5/5-1/5-1:1.0/0003:14C8:0005.0002/input/input5
[  995.332534] hid-generic 0003:14C8:0005.0002: input: USB HID v1.01 Mouse [Zytronic Displays Limited Zytronic Touchscreen Controller] on usb-1c1c400.usb-1/input0

т.е. подсистема Qt естественно никак на это не реагирует и тач в Qt уже не работает.

Есть ли какое-либо изящное решение (через udev навесить на коннект тача переинициализацию плагина tslib в Qt не рестартуя все приложение или что-то подобное)?

Если перезапустить приложение Qt - все работает.

Тоже самое с ts_test, вынимаешь USB - перестает работать ввод до перезапуска ts_test.

В гугле схожие вопросы нашел, ответ - нет.

 , ,

mosolovs
()

Импортозамещение imx6 с Embedded Linux

Форум — Linux-hardware

Здравствуйте, прошу помочь: поставлена задача импортозаместить imx6 Solo (https://en.wikipedia.org/wiki/I.MX#i.MX_6_series) с Embedded Linux на отечественное решение, производимое в РФ. Прикладной софт написан на С++11 под Linux, соответственно решение должно работать под управлением ядра хотя бы не старше версии 2.6.

Сфера - гражданская промышленность, поэтому важна цена и не важна устойчивость к радиации и другим экстраординарным факторам. Устройство стационарное, но энергоэффективность приветствуется.

Не имел до этого какого-либо опыта работы с отечественной электроникой, прошу поделиться опытом при наличии такового.

Из открытых источников похоже, что практически наиболее передовой тех.процесс в РФ - Микрон с 90 нм, 65 нм осваивается с 2013 года, при этом не ясно сколько процессоров будет производиться и будут ли они доступны кому-то кроме оборонки. Отдельно стоит вопрос о периферии на одноплатнике и сырье для производства, тут видимо все тоже не очень радужно, хотелось бы для начала определиться насколько возможно импортозаместить хотя бы сам CPU.

Резюмируя, требования: CPU производится в РФ, Linux 2.6+, C++11(?)

Рассматриваю варианты:

Как я понимаю 28 нм в РФ не производится:

 , , , ,

mosolovs
()

WCH.CN CH355 PCI Quad Serial Port Controller, поддержка в ядре.

Форум — Linux-hardware

При попытке блокирующей записи в порт, этот системный вызов виснет, записи не происходит.

uname -a Linux comp 4.14.15 #4 SMP Fri Jan 26 18:15:36 +04 2018 x86_64 x86_64 x86_64 GNU/Linux

lspci -vv https://pastebin.com/8LCacVqt

setserial -g /dev/ttyS* https://pastebin.com/grdfuFPt

dmesg https://pastebin.com/C4bzW4vx

Кроме того при попытке записи в журнале появляются дополнительные записи: [ 320.942897] irq 18: nobody cared (try booting with the «irqpoll» option) [ 320.942899] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.14.15 #4 [ 320.942900] Hardware name: System manufacturer System Product Name/P8Z77-V LX, BIOS 0801 07/17/2012 [ 320.942901] Call Trace: [ 320.942903] <IRQ> [ 320.942908] dump_stack+0x46/0x59 [ 320.942912] __report_bad_irq+0x2b/0xb0 [ 320.942914] note_interrupt+0x230/0x280 [ 320.942916] handle_irq_event_percpu+0x3c/0x50 [ 320.942917] handle_irq_event+0x22/0x40 [ 320.942919] handle_fasteoi_irq+0x66/0x110 [ 320.942922] handle_irq+0xa0/0x110 [ 320.942925] do_IRQ+0x3c/0xc0 [ 320.942927] common_interrupt+0x95/0x95 [ 320.942928] </IRQ> [ 320.942931] RIP: 0010:cpuidle_enter_state+0x95/0x2c0 [ 320.942932] RSP: 0018:ffff97b180ccbee0 EFLAGS: 00200212 ORIG_RAX: ffffffffffffff2e [ 320.942934] RAX: ffff8dd92fba08c0 RBX: 000000000000074a RCX: 000000000000001f [ 320.942934] RDX: 0000004ab9afe896 RSI: fffffffb1027e963 RDI: 0000000000000000 [ 320.942935] RBP: ffff8dd9254c2a00 R08: 00000000ffffffff R09: 0000000000000008 [ 320.942936] R10: ffff97b180ccbec8 R11: 0000000000000009 R12: 0000000000000001 [ 320.942936] R13: ffffffff82ca2d18 R14: 0000000000000000 R15: 0000004ab9afe14c [ 320.942939] do_idle+0x161/0x1a0 [ 320.942940] cpu_startup_entry+0x14/0x20 [ 320.942942] secondary_startup_64+0xa5/0xb0 [ 320.942943] handlers: [ 320.942945] [<ffffffff8205f880>] i801_isr [ 320.942946] Disabling IRQ #18

Подскажите в какую сторону копать, почему возникает прерывание по SMBUS irq 18 при записи в порт, к которому относится irq 5, если верить lspci.

Вывод strace echo 123 > /dev/ttyS4 https://pastebin.com/WjfBQ3yu

 , , , ,

mosolovs
()

RSS подписка на новые темы