Monday, 29 August 2016

Micro SD card support on Intel Compute Cherry Trail Sticks

UpdateThis work is superseded by my 'isorespin.sh' script which can respin an official ISO suitable for use on Intel Atom devices.

The latest stable 4.7.2 Ubuntu kernel for Intel Compute Cherry Trail Sticks (STK1AW32SC/STK1A32SC) now supports micro SD cards albeit with limitations.


It seems most Class 10 and below cards from any manufacturer (update: except Sandisk - see comment below) work without problem.  However not all UHS cards work. I've found Samsung UHS Speed Class 3 and UHS Speed Class 1 work:


Whereas similar Sandisk cards fail, crashing the device sometimes on inserting or removing or erroring with:

        mmc1: error -110 whilst initialising SD card
        mmc1: card never left busy state

Still getting any micro SD cards working on these devices is a great forward step. I've patched the 4.7.2 Ubuntu kernel to make it work on Intel Compute Sticks and you can download the upgrade script and install this latest kernel after making it executable (enter 'chmod 755 <script>') and then running it as 'root' ('./<script>'). Once the script has finished executing GRUB should update automatically but if it doesn't then simply run 'update-grub' as 'root'. Your device will then need to be rebooted to use the new (patched) kernel.

25 comments:

Anonymous said...

I've tried Sandisk 8GB SDHC with no success. No Sandisk cards work for me although it detected a no-name 8GB micro-SD. I'll get a 64Gb Samsung USH3 tomorrow and confirm if it works.

Thanks for the great work !

Linuxium said...

Thanks for the information. I've updated accordingly.

Anonymous said...

Update on the situation: i applied your 4.7.2 patched kernel on a 16.04 Ubuntu install, on the Z8300 computestick.

I got 2x 64Gb UHS3 cards today and they work, sort-of:
- i get error -110 when it has the SD card inside on boot
- the card is properly detected and loaded if inserted after boot
- the entire computer freezes when i remove the card.

Rebooted a couple of times and had the same behaviour. I will now try to install a fresh copy of Lubuntu 16.10 and will update if this behaviour continues.

dgunnell said...

I have found ANY Sandisk card regardless of size does not work and the system locks up and has to be rebooted. I tried a couple of non name class 10 cards I had laying around one 32GB another 64GB and both of them worked.

Anonymous said...

Tested with Lubuntu and had the same behaviour. The system locks up even on SD card insert sometimes. I think what I'm seeing is coherent with dgunnell's comment but for me it happens on SD card remove ...

Linuxium said...

Here is my latest WIP v4.8-rc3 mainline build for ICS (download the update script from http://goo.gl/A0s4vK) for anyone who wants to do additional testing. Ignore the missing firmware issue (see https://bugzilla.kernel.org/show_bug.cgi?id=151911).

Linuxium said...

Yes more work is required but at least there is a starting point now.

chrisamin said...

Thanks for packaging these kernels, here are my testing results.

With a Samsung PRO U3 I get the same "mmc1: error -110 whilst initialising SD card" or outright freezes if it's there on boot. If I insert it post-boot it mounts and I can use it, although I get "error -110 sending status command" in the logs (see below). This seems to be the same with both of the above kernels:


[ 280.806765] sdhci: Timeout waiting for Buffer Read Ready interrupt during tuning procedure, falling back to fixed sampling clock
[ 280.806808] mmc1: new ultra high speed SDR104 SDXC card at address 0001
[ 280.810985] mmcblk1: mmc1:0001 00000 59.6 GiB
[ 289.146192] mmcblk1: error -110 sending status command, retrying
[ 289.148833] mmcblk1: error -110 sending status command, retrying
[ 289.151145] mmcblk1: error -110 sending status command, aborting
[ 289.240370] mmcblk1: p1

A possibly related issue is that the uncached read speed is pretty low. I never tested the reader in Windows to know whether this is a hardware limitation. mmcblk1 below is the Samsung U3 card in the internal slot, sdb1 is the same card in a USB3 card reader also on the ICS:

chris@stick:~$ sudo hdparm -t /dev/mmcblk1
/dev/mmcblk1:
Timing buffered disk reads: 60 MB in 3.07 seconds = 19.54 MB/sec

chris@stick:~$ sudo hdparm -t /dev/sdb1
/dev/sdb1:
Timing buffered disk reads: 238 MB in 3.01 seconds = 79.13 MB/sec

and the eMMC for reference:
chris@stick:~$ sudo hdparm -t /dev/mmcblk0
/dev/mmcblk0:
Timing buffered disk reads: 376 MB in 3.00 seconds = 125.15 MB/sec

dgunnell said...

Tried Samsung 128GB EVO Plus UHS-i Class 10 Micro SDXC Card and upon insert received the following error:

mmc1: error -85 whilst intialising SD card

but the system didnt freeze. This was with the 4.7 kernel will try 4.8 next.

dgunnell said...

with 4.8 and card installed during boot received
[ 4.076619] mmc1: error -110 whilst initialising SD card

so no difference but not hanging either

dgunnell said...

Just tried a Lexar Professional 1000x microSDXC 64GB UHS-II/U3 and it is working without any issues.

CS said...

Sources?

Fox Mulder said...

Would you considering making the kernel source and patches available for each of the ISOs you distribute? It would be very helpful for the rest of us to be able to review the kernel source and patches you have applied to create these ISOs. Many of us would like to adapt the source and patches to resolve problems with devices similar to the compute stick. Apologies in advance if you have already made these available. Please direct me to the location for the kernel source and patches for all of the ISOs you distribute.

Linuxium said...

See https://linuxiumcomau.blogspot.com.au/2016/08/running-latest-ubuntu-on-intel-compute.html

giantkingsquid said...

Agree. I have been using the Lexar Professional 1000x microSDXC 64GB UHS-II/U3 and it works 9/10 times. It has frozen the system once and sometimes it won't mount on insertion but otherwise its ok.

dgunnell said...

I have seen where it does not mount during boot sometimes and is not seen by OS either and when you re-insert works 95% of the time but freezes system once in awhile.

Unknown said...
This comment has been removed by the author.
ramiz said...

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking.
best micro sd card for cell phone

Healing said...

Sorry to intrude on this old thread.
I sent you a post on twitter about microsd card reader being recognised on your old 14.04 last distro but not on the newest 16.04.2 distro.
The device is Hannspree ICS clone.
Any way getting sdcard reader being recognised on 16.04.2?
Only way around is use a usb sdcard reader.

thor17 said...

Tested a 64GB Toshiba Exceria M302-EA UHSI Class-10.
No success, I got mmc2: error -84 whilst intialising SD card.

Linuxium said...

No unfortunately I don't have a solution for this yet.

Unknown said...

Hi,,

It's been almost Year since last update. Has anything changed about SD Card ?

Unknown said...

hi, i need to download 16.04 for a intel compute stick, i try whit the normal version and it run, but got no wifi what can i do?

I see you got a link but when i try open that it say:

"Intel Support Agents will be back available at 7am on the next business day.
Intel > Support > Support Communities

Welcome

Find and share solutions with Intel users across the world

This is a community forum where members can ask and answer questions about Intel products.

Intel Community Support is available Monday-Friday 7AM-4PM PST"


what can i do? how can i got the iso fot the compute stick?

Linuxium said...

I must admit that since I switched to using Samsung SD cards which work I haven't tried any Sandisk or other SD cards to see if the problem still exists.

Linuxium said...

Have you tried respinning an ISO using my 'isorespin.sh' script?

Post a Comment

All comments now moderated so that spam can be deleted.