The ODROID-C1 is a $35 quad-core computer with a Raspberry Pi compatible 40-pin header, though far more powerful and feature-rich.

Features of the board include:

  • Amlogic S805 ARM Cortex-A5 1.5Ghz quad core CPU
  • Mali-450 MP2 GPU (OpenGL ES 2.0/1.1)
  • Gigabit Ethernet
  • 40pin GPIOs
  • eMMC4.5 HS200 Flash Storage slot
  • UHS-1 SDR50 MicroSD Card slot
  • USB 2.0 Host x 4, USB OTG x 1,
  • Infrared (IR) Receiver
ARMv7 Cortex-A5
Amlogic S805 1.5GHz Quad-core
Micro SD

Micro SD and eMMC Creation

Replace sdX in the following instructions with the device name for the SD card as it appears on your computer. Use the provided micro SD to eMMC adapter card to install to eMMC.

  1. Zero the beginning of the SD card or eMMC module:
    dd if=/dev/zero of=/dev/sdX bs=1M count=8
  2. Start fdisk to partition the SD card:
    fdisk /dev/sdX
  3. At the fdisk prompt, create the new partition:
    1. Type o. This will clear out any partitions on the drive.
    2. Type p to list partitions. There should be no partitions left.
    3. Type n, then p for primary, 1 for the first partition on the drive, and enter twice to accept the default starting and ending sectors.
    4. Write the partition table and exit by typing w.
  4. Create the ext4 filesystem:
    1. For e2fsprogs < 1.43:
      mkfs.ext4 /dev/sdX1
    2. For e2fsprogs >= 1.43:
      mkfs.ext4 -O ^metadata_csum,^64bit /dev/sdX1
  5. Mount the filesystem:
    mkdir root
    mount /dev/sdX1 root
  6. Download and extract the root filesystem (as root, not via sudo):
    wget http://os.archlinuxarm.org/os/ArchLinuxARM-odroid-c1-latest.tar.gz
    bsdtar -xpf ArchLinuxARM-odroid-c1-latest.tar.gz -C root
  7. Flash the bootloader files:
    cd root/boot
    ./sd_fusing.sh /dev/sdX
    cd ../..
  8. (Optional) Set the screen resolution for your monitor:
    1. Open the file root/boot/boot.ini with a text editor.
    2. Uncomment the line with the desired resolution, and ensure all others are commented.
    3. Save and close the file.
  9. Unmount the partition:
    umount root
  10. Insert the micro SD card or eMMC module into the C1, connect ethernet, and apply 5V power.
  11. Use the serial console (with a null-modem adapter if needed) or SSH to the IP address given to the board by your router.
    • Login as the default user alarm with the password alarm.
    • The default root password is root.
  12. Initialize the pacman keyring and populate the Arch Linux ARM package signing keys:
    pacman-key --init
    pacman-key --populate archlinuxarm

Additional Packages

  • X.org video driver package: xf86-video-odroid-c1 Note: Add your user to the "video" group to be able to access /dev/mali and /dev/ump.
  • Mali EGL and GLES drivers (installed with xf86-video-odroid-c1): odroid-c1-libgl
  • wiringPi modified for the ODROID-C1: wiring-odroid
  • Kodi: kodi-c1


To make use of the IR receiver, load module meson-ir


For one PWM (pin 33) and one SPI:

sudo modprobe pwm-peson npwm=1
sudo modprobe pwm-ctrl

For two PWM (pins 33 and 19) and no SPI

sudo modprobe pwm-peson npwm=2
sudo modprobe pwm-ctrl

You can control the PWM via simple sysfs entries. In /sys/devices/platform/pwm-ctrl you'll find the following files:

  • duty0: Duty cycle in percent: echo 50 > duty0 # 50% duty cycle
  • enable0: Enable/Disable this PWM: echo 1 > enable0 # enable PWM0
  • freq0: PWM Frequency in Hertz: echo 100000 > freq0 # set frequency to 100kHz
    • On PWM0 you can test higher frequencies; however, 1Mhz is the maximum supported frequency.
  • Note: If you are using the two PWM setup, you will have: enable0, freq0, duty0 AND enable1, freq1, duty1.

Copyright ©2009-2022 Arch Linux ARM
The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
The Arch Linux™ name and logo are used under permission of the Arch Linux Project Lead.