I installed LininoIO (OS dated 02 06 2015).
Everything seems to work fine - but nothing works as expected.
I have a running Linux - but when I try to use GPIO, as described on Lilino.org -GPIO on lininoIO, I run into the first problems.
D13 doesn't exist (this should be the little red LED on board of the Yún).
Next I tested reading the analog inputs.
I can for example use cat /sys/bus/iio/devices/iio:device0/in_voltage_A0_raw
. There are no errors, but I always get the value 0
.
Checking with /etc/linino/test_avrdude.sh
shows:
Testing AVRDUDE on ATMEL 32U4 ...
avrdude: Version 6.1-20140519, compiled on Jun 2 2015 at 12:34:59
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/root/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : unknown
Using Programmer : linuxgpio
Can't export GPIO 11, already exported/busy?: Device or resource busy
avrdude done. Thank you.
Maybe this is "by design" or another sign of an error.
By the way - when I start a serial console I get the message:
avr-uart: switched to uart mode: mcuio
Further in kernel log I found:
[ 42.480000] fuse init (API version 7.18)
[ 42.620000] spi_tty_plain spi1.0: spi_tty_probe
[ 45.380000] No need to change console settings
[ 49.550000] mcuio-hc 0:0.0: unexpected reply
[ 49.600000] gpiochip_add: registered GPIOs 100 to 139 on device: generic
[ 49.630000] mcuio adc is 0:1:1
[ 49.750000] mcuio-adc 0:1.1: 6 input channels detected
[ 49.910000] mcuio-hc 0:0.0: unexpected reply
[ 49.970000] mcuio pwm is 0:1:2
[ 49.970000] mcuio-pwm 0:1.2: 6 pwm outputs detected
[ 55.790000] busybox: sending ioctl 5310 to a partition!
[ 55.800000] busybox: sending ioctl 5310 to a partition!
[ 55.820000] busybox: sending ioctl 5310 to a partition!
[ 55.830000] busybox: sending ioctl 5310 to a partition!
[ 56.290000] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
[ 56.310000] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
[ 56.360000] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[ 58.520000] cfg80211: Calling CRDA for country: AT
It seems as if there are problems with mcuio-hc
.
Last thing - when I ran run-avrdude /etc/linino/bathos-one.hex
I get an error when comparing the written data (I found information that this can be ignored).
How can I fix this / find out what to fix / what's going wrong?
3 Answers 3
finally I got it (somehow) working. After a reset and another run of run-avrdude /etc/linino/bathos-yun.hex (the first was a mistake by copy and past - not bathos-one I already ran bathos-yun before) and a reboot again I was able to read analog IO.
But still the digitals were missing. Than I found the command gpioexport an ran it. After that the correct entries (D13, D14...) were present in sys/class...
But an echo out> D13/direction resulted in a timeout error message. Again reboot - again the Dxxx entries were gone. Another gpioexport made them appear again.
And this time not timeouts - instead I could turn on / of D13 (for test).
I guess all I have to do to make the things better is include gpioexport in "startup code" so that it runs after a reboot.
Have a look at the schematics of the YUN https://www.arduino.cc/en/uploads/Main/arduino-Yun-schematic.pdf
You will notice that most of the GPIO pins on the Atheros is not available to you. You only have access to the GPIO pins of the atmega.
-
I know this fact. In my example I'm talking about the D13 which is as pin from the 32U4. And the bathos-yun.hex makes those pins available in linux. Something like using the bridge.ManniAT– ManniAT2015年08月17日 10:18:40 +00:00Commented Aug 17, 2015 at 10:18
-
And as I wrote in my second post it finally works - with some little problems. That wouldn't be if I couldn't somehoe reach the pins from linuxManniAT– ManniAT2015年08月17日 10:21:09 +00:00Commented Aug 17, 2015 at 10:21
LininoIO has a part which runs on the microcontroller and make the Atheros enable to use the mcu pinout as linux gpios. So you are right, you need to flash the bathos to the mcu.
In general to enable/disable lininoIO run:
> lininoio start
> lininoio stop
those commands do everything for you. have also a look here
Anyway your Linino version seems old, try to upgrade it: http://www.arduino.org/learning/tutorials/advanced-guides/how-to-upgrade-the-linino-distribution-for-arduino-yun-and-yun-mini