The datasheet for the Harting MICA CISS Complete IIoT Starter Kit makes a fairly bold claim – that you could be up and running with a condition monitoring system in just 10 minutes. Let’s put this to the test. In this rather long chapter, I will be examining the setup process, software available, hardware, documentation and troubleshooting experience.
Initial Setup
As all the necessary components are included in the kit, getting started is a matter of plugging everything in and powering it up. This includes plugging in the Bosch CISS USB lead and the Ethernet cable, both of which click into place courtesy of the push-pull connectors. Then, the grey I/O cable needs to be connected by twisting its collar until secure, then connecting the barrel connector of the power supply to the lead, plugging it into the wall and turning it on.
When powered, the MICA will show its status using two LEDs. The power LED is bi-colour, showing red while starting up and green once booted. A network activity LED is provided which is orange when a link is established and flashes to indicate activity. Assuming that the MICA is connected to a network with DHCP, it will automatically obtain an IP address and be available on the network. Otherwise, the static fallback address of 10.10.10.10 will be used and the user will need to configure their network address and subnet mask appropriately to access the device. For operating systems with mDNS resolution, they can enter either the MICA’s unique name (in my case, “mica-cjsvg”) in the browser bar to reach the unit. This may need to be suffixed with the domain of “.local”. Those without mDNS will either need to determine the address allocated to the MICA from the DHCP server or use the IPv6 link local address (i.e. fe80::<mac address>:0).
If all is well, the user will see a browser warning as the HTTPS certificate that the MICA uses does not come from a trusted issuer. This is normal and no cause for concern, as the certificate is self-signed by Harting IT Software Development GmbH & Co. KG.
The user is now greeted with the login prompt. Three user-levels are defined, including admin, containeradmin and user. The default password is printed on a label underneath the case and is necessary to configure the MICA. The manual seems to suggest the password for the other users are the same as the username, but this is not the case – it’s the same as the default password for admin. I have asked them to correct the documentation regarding this.
Some basic information about the MICA is available on the login screen without logging in.
Once logged in, we are greeted with the home screen which shows the list of running containers and various system administration tools. The MICA comes pre-loaded with CISS Gateway, NodeRED, MQTT Broker and Help containers, running Base Firmware 3. As the software is updated from time to time, I decided to first tackle updating everything first.
Software Containers, Firmware Upgrades & Administration Tools
The Harting MICA uses a lightweight Linux container system called LXC. The user interface we see is the control to the hypervisor which allows us to start, stop, export, update, install and remove these containers. Each icon represents something similar to an isolated “virtual” machine, which is allocated its own IPv6 address (and optionally, an IPv4 as well). This design makes deployment of updates much easier by managing dependencies, but also helps to limit damage in case of a security compromise.
Harting offers a number of containers on the mica-container.com website including (at present):
- BLE Gateway
- CISS Gateway
- Euromap 15 Gateway
- Euromap 63 Gateway
- GPIO
- Industrial Ethernet
- MICA Energy Data Collector
- Modbus Gateway
- OPC-UA Gateway
- MQTT Broker
- Node Red
- TICKpy
- Hadoop
- MySQL
- NAS/SMB
- Alpine
- Busybox
- Debian Jessie
- Debian Stretch
- Java8
- Node.js
- Python 2.7
- Python 3.4
The supplied containers allow for more rapid development as users can use the provided containers instead of needing to roll-their-own install. However, that being said, with the Busybox and Debian containers on offer, users are free to develop their own as well, which may be advisable if users are looking for specific features or wanting a newer version. It’s important to note that many of these containers come unsecured with simple-to-guess defaults as noted in the readme. Users are advised to read this documentation thoroughly and change the necessary default passwords to avoid system compromise!
In order to interact with a container, the right-click button is used to bring up the container actions menu. The Stop App button allows for the container to be shut down. Settings brings up a container settings page, whereas duplicate allows the container to be copied to another on the device. Export allows for the container and overlay (changes made to the container) to be backed up to your computer which can later be re-deployed. The Merge feature will merge the base image and overlay together, thus making the current container state the state the Reset feature would restore to. Reset removes whatever overlay is active, restoring the container to the base state only. Delete, as its name implies, removes the container from the system.
The Settings for the container can be quite important, as it allows for changing the network addresses allocated to the container. By default, most containers have no IPv4 address allocated, but due to needing to access servers for updating packages or for external access from IPv4-only devices such as some smartphones, it may be necessary to allocate an IPv4 address.
The settings page allows the user to perform a number of configuration tasks.
The accounts page allows for passwords to be changed for all three user levels. Note that password changes take effect immediately and no mechanism is provided to reset the password if forgotten. The unit would have to be returned to Harting and fully erased as password recovery is not supported.
The network page allows for configuration of the MICA’s administration addresses and hostnames.
The devices page controls device access for each container, although it doesn’t seem to have much of an effect in my experience.
Time and Date allows for configuring the time zone and NTP servers. Interestingly, the time-zone for Sydney was not where I expected it to be as the DST time zone is listed first in this case.
The certificates page allows for the HTTPS certificate to be replaced with one of your own, perhaps avoiding the warning message.
Finally, the firmware page contains the reboot or reset options. This seems slightly misleading, but resetting the firmware to factory default does not appear to affect the installed containers, and is more about resetting the MICA’s firmware settings to default.
By now, you may be wondering how a firmware update is achieved? On the home screen, the Install button is the answer to almost everything. Using this button, you can install containers and firmware alike.
In the case of uploading new firmware, select the path to the new firmware and hit execute. The system takes care of the rest, taking several minutes to achieve the update.
Depending on the container you upload, installation can look somewhat different. Some containers will have a nice progress “ring” appear during installation. Others instead have a text-only progress print-out. Containers which have documentation included will show a readme prior to installation, while older containers will ask for a container name just before the installation completes. The choice of container name is important, as this will define the address used to reach the container and cannot clash with an existing container name. I did not find an easy way to update an existing container, short of either removing the container or installing the new container alongside and stopping the old container.
After the firmware installs, the unit will reboot which will break the connection. The browser will automatically attempt to re-establish connection. Checking on the Information page will show the status of the firmware and storage in use. The system summary that can be downloaded in .json should be kept safe as it seems to contain the default password in plaintext. Changing the password from the default is recommended, but care must be taken not to forget this password as user-based password resetting is not possible.
CISS Gateway, MQTT Broker & NodeRED
If the latest versions of CISS Gateway (v2.2.0), MQTT Broker (v1.4.0) and NodeRED (v3.0.0) have been installed, setup is rather straightforward compared to the notes in the manual as some of the steps have already been completed.
The first step is to check the CISS Gateway configuration. Clicking on the icon from the home screen loads the web interface for the container.
In this screen, the detected sensors are displayed at the top, clicking on one allows you to check details of the sensor and update its firmware if necessary. The power button toggle allows the sensor to be activated – if working correctly, a sun icon appears as in the screenshot above. The CISS Gateway’s outputs are listed in the reports section. The default MQTT subscriber is automatically added by newer versions of the CISS Gateway container – if not required, it can be disabled, but deleting it will result in its recreation after the container restarts.
The MQTT container does not have anything much to configure. A custom configuration can be updated, but the most important debugging tool is the logfile print-out shown above which can be used to determine if some MQTT traffic is being passed through the system or not.
The NodeRED container’s configuration page is quite sparse, but links to the dashboard where the CISS values can be seen and the NodeRED editor where flows can be configured.
It really doesn’t take much time or work to get to the point where the demonstration is showing. In fact, if the updating steps are omitted, ten minutes seems a perfectly realistic estimate of how long it might take a technically-minded user to set it up, assuming nothing goes wrong. However, while the demonstration is workable, it’s important to remember that the system as it stands is not ready for production use as there may be some default passwords that need to be reconfigured.
Hardware & Other Containers
This got me wondering – what is inside the Harting MICA and what else can I do with it? To find out requires using some other containers – I deployed the Debian Stretch container to have a familiar Linux environment to do some exploring.
Based on what I found in the dmesg output (see Appendix), it appears that it is using an ARMv7 CPU at 1Ghz, likely a Texas Instruments AM335x. It seems some bootloader information is stored on an AT25DF321A 4MiB SPI Flash memory, with the remainder of the data stored in a Micron Technologies (?) Q2J54A 4GiB eMMC attached to mmc0 bus. The USB bus is being handled by the MUSB driver, which has the Microchip MCP2210 USB to SPI Master, smsc95xx USB 2.0 Ethernet (similar to the Raspberry Pi) and the Bosch CISS Sensor attached to it. The Ethernet port is configured in promiscuous mode and an elaborate setup of bridges is used to provide container connection/isolation/proxying to the network.
I was also interested in what network services were running on the MICA and ran a nmap scan (see Appendix). It is seen that MDNS is used for service discovery, NTP for time synchronisation, Tornado for web server, HAProxy for proxying HTTP requests to/from containers and dnsmasq for DNS services. Each container will have its own address, acting as if an independent node on the network, running its own services thus caution must be exercised when deploying new containers to audit the exposed services of each individual container in addition to that of the system.
I thought it would be good to do some automation of test equipment with pyvisa and pyvisa-py. I tried using the Python containers, but they are relatively limited by their design and use a lightweight alternative Python interpreter. As a result, I deployed (proper) Python3 on the Debian container and managed to do some SCPI control of devices over LAN and over USB (with a modified USB connector to fit inside the shroud).
I also decided to do some testing of throughput speeds to a USB 2.0 stick and a microSD card, both of which were successful. The speeds were not terribly fast, but this is not unexpected given the shared nature of the USB bus and the limited computational power of a single-core ARM 1GHz SoC.
I even installed the NAS container and managed to access my logged data on the microSD card via a network share. This container requires some careful attention – both password for the SSH/root user and the SMB password need to be changed to secure the container properly.
Thinking further afield, I tried to run a USB webcam and various USB to serial adapter cables, but with no luck. I suspect this is because the kernel was not built with support for USB video class or the specific chipsets within my USB to serial adapter cables. Perhaps there is a way to do this, but I couldn’t figure out how to build or load kernel modules (as I couldn’t download the source within Debian and I suspect the secure nature of the unit would not permit loading such modules) nor could I find any userspace solutions to access the devices (e.g. via libusb). But I suspect someone who is more familiar with hardware drivers under Linux may know how to go about it.
Documentation & Troubleshooting
Documentation for the Harting MICA CISS Complete IIoT Starter Kit is available online from Harting. The documentation is rather fragmented, with the details specific to the kit detailed in the Setup Guide and User Manuals, but other details common to the MICA family such as hardware/software development being detailed in separate manuals. Despite this, the manuals are detailed enough to work with.
Navigating the manuals on the website can get a little tricky, as there are some “older” versions of documentation which remain and the latest version of documentation is often for older versions of base firmware or container. This is no great issue as the changes are often minor, but then, I have found some minor errors in their manuals which I have provided feedback upon. My biggest gripe in regard to their manuals is that often, they read almost like a list of procedures – “do this, then do that” without explaining why something must be done in a given order or what this is supposed to achieve. I feel this is perhaps an educational opportunity that has been missed.
My experience with the Harting MICA and Bosch CISS was not without fault, however. In fact, a number of issues had cropped up during testing which required contact with Harting’s support team to troubleshoot and resolve.
After getting the system working, I noticed issues with spiking in the data from the humidity channel. After examining the data log, I found strange incidences where duplicate humidity values were being reported, with one of the two being erroneous.
Upon reporting this to Harting, they were not able to duplicate the issue immediately, which led to a wild-goose-chase of troubleshooting. I tried older versions of CISS Gateway to no avail, eventually convincing myself that was something wrong with the USB as it was clear that the dmesg log showed issues with the USB connection dropping out, reconnecting under a different device name and logging MUSB driver issues.
In troubleshooting, it was suggested that I try the Bosch CISS Python sample code, which set off a new wave of troubleshooting. Initially, I got no response from the CISS with the code whatsoever despite configuring the sensor configuration correctly. Testing on Windows with WinPython worked fine with no duplicate values. Eventually, after some work, it was determined that after uninstalling CISS Gateway container (not just stopping it), that it would work in Debian too.
This resulted in the discovery that there were no humidity spikes with the Bosch code despite running for almost 12 hours. But then … I couldn’t get the Bosch code to run again.
After a long chase, helped by Jan Cumps and stevesmythe, it was determined this was a case of mea culpa – I had added a UDP output to an IPv4 address in the Python code for logging, but because of the container restoration not restoring the configuration of the IP addresses, a network unreachable exception was being thrown. Because the Bosch code traps the exceptions as “disconnected”, I thought the sensor was dropping out but instead, it was because the UDP packet could not be sent. D’oh.
The good news was that Harting was able to reproduce the issue at last, and supplied a test version of the CISS Gateway that resolved this issue.
Unfortunately for them, the solution to one problem proved to unmask another issue. While the humidity channel was behaving itself, now the light channel is exhibiting spikes rather than duplicate values. Some of these spikes are outside the sensor’s reporting range as well and do not occur with the Bosch code. Support was again contacted, who spun up a new test version for me. Unfortunately, the first version did not fix it, and I provided the feedback to them, thus another version was created which finally did. Ultimately, through this RoadTest, I caused them to create three new CISS Gateway packages, but this should fix the issues found. I’ve also requested that they add additional features such as enabling/disabling sensors, changing report intervals and enabling/disabling the BLE radio.
This also fixed another issue with the prior CISS Gateway versions which resulted in the sensor failing to initialise with a moon icon if the sensor was plugged in during boot-up. The only way to initialise the sensor correctly would be to unplug and replug the sensor while hot, which was a ripe inconvenience.
Another issue I had was with the Ethernet link on my MICA. I found that when attached to most switches, it either would not establish a link at all, or it would establish a link only if the cable was unplugged and re-plugged, no matter at which end. If the MICA was commanded to reboot, the link would be lost until the cable was cycled. This would be a rather big problem, and apparently, Harting claimed to have heard of other cases.
In my case, investigation first centred on the push-pull plug, which proved to be cause of the issue. I will admit this is a case of mea culpa as on the unboxing images, the connector is undamaged and the pins in the socket are straight. But seeing as I had this issue from the first power-up, it would seem that I managed to damage the connector on first mating. Part of the difficulty with mating the Ethernet push-pull connector is establishing the alignment of the mark on the body of the plug to the white line of the socket which is obscured when the connector is being pushed into place. With such sharp metal edges dividing the pairs, it seems that damage to the plastic former is quite likely even if some misalignment exists. This was exacerbated during my troubleshooting phase when I tested it with a multitude of different equipment resulting in over 20 insertion/removal cycles.
It turns out the damaged pins were part of the Ethernet data circuit. After cleaning the plastic shards from the connector and straightening the pin with a toothpick, the Ethernet performed flawlessly as expected.
In all, I would have to say that dealing with Harting’s support was a positive experience overall, with a collaborative approach to solving the problems, resulting in new test-versions of CISS Gateway addressing the issues and practical advice to resolving the issue with the Ethernet connection. The only downside was the difference in time-zone, dealing with Harting’s EU team which is almost exactly opposite to the time zones in AU resulting in some longer turnaround times.
Conclusion
The datasheet for the Harting MICA CISS Complete IIoT Starter Kit makes a fairly bold claim – that you could be up and running with a condition monitoring system in just 10 minutes. After trying it out for myself, I find this claim quite plausible. The kit contains everything needed to get started – it’s just a simple matter of plugging things together and powering it up. The necessary software including CISS Gateway, MQTT Broker and NodeRED comes pre-installed, although, somewhat out of date. This is enough to get a quick demonstration up and running.
The MICA uses a containerised Linux system based on LXC. Administration tasks are handled through a password-protected web interface with three user privilege levels which is simple to use. Each software container runs in an isolated environment, almost like a virtual machine but without the significant overhead which that would incur. This improves security and makes dependency management and deploying updates easier. Through the web interface, it is possible to start, stop, export, update, install and remove containers as well as configure the network interfaces available to each container. Configuration of the MICA system is possible as well, including passwords, devices, time-zone, certificates and network. While passwords can be changed, they cannot be recovered or reset by the end user – once forgotten, it must be sent back to Harting for a full reset, removing all data.
The MICA container website contains a large number of containers ready for use – this includes BLE Gateway, CISS Gateway, Euromap 15 Gateway, Euromap 63 Gateway, GPIO, Industrial Ethernet, MICA Energy Data Collector, Modbus Gateway, OPC-UA Gateway, MQTT Broker, Node Red, TICKpy, Hadoop, MySQL, NAS/SMB, Alpine, Busybox, Debian Jessie, Debian Stretch, Java8, Node.js, Python 2.7 and Python 3.4. Not all containers will make sense on all devices, but having these pre-configured containers can ease development. Users must be careful, however, as the containers may not have the latest versions of software and come configured with default passwords that must be changed for security reasons. Users can instead use the Busybox or Debian containers to develop and deploy their own versions of software as necessary.
It seems the MICA is based around a Texas Instruments AM335x ARMv7 CPU at 1Ghz. It seems some bootloader information is stored on an AT25DF321A 4MiB SPI Flash memory, with the remainder of the data stored in a Micron Technologies (?) Q2J54A 4GiB eMMC attached to mmc0 bus. The USB bus is being handled by the MUSB driver, which has the Microchip MCP2210 USB to SPI Master, smsc95xx USB 2.0 Ethernet (similar to the Raspberry Pi) and the Bosch CISS Sensor attached to it.
Using the Debian container, I was able to use the MICA to control VISA instruments through pyvisa and pyvisa-py. I was also able to access USB memory sticks and microSD cards. Using the NAS container, it was possible to share the microSD card as a network share and access the recorded data conveniently. As a result, the MICA is somewhat flexible and capable of performing tasks other than just the CISS demo which is headlined on the box.
On the whole, Harting’s documentation is sufficient and of good quality, but somewhat fragmented and difficult to navigate with several versions of the same documentation online, many of which refers to outdated firmware and container versions, and requires cross-referencing between documents to gain a complete understanding.
That being said, my journey with the MICA was not exactly fault-free, with a number of issues with CISS Gateway identified including duplicate erroneous humidity values, spikes in the lighting channel and faults in initialisation of the CISS sensor on the first time. I also experienced issues with Ethernet connection establishment which was determined to be due to connector damage due to my clumsiness in aligning the connector properly prior to mating. It seems the design of the connector is perhaps somewhat prone to this due to the sharp edges and plastic body, along with the hidden alignment mark while mating the connector.
Regardless, Harting’s support team were one of their strengths. Dealing with them was a positive experience overall with a collaborative approach to solving the problems, resulting in new test-versions of CISS Gateway addressing the issues and practical advice to resolving the issue with the Ethernet connection. The only downside was the difference in time-zone, dealing with Harting’s EU team which is almost exactly opposite to the time zones in AU resulting in some longer turnaround times.
---
This post is a part of the Harting MICA CISS Complete IIoT Starter Kit RoadTest
---
Appendix: Nmap Port-Scan Results
The following nmap port scan results reflect an exhaustive scan of TCP and UDP services on the Harting MICA’s IPv4 administration address only with its default configuration.
PORT STATE SERVICE VERSION
53/tcp open domain dnsmasq 2.75
| dns-nsid:
|_ bind.version: dnsmasq-2.75
80/tcp open http-proxy HAProxy http proxy 1.3.1 or later
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-open-proxy: Proxy might be redirecting requests
|_http-title: Did not follow redirect to https://mica-cjsvg.local/
443/tcp open ssl/http lighttpd 1.4.45
|_http-favicon: Unknown favicon MD5: 647A7F8544A4ED2AE7E680E4EB453D9F
| http-methods:
|_ Supported Methods: OPTIONS GET HEAD POST
|_http-server-header: lighttpd/1.4.45
|_http-title: HARTING IIC MICA
| ssl-cert: Subject: organizationName=HARTING IT Software Development GmbH & Co. KG/stateOrProvinceName=Berlin/countryName=DE
| Issuer: organizationName=HARTING IT Software Development GmbH & Co. KG/stateOrProvinceName=Berlin/countryName=DE
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 1999-12-31T13:22:07
| Not valid after: 2049-12-18T13:22:07
| MD5: 1998 bc32 7a2c ba90 ef89 8039 d7d3 fbc1
|_SHA-1: 5688 7369 f32a c6fd 1de4 2148 4a4c 3844 c0d0 f971
|_ssl-date: TLS randomness does not represent time
8080/tcp open http-proxy HAProxy http proxy 1.3.1 or later
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-open-proxy: Proxy might be redirecting requests
|_http-title: Did not follow redirect to https://mica-cjsvg.local:8080/
8888/tcp open http Tornado httpd 4.3
| http-methods:
|_ Supported Methods: GET
|_http-server-header: TornadoServer/4.3
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
53/udp open domain dnsmasq 2.75
| dns-nsid:
|_ bind.version: dnsmasq-2.75
|_dns-recursion: Recursion appears to be enabled
123/udp open ntp NTP v4 (secondary server)
| ntp-info:
|_ receive time stamp: 2019-04-23T07:27:08
5353/udp open mdns DNS-based service discovery
| dns-service-discovery:
| 9/tcp workstation
| Address=192.168.80.161 fe80:0:0:0:1493:5aff:fe6e:4be7
| 9/tcp mica
| Address=192.168.80.161 fe80:0:0:0:1493:5aff:fe6e:4be7
| 80/tcp http
| Address=192.168.80.161 fe80:0:0:0:1493:5aff:fe6e:4be7
| 443/tcp https
|_ Address=192.168.80.161 fe80:0:0:0:1493:5aff:fe6e:4be7
Appendix: dmesg Output after Reboot
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.4.96 (root@BuildBerlin01) (gcc version 4.9.4 20151028 (prerelease) (Linaro GCC 4.9-2016.02) ) #1 Fri Apr 5 14:21:31 CEST 2019
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: HARTING P5
[ 0.000000] cma: Reserved 24 MiB at 0xbe000000
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] On node 0 totalpages: 261888
[ 0.000000] free_area_init_node: node 0, pgdat c0a217ac, node_mem_map ef6f9000
[ 0.000000] Normal zone: 1728 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 196608 pages, LIFO batch:31
[ 0.000000] HighMem zone: 65280 pages, LIFO batch:15
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (neon )
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260160
[ 0.000000] Kernel command line: root=/dev/mmcblk0p3 rootfstype=ext4 rw rootdelay=5 console=ttyO0,115200n8 panic=5 mica.boot=2
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 1001496K/1047552K available (5171K kernel code, 704K rwdata, 2688K rodata, 1856K init, 827K bss, 21480K reserved, 24576K cma-reserved, 236544K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf800000 - 0xbfe00000 ( 6 MB)
[ 0.000000] .text : 0xc0008000 - 0xc07b5178 (7861 kB)
[ 0.000000] .init : 0xc07b6000 - 0xc0986000 (1856 kB)
[ 0.000000] .data : 0xc0986000 - 0xc0a361f8 ( 705 kB)
[ 0.000000] .bss : 0xc0a39000 - 0xc0b07de0 ( 828 kB)
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000012] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000029] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000039] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000288] clocksource_probe: no matching clocksources found
[ 0.000517] Console: colour dummy device 80x30
[ 0.000547] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[ 0.089447] pid_max: default: 32768 minimum: 301
[ 0.089547] Security Framework initialized
[ 0.089557] Yama: becoming mindful.
[ 0.089591] AppArmor: AppArmor disabled by boot time parameter
[ 0.089740] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.089750] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.090429] Initializing cgroup subsys io
[ 0.090454] Initializing cgroup subsys memory
[ 0.090491] Initializing cgroup subsys devices
[ 0.090510] Initializing cgroup subsys freezer
[ 0.090523] Initializing cgroup subsys net_cls
[ 0.090533] Initializing cgroup subsys perf_event
[ 0.090573] CPU: Testing write buffer coherency: ok
[ 0.090976] Setting up static identity map for 0x800081c0 - 0x8000820c
[ 0.094415] devtmpfs: initialized
[ 0.102384] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.108033] omap_hwmod: tptc0 using broken dt data from edma
[ 0.108105] omap_hwmod: tptc1 using broken dt data from edma
[ 0.108166] omap_hwmod: tptc2 using broken dt data from edma
[ 0.112155] omap_hwmod: debugss: _wait_target_disable failed
[ 0.166609] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.166633] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.168772] xor: measuring software checksum speed
[ 0.259420] arm4regs : 1228.400 MB/sec
[ 0.359416] 8regs : 908.000 MB/sec
[ 0.459415] 32regs : 1098.800 MB/sec
[ 0.559416] neon : 1771.600 MB/sec
[ 0.559423] xor: using function: neon (1771.600 MB/sec)
[ 0.559457] pinctrl core: initialized pinctrl subsystem
[ 0.560682] NET: Registered protocol family 16
[ 0.562418] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.563140] cpuidle: using governor ladder
[ 0.563154] cpuidle: using governor menu
[ 0.566231] OMAP GPIO hardware version 0.1
[ 0.572397] No ATAGs?
[ 0.572422] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.739475] raid6: int32x1 gen() 242 MB/s
[ 0.909449] raid6: int32x1 xor() 237 MB/s
[ 1.079458] raid6: int32x2 gen() 366 MB/s
[ 1.249441] raid6: int32x2 xor() 270 MB/s
[ 1.419517] raid6: int32x4 gen() 398 MB/s
[ 1.589418] raid6: int32x4 xor() 243 MB/s
[ 1.759505] raid6: int32x8 gen() 325 MB/s
[ 1.929509] raid6: int32x8 xor() 212 MB/s
[ 2.099439] raid6: neonx1 gen() 1465 MB/s
[ 2.269447] raid6: neonx1 xor() 849 MB/s
[ 2.439443] raid6: neonx2 gen() 1877 MB/s
[ 2.609420] raid6: neonx2 xor() 1217 MB/s
[ 2.779443] raid6: neonx4 gen() 2024 MB/s
[ 2.949428] raid6: neonx4 xor() 1200 MB/s
[ 3.119448] raid6: neonx8 gen() 897 MB/s
[ 3.289435] raid6: neonx8 xor() 879 MB/s
[ 3.289441] raid6: using algorithm neonx4 gen() 2024 MB/s
[ 3.289446] raid6: .... xor() 1200 MB/s, rmw enabled
[ 3.289452] raid6: using intx1 recovery algorithm
[ 3.290733] edma 49000000.edma: Legacy memcpy is enabled, things might not work
[ 3.296400] edma 49000000.edma: TI EDMA DMA engine driver
[ 3.299556] SCSI subsystem initialized
[ 3.328347] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 3.328513] i2c i2c-0: of_i2c: modalias failure on /ocp/i2c@44e0b000/rfid@51
[ 3.328634] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 200 kHz
[ 3.328814] pps_core: LinuxPPS API ver. 1 registered
[ 3.328822] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 3.328849] PTP clock support registered
[ 3.329410] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[ 3.330428] NetLabel: Initializing
[ 3.330439] NetLabel: domain hash size = 128
[ 3.330444] NetLabel: protocols = UNLABELED CIPSOv4
[ 3.330500] NetLabel: unlabeled traffic allowed by default
[ 3.330696] clocksource: Switched to clocksource timer1
[ 3.366239] NET: Registered protocol family 2
[ 3.366893] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 3.366975] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[ 3.367041] TCP: Hash tables configured (established 8192 bind 8192)
[ 3.367150] UDP hash table entries: 512 (order: 1, 8192 bytes)
[ 3.367173] UDP-Lite hash table entries: 512 (order: 1, 8192 bytes)
[ 3.367347] NET: Registered protocol family 1
[ 3.367831] RPC: Registered named UNIX socket transport module.
[ 3.367844] RPC: Registered udp transport module.
[ 3.367849] RPC: Registered tcp transport module.
[ 3.367854] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 3.443688] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 3.445637] audit: initializing netlink subsys (disabled)
[ 3.445720] audit: type=2000 audit(3.440:1): initialized
[ 3.446800] VFS: Disk quotas dquot_6.6.0
[ 3.446860] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 3.447134] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 3.447439] NFS: Registering the id_resolver key type
[ 3.447496] Key type id_resolver registered
[ 3.447502] Key type id_legacy registered
[ 3.447525] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 3.447576] jffs2: version 2.2. (NAND) 2001-2006 Red Hat, Inc.
[ 3.447985] NILFS version 2 loaded
[ 3.449079] bounce: pool size: 64 pages
[ 3.449166] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[ 3.449289] io scheduler noop registered
[ 3.449301] io scheduler deadline registered
[ 3.449350] io scheduler cfq registered (default)
[ 3.450300] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 3.451943] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 3.453595] omap_uart 44e09000.serial: no wakeirq for uart0
[ 3.453738] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 155, base_baud = 3000000) is a OMAP UART0
[ 4.255368] console [ttyO0] enabled
[ 4.260359] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[ 4.269601] m25p80 spi1.0: at25df321a (4096 Kbytes)
[ 4.274808] 4 ofpart partitions found on MTD device spi1.0
[ 4.280561] Creating 4 MTD partitions on "spi1.0":
[ 4.285606] 0x000000000000-0x000000020000 : "MLO"
[ 4.291792] 0x000000020000-0x0000000a0000 : "u-boot"
[ 4.298071] 0x0000000a0000-0x000000120000 : "data"
[ 4.304097] 0x000000120000-0x000000400000 : "user"
[ 4.311016] mousedev: PS/2 mouse device common for all mice
[ 4.317933] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[ 4.327108] rtc-pcf8523 0-0068: rtc core: registered rtc-pcf8523 as rtc1
[ 4.334217] i2c /dev entries driver
[ 4.339211] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 4.346688] sdhci: Secure Digital Host Controller Interface driver
[ 4.353186] sdhci: Copyright(c) Pierre Ossman
[ 4.430874] sdhci-pltfm: SDHCI platform and OF driver helper
[ 4.437335] ledtrig-cpu: registered to indicate activity on CPUs
[ 4.443760] hidraw: raw HID events driver (C) Jiri Kosina
[ 4.449646] mmc0: MAN_BKOPS_EN bit is not set
[ 4.455101] ashmem: initialized
[ 4.459441] oprofile: using arm/armv7
[ 4.463738] NET: Registered protocol family 10
[ 4.469336] mip6: Mobile IPv6
[ 4.472507] NET: Registered protocol family 17
[ 4.477202] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[ 4.490500] Bridge firewalling registered
[ 4.494782] 8021q: 802.1Q VLAN Support v1.8
[ 4.499215] Key type dns_resolver registered
[ 4.503846] omap_voltage_late_init: Voltage driver support not added
[ 4.510523] sr_dev_init: No voltage domain specified for smartreflex0. Cannot initialize
[ 4.519026] sr_dev_init: No voltage domain specified for smartreflex1. Cannot initialize
[ 4.527948] ThumbEE CPU extension supported.
[ 4.532480] Registering SWP/SWPB emulation handler
[ 4.537517] SmartReflex Class3 initialized
[ 4.542780] registered taskstats version 1
[ 4.547958] Btrfs loaded
[ 4.551023] mmc0: new high speed MMC card at address 0001
[ 4.557483] mmcblk0: mmc0:0001 Q2J54A 3.59 GiB
[ 4.562421] rtc-pcf8523 0-0068: setting system clock to 2019-04-27 03:17:29 UTC (1556335049)
[ 4.571306] sr_init: No PMIC hook to init smartreflex
[ 4.576773] sr_init: platform driver register failed for SR
[ 4.586199] PM: Hibernation image not present or could not be loaded.
[ 4.586885] mmcblk0boot0: mmc0:0001 Q2J54A partition 1 16.0 MiB
[ 4.593451] mmcblk0boot1: mmc0:0001 Q2J54A partition 2 16.0 MiB
[ 4.602798] Freeing unused kernel memory: 1856K
[ 4.607792] mmcblk0: p1 p2 p3 p4
[ 4.741475] EXT4-fs: Warning: mounting with data=journal disables delayed allocation and O_DIRECT support!
[ 4.755480] EXT4-fs (mmcblk0p3): mounted filesystem with journalled data mode. Opts: data=journal,commit=3,errors=continue
[ 5.156596] EXT4-fs (mmcblk0p4): mounted filesystem with journalled data mode. Opts: data=journal,commit=3,errors=continue
[ 6.212644] tpm tpm0: Issuing TPM_STARTUP
[ 6.393906] lm75 0-0048: hwmon0: sensor 'lm75'
[ 6.461456] 47401300.usb-phy supply vcc not found, using dummy regulator
[ 6.469489] 47401b00.usb-phy supply vcc not found, using dummy regulator
[ 7.560638] usbcore: registered new interface driver usbfs
[ 7.566562] usbcore: registered new interface driver hub
[ 7.572221] usbcore: registered new device driver usb
[ 7.692108] usbcore: registered new interface driver usbserial
[ 7.698289] usbcore: registered new interface driver usbserial_generic
[ 7.705230] usbserial: USB Serial support registered for generic
[ 7.716338] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[ 7.716359] musb-hdrc: MHDRC RTL version 2.0
[ 7.716367] musb-hdrc: setup fifo_mode 4
[ 7.716384] musb-hdrc: 28/31 max ep, 16384/16384 memory
[ 7.716498] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver
[ 7.722653] musb-hdrc musb-hdrc.0.auto: new USB bus registered, assigned bus number 1
[ 7.841002] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 7.848140] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 7.855740] usb usb1: Product: MUSB HDRC host driver
[ 7.860954] usb usb1: Manufacturer: Linux 4.4.96 musb-hcd
[ 7.866614] usb usb1: SerialNumber: musb-hdrc.0.auto
[ 7.931487] hub 1-0:1.0: USB hub found
[ 7.945632] usbcore: registered new interface driver option
[ 7.951649] usbserial: USB Serial support registered for GSM modem (1-port)
[ 8.000890] hub 1-0:1.0: 1 port detected
[ 8.013073] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[ 8.013094] musb-hdrc: MHDRC RTL version 2.0
[ 8.013102] musb-hdrc: setup fifo_mode 4
[ 8.013116] musb-hdrc: 28/31 max ep, 16384/16384 memory
[ 8.013232] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 8.019286] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 2
[ 8.101882] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 8.109048] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 8.116681] usb usb2: Product: MUSB HDRC host driver
[ 8.121898] usb usb2: Manufacturer: Linux 4.4.96 musb-hcd
[ 8.127558] usb usb2: SerialNumber: musb-hdrc.1.auto
[ 8.234641] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 8.271446] hub 2-0:1.0: USB hub found
[ 8.306767] hub 2-0:1.0: 1 port detected
[ 8.444529] tun: Universal TUN/TAP device driver, 1.6
[ 8.449842] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[ 8.460827] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 8.595328] usbcore: registered new interface driver cdc_acm
[ 8.601361] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 8.641154] usb 1-1: New USB device found, idVendor=2b9d, idProduct=8002
[ 8.648202] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 8.673769] hub 1-1:1.0: USB hub found
[ 8.678629] hub 1-1:1.0: 2 ports detected
[ 8.790878] usb 2-1: new high-speed USB device number 2 using musb-hdrc
[ 8.941141] usb 2-1: New USB device found, idVendor=2b9d, idProduct=8000
[ 8.948188] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 8.971506] hub 2-1:1.0: USB hub found
[ 8.975583] hub 2-1:1.0: 2 ports detected
[ 9.280987] usb 2-1.1: new full-speed USB device number 3 using musb-hdrc
[ 9.404169] random: rngd: uninitialized urandom read (4 bytes read, 61 bits of entropy available)
[ 9.414324] usb 2-1.1: New USB device found, idVendor=2b9d, idProduct=8001
[ 9.421567] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9.429232] usb 2-1.1: Product: MCP2210 USB to SPI Master
[ 9.435183] usb 2-1.1: Manufacturer: Microchip Technology Inc.
[ 9.441579] usb 2-1.1: SerialNumber: 0000414035
[ 9.490833] random: rngd: uninitialized urandom read (4 bytes read, 62 bits of entropy available)
[ 9.513593] random: rngd: uninitialized urandom read (2500 bytes read, 62 bits of entropy available)
[ 9.600833] usb 2-1.2: new high-speed USB device number 4 using musb-hdrc
[ 9.611239] random: rngd: uninitialized urandom read (2500 bytes read, 127 bits of entropy available)
[ 9.631001] random: nonblocking pool is initialized
[ 9.708318] hid-generic 0003:2B9D:8001.0001: hiddev0,hidraw0: USB HID v1.11 Device [Microchip Technology Inc. MCP2210 USB to SPI Master] on usb-musb-hdrc.1.auto-1.1/input0
[ 9.725141] usbcore: registered new interface driver usbhid
[ 9.731000] usbhid: USB HID core driver
[ 9.751263] usb 2-1.2: New USB device found, idVendor=0424, idProduct=9e00
[ 9.758494] usb 2-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 10.122741] smsc95xx v1.0.4
[ 10.223625] smsc95xx 2-1.2:1.0 eth0: register 'smsc95xx' at usb-musb-hdrc.1.auto-1.2, smsc95xx USB 2.0 Ethernet, 1a:e0:d9:d0:a5:de
[ 10.236150] usbcore: registered new interface driver smsc95xx
[ 10.411611] smsc95xx 2-1.2:1.0 eno1: renamed from eth0
[ 12.132812] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[ 12.256766] device eno1 entered promiscuous mode
[ 12.539080] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 13.540046] Ebtables v2.0 registered
[ 16.210786] usb 1-1.1: new full-speed USB device number 3 using musb-hdrc
[ 16.342359] usb 1-1.1: New USB device found, idVendor=108c, idProduct=01a2
[ 16.349590] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 16.357306] usb 1-1.1: Product: CISS
[ 16.361063] usb 1-1.1: SerialNumber: CB:05:56:6C:EC:C7
[ 16.472727] cdc_acm 1-1.1:1.1: ttyACM0: USB ACM device
[ 16.895158] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[ 17.060889] scsi host0: usb-storage 1-1.1:1.0
[ 17.066027] usbcore: registered new interface driver usb-storage
[ 18.071561] scsi 0:0:0:0: Direct-Access CISS 1.00 PQ: 0 ANSI: 5
[ 18.113160] sd 0:0:0:0: [sda] 4096 512-byte logical blocks: (2.10 MB/2.00 MiB)
[ 18.194632] sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
[ 18.253042] sd 0:0:0:0: [sda] Cache data unavailable
[ 18.258277] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 18.408152] sda:
[ 18.423278] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 33.545675] device vethY5PREV entered promiscuous mode
[ 33.601354] IPv6: ADDRCONF(NETDEV_UP): vethY5PREV: link is not ready
[ 34.113232] eth0: renamed from vethUWLYO2
[ 34.148956] IPv6: ADDRCONF(NETDEV_CHANGE): vethY5PREV: link becomes ready
[ 34.156262] br0: port 2(vethY5PREV) entered forwarding state
[ 34.162259] br0: port 2(vethY5PREV) entered forwarding state
[ 42.333066] device vethSBID4I entered promiscuous mode
[ 42.378652] IPv6: ADDRCONF(NETDEV_UP): vethSBID4I: link is not ready
[ 42.473907] eth0: renamed from vethWC0308
[ 42.508758] IPv6: ADDRCONF(NETDEV_CHANGE): vethSBID4I: link becomes ready
[ 42.516149] br0: port 3(vethSBID4I) entered forwarding state
[ 42.522180] br0: port 3(vethSBID4I) entered forwarding state
[ 46.147365] IPv6: ADDRCONF(NETDEV_CHANGE): eno1: link becomes ready
[ 46.154861] smsc95xx 2-1.2:1.0 eno1: link up, 100Mbps, full-duplex, lpa 0x51E1
[ 46.248844] br0: port 1(eno1) entered forwarding state
[ 46.254413] br0: port 1(eno1) entered forwarding state
[ 49.018835] device veth3C0KYA entered promiscuous mode
[ 49.074605] IPv6: ADDRCONF(NETDEV_UP): veth3C0KYA: link is not ready
[ 49.201263] br0: port 2(vethY5PREV) entered forwarding state
[ 49.243206] eth0: renamed from veth43PYO0
[ 49.280897] IPv6: ADDRCONF(NETDEV_CHANGE): veth3C0KYA: link becomes ready
[ 49.288187] br0: port 4(veth3C0KYA) entered forwarding state
[ 49.294224] br0: port 4(veth3C0KYA) entered forwarding state
[ 54.222119] device vethW1AH44 entered promiscuous mode
[ 54.255588] IPv6: ADDRCONF(NETDEV_UP): vethW1AH44: link is not ready
[ 54.422517] eth0: renamed from veth6JC9KD
[ 54.454212] IPv6: ADDRCONF(NETDEV_CHANGE): vethW1AH44: link becomes ready
[ 54.461625] br0: port 5(vethW1AH44) entered forwarding state
[ 54.467629] br0: port 5(vethW1AH44) entered forwarding state
[ 57.560814] br0: port 3(vethSBID4I) entered forwarding state
[ 59.202640] device vethWDLWRM entered promiscuous mode
[ 59.239595] IPv6: ADDRCONF(NETDEV_UP): vethWDLWRM: link is not ready
[ 59.415217] eth0: renamed from vethHRQPJ7
[ 59.439559] IPv6: ADDRCONF(NETDEV_CHANGE): vethWDLWRM: link becomes ready
[ 59.446947] br0: port 6(vethWDLWRM) entered forwarding state
[ 59.452974] br0: port 6(vethWDLWRM) entered forwarding state
[ 61.280827] br0: port 1(eno1) entered forwarding state
[ 64.320941] br0: port 4(veth3C0KYA) entered forwarding state
[ 64.736143] device veth3F9BY2 entered promiscuous mode
[ 64.768776] IPv6: ADDRCONF(NETDEV_UP): veth3F9BY2: link is not ready
[ 65.238593] eth0: renamed from veth111TKJ
[ 65.247669] IPv6: ADDRCONF(NETDEV_CHANGE): veth3F9BY2: link becomes ready
[ 65.255214] br0: port 7(veth3F9BY2) entered forwarding state
[ 65.261262] br0: port 7(veth3F9BY2) entered forwarding state
[ 69.480774] br0: port 5(vethW1AH44) entered forwarding state
[ 74.480837] br0: port 6(vethWDLWRM) entered forwarding state
[ 80.280779] br0: port 7(veth3F9BY2) entered forwarding state
---
This post is a part of the Harting MICA CISS Complete IIoT Starter Kit RoadTest
Top Comments