Hi everybody,
I was experimenting with i2c in connection with MPU6050 writing in Eclipse. It worked so far without problems. A simple server was sending data via Wifi to a client written in Delphi.
Nothing special actually. I just wanted to say that it has been doing right. Then, I wanted to test more distance between the Edison (on the Arduino board) and the router.
So, I connected the board to another socket and promptly started getting following kernel messages in the terminal window when I ran the proggie from Eclipse:
[ 7384.240427] i2c-designware-pci 0000:00:09.1: ===== REGISTER DUMP (i2c) =====
[ 7384.240529] i2c-designware-pci 0000:00:09.1: DW_IC_CON: 0x65
[ 7384.240612] i2c-designware-pci 0000:00:09.1: DW_IC_TAR: 0x68
[ 7384.240693] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_HCNT: 0x2f8
[ 7384.240773] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_LCNT: 0x37b
[ 7384.240853] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_HCNT: 0x87
[ 7384.240933] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_LCNT: 0x10a
[ 7384.241013] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_STAT: 0x0
[ 7384.241091] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_MASK: 0x246
[ 7384.241171] i2c-designware-pci 0000:00:09.1: DW_IC_RAW_INTR_STAT: 0x10
[ 7384.241250] i2c-designware-pci 0000:00:09.1: DW_IC_RX_TL: 0x20
[ 7384.241328] i2c-designware-pci 0000:00:09.1: DW_IC_TX_TL: 0x20
[ 7384.241407] i2c-designware-pci 0000:00:09.1: DW_IC_ENABLE: 0x1
[ 7384.241485] i2c-designware-pci 0000:00:09.1: DW_IC_STATUS: 0x2
[ 7384.241563] i2c-designware-pci 0000:00:09.1: DW_IC_TXFLR: 0x1
[ 7384.241642] i2c-designware-pci 0000:00:09.1: DW_IC_RXFLR: 0x0
[ 7384.241720] i2c-designware-pci 0000:00:09.1: DW_IC_TX_ABRT_SOURCE: 0x0
[ 7384.241798] i2c-designware-pci 0000:00:09.1: DW_IC_DATA_CMD: 0x0
[ 7384.241875] i2c-designware-pci 0000:00:09.1: ===============================
[ 7384.241987] CPU: 0 PID: 414 Comm: TCP_server Tainted: G W O 3.10.17-poky-edison+ #1
[ 7384.241992] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 466 2014.06.23:19.20.05
[ 7384.241999] task: f5700590 ti: f64f0000 task.ti: f64f0000
[ 7384.242061] Stack:
[ 7384.242130] Call Trace:
[ 7384.242580] Code: b3 ff ff 89 f8 09 d0 80 ce 04 83 ff 02 0f 44 c2 8b 15 54 ab b0 c1 89 82 00 b3 ff ff f7 c6 00 02 00 00 74 14 e8 67 f7 0a 00 56 9d <83> c4 04 5b 5e 5f 5d c3 90 8d 74 26 00 56 9d e8 51 f3 0a 00 83
[ 7384.242604] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G W O 3.10.17-poky-edison+ #1
[ 7384.242609] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 466 2014.06.23:19.20.05
[ 7384.242618] task: f6c83d30 ti: f6e1c000 task.ti: f6e1c000
[ 7384.242678] Stack:
[ 7384.242746] Call Trace:
[ 7384.242951] Code: 8b 42 08 a8 08 75 24 31 c9 8d 42 08 89 ca 0f 01 c8 0f ae f0 89 f6 89 e0 25 00 e0 ff ff 8b 40 08 a8 08 75 07 b1 01 89 f0 0f 01 c9 <85> 1d 58 fd b3 c1 75 0d 8d 55 f0 b8 05 00 00 00 e8 8d 34 d9 ff
[ 7384.372957] i2c-6: recovery ignore
In the same time, in the console of Eclipse, it looked like this:
root@edison:~# echo $PWD'>'
/home/root>
root@edison:~#
root@edison:~# chmod 755 /tmp/TCP_server;/tmp/TCP_server;exit <<<<< the program TCP_server is being started remotely
Failed to write byte to I2C slave: Connection timed out
Broadcast message from systemd-journald@edison (Thu 2014-11-20 01:33:40 UTC):
kernel[198]: [ 7384.241987] CPU: 0 PID: 414 Comm: TCP_server Tainted: G W O 3.10.17-poky-edison+ #1
Broadcast message from systemd-journald@edison (Thu 2014-11-20 01:33:40 UTC):
kernel[198]: [ 7384.241992] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 466 2014.06.23:19.20.05
Broadcast message from systemd-journald@edison (Thu 2014-11-20 01:33:40 UTC):
kernel[198]: [ 7384.241999] task: f5700590 ti: f64f0000 task.ti: f64f0000
I have to mention that I used /dev/i2c-6 in my tests as explained in the docs. Interestingly, when I switched in the program to, for example, /dev/i2c-7 or 5 the program terminated without all those kernel rants with an expected Remote I/O error. Well, no MPU6050 with addr 0x68 connected there. It's logical.
I re-flashed the Edison with the same “edison-rel1-maint-weekly_build_16_2014-10-14_14-56-19” as before the crash. After logging in, I got this (Wed Nov 19 23:30:45 2014 is wrong. It's Nov 29 today):
edison login: root
[ 18.331638] systemd-fsck[231]: /dev/mmcblk0p10: Superblock last mount time (Wed Nov 19 23:30:45 2014,
[ 18.334598] systemd-fsck[231]: now = Thu Oct 9 09:22:41 2014) is in the future.
[ 18.341925] systemd-fsck[231]: /dev/mmcblk0p10: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
[ 18.344492] systemd-fsck[231]: (i.e., without -a or -p options)
root@edison:~#
root@edison:~# fsck
fsck from util-linux 2.24.1
dosfsck 2.11, 12 Mar 2005, FAT32, LFN
/dev/mmcblk0p7: 5 files, 2592/2819 clusters
e2fsck 1.42.9 (28-Dec-2013)
/dev/mmcblk0p10 is mounted.
e2fsck: Cannot continue, aborting.
root@edison:~#
Now, it looked like a real trouble. Rebooting the Edison gave me following messages right after login as root:
after 1st reboot
edison login: root
[ 15.530733] systemd-fsck[232]: /dev/mmcblk0p10: Superblock last mount time is in the future.
[ 15.533549] systemd-fsck[232]: (by less than a day, probably due to the hardware clock being incorrectly set) FIXED.
[ 15.536053] systemd-fsck[232]: /dev/mmcblk0p10: Superblock last write time is in the future.
[ 15.538985] systemd-fsck[232]: (by less than a day, probably due to the hardware clock being incorrectly set). FIXED.
[ 15.541724] systemd-fsck[232]: /dev/mmcblk0p10 contains a file system with errors, check forced.
[ 15.639925] systemd-fsck[232]: /dev/mmcblk0p10: 16/152608 files (0.0% non-contiguous), 26870/610299 blocks
root@edison:~#
after 2nd reboot
edison login: root
[ 14.910441] systemd-fsck[231]: /dev/mmcblk0p10: Superblock last mount time is in the future.
[ 14.913046] systemd-fsck[231]: (by less than a day, probably due to the hardware clock being incorrectly set) FIXED.
[ 14.915579] systemd-fsck[231]: /dev/mmcblk0p10: Superblock last write time is in the future.
[ 14.931268] systemd-fsck[231]: (by less than a day, probably due to the hardware clock being incorrectly set). FIXED.
[ 14.932956] systemd-fsck[231]: /dev/mmcblk0p10: clean, 16/152608 files, 26870/610299 blocks
root@edison:~#
after 3rd reboot
edison login: root
[ 34.448363] systemd-fsck[231]: /dev/mmcblk0p10: Superblock last write time is in the future.
[ 34.451189] systemd-fsck[231]: (by less than a day, probably due to the hardware clock being incorrectly set). FIXED.
[ 34.453557] systemd-fsck[231]: /dev/mmcblk0p10: clean, 16/152608 files, 26870/610299 blocks
root@edison:~#
I need your help to understand how severe this problem is. And how to fix it, of course.
Best regards,
Dmitri