Monday 13 June 2016

Running Ubuntu on the Intel Compute Stick

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



The Intel Compute Stick has formalised a new standard for computing devices. Plugged into any HDMI TV or monitor and with a keyboard and mouse connected either wirelessly, via Bluetooth or by USB it becomes a fully functional mini PC. While the first ARM SOC 'sticks' that appeared were to facilitate the conversion to a smart TV, the re-purposing as a mini PC was hampered by the restrictive shortfall of lack of HD graphics due to closed source drivers. With Intel SOC 'sticks' and the availability of open-source software, a 'stick' mini PC is finally achievable. And because Intel fully support the Compute Stick with updated drivers and most importantly updated BIOS which are all available as downloads from the Intel website, it is my chosen device for development.

When Intel released their first Compute Stick with Ubuntu, an open-source operating system based on Debian, it was the restrictive hardware specification that impacted the performance needed to run productivity applications, stream media or play games. Trying to install Ubuntu on the more powerful Windows model resulted in the loss of HDMI audio, WiFi and Bluetooth. Fortunately the latest Core M Intel Compute Sticks address all of these issues and perform exceptionally well although they come at a cost.
The challenge now became how to use a lower cost Intel Compute Stick with fully working hardware and Ubuntu or a recognised flavour that uses Ubuntu as its foundation. Because having the option of running a fast but lightweight operating system can take advantage of the lesser hardware specifications.

The difference between Ubuntu flavours is the set of packages included within the release and I've concentrated on the following:
  • Ubuntu uses Unity (a graphical shell for the GNOME desktop environment)
  • Lubuntu uses LXDE (the Lightweight X11 Desktop Environment)
  • Xubuntu uses the Xfce desktop environment
  • Kubuntu uses KDE's Plasma desktop environment
  • Ubuntu GNOME uses the GNOME desktop environment
  • Ubuntu MATE uses the MATE desktop environment
Officially supported releases are provided as ISO images which are single files that represent an entire CD/DVD of software. An ISO image can be written to a USB to create a 'live' USB drive that containing a full operating system that can be booted or used as installation media.

I've created ISO images specifically to work on the Intel Compute Stick with the latest 16.04 release by combining recent patches and source code and ported them with Canonical's kernel source to fully support HDMI audio, WiFi and Bluetooth. I've also included patches that try to reduce the random freezes that have been known to occur. But because the ISOs include a patched kernel to provide the missing functionality it means no automatic kernel updates from Canonical although other application packages will update as standard. Consequently I've also developed a manual patching process where a script can be downloaded and then executed to update the kernel to match those provided by Canonical.

All ISOs work on all of the Intel Compute Stick models including the Core M models which are supported for the sake of completeness. Lubuntu being a lightweight Ubuntu is highly suitable for the minimalist STCK1A8LFC model especially as I've configured it to use ZRAM both in the ISO and once installed. I've also configured them all to both run and install using either a 32-bit or 64-bit bootloader to provide the ability to easily dual-boot without needing to modify the BIOS. The BIOS settings can be accessed by powering-on the Intel Compute Stick and pressing the 'F2' option. On the Atom models in the 'Configuration' page the 'Select Operating System' option can be toggled between 'Ubuntu 64-bit'/'Windows 64-bit' and 'Windows 32-bit'. Finally each ISO can be written it to a USB using either 'Rufus' in Windows or 'dd' in Linux. The USB can then be used to boot from by pressing the 'F10' option immediately after powering-on the device. For installation to the device's internal storage simply run the installer and follow the on-screen instructions.

Some cautionary advice: The initial menu screen takes slightly longer to appear than with the official ISOs. Depending on the speed of the USB drive used it can be anything from fifteen to forty-five seconds before anything appears on the screen. After installing with a 32-bit bootloader booting sometimes results just in a blank/coloured (e.g. purple) screen. To prevent this and to ensure a successful boot it is best go through the BIOS using the F10 option followed by selecting the Ubuntu option. Also the ISOs only work on Intel Compute Sticks but they can be used with any model (STCK1A8LFC, STCK1A32WFC, STK1AW32SC, STK1A32SC, STK2M3W64CC, STK2M364CC and STK2MV64CC). Occasionally the Baytrail systems (STCK1A8LFC and STCK1A32WFC) have been observed to sometimes hang or freeze randomly. Further details are posted below.

To try an ISO download it from one of the links below and write it to a USB using either 'Rufus' in Windows or 'dd' in Linux.

Update: These ISOs may now fail if installation is attempted whilst connected to the internet due to a newly updated package. As the first point-release for Ubuntu 16.04 LTS (versioned 16.04.1) has now been released I will be respinning have respun the ISOs and posting updated links. Likewise for Lubuntu Yakkety Yak (16.10) Alpha 2 below.


Ubuntu
Ubuntu comes with everything. All the essential applications, like an office suite, browsers, email and media apps come pre-installed and thousands more games and applications are available in the Ubuntu Software Centre.


Lubuntu
Lubuntu is a fast, energy saving and lightweight variant of Ubuntu using LXDE. It is popular with PC and laptop users running on low-spec hardware.


Xubuntu
Xubuntu is an elegant and easy to use operating system. Xubuntu comes with Xfce, which is a stable, light and configurable desktop environment.


Kubuntu
Kubuntu offers the KDE Plasma Workspace experience, a good-looking system for home and office use.


Ubuntu GNOME
Ubuntu GNOME uses GNOME Shell along with a plethora of applications from the GNOME Desktop Environment.


Ubuntu MATE
Ubuntu MATE expresses the simplicity of a classic desktop environment. MATE is the continuation of the GNOME 2 desktop which was Ubuntu's default desktop.


To upgrade the kernel to match a version released for Ubuntu 16.04 first download the upgrade script, make it is executable (use 'chmod 755 <script>') and then run as 'root' ('./<script>'). Once the script has finished executing the device will need to be rebooted to use the updated (patched) kernel.


4.4.0-21.37

4.4.0-22.40

4.4.0-24.43

4.4.0-28-47

4.4.0-31-50 (current latest)


One issue that has been reported with Linux kernel versions newer than 3.16 on Baytrail processors (i.e. not specific to just on the Intel Compute Stick or with the Z3735F SOC) is a random freeze where the whole system hangs. Unfortunately no known fix or work-around currently exists. Consensus seems to have settled on limiting the processor (CPU) to a certain power state, or 'C-state', in order to reduce the frequency of such freezes and improve the stability of the system.

I incorporate this solution along with disabling IPv6 system wide (which may or may not of use) through editing the boot options on STCK1A8LFC and STCK1A32WFC devices.

Open a terminal session and enter the following command (on a single line):

sudo sed -i 's/\(GRUB_CMDLINE_LINUX=\)""/\1"ipv6.disable=1 intel_idle.max_cstate=1"/' /etc/default/grub

To implement the change enter:

sudo update-grub

and then reboot the system by entering:

sudo reboot

The above change only needs to be made once, typically following installation to eMMC storage.


There have been reports that later kernels may not be affected by the freeze issue. So I've compiled the latest stable 4.6.x kernels with configs based on Ubuntu together with the HDMI and WiFi patches and provide an update script for anyone who wants a bleeding edge kernel:

4.6.2-040602

4.6.3-040603

4.6.4-040604 (current latest)


Finally Lubuntu Yakkety Yak Alpha 1 (soon to be 16.10) has just been released:


So I've also created a version suitable for Intel Compute Sticks. It can be downloaded from https://goo.gl/2m1CJh and used as LiveUSB or it can be installed (but must be connected to the Internet during installation at this stage).


Acknowledgements:  Linux Kernel Organization (kernel.org), Canonical Ltd. (Ubuntu), Pierre-Louis Bossart (HDMI audio), Bastien Nocera (WiFi) and Larry Finger (Bluetooth).

153 comments:

Unknown said...

I am trying to build some ubuntu core (snappy) images, could you please point me to your kernel sources or patch set, Thanks!

Unknown said...

Any chance you can do a Kodibuntu image?

Elit3S1p3r said...

Just apply the script to the Kodibuntu kernel. then youve built your own

Unknown said...

Cannot instal any of those system on wintel w8 pro :) normal ubuntu/ lubuntu works fine. After runing update script system stuck at loading not working for me.

dgunnell said...

SD Card reader support addressed in any of those recent builds?

Bill said...

Hello. After you install your assembly Ubuntu system periodically freezes. The same thing happens when I install Lubuntu. Do you have any thoughts on this?
You applied your script by replacing the kernel to the latest version. Did not help.

Bill said...

Intel® Compute Stick STCK1A32WFC

Linuxium said...

Not yet unfortunately.

Linuxium said...

I've updated the post with my recommendation of limiting 'C-state' to help reduce random freezes.

Linuxium said...

I've also posted a patched 4.6.2 kernel that may address 'freeze' issue.

Unknown said...

Hi Ian,
thank you for your great contributions to this small community and time you spend here!

Installed on 2nd gen ics parallel to windows. left everything at standard settings. After install Win10 works, Lubuntu wont boot. After grub menu -> recovery boot it shows 2 lines of your boot loader i think.

Stuck on loading initial ramdisk.

Any hints how to fix this?

Linuxium said...

Under 'Some cautionary advice' above did you try "... to ensure a successful boot it is best go through the BIOS using the F10 option followed by selecting the Ubuntu option ..."?

Unknown said...

Thanks. Updated the STK1A32SC with latest bios. Under "Select Operating System" i can only choose "Windows 32/64Bit", neither works.

Unknown said...

Correction, non recovery-mode boot option started me a lovely ubuntu 16.04. Strange...

Unknown said...

Hitting F10 and selecting the eMMC boots the system. Normal boot wont work. Visible difference is the size of the grub menu. in the bios i found nothing to switch on Ubuntu booting.

Not so easy these sticls....

Unknown said...

Thank you very much for your efforts. I'm running MythTV frontEnd on Lubuntu 16.04 now. Quick question - I've spent absolutely ages trying to get 5.1 audio to work over the HDMI out. I only ever get stereo output. Is this a limitation of the Intel ComputeStick or something wrong with the Ubuntu setup. I've noticed PulseAudio is missing (I tried installing it, but still does not work).

NetoMX said...

Do you have something for Meegopad t01? It is not booting past GRUB, not even selecting it form the bios

Linuxium said...

I've only a pair of speakers so I've never configured or tested anything other than stereo. Perhaps others can comment?

Linuxium said...

I'm currently focusing on the Intel Compute Stick.

e-milio said...

same problem here, running on generic chinese stick
14.04.3 was working fine, give it a try

Unknown said...

I've finished trying to get 5.1 audio from the Intel Compute Stick - FAILED.

The closest the computerStick got was to mimic 5.1 sound by adjusting volume and sound delays from the front two speakers only.

Things I tried:
i) Updated the firmware
ii) Rolled back to original 14.04 Ubuntu O.S (factory standard)
iii) Tried overriding Pulse Audio settings to force 5.1 audio.

My solution - running mythTV frontend on our upstairs TV only (stereo audio)- went back to the trusty old Atom D525 (with NVidia Ion graphics ) ... 5.1 audio working again with MythTV..

Unknown said...

Do you have a copy of the original STCK1A8LFC image? I've been trying custom ROMs but now my stick won't boot any more and keeps restarting.

mat said...

Please could you look into it? I have a Pipo X7S and your 14.04.3 iso worked fine, but now yuor latests isos dont work, they hang after grub. Remember that many chinese devices are 32bit uefi with 64bit kernel.

Linuxium said...

I don't support the Pipo X7S and these ISOs are only for Intel Compute Sticks.

Linuxium said...

If the above Lubuntu ISO doesn't work on your STCK1A8LFC device then it is likely you have an issue that even the original STCK1A8LFC image would not fix. Do you get any error messages given it keeps restarting that would help identify what the problem is?

Jean Laganiere said...

Great work M. Linuxium and thank you so much for sharing this with us. Very appreciated. Can you please describe the details of what you have changed/included/modified in your custom ISOs? Do you have a script for this? Can you share the 'recipe' so we can reproduce on our side?

Second question, I notice that cpu usage is very high when displaying videos using google chrome. I think that no hardware acceleration is available. Any advice?

Thanks again.

Unknown said...

Dear Linuxium ,
Been trying to install ubuntu 16.04 64 bit on my Wintel pro cx-w8 z8300 , the only problem the usb 3.0 only run as usb 2.0 speed , the usb 3.0 running well on windows 10 ... but not on ubuntu ..... , do you have any idea how can I can get full speed usb 3.0 5Gbps on ubuntu ?
thank you

Eduardo said...

This is great! It may also be of use to new Lenovo Ideapad 100S (11inch). Which uses the Z3735F, but nobody seams to figure out how to make wifi and sound work.

Testing now, will report later.

Unknown said...

Hi ian,

happy to report some things back.
STCK1A8LFC (1.gen / 1gb ram / lubuntu 16.04):
Installation flawless. Maybe you provide a real hybrid iso because these a more image files, but if i dd'em no problem. Vanilla freezes in 4.4 and 4.6 after a few minutes (glxgears + + pepperflash + chromium@youtue). Still relies on c-state workaround. Another thing: 16.04 do not like HDMI->DVI adapters. Tried different ones and Monitors. Black flashing or turning off the displays running youtube. At 14.04 this does not happen.
STK1AW32SC (2.gen / Win 10 / lubuntu 16.04):
32Bit dualboot to ubuntu only with F10. 64 Bit single boot works great! No problems in my use cases at all. Uptime 6 days+ and up.

Again thank you for this work,

dennis

Double-G said...

Trying to get v 4.6.3-040603 work on an mini PC based on the Atom X5 8300 with 2 GB Ram and 32 GB EMMC (BeeLink Z83 / aka Beelink BT3 Mini PC).

Unfortunately it always hangs at "Loading initial Ramdisk" :-((

Any ideas?

Double-G said...

@Dennic Becker: I'm experiencing the same but with the Ubuntu standard kernel not the custom one from these images provided here.
(the ones provided here hang at loading initial ramdisk)

Linuxium said...

The kernel upgrades I posted are for upgrading my ISOs which, as per my posting above, only work on Intel Compute Sticks. So they will not work on a BeeLink Z83 or Beelink BT3.

Linuxium said...

As per my posting above, my ISOs and kernels will only work on Intel Compute Sticks so it is not worth trying on the Lenovo Ideapad 100S.

Linuxium said...

As I don't have a Wintel Pro CX-W8 I can't help.

Linuxium said...

Thanks for the feedback. Have you tried my latest Lubuntu Yakkety Yak Alpha 1 (soon to be 16.10) see http://linuxiumcomau.blogspot.com.au/2016/07/making-most-from-intel-compute-stick.html on your STCK1A8LFC?

Linuxium said...

@Double-G: They hang if you are not using an Intel Compute Stick as per my posting above.

dgunnell said...

Been running Intel Compute Stick STK1A32SC with USB 3.0/Ethernet Hub 24x7 for two weeks now running a weather station and no freezes Lubuntu installation with 4.6.3-040603 kernel. Wifi is turned on but not connected using ethernet instead. Great work Linuxium!

niu tech said...

I've installed Ubuntu from the live USB to the SD card, but I cannot boot from it. There is a single Linux partition on the SD card and GRUB is installed to the MBR. But in the boot menu there is only Windows entry. How to boot Ubuntu from the SD card?

NoThanksToGoogle+ said...

Tried both 16.04 & 16.10 builds on STCK1A8LFC (current latest BIOS) Both install & run ok but in both cases WiFi only connects when the router is set to run BGN mode & only shows connection at 72Mb/s where factory install always connected at 150. Not that I care but I get no audio either! What could I have missed? Is there a script I need to run that got missed by the installer? I changed nothing in the BIOS - should I have?
Perhaps a howto for this modle would be helpful?

Linuxium said...

Which device?

Linuxium said...

Thanks for the feedback.

Linuxium said...

That is rather puzzling. I've neither had to change any settings on my router to get wifi nor do anything to get audio which works automatically. There is nothing to miss either as with the STCK1A8LFC everything works OOTB. As you should get audio just using my ISO as a LiveUSB can you confirm if it works?

Unknown said...

Do you use bluetooth too?

Unknown said...

installed 16.10 on STCK1A8LFC, looks promising. All standard, no updates applied, with 4.4.0-27-linuxium. first hour stable. Will report back after more intense testing. Sad news: HDMI->DVI problem persists. My first guess, it was not only the kernel but also GPU/X11 which causes problems.

niu tech said...

STCK1A32WFC with the latest BIOS.

Linuxium said...

Okay I'll put 'Documenting micro SD card installation' on the TODO list.

NoThanksToGoogle+ said...

Yes - I figured from going through the write-ups that using 64 bit loader that it would be straight forward. Somebody else posted similar/same result somewhere but didn't get a response & I can't find it now. I don't use bluetooth. I have switched to using a USB ethernet adapter instead & maybe will try again with next LTS release! Thanks for your work on these Linuxium! Using Lubuntu rather than the stock allows much more flexibility!

Unknown said...

Kernel 4.4, 16.10 all defaults, with intel_idle.max_cstate=1 => stable (17+hrs under Video/3D load).
Booting without cstate cmdline arg => freezing after 17 min.
4.6.3-040603-linuxium => 1. freeze after 27 min.

Unknown said...

How can I address the display overscan? We are using the BOXSTK1AW32SC for digital signage but see no way to access the overscan adjustments.

Linuxium said...

Would you be interested in trying 4.6.4-040604 with c#329 and w/o cstate if I built it?

Unknown said...

sure :). as for now i have to stay with 14.04 because the dvi issue is a show stopper. but maybe it helps others if we find a stable solution. made a apt upgrade for the alpha and loaded the intel microcode blob, still unstable.

burgerboy9n said...

Have you had any luck preventing freezing on STK2M3?

Linuxium said...

Here's the link: https://goo.gl/hv3tgI

Linuxium said...

I've never seen/heard of a freeze on a STK2M3 (Skylake) stick. The freeze is related to Atom SOCs specifically Baytrail.

burgerboy9n said...

I'm running a STK2M3 on 16.04 desktop and it freezes up after about 5 hours of use. I've tried updating to the latest 4.6.3 kernel and have tried the IPv6 and cstate changes with no luck. :/

Unknown said...

Testing. strangely unzip is not part of lubuntu-minimal, maybe you put a check in your script.

Unknown said...

This one here discussed is triggerd by 3D load and or video playback, running glxgears maximized in the background and overlapped by half with a chromium window playing youtube in a loop. This lead to freezes in 15-60Min. If your system runs in this state more then a few hours, it is something else. I would change connected peripherals and try to isolate or trigger the freeze somehow. In my case i have no syslog or xorg.log entries if it happens, maybe you got something.

Unknown said...

System freezed after 49Min. :/

Linuxium said...

That is disappointing.

One last test: I've also applied the c#329 patches to the latest 4.4.0-31-50 kernel which includes existing 'freeze' patches. It is available as a special release but is only for testing and should only be applied to an installation that will be nuked immediately after testing.

Just to clarify the 'unzip' package is included in my ISOs which are designed as the base for the kernel upgrade scripts.

To test this final attempt my expectation is that my Lubuntu ISO is first installed, then the kernel upgraded to 4.4.0-31-50 (using https://goo.gl/SuDpwe) and then once rebooted the test kernel upgraded (using https://goo.gl/ehexpU).

Once tested Lubuntu should be re-installed from my ISO otherwise an unstable (and unsupported) system will result.

So the key test will be if the system doesn't freeze when cstates haven't been limited. If this last test fails then I think the 'cstate' work-around becomes the fix and I can drop any existing 'freeze' patches going forward.

And in case anyone is wondering why I've created the final test this way ... it made it more interesting!

Unknown said...

After first round, it current uptime is 2hrs 20mins and counting. So i will make a clean install and apply your kernel again. As long as the stick runs, i will not touch it. Reliably testing a alpha is not so easy, because they make big changes to all kinds of packages. 2. the crash behavior is hard to measure, because of the not reproducible test runs and very small sample size, which is statistically a disaster :).

I reduce my system size after installation to essential packages, because the alpha apt upgrade does affect hundreds of packages each time. What isn't there, wont be upgraded. 8GB of storage are the 2. argument...

With unzip, you're right. Perhaps arguing about it took more time then implementing a check :). It only failed silently here and if you have remixed your installation to something more basic, you get hit by it.

Linuxium said...

I agree on the 'Alpha' testing and that is why I've made the final test based on 4.4.0-31-50 using my 16.04 ISO (from https://goo.gl/MXcS8x) ... sorry if I didn't make that clear.

Unknown said...

Stopped testing 16.10 alpha with 4.6.4-040604.201607111332+ics-development-linuxium.
1. Run freeze after 50min,
2. Run aborted after 4hrs - no freeze. Load average: 1,13, 1,34, 1,54. Going back to your 16.04 development tree.

But it looks like a small victory :).

burgerboy9n said...

I have nothing in my logs, and no connected peripherals. I do have four chrome tabs open, set to rotate between the tabs ever 30s and refresh the tab.

That being said yesterday afternoon I updated to the intel-drm mainline kernel and the stick made it overnight for the first time. http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-nightly/current/

edemark said...

Hi all and thanks for the great work, regarding this resolved question I have a subsequent one that i am unable to fix so far. So, I can go through the f10 option and I can choose ubuntu and it boots as long as I am using a wired usb keyboard, however if i use my wireless keyboard (one of those that come with a small usb receiver that you plug in to your computer then it just works) i am just simply unable to select F10 option and the keyboard only starts working from the grub menu.
I would appreciate all of your ideas as i am getting a bit bored of having to stand in front of the tv instead of using it from my armchair.
Thanks

Linuxium said...

@edemark: Perhaps a driver issue? As a work-around why not modify grub and set the default to the menu entry you normally boot from (and zero the timeout so it automatically boots it as well)?

edemark said...

So i am sorry I did not express myself correctly. My problem is not in GRUB, the problem is the following: on the boot screen I have to select F10 to select and to boot ubuntu if not going through F10 the system hangs after GRUB. But on the boot screen wireless keyboard does not work, it only stars working in GRUB.

algarcia said...

I installed your xubuntu-16.04-desktop-linuxium-ics from this site, the patch and the command two limit c-state on an Intel 8gb+1ram, everything is working good so far. I even went as far as installing Steam (which I had to move to the external SD and create symlinks, but it's ok) I played a few Counter Strike games.

My question is, given it's only 8GB on the most basic model, I get the 1GB swap partition but isn't the EFI too big? Is that something you did on purpose or comes like that with the installer? Can it be changed?

After a fresh install I get about 2.1 GB free but I think it could be more

algarcia said...

Also, I'm running Xubuntu and Kodi on top of that, since kodi installs it's own greeter It's easy to set up Kodi to launch on boot from lightdm, which is set up once and there's no need to do anything else. However, if I were to install some JeOS like OpenElec how would I boot it?
I was unable to boot USB images of elementaryOS (my favorite distro) and Windows 7, both images work great on my macbook. Is anything I'm not aware about the booting process on the stick?

Linuxium said...

@edemark: Which device (model number)?

edemark said...

Hi yes here it goes it is an intel compute stick STK1AW32SC and the keyboard is a microsoft all-in-one media keyboard.
Thanks

Linuxium said...

@edemark: I think I have a solution for you ... I just need to document and post so standby.

Linuxium said...

You can change the default partitions during installation by choosing 'something else' when prompted in the 'what/where to install' step.

To boot other OS you can customise the grub menu by adding a '40_custom' file or booting from an ISO file including one stored on a USB (see grub2 documentation - 'CustomMenus' and 'ISOBoot').

Finally Windows 7 isn't officially supported and I am not aware of anyone getting it to work.

Unknown said...

To have more space, choose in the custom partition options BTRFS for the root "/" filesystem. after the installation run "btrfs fi defrag -r -clzo /" as root. if you want a even better but slower compression use "-czlib". this gives you ~30% more space. you can edit fstab to use compression by default.

Unknown said...

Hi Ian, was a few days off. Made a fresh install of lubuntu 16.04 and the latest kernel from your main post. Got this setup:
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.4.0-31-linuxium root=UUID=d6c09b42-a46a-4b2a-be9f-c6692f498d6b ro zswap.enabled=1 zswap.compressor=lz4 quiet splash vt.handoff=7

After 3 test runs, all failed <30Min it is safe to mark it as unstable. Does your dev kernel have other patches?

Linuxium said...

Yes my ISO plus 4.4.0-31-linuxium definitely needs max_cstate=1 as the included patches are not sufficient to fix freezing alone. However my new test kernel (using https://goo.gl/ehexpU) additionally contains the c#329 patches as well and the question is whether those patches actually do help in reducing/eliminating freezing or whether max_cstate=1 is effectively 'the' fix.

kirked said...

Hi Ian, I'm running your Xubuntu build on a STCK1A32WFC, and it's working great...running CrashPlan to cloud backup my NAS mounted over NFS.

I got one of the $50 STCK1A8LFC units, and I'm working to get FreeBSD 11 running on it. It boots fine on a USB stick from UEFI, but I don't see the EMMC devices, so I'm thinking there's something in the UEFI code preventing that? Do you have any pointers on that issue?

I also tried chainloading from the stock grub, but haven't yet been able to figure out the magic combination to make grub see the UFS partition on the stick.

What I'd like is a link to your kernel source (it's GPLv3 after all) so I can look at the mods necessary for HDMI sound, bluetooth, and wifi, should they not work once I get it installed.

Cheers!

edemark said...

Thanks in advance, certainly I am not in a hurry.

Unknown said...

Good job Ian. First run for 12h+ stable.
http://h2331733.stratoserver.net/ics.html

Unknown said...

up 1 day, 13:11, 2 users, load average: 1,67, 1,50, 1,49. Will start a second run to see if it will make it over the weekend. Caches are running full because of chromium.

Chuck Mosher said...

I just received the Intel Core m3 stick, STK2M364CC, which comes without an operating system. The config page in the BIOS utility does not have the "Select operating system" prompt, just the device list (after Event, Fan, and State):
Bluetooth, Wireless LAN, SD Card USB, Power state, Wake System from S5
All are enabled, except for Wake System from S5.
The Boot page has the list:
Boot Display, Num Lock, Internal UEFI Shell, Network Boot, USB Boot, UEFI Boot, Legacy Boot
Default has all enabled except for "Internal UEFI Shell" and "Legacy Boot", which are both disabled. If you enable Legacy boot, Legacy Boot Order reports "No Boot Drive"

With a USB drive in the port on the stick, the boot page from hitting F10 does not have any choices listed. I tried a variety of options, for example, disable all boot devices except for USB, two different ISO's (Ubuntu Mate and Lubuntu) on two different sticks, but still no choices on the "F10" boot page.
I did get a choice to show up by enabling "Internal UEFI Shell", and got to what looked like a boot page :

UEFI Shell version 2.50 [5.11]
Current running mode 1.1.2
Device mapping table
blk0: BlockDevice
blk1: Removable HardDIsk
blk2: Removable BlockDevice
Press ESC in 1 seconds to skip startup.nsh
Shell>

Look like this is where I need to do something.
Any clues ?

Thanks,
Chuck Mosher

Linuxium said...

@edemark: I'm assuming you are dual booting to Ubuntu given that you need to go through the BIOS with F10 to get it to boot. I've 'fixed' this issue which is caused by the need to continue to use the 32-bit bootloader to be able to boot Windows by recommending a switch to 64-bit Windows and therefore the 64-bit bootloader. I've documented how to install and configure dual boot in the following post: http://linuxiumcomau.blogspot.com.au/2016/07/dual-booting-ubuntu-and-windows-on.html. Obviously if you only use Ubuntu without dual boot then the 64-bit bootloader should be used as consequently there is no need for the F10 workaround.

Linuxium said...

You are correct that the Core M3 BIOS excludes an 'Operating System/OS' option because it only has a 64-bit bootloader. I have a video of the BIOS settings https://youtu.be/JYu331X1z2o against which you can compare your settings. From your description everything looks correct so I suspect the issue may arise in how you are preparing your USB drive with the ISO. Can you clarify the steps you took?

Unknown said...

Hi, I've just downloaded the Ubuntu ISO 16.04 and trying to install on a STK1A32SC. I've set the BIOS to Windows 64bit - I only have Windows 32 bit and Windows 64 bit available in BIOS. It boots fine from my USB-stick with the ISO on it. BUT when trying to install to the internal drive it fails when reaching "Installing the 'grub2 package..." It throws this error: "The 'grub-efi-amd64-signed' package faild to install to /target/.Without the GRUB boot loader, the installed system will not boot.

Any ideas on how to fix this?

Unknown said...

Okay, so I just ran https://help.ubuntu.com/community/Boot-Repair after installation failed, which resulted in a working boot partition...

Unknown said...

But sound is not working... wi-fi does, haven't checked bluetooth...

Unknown said...

Just installed the 4.6.4-040604 Kernel, and sound is back

Chuck Mosher said...

Thanks for the reply ! Sure enough, how I created the ISO on my USB is the culprit. I created it by downloading your ISO's above to my Ubuntu laptop, and then used "dd" to copy the ISO to the USB.

I came across a post that stated that UEFI boot requires a FAT32 file system, so I used "rufus" on a Windows PC to copy the Ubuntu Mate ISO to a USB.

This time, my "Setup" pages matched your video, and I was able to install and get up and running !

Thanks again for the work you have done to make it possible for us to follow in your footsteps !

Best regards,
Chuck Mosher

Linuxium said...

A newly updated package is now causing the ISO to fail when installing and connected to the internet so I need to respin the ISOs ... as 16.04 point 1 is now out I'll just replace the 16.04 ISO with a 16.04.1 ISO.

Unknown said...

up 2 days, 19:45, 2 users, load average: 1,67, 1,22, 0,74

Your kernel seems fine and stable.

1 2 said...

Hi. Thank you for your work. When I boot STCK1A8LFC and press f10 I don't see my usb flash drive. Should I update bios or change some bios settings?

Linuxium said...

How did you prepare your USB? Did you use "dd" on Linux or "rufus" on Windows?

1 2 said...

I used unetbootin under mac.

Linuxium said...

I've never tried that way so maybe it doesn't work? Given you have a STCK1A8LFC why not use "dd" on it to produce the USB? Also I think you can use "dd" on OS X (plug in your USB; 'diskutil list' to show disk number of the USB; 'diskutil unmountDisk /dev/diskN' where 'N' is the USB; 'dd if=lubuntu-16.04.1-desktop-linuxium-ics.iso of=/dev/diskN' substituting correct ISO filename and value for 'N').

1 2 said...

https://github.com/thefanclub/dd-utility/tree/master/DMG lets me see my usb drive in boot [f10] menu.

Linuxium said...

Many thanks for your testing. I've included the patches in my latest releases posted here http://linuxiumcomau.blogspot.com.au/2016/08/running-latest-ubuntu-on-intel-compute.html ... the downloads look the same as before except that the ISOs are now 16.04.1 and all the kernels (except v4.7 as noted) include the c#329 patches.

Linuxium said...

BTW use an ISO from the post at http://linuxiumcomau.blogspot.com.au/2016/08/running-latest-ubuntu-on-intel-compute.html as they are later and better than those above.

1 2 said...

FYI, I was not able to install Xubuntu but Lubuntu seems to work.

1 2 said...

but I tried old (2016/05)
I will try 2016/08 as well

AdvocateForSanity said...

I'd like to get Debian 8 working. The installer boots ok, but it doesn't seem to detect the internal 32GB storage. I have the STK1A32SC. If I can get to the point of getting the storage working, then the rest should come easy enough.

AdvocateForSanity said...

Sorry...left off the questions. What kernel modules enable the internal storage? Is there some place with detailed steps?

Also, its the stock Debian 8 installer than I'm attempting to use. It does prompt for the wireless firmware...which could be helpful.

Linuxium said...

Update: This page refers to earlier work and my latest ISOs can be downloaded from
http://linuxiumcomau.blogspot.com.au/2016/08/running-latest-ubuntu-on-intel-compute.html

Linuxium said...

Use the ISOs from
http://linuxiumcomau.blogspot.com.au/2016/08/running-latest-ubuntu-on-intel-compute.html

AdvocateForSanity said...

Answering my own questions in case others come here. The internal storage is considered a mmc device. the Debian 8 installer had too old of a kernel for the version of the mmc device. Debian testing version worked fine. Still need the Intel wireless firmware but that should be pretty easy to come by.

Linuxium said...

Finally micro SD card support ... see http://linuxiumcomau.blogspot.com.au/2016/08/micro-sd-card-support-on-intel-compute.html but note the current limitations.

andrew goh said...

thanks for creating these distributions, installed lubuntu from this set on STCK1A32WFC, it works pretty well sound, wifi etc, next thing installed ssh-server, openjdk and tomcat, now that little compute stick works as a tomcat 'server' served over wifi, no usb wires, keyboards, dongles, mouse etc ('headless' setup). later would find somd time to patchup the sd/mmc card support.
sent a little token donation, good job !

Linuxium said...

Many thanks for the donation.

andrew goh said...

i think running tomcat on (l)ubuntu on compute stick is a pretty neat 'iot' scenario, apps (servlets) can be 'uploaded' as 'war' files into it and given java lots of interfacing opportunities e.g. http://usb4java.org/

andrew goh said...

installed Avahi (apt-get install avahi-daemon avahi-utils), edit:
/etc/avahi/avahi-daemon.conf
[publish]
publish-workstation=yes

the compute stick now becomes 'discoverable' once it is connected to wifi

on the client PC:
>avahi-browse -av
+ enp3s0 IPv4 computestick [28:c2:dd:6a:5e:fe] Workstation local

andrew goh said...
This comment has been removed by the author.
andrew goh said...

while tomcat is a 'web server', nothing stop writing an app that 'streams' files from an android phone/device & tomcat displays it over hdmi on the compute stick. 'air play' or whatever acronym it is named ;)
intel seemed to have something similar but it seemed intel cancelled it rather recently
https://en.wikipedia.org/wiki/WiDi
https://www-ssl.intel.com/content/www/us/en/architecture-and-technology/widi-pro-widi-discontinued-notice.html

andrew goh said...

superseded by 'intel unite'
https://www-ssl.intel.com/content/www/us/en/architecture-and-technology/unite/intel-unite-overview.html

andrew goh said...
This comment has been removed by the author.
andrew goh said...

it turns out the concept is hardly new: Rpi smart tv
https://www.codementor.io/nodejs/tutorial/build-google-tv-raspberrypi-nodejs-socket-io

huhsuh said...

Im getting the ramdisk error while using a compute stick :<

Unknown said...

I am naive in this matter. Trying to learn. I have Intel Stick STK1AW32SC with 16.04.1 on it. I had downloaded original version and just saw your blog that you have modified it to enable sound and audio. Currently I am not getting sound. Everything is working fine otherwise. Is there a way or a patch around which can be loaded to enable sound or do I uninstall and reinstall your modified version. Please help.

Unknown said...

I am naive in this matter. Trying to learn. I have Intel Stick STK1AW32SC with 16.04.1 on it. I had downloaded original version and just saw your blog that you have modified it to enable sound and audio. Currently I am not getting sound. Everything is working fine otherwise. Is there a way or a patch around which can be loaded to enable sound or do I uninstall and reinstall your modified version. Please help.

Unknown said...

Hi there,
I have a STK1A8LFC stick with original Ubuntu 14.04 LTS on it. Wifi does not work with my WPA2/AES lan setup so I thought I'll give your latest 16.04 "MATE" a try. Got the iso and dd'd it to a USB drive. I can select the USB stick using the uefi boot menu (F10). Grub screen shows and I select "Try Ubuntu MATE without installing". I select that. Then for a split second, I see a message like "efi: requested map not found", then the MATE logo screen shows up and soon after ... I am back to my existing 14.04 LTS installation. What am I missing here, since everybody else seems to have no problem booting from usb?
Any hints are greatly appreciated.

Thank You,
Markus.

Unknown said...

Hello, I would like to download ubuntu 16.04 but I do not have access to the file. How do I get access?

Unknown said...

Disabling built-in wifi module via BIOS (updated it to latest v35 just in case too) solved STCK1A8LFC stick freeze problem for me even without any Ubuntu 14.04 kernel updates and c-state manipulations (tried them - not helped). Had to put external USB wifi dongle to still have wireless compatibility.

Linuxium said...

It has been superseded. Respin a 16.04 LTS desktop 64-bit ISO using my 'isorespin.sh' script (see latest posts).

Unknown said...

I'm not able to use the .sh scripts.

Can someone please link the Kubuntu (or other distro) ISO?

Linuxium said...

Can you explain why not as maybe with 'help' you might be able to.

Unknown said...

I don't run Linux on my own system, since I need windows for gaming, but I always help my computer-illiterate father out with Linux installations on his devices, since he doesn't need Windows.

I always just use ISO images with Rufus to install on his stuff, so I have no idea what to do with .sh scripts, or a linux system to do it on.

For whatever reason, his intel compute stick with windows on it got bricked after a year of use, just a few days after the warranty ran out. We want to try and get Kubuntu on it as a last resort.

If I could just get an old "respun" kubuntu iso for the compute stick, we could maybe get it working again instead of having to buy something else (or buy windows I guess, but my father likes linux).

Linuxium said...

Which model of the Intel Compute Sticks?

Unknown said...

STK1AW32SC

Linuxium said...

I don't have a Kubuntu ISO uploaded at the moment however with the mainline v4.13 kernel about to be released I will probably upload an Ubuntu 17.04 with v4.13 and Lubuntu Beta 1 with v4.13 when it becomes available if that is any use?

Unknown said...

Okay thanks, either will work. Preferably Lubuntu ( as long as it's not unstable).

Linuxium said...

As you have the 'STK1AW32SC' device then change the BIOS to use the 64-bit bootloader and install the standard Kubuntu Beta 1 ISO. Yes it is still under development however it should now be stable enough to use. If you really want something that is 'not unstable' then you will have to wait for v4.12 HWE kernels to be released.

Unknown said...

Are you saying that I should just get the 17.04 Kubuntu from here https://kubuntu.org/getkubuntu/ ?

I will try that.

Linuxium said...

No. If you download 17.04 you'll not get HDMI audio as the kernel is v4.10 and you will have to wait for v4.12 HWE kernels to be released. I suggested the Beta 1 ISO from 'http://cdimage.ubuntu.com/kubuntu/releases/17.10/beta-1/kubuntu-17.10-beta1-desktop-amd64.iso' which has a v4.12 kernel.

Unknown said...

We managed to boot from the usb drive, select the oem install option and get the blue "kubuntu" splash screen (as if it's loading the installation), but then it just restarts the device after a while.

Sometimes it restarts into the kubuntu boot options, sometimes into the intel compute stick menu. Not quite sure what's going on with his device, maybe it's just really broken.

Linuxium said...

I'd start again as maybe things are in an inconsistent state. I'd boot from a LiveUSB and wipe the eMMC clean and also wipe any bootloader entries in NVRAM (see 'NVRAM sync issues' on 'https://linuxiumcomau.blogspot.com.au/2017/06/customizing-ubuntu-isos-documentation.html?showComment=1505342332951#c5343872284124141717' steps 1 to 6 only. Then I'd reboot and perform a clean installation.

Unknown said...

Can you please tell me what command i need to put when create Lubuntu 17 iso for 1st generation stick z3735f (no hdmi audio, wifi, bt) and 2st z8330 (no audio) i try isorespin with

sudo ./isorespin.sh -i lubuntu-17.04-desktop-amd64.iso -u -f linuxium-install-UCM-files.sh -f wrapper-linuxium-install-UCM-files.sh -c wrapper-linuxium-install-UCM-files.sh

but when i check that script its for rt chipset not for i915 for 2st generation and iso is frozen on boot.

Best regards

Linuxium said...

The command './isorespin.sh -i lubuntu-17.04-desktop-amd64.iso -u --atom' should suffice for both devices. If the ISO repeatedly hangs then try respinning the ISO with the command './isorespin.sh -i lubuntu-17.04-desktop-amd64.iso -u --atom -g "intel_idle.max_cstate=1".

GhoXt said...

hi everyone i hope im not out of time as it is 2018 by now, so i have a STCK1A32WFC, last night my son wiped out emmc throught bios "emmc secure erase", i know this is for linux not windows, but can i put a windows 8/10 iso into an usb and boot up?

Linuxium said...

Just download the Windows 10 Home ISO from Microsoft's website and write it to a USB using the software they provide. You can then boot from the USB and reinstall Windows.

GhoXt said...

many thanks linuxium, i did with windows 8.1pro the only thing that wont work its wifi and i install the realtek driver provided by intel at their website.

Linuxium said...

You tried this 'https://downloadcenter.intel.com/download/27213/Compute-Stick-Intel-Wireless-Technology-Based-Driver-for-Windows-8-1-for-Intel-Compute-Stick-STK1A32SC?product=91064'?

Unknown said...

Hey Linuxium,


Do you know of any reason I might run into this issue?

I use my STK2m364CC with xubuntu as a htpc. It's plugged into a 60" sharp ledtv and my preference is to leave the stick on (disabling sleep, powersaving, etc modes) and turn the tv on/off for use.

If the tv has been off for sometime (as short as 15mins) when I turn it back on, the screen is blank, yet the stick is on.
If I remove the stick from the hdmi port and reconnect, it still does not display, leaving me to think the output from the stick is down and unable to "wake".
Only move from there is hard power cycle.

I also own a 1st gen stick, which does not behave this way, leaving me to hope there's something I can alter to prevent this.


-Chris

Linuxium said...

Do you get the same issue when connected to a monitor for example and does it wake if you have a mouse connected that you can frantically move or a keyboard you can mash random keys on?

Unknown said...

Thanks so much for responding, although now I feel bad for asking!

After warming up the google skills a bit, I eventually found:
https://bugs.launchpad.net/linuxmint/+bug/1615286?comments=all

which cites a bug in xfce4-settings in 4.12
After upgrading to bionic, all is well!

For the record: no, keyboard and mouse movement would not wake it up. Only option at that point was a hard reboot.

Thanks for all that you do!

Linuxium said...

Glad to hear you found a solution.

Stergios said...

Hello Linuxium,

I tried this image http://bit.ly/linuxium-atom-ubuntu-18_04_1-desktop-amd64 on a STK1AW32SC stick.
The aim is to install it in SD card.
I followed the instructions here: http://www.linuxium.com.au/how-tos/bootingubuntufromsdcardontheics
Till step 6 everything is ok.
At step 7 boot ubuntu, the result is that ICS does not boot and stays at grub. Entering exit at grub the message is no boot disk available.

Any idea where to look and what ?

Thank you in advance.

Kind regards,
Stergios
--

Linuxium said...

You probable need to recreate the NVRAM entry using 'efibootmgr' again to get it to work. Take a look at 'NVRAM sync issues' in http://linuxiumcomau.blogspot.com/2017/06/customizing-ubuntu-isos-documentation.html and recreate using the correct device and partition number.

Stergios said...

Thank you for the heads-up.
The way it worked in my case was to setup a separate /boot partition in eMMC in order the system to be able to retrieve the grub configuration and modules. The root / partition is in the SD card (like it described here: https://askubuntu.com/questions/1104910/grub-wont-find-ubuntu-after-sd-card-installation-on-a-uefi-compute-stick).

This ISC product is so crippled... (i don't know what they had in mind when they were building it...).

Kind regards,
Stergios
--

Nerd Progre said...

New user here with a brand new STCK1A8LFC
What do you use to backup the original partition? Does it boot from USB with a usb hub in between?
In other words, I'd need to backup the factory partition layout to a new usb flash drive... before I touch anything so I can restore everything to defaults if anything goes wrong.

Thoughts? comments?

Linuxium said...

Just boot from a LiveUSB and then use 'dd' to dump the entire 'mmcblk0' partition to a separate USB and then you can restore the same to get back to how it was before you started.

Nardusgc said...

Hi, thank for the awesome post, I can't seem to find the download links? Am i missing anything :-). Thank you

Linuxium said...

It is in the first paragraph: 'This work is superseded by my 'isorespin.sh' script which can respin an official ISO suitable for use on Intel Atom devices'. Just click on 'isorespin.sh'.

Dark26 said...

Bonjour,

I touch the bios of my pcg02U ( MELE ) and i do the bad thing. i desactivate usb support in the bios. So no more keyboard. Is there a way to reset the bios? Merci

Linuxium said...

The only way I know possible is to use an SPI Flash programmer. See http://www.linuxium.com.au/how-tos/howtounbrickameegopadt01

Tim said...

I've installed the linuxium-atom-ubuntu-20.04.3-desktop-amd64.iso onto a W5Pro intel compute stick however the internal wifi chip is not being recognized still. I am unsure of the brand of my compute stick so I have assumed it is the AIOEXPC PC Stick (i think its the same as STCK1A8LFC). any ideas on what to do? I have a wifi adapter to connect but I wanted to see if this issue is fixable asis since this device will be going behind a tv

Linuxium said...

If you can post a link using 'pastebinit' or similar to your 'dmesg' immediately after booting hopefully it will show further details about your wifi chip.

Post a Comment