Base Nerves system configuration for the Intel Galileo Gen 2
Elixir Shell
Latest commit bca9ec4 Jan 23, 2017 @fhunleth fhunleth committed on GitHub Merge pull request #1 from electricshaman/cleanup-bare-functions
Clean up bare function warnings for Elixir 1.4.
Permalink
Failed to load latest commit information.
assets/images
rootfs-additions/etc Move erlinit.config here; update refs Jun 21, 2016
.gitignore
.travis.yml release v0.7.0 Sep 21, 2016
CHANGELOG.md release v0.7.0 Sep 21, 2016
LICENSE updated license and package info for hex Apr 3, 2016
README.md Add note from nerves_system_br Jan 17, 2017
VERSION release v0.7.0 Sep 21, 2016
fwup.conf Add config from nerves_system_br for posterity Jan 17, 2017
grub.cfg
linux-3.8.config
mix.exs Clean up bare function warnings for Elixir 1.4. Jan 23, 2017
mix.lock release v0.7.0 Sep 21, 2016
nerves.exs support for fetching from pre Jun 29, 2016
nerves_defconfig bump version and add 0.7.1 toolchain Sep 15, 2016
post-build.sh
post-createfs.sh Add config from nerves_system_br for posterity Jan 17, 2017

README.md

Intel Galileo Gen 2

Build Status

This is the base Nerves System configuration for the Intel Galileo Gen 2.

Fritzing Intel Galileo Gen 2 image
Image credit

Feature Description
CPU 400 MHz Intel Quark X1000
Memory 256 MB DRAM
Storage 8 MB NOR Flash and MicroSD
Linux kernel 3.8 w/ Intel patches
IEx terminal UART via ttyS1
GPIO, I2C, SPI Yes - Elixir ALE
ADC Yes
PWM Yes, but no Elixir support
UART 1 available - ttyACM0
Ethernet Yes
WiFi Requires USB WiFi dongle
Bluetooth Not supported

** This platform has worked in the past, but has a number of issues. **

If you're interested in x86 platforms, take a look at a generic x86 system like that in ag150. Otherwise, ARM boards such as the Raspberry Pi and BeagleBone Black are faster, less expensive, have more modern Linux kernels, and have better upstream support. If you're still interested in the Galileo Gen 2, please contact us and consider maintaining this platform. It does have a couple interesting features, but the overhead of supporting it is high compared to the number of known users.

Notes

After the board boots, you must load several kernel modules to use the peripherals:

:os.cmd('modprobe intel_qrk_gip')
:os.cmd('modprobe gpio-pca953x')
:os.cmd('modprobe pca9685')
:os.cmd('modprobe adc1x8s102')

If you have an Intel Galileo Gen 1, it may work but is untested. Try loading the following:

:os.cmd('modprobe intel_qrk_gip')
:os.cmd('modprobe cy8c9540a')
:os.cmd('modprobe ad7298')

Processor bug

The X1000 has a bug on the lock prefix requiring that prefix must be stripped at build time. It is important that the following parameter is passed to gcc to do this:

-Wa,-momit-lock-prefix=yes

Buildroot does this automatically, but Nerves doesn't pass the parameter around yet.

Limitations

  1. Boot time is long - this is mostly due to the NOR Flash bootloader waiting on input.
  2. Ethernet MAC is not set. Wired Ethernet doesn't work and the node name is always nerves-0000.

Supported USB WiFi devices

The base image includes drivers and firmware for Ralink RT53xx (rt2800usb driver) and RealTek RTL8712U (r8712u driver) devices.

We are still working out which subset of all possible WiFi dongles to support in our images. At some point, we may have the option to support all dongles and selectively install modules at packaging time, but until then, these drivers and their associated firmware blobs add significantly to Nerves release images.

If you are unsure what driver your WiFi dongle requires, run Raspbian and configure WiFi for your device. At a shell prompt, run lsmod to see which drivers are loaded. Running dmesg may also give a clue. When using dmesg, reinsert the USB dongle to generate new log messages if you don't see them.

Installation

If available in Hex, the package can be installed as:

  1. Add nerves_system_galileo to your list of dependencies in mix.exs:

    def deps do
      [{:nerves_system_galileo, "~> 0.4.0"}]
    end
    
  2. Ensure nerves_system_galileo is started before your application:

    def application do
      [applications: [:nerves_system_galileo]]
    end
    

Image credit: This image is from the Fritzing parts library.