Evok high CPU usage



  • Hello,
    i've tried using Evok on my Neuron but after each reboot the CPU usage for /usr/bin/python /opt/evok/evok.py keeps at or areound 100% (as shown by htop) at all times. I don't consider this normal ... or is it ?

    service evok status
    

    reports that evok is active.

    /var/log/evok is completely empty ... so; I guess the question is if CPU (one of the cores) usage of 100% is by design or is there something I can check to see what's happening ?


  • administrators

    @tempurpri

    This does seem very odd. It's possible that EVOK would use up a single core entirely under heavy use - it has minor multithreading, but it's built on the Tornado webserver, which unlike django et al. is primarily single-threaded - but it shouldn't be at all times.

    Could you please describe which Neuron unit you have, in what way you are using EVOK and which (if any) changes you have made to the system? This is merely a precautionary measure, as we have had e.g. customers connecting foreign SPI devices to our bus, and then being surprised by the system malfunctioning due to conflicts.

    As for debugging info - if you can run EVOK manually (i.e. python /opt/evok/evok.py; needs root privileges) and paste the output here, that would be great help; normally only exceptions are logged (you can change this in the /etc/evok.conf file). Other things that could help us would be the output from
    a)

    lsmod
    

    b)

    i2cdetect 1
    

    c)

    ps -fax
    


  • I'll have access to the device later in the day and I'll post the requested data at the time.

    For now I have the following information:
    -Neuron S103
    -nothing is explicitly connected to or using EVOK yet. The CPU usage occurs either immediately after power up if EVOK is enabled as a service, otherwise if I disable the service (systemctl disable evok) and start it manually (systemctl start evok), the same thing happens, so it is completely reprodcible on my system
    -nothing other that a power supply is connected to the Neuron
    -Open source OS was loaded from your repository
    -installed software (all in the initial post-install blank state, no running projects, CPU sits at ~0% idle when EVOK is disabled)
    Pixel desktop with LightDM login manager
    Codesys runtime (started but without any projet)
    node.js
    Node-red (not started, just installed)
    Leafpad text editor
    Geany programmer editor

    Neuron is connected to active Network, RealVNC is running and SSH is enabled.

    In short, I installed some basic software that I need (and know from using Raspbian), no projects yet. I planned on using EVOK to access Neuron's I/Os and other optional devices in the future.

    I do remember that there was an error reported during the installation of EVOK (in the python installation code), however I've re-downloaded it (the "master" branch, as instructed) and re-installed it three times with the same result - everything seems to have been installed nevertheless. I'll try to get the installation log if it's possibly relevant.

    I haven't tried running it with "python /opt/evok/evok.py" yet - will do (is it any different that systemctl start evok ?)



  • a) lsmod

    Module                  Size  Used by
    fuse                   99603  3
    can_raw                 7426  0
    can                    31515  1 can_raw
    bluetooth             365780  0
    w1_therm                6401  0
    w1_gpio                 4818  0
    ds2482                  4427  0
    wire                   32619  3 ds2482,w1_gpio,w1_therm
    at24                    7587  0
    rtc_ds1307             13908  0
    cn                      5889  1 wire
    hwmon                  10552  1 rtc_ds1307
    nvmem_core             13774  1 at24
    spidev                  7373  0
    brcmfmac              292632  0
    brcmutil                9863  1 brcmfmac
    cfg80211              544545  1 brcmfmac
    rfkill                 20851  5 bluetooth,cfg80211
    i2c_bcm2835             7167  0
    bcm2835_gpiomem         3940  0
    spi_bcm2835             7596  0
    uio_pdrv_genirq         3923  0
    fixed                   3285  0
    uio                    10204  1 uio_pdrv_genirq
    i2c_bcm2708             5994  0
    i2c_dev                 6913  0
    ip_tables              13161  0
    x_tables               20578  1 ip_tables
    ipv6                  408900  26
    

    b) i2cdetect 1

    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-1.
    I will probe address range 0x03-0x77.
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU 
    70: -- -- -- -- -- -- -- --                       
    

    c)ps -fax (evok running)

     PID TTY      STAT   TIME COMMAND
        2 ?        S      0:00 [kthreadd]
        3 ?        S      0:00  \_ [ksoftirqd/0]
        4 ?        S      0:00  \_ [kworker/0:0]
        5 ?        S<     0:00  \_ [kworker/0:0H]
        6 ?        S      0:00  \_ [kworker/u8:0]
        7 ?        S      0:00  \_ [rcu_sched]
        8 ?        S      0:00  \_ [rcu_bh]
        9 ?        S      0:00  \_ [migration/0]
       10 ?        S<     0:00  \_ [lru-add-drain]
       11 ?        S      0:00  \_ [cpuhp/0]
       12 ?        S      0:00  \_ [cpuhp/1]
       13 ?        S      0:00  \_ [migration/1]
       14 ?        S      0:00  \_ [ksoftirqd/1]
       15 ?        S      0:00  \_ [kworker/1:0]
       16 ?        S<     0:00  \_ [kworker/1:0H]
       17 ?        S      0:00  \_ [cpuhp/2]
       18 ?        S      0:00  \_ [migration/2]
       19 ?        S      0:00  \_ [ksoftirqd/2]
       20 ?        S      0:00  \_ [kworker/2:0]
       21 ?        S<     0:00  \_ [kworker/2:0H]
       22 ?        S      0:00  \_ [cpuhp/3]
       23 ?        S      0:00  \_ [migration/3]
       24 ?        S      0:00  \_ [ksoftirqd/3]
       25 ?        S      0:00  \_ [kworker/3:0]
       26 ?        S<     0:00  \_ [kworker/3:0H]
       27 ?        S      0:00  \_ [kdevtmpfs]
       28 ?        S<     0:00  \_ [netns]
       29 ?        S      0:00  \_ [khungtaskd]
       30 ?        S      0:00  \_ [oom_reaper]
       31 ?        S<     0:00  \_ [writeback]
       32 ?        S      0:00  \_ [kcompactd0]
       33 ?        S<     0:00  \_ [crypto]
       34 ?        S<     0:00  \_ [bioset]
       35 ?        S<     0:00  \_ [kblockd]
       36 ?        S<     0:00  \_ [watchdogd]
       37 ?        S      0:00  \_ [kworker/0:1]
       38 ?        S<     0:00  \_ [rpciod]
       39 ?        S<     0:00  \_ [xprtiod]
       40 ?        S      0:00  \_ [kswapd0]
       41 ?        S<     0:00  \_ [vmstat]
       42 ?        S<     0:00  \_ [nfsiod]
       52 ?        S<     0:00  \_ [kthrotld]
       53 ?        S<     0:00  \_ [bioset]
       54 ?        S<     0:00  \_ [bioset]
       55 ?        S<     0:00  \_ [bioset]
       56 ?        S<     0:00  \_ [bioset]
       57 ?        S<     0:00  \_ [bioset]
       58 ?        S<     0:00  \_ [bioset]
       59 ?        S<     0:00  \_ [bioset]
       60 ?        S<     0:00  \_ [bioset]
       61 ?        S<     0:00  \_ [bioset]
       62 ?        S<     0:00  \_ [bioset]
       63 ?        S<     0:00  \_ [bioset]
       64 ?        S<     0:00  \_ [bioset]
       65 ?        S<     0:00  \_ [bioset]
       66 ?        S<     0:00  \_ [bioset]
       67 ?        S<     0:00  \_ [bioset]
       68 ?        S<     0:00  \_ [bioset]
       69 ?        S<     0:00  \_ [bioset]
       70 ?        S<     0:00  \_ [bioset]
       71 ?        S<     0:00  \_ [bioset]
       72 ?        S<     0:00  \_ [bioset]
       73 ?        S<     0:00  \_ [bioset]
       74 ?        S<     0:00  \_ [bioset]
       75 ?        S<     0:00  \_ [bioset]
       76 ?        S<     0:00  \_ [bioset]
       77 ?        S<     0:00  \_ [iscsi_eh]
       78 ?        S<     0:00  \_ [dwc_otg]
       79 ?        S      0:00  \_ [kworker/2:1]
       80 ?        S<     0:00  \_ [DWC Notificatio]
       81 ?        S<     0:00  \_ [VCHIQ-0]
       82 ?        S<     0:00  \_ [VCHIQr-0]
       83 ?        S<     0:00  \_ [VCHIQs-0]
       84 ?        S      0:00  \_ [VCHIQka-0]
       85 ?        S<     0:00  \_ [SMIO]
       86 ?        S      0:00  \_ [kworker/2:2]
       87 ?        S      0:00  \_ [irq/92-mmc1]
       88 ?        S      0:00  \_ [kworker/2:3]
       89 ?        S      0:00  \_ [kworker/1:1]
       90 ?        S<     0:00  \_ [bioset]
       91 ?        S      0:01  \_ [mmcqd/0]
       92 ?        S      0:00  \_ [jbd2/mmcblk0p2-]
       93 ?        S<     0:00  \_ [ext4-rsv-conver]
       94 ?        S      0:00  \_ [kworker/3:1]
       95 ?        S<     0:00  \_ [ipv6_addrconf]
      112 ?        S      0:00  \_ [kworker/u8:1]
      126 ?        S      0:00  \_ [kworker/1:2]
      142 ?        S      0:00  \_ [kworker/3:2]
      163 ?        S      0:00  \_ [kworker/0:2]
      193 ?        S      0:00  \_ [spi0]
      228 ?        S<     0:00  \_ [cfg80211]
      232 ?        S<     0:00  \_ [brcmf_wq/mmc1:0]
      233 ?        S      0:00  \_ [brcmf_wdog/mmc1]
      246 ?        S      0:00  \_ [kworker/0:3]
      268 ?        S      0:00  \_ [kworker/u8:2]
      292 ?        S      0:00  \_ [w1_bus_master1]
      360 ?        S      0:00  \_ [kworker/1:3]
      427 ?        S<     0:00  \_ [kworker/3:1H]
      533 ?        S<     0:00  \_ [kworker/1:1H]
      534 ?        S<     0:00  \_ [kworker/0:1H]
        1 ?        Ss     0:02 /sbin/init splash
      118 ?        Ss     0:00 /lib/systemd/systemd-journald
      150 ?        Ss     0:00 /lib/systemd/systemd-udevd
      301 ?        Ssl    0:00 /lib/systemd/systemd-timesyncd
      335 ?        SNsl   0:16 node-red
      337 ?        Ss     0:00 /lib/systemd/systemd-logind
      339 ?        Ssl    0:00 /usr/sbin/rsyslogd -n
      342 ?        Ss     0:00 /usr/bin/dbus-daemon --system --address=systemd: --no
      375 ?        Ss     0:00 /usr/sbin/cupsd -l
      516 ?        S      0:00  \_ /usr/lib/cups/notifier/dbus dbus://
      762 ?        S      0:00  \_ /usr/lib/cups/notifier/dbus dbus://
      376 ?        Ss     0:00 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d
      378 ?        Ss     0:00 /opt/neuron-bin/neuron_tcp_server -p 502 --check-firm
      379 ?        Ss     0:00 avahi-daemon: running [S103-sn344.local]
      416 ?        S      0:00  \_ avahi-daemon: chroot helper
      387 ?        Ss     0:00 /usr/sbin/cron -f
      393 ?        Ss     0:00 /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wla
      422 ?        Ssl    0:00 /usr/sbin/cups-browsed
      476 ?        S      0:01 /opt/codesys/bin/codesyscontrol.bin /etc/CODESYSContr
      521 ?        Sl     0:06  \_ /opt/codesys/bin/codesyscontrol.bin /etc/CODESYSC
      592 ?        Ss     0:00 /sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid -lf /
      639 ?        Ss     0:00 /usr/bin/vncserver-x11-serviced -fg
      652 ?        S      0:01  \_ /usr/bin/vncserver-x11-core -service
      643 ?        Ss     0:00 /usr/sbin/sshd -D
      656 ?        Ssl    0:00 /usr/sbin/lightdm
      671 tty7     Ssl+   0:01  \_ /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/
      741 ?        Sl     0:00  \_ lightdm --session-child 14 17
      767 ?        Ssl    0:00      \_ /usr/bin/lxsession -s LXDE-pi -e LXDE
      821 ?        Ss     0:00          \_ /usr/bin/ssh-agent x-session-manager
      842 ?        S      0:00          \_ openbox --config-file /home/pi/.config/op
      853 ?        Sl     0:01          \_ lxpanel --profile LXDE-pi
     1022 ?        Sl     0:00          |   \_ termit
     1028 pts/0    Ss     0:00          |       \_ /bin/bash
     1042 pts/0    R+     0:00          |           \_ ps -fax
      855 ?        Sl     0:01          \_ pcmanfm --desktop --profile LXDE-pi
      856 ?        S      0:00          \_ xscreensaver -no-splash
      661 tty1     Ss     0:00 /bin/login -f
      725 tty1     S+     0:00  \_ -bash
      665 ?        Ss     0:00 /sbin/netplugd -p /var/run/netplugd.pid
      701 ?        Ss     0:00 /lib/systemd/systemd --user
      714 ?        S      0:00  \_ (sd-pam)
      777 ?        Ss     0:00  \_ /usr/bin/dbus-daemon --session --address=systemd:
      827 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfsd
      832 ?        Sl     0:00  \_ /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -
      900 ?        Sl     0:00  \_ /usr/lib/dconf/dconf-service
      940 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-udisks2-volume-monitor
      958 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-afc-volume-monitor
      963 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
      967 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-goa-volume-monitor
      971 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-mtp-volume-monitor
      980 ?        Sl     0:00  \_ /usr/lib/gvfs/gvfsd-trash --spawner :1.5 /org/gtk
      710 ?        S      0:00 /usr/bin/vncagent service 15
      770 ?        Ssl    0:00 /usr/lib/colord/colord
      861 ?        Ss     0:00 /usr/bin/ssh-agent -s
      863 ?        Sl     0:00 light-locker
      865 ?        Sl     0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher --launch-im
      873 ?        S      0:00  \_ /usr/bin/dbus-daemon --config-file=/usr/share/def
      875 ?        S      0:00 /usr/bin/vncserverui service 17
      912 ?        S      0:00  \_ /usr/bin/vncserverui -statusicon 7
      919 ?        Sl     0:00 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-s
      933 ?        Ssl    0:00 /usr/lib/menu-cache/menu-cached /run/user/1000/menu-c
      943 ?        Ssl    0:00 /usr/lib/udisks2/udisksd --no-debug
      949 ?        Ssl    0:00 /usr/lib/policykit-1/polkitd --no-debug
     1041 ?        Rs     0:00 /usr/bin/python /opt/evok/evok.py
    

    ps -fax (evok not running)

      PID TTY      STAT   TIME COMMAND
        2 ?        S      0:00 [kthreadd]
        3 ?        S      0:00  \_ [ksoftirqd/0]
        4 ?        S      0:00  \_ [kworker/0:0]
        5 ?        S<     0:00  \_ [kworker/0:0H]
        6 ?        S      0:00  \_ [kworker/u8:0]
        7 ?        S      0:00  \_ [rcu_sched]
        8 ?        S      0:00  \_ [rcu_bh]
        9 ?        S      0:00  \_ [migration/0]
       10 ?        S<     0:00  \_ [lru-add-drain]
       11 ?        S      0:00  \_ [cpuhp/0]
       12 ?        S      0:00  \_ [cpuhp/1]
       13 ?        S      0:00  \_ [migration/1]
       14 ?        S      0:00  \_ [ksoftirqd/1]
       15 ?        S      0:00  \_ [kworker/1:0]
       16 ?        S<     0:00  \_ [kworker/1:0H]
       17 ?        S      0:00  \_ [cpuhp/2]
       18 ?        S      0:00  \_ [migration/2]
       19 ?        S      0:00  \_ [ksoftirqd/2]
       20 ?        S      0:00  \_ [kworker/2:0]
       21 ?        S<     0:00  \_ [kworker/2:0H]
       22 ?        S      0:00  \_ [cpuhp/3]
       23 ?        S      0:00  \_ [migration/3]
       24 ?        S      0:00  \_ [ksoftirqd/3]
       25 ?        S      0:00  \_ [kworker/3:0]
       26 ?        S<     0:00  \_ [kworker/3:0H]
       27 ?        S      0:00  \_ [kdevtmpfs]
       28 ?        S<     0:00  \_ [netns]
       29 ?        S      0:00  \_ [khungtaskd]
       30 ?        S      0:00  \_ [oom_reaper]
       31 ?        S<     0:00  \_ [writeback]
       32 ?        S      0:00  \_ [kcompactd0]
       33 ?        S<     0:00  \_ [crypto]
       34 ?        S<     0:00  \_ [bioset]
       35 ?        S<     0:00  \_ [kblockd]
       36 ?        S<     0:00  \_ [watchdogd]
       37 ?        S      0:00  \_ [kworker/0:1]
       38 ?        S<     0:00  \_ [rpciod]
       39 ?        S<     0:00  \_ [xprtiod]
       40 ?        S      0:00  \_ [kswapd0]
       41 ?        S<     0:00  \_ [vmstat]
       42 ?        S<     0:00  \_ [nfsiod]
       52 ?        S<     0:00  \_ [kthrotld]
       53 ?        S<     0:00  \_ [bioset]
       54 ?        S<     0:00  \_ [bioset]
       55 ?        S<     0:00  \_ [bioset]
       56 ?        S<     0:00  \_ [bioset]
       57 ?        S<     0:00  \_ [bioset]
       58 ?        S<     0:00  \_ [bioset]
       59 ?        S<     0:00  \_ [bioset]
       60 ?        S<     0:00  \_ [bioset]
       61 ?        S<     0:00  \_ [bioset]
       62 ?        S<     0:00  \_ [bioset]
       63 ?        S<     0:00  \_ [bioset]
       64 ?        S<     0:00  \_ [bioset]
       65 ?        S<     0:00  \_ [bioset]
       66 ?        S<     0:00  \_ [bioset]
       67 ?        S<     0:00  \_ [bioset]
       68 ?        S<     0:00  \_ [bioset]
       69 ?        S<     0:00  \_ [bioset]
       70 ?        S<     0:00  \_ [bioset]
       71 ?        S<     0:00  \_ [bioset]
       72 ?        S<     0:00  \_ [bioset]
       73 ?        S<     0:00  \_ [bioset]
       74 ?        S<     0:00  \_ [bioset]
       75 ?        S<     0:00  \_ [bioset]
       76 ?        S<     0:00  \_ [bioset]
       77 ?        S<     0:00  \_ [iscsi_eh]
       78 ?        S<     0:00  \_ [dwc_otg]
       79 ?        S      0:00  \_ [kworker/2:1]
       80 ?        S<     0:00  \_ [DWC Notificatio]
       81 ?        S<     0:00  \_ [VCHIQ-0]
       82 ?        S<     0:00  \_ [VCHIQr-0]
       83 ?        S<     0:00  \_ [VCHIQs-0]
       84 ?        S      0:00  \_ [VCHIQka-0]
       85 ?        S<     0:00  \_ [SMIO]
       86 ?        S      0:00  \_ [kworker/2:2]
       87 ?        S      0:00  \_ [irq/92-mmc1]
       88 ?        S      0:00  \_ [kworker/2:3]
       89 ?        S      0:00  \_ [kworker/1:1]
       90 ?        S<     0:00  \_ [bioset]
       91 ?        S      0:01  \_ [mmcqd/0]
       92 ?        S      0:00  \_ [jbd2/mmcblk0p2-]
       93 ?        S<     0:00  \_ [ext4-rsv-conver]
       94 ?        S      0:00  \_ [kworker/3:1]
       95 ?        S<     0:00  \_ [ipv6_addrconf]
      112 ?        S      0:00  \_ [kworker/u8:1]
      126 ?        S      0:00  \_ [kworker/1:2]
      142 ?        S      0:00  \_ [kworker/3:2]
      163 ?        S      0:00  \_ [kworker/0:2]
      193 ?        S      0:00  \_ [spi0]
      228 ?        S<     0:00  \_ [cfg80211]
      232 ?        S<     0:00  \_ [brcmf_wq/mmc1:0]
      233 ?        S      0:00  \_ [brcmf_wdog/mmc1]
      246 ?        S      0:00  \_ [kworker/0:3]
      268 ?        S      0:00  \_ [kworker/u8:2]
      292 ?        S      0:00  \_ [w1_bus_master1]
      360 ?        S      0:00  \_ [kworker/1:3]
      427 ?        S<     0:00  \_ [kworker/3:1H]
      533 ?        S<     0:00  \_ [kworker/1:1H]
      534 ?        S<     0:00  \_ [kworker/0:1H]
     1115 ?        S<     0:00  \_ [kworker/2:1H]
        1 ?        Ss     0:02 /sbin/init splash
      118 ?        Ss     0:01 /lib/systemd/systemd-journald
      150 ?        Ss     0:00 /lib/systemd/systemd-udevd
      301 ?        Ssl    0:00 /lib/systemd/systemd-timesyncd
      335 ?        SNsl   0:17 node-red
      337 ?        Ss     0:00 /lib/systemd/systemd-logind
      339 ?        Ssl    0:00 /usr/sbin/rsyslogd -n
      342 ?        Ss     0:00 /usr/bin/dbus-daemon --system --address=systemd: --no
      375 ?        Ss     0:00 /usr/sbin/cupsd -l
      516 ?        S      0:00  \_ /usr/lib/cups/notifier/dbus dbus://
      762 ?        S      0:00  \_ /usr/lib/cups/notifier/dbus dbus://
      376 ?        Ss     0:00 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d
      378 ?        Ss     0:00 /opt/neuron-bin/neuron_tcp_server -p 502 --check-firm
      379 ?        Ss     0:00 avahi-daemon: running [S103-sn344.local]
      416 ?        S      0:00  \_ avahi-daemon: chroot helper
      387 ?        Ss     0:00 /usr/sbin/cron -f
      393 ?        Ss     0:00 /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wla
      422 ?        Ssl    0:00 /usr/sbin/cups-browsed
      476 ?        S      0:01 /opt/codesys/bin/codesyscontrol.bin /etc/CODESYSContr
      521 ?        Sl     0:16  \_ /opt/codesys/bin/codesyscontrol.bin /etc/CODESYSC
      592 ?        Ss     0:00 /sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid -lf /
      639 ?        Ss     0:00 /usr/bin/vncserver-x11-serviced -fg
      652 ?        R      0:07  \_ /usr/bin/vncserver-x11-core -service
      643 ?        Ss     0:00 /usr/sbin/sshd -D
      656 ?        Ssl    0:00 /usr/sbin/lightdm
      671 tty7     Rsl+   0:08  \_ /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/
      741 ?        Sl     0:00  \_ lightdm --session-child 14 17
      767 ?        Ssl    0:00      \_ /usr/bin/lxsession -s LXDE-pi -e LXDE
      821 ?        Ss     0:00          \_ /usr/bin/ssh-agent x-session-manager
      842 ?        S      0:00          \_ openbox --config-file /home/pi/.config/op
      853 ?        Sl     0:02          \_ lxpanel --profile LXDE-pi
     1022 ?        Sl     0:04          |   \_ termit
     1028 pts/0    Ss     0:00          |   |   \_ /bin/bash
     1159 pts/0    R+     0:00          |   |       \_ ps -fax
     1126 ?        Sl     0:00          |   \_ termit
     1132 pts/1    Ss+    0:00          |       \_ /bin/bash
      855 ?        Sl     0:01          \_ pcmanfm --desktop --profile LXDE-pi
      856 ?        S      0:00          \_ xscreensaver -no-splash
      661 tty1     Ss     0:00 /bin/login -f
      725 tty1     S+     0:00  \_ -bash
      665 ?        Ss     0:00 /sbin/netplugd -p /var/run/netplugd.pid
      701 ?        Ss     0:00 /lib/systemd/systemd --user
      714 ?        S      0:00  \_ (sd-pam)
      777 ?        Ss     0:00  \_ /usr/bin/dbus-daemon --session --address=systemd:
      827 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfsd
      832 ?        Sl     0:00  \_ /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -
      900 ?        Sl     0:00  \_ /usr/lib/dconf/dconf-service
      940 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-udisks2-volume-monitor
      958 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-afc-volume-monitor
      963 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
      967 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-goa-volume-monitor
      971 ?        Ssl    0:00  \_ /usr/lib/gvfs/gvfs-mtp-volume-monitor
      980 ?        Sl     0:00  \_ /usr/lib/gvfs/gvfsd-trash --spawner :1.5 /org/gtk
      710 ?        S      0:01 /usr/bin/vncagent service 15
      770 ?        Ssl    0:00 /usr/lib/colord/colord
      861 ?        Ss     0:00 /usr/bin/ssh-agent -s
      863 ?        Sl     0:00 light-locker
      865 ?        Sl     0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher --launch-im
      873 ?        S      0:00  \_ /usr/bin/dbus-daemon --config-file=/usr/share/def
      875 ?        S      0:00 /usr/bin/vncserverui service 17
      912 ?        S      0:00  \_ /usr/bin/vncserverui -statusicon 7
      919 ?        Sl     0:00 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-s
      933 ?        Ssl    0:00 /usr/lib/menu-cache/menu-cached /run/user/1000/menu-c
      943 ?        Ssl    0:00 /usr/lib/udisks2/udisksd --no-debug
      949 ?        Ssl    0:00 /usr/lib/policykit-1/polkitd --no-debug
    


  • I managed to get the CPU usage down...port 8080 which is used by default by EVOK is also used by default by Codesys WebVisu.

    I reinstalled Evok using ports 85 (instead of 80) and 8085 instead of 8080.

    Although the CPU usage went down immediately after this, evok still doesn't work.

    Further testing:

    ~ $ sudo grep S103 /sys/bus/i2c/devices/1-0057/eeprom
    Binary file /sys/bus/i2c/devices/1-0057/eeprom matches
    
    ~ $ sudo python /opt/evok/evok.py
    [I 171207 01:21:42 config:66] eprom: UniPi Neuron S103 version: 1.0 serial: 0x158
    [I 171207 01:21:42 evok:1640] Starting using config file /etc/evok.conf
    [I 171207 01:21:42 config:78] YAML Definition loaded: CUSTOM MODBUS DEVICE.yaml, type: 3, definition count 0
    [I 171207 01:21:42 config:78] YAML Definition loaded: L30x.yaml, type: 3, definition count 1
    [I 171207 01:21:42 config:78] YAML Definition loaded: M50x.yaml, type: 3, definition count 2
    [I 171207 01:21:42 config:78] YAML Definition loaded: L40x.yaml, type: 3, definition count 3
    [I 171207 01:21:42 config:78] YAML Definition loaded: xS40.yaml, type: 3, definition count 4
    [I 171207 01:21:43 config:78] YAML Definition loaded: M30x.yaml, type: 3, definition count 5
    [I 171207 01:21:43 config:78] YAML Definition loaded: M40x.yaml, type: 3, definition count 6
    [I 171207 01:21:43 config:78] YAML Definition loaded: xS50.yaml, type: 3, definition count 7
    [I 171207 01:21:43 config:78] YAML Definition loaded: L50x.yaml, type: 3, definition count 8
    [I 171207 01:21:44 config:78] YAML Definition loaded: L51x.yaml, type: 3, definition count 9
    [I 171207 01:21:44 config:78] YAML Definition loaded: M20x.yaml, type: 3, definition count 10
    [I 171207 01:21:44 config:78] YAML Definition loaded: DALI.yaml, type: 3, definition count 11
    [I 171207 01:21:44 config:78] YAML Definition loaded: S10x.yaml, type: 3, definition count 12
    [I 171207 01:21:44 config:78] YAML Definition loaded: L20x.yaml, type: 3, definition count 13
    [I 171207 01:21:44 config:78] YAML Definition loaded: xS10.yaml, type: 3, definition count 14
    [I 171207 01:21:45 config:78] YAML Definition loaded: M10x.yaml, type: 3, definition count 15
    [I 171207 01:21:45 config:78] YAML Definition loaded: xS30.yaml, type: 3, definition count 16
    [I 171207 01:21:45 config:78] YAML Definition loaded: evok-alias.yaml, type: 2, definition count 0
    [I 171207 01:21:45 evok:1704] HTTP server listening on port: 8085
    [I 171207 01:21:45 modbusclient_tornado:125] SPI client started
    [I 171207 01:21:45 neuron:173] Reading SPI boards
    [I 171207 01:21:45 neuron:188] No board on SPI 1
    Process OwBusDriver-1:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
        self.run()
      File "/opt/evok/owclient.py", line 375, in run
    [I 171207 01:21:45 neuron:188] No board on SPI 2
        ow.init(self.bus)
      File "/usr/lib/python2.7/dist-packages/ow/__init__.py", line 224, in init
        raise exNoController
    exNoController
    [I 171207 01:21:45 neuron:188] No board on SPI 3
    [E 171207 01:21:45 config:358] Invalid device circuit number 1_01
        Traceback (most recent call last):
          File "/opt/evok/config.py", line 353, in add_aliases
            dev_obj = Devices.by_int(dev_pointer["dev_type"], dev_pointer["circuit"])
          File "/opt/evok/devices.py", line 67, in by_int
            raise Exception('Invalid device circuit number %s' % str(circuit))
        Exception: Invalid device circuit number 1_01
    [E 171207 01:21:45 config:358] Invalid device circuit number 1_02
        Traceback (most recent call last):
          File "/opt/evok/config.py", line 353, in add_aliases
            dev_obj = Devices.by_int(dev_pointer["dev_type"], dev_pointer["circuit"])
          File "/opt/evok/devices.py", line 67, in by_int
            raise Exception('Invalid device circuit number %s' % str(circuit))
        Exception: Invalid device circuit number 1_02
    [E 171207 01:21:45 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 171207 01:21:46 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 171207 01:21:46 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 171207 01:21:47 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 171207 01:21:47 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 171207 01:21:48 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 171207 01:21:48 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 171207 01:21:49 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    [E 171207 01:21:49 neuron:227] 'NoneType' object has no attribute 'do_scan'
        Traceback (most recent call last):
          File "/opt/evok/neuron.py", line 225, in scan_boards
            yield self.modbus_cache_map.do_scan()
        AttributeError: 'NoneType' object has no attribute 'do_scan'
    

    The python script then never ends...looks like it's stuck in a loop.

    Looking at the evok log, now I also have the same error as displayed when running the script manually (as above).


  • administrators

    @tempurpri

    The port issue is probably due to NGINX; the port conflict would cause EVOK to restart continually which causes the CPU spikes.

    As for the infinite loop - it looks like EVOK can't communicate with the hardware over SPI. Along with the port issues it's probably the most common problem encountered with EVOK, as the I2C/SPI driver setup is somewhat delicate in comparison with the software itself.

    Could you post your /boot/config.txt as well? It's likely that you have both dtoverlay=neuron-spi-new and dtoverlay=neuron-spi; if so please delete the former. This can be caused by reinstalling EVOK master on the open-source image, as the open source image already includes a customised version, which is not fully driver-compatible with the github one.



  • I don't see a dtoverlay=neuron-spi line, there are however a couple of duplicate lines in /boot/config.txt

    gpu_mem=32
    dtparam=i2c_arm=on,watchdog=on
    
    dtoverlay=i2c-rtc,mcp7941x
    
    # disable it on Unipi 1.x (gpio24, 25!)
    dtoverlay=neuron-spi-new
    dtoverlay=neuronee
    #dtoverlay=unipiee
    
    #Enable kernel driver for I2c OneWire Master
    dtoverlay=ds2482
    
    #remove dependency of spi-clock on system freq
    core_freq=250
    
    #BT enabled on RPi3 swaps UART (ttyAMA) and miniUART ttyS0.
    dtoverlay=pi3-disable-bt
    
    #WIFI disabled
    #dtoverlay=pi3-disable-wifi
    
    
    # For more options and information see
    # http://rpf.io/configtxt
    # Some settings may impact device functionality. See link above for details
    
    # uncomment if you get no picture on HDMI for a default "safe" mode
    #hdmi_safe=1
    
    # uncomment this if your display has a black border of unused pixels visible
    # and your display can output without overscan
    #disable_overscan=1
    
    # uncomment the following to adjust overscan. Use positive numbers if console
    # goes off screen, and negative if there is too much border
    #overscan_left=16
    #overscan_right=16
    #overscan_top=16
    #overscan_bottom=16
    
    # uncomment to force a console size. By default it will be display's size minus
    # overscan.
    #framebuffer_width=1280
    #framebuffer_height=720
    
    # uncomment if hdmi display is not detected and composite is being output
    hdmi_force_hotplug=1
    
    # uncomment to force a specific HDMI mode (this will force VGA)
    hdmi_group=2
    hdmi_mode=18
    
    # uncomment to force a HDMI mode rather than DVI. This can make audio work in
    # DMT (computer monitor) modes
    #hdmi_drive=2
    
    # uncomment to increase signal to HDMI, if you have interference, blanking, or
    # no display
    #config_hdmi_boost=4
    
    # uncomment for composite PAL
    #sdtv_mode=2
    
    #uncomment to overclock the arm. 700 MHz is the default.
    #arm_freq=800
    
    # Uncomment some or all of these to enable the optional hardware interfaces
    #dtparam=i2c_arm=on
    #dtparam=i2s=on
    #dtparam=spi=on
    
    # Uncomment this to enable the lirc-rpi module
    #dtoverlay=lirc-rpi
    
    # Additional overlays and parameters are documented /boot/overlays/README
    
    # Enable audio (loads snd_bcm2835)
    #dtparam=audio=off   
    
    #Enable i2c bus 1
    device_tree_param=i2c1=on
    dtoverlay=i2c-rtc,mcp7941x
    dtoverlay=unipiee
    dtoverlay=neuronee
    

    I do see a commented parameter about spi

    #dtparam=spi=on
    

    Should this be enabled ?

    FYI: I haven't touched this file manually.



  • I apologize for pushing this issue again, but it's been a week since any updates and evok is still not working here. If there are any suggestions how to proceed (based on the data provided), pleas let me know.

    I appreciate any help.


  • administrators

    @tempurpri
    Please try to delete the dtoverlay=neuron-spi-new line, this should hopefully fix your issue.

    The GitHub master distribution has been updated to stop EVOK from restarting if it fails to start several times in the row. But the issue lies here in the fact that EVOK fails to start (which, as it is necessary for the device to function, it tries repeatedly), rather than the restarting itself.

    As you correctly observed this was originally caused by the port conflict with your NodeJS installation (or perhaps some other server, as only a single server can ever be connected to a port on standard TCP/IP architecture).

    If this does not help, you may have to install pigpio

    sudo apt-get install pigpio
    

    as well. Or perhaps a better option might be to try and redo the installation process from scratch, using the EVOK version designed for the more comprehensive device drivers in the open-source image - not the version on GitHub.



  • In the end, nothing else than starting from scratch with a fresh image of the open-source OS helped.
    Then I was able to change the evok port to 8085 (instead of 8080) and nginx port to 85 (instead of 80) prior to installing codesys and it worked.
    ..
    ..
    for a while. I started a new separate thread since the problems have a little bit different symptoms.