Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X

Stripping Odroid C1’s Ubuntu to (almost) minimal install

I recently got a hold of an Odroid C1. This single board computer packs quite a punch.

Odroid C1

Odroid C1 Specifications

  • Amlogic ARM® Cortex®-A5(ARMv7) 1.5Ghz quad core CPUs
  • Mali™-450 MP2 GPU (OpenGL ES 2.0/1.1 enabled for Linux and Android)
  • 1Gbyte DDR3 SDRAM
  • 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
  • Ubuntu 14.04 or Android KitKat

My Odroid C1 is equipped with 8GB of eMMC. Disappointingly there is no ‘console’ versions yet of any of the software. The only ones available have all of the GUI software installed (which for my purpose is unnecessary). This means that nearly 4GB of disk space is used out of the box. With some trial and error I managed to strip out everything I don’t need for my Odroid C1 and compiled it into a few lines of code. There’s also a few caveats to the eMMC images as well. Some are security issues.

  1. SSH Server Keys are not regenerated upon first boot
  2. udev rules for network devices aren’t purged before the image is created. This causes the main ethernet interface to get listed as eth1 instead of eth0
  3. NetworkManager is installed. You’ll need to edit /etc/network/interfaces, then disable NetworkManager, then go with this.

Regnerate SSH Keys

Fix udev (run as root) and reboot

Remove NetworkManager (run as root) and reboot

Strip out the Packages (Again as root)

Purge uninstalled packages

 

This dropped my disk usage to just under 1GB. Keep in mind this strips out the GUI so the HDMI no longer works. This leaves only the serial port and SSH to manage the ODROID C1.

  • Hi there, well I see that like most linux tinkerers, you like a minimal install. Very good tutorial indeed.
    Anyway as I couldn’t find any other real user with Networking experience and having Odroid C1 at hand, I want to ask something.
    1. Whats the throughput of Ethernet port?
    2. I see that you have also configured C1 as Router to use with IPsec, any disconnections or temperature spikes? How reliable is the network interface to continuous network activity?
    I wanna order one and it takes almost a month to deliver here in India, so I want to be sure that is it worth all the custom duty and waiting time.
    P.S: Don’t you use Arch Linux ARM on C1?

    Manpreet Singh

    January 5, 2015

  • The throughput of the Ethernet port is mildly disappointing. I was only able to get about 140Mbps, although this seems to be CPU bound due to interrupts. I’m sure with some tuning the performance could be increased. So far the chip runs rather cool, so no temperature spikes.

    08:27:54 up 1 day, 4:48, 2 users, load average: 0.09, 0.28, 0.27
    This is with file servers, snort, muinin, postgres, php-fpm, nginx all running on it.

    As far as Arch goes? It can kiss my butt along side Ubuntu. I’m waiting for Debian/Devuan. Systemd is a piece of crap. How do you create instabilities in a Linux OS? By trying to make init do everything. What happens when init crashes? The whole thing crashes. I stick with sysvinit wherever possible.

    segfault

    January 5, 2015

  • just a small hint:
    you could try to do everything in one command by altering your remove command like this:
    “apt-get autoremove –purge”
    autoremove “should” also remove uneccessary packages that were a dependency of the packages you try to remove
    –purge does the apt-get purge you do with the second command directly when removing packages 🙂

    meveric

    January 5, 2015

  • This worked awesome!

    I didn’t realize I could leave a comment here, I shared this link on the Odroid forums but, since I can leave a comment here, I removed that post because its not my work and I don’t have permission.

    Anyways, I don’t know if you’re active on those forums or not but I’m sure there would be a number of members that would appreciate this blog!

    Jason

    January 10, 2015

  • Well you have my permission to post it all you want 😀 I’m not active on those forums, but I’m sure I will be since there are some things I want to start tinkering with.

    segfault

    January 10, 2015

  • So how could one also stop the serial port from starting and seemingly hogging resources on my device? I only want to run it in a headless environment and the serial device chews about half of my processor most days.

    teslasnp

    March 27, 2015

  • Hi,

    Well done with image.

    Just wanted to know what the boot time for your image.

    john

    March 30, 2015

  • If you want to truly remove the installed packages, you can use:
    apt-get purge package1 package2

    This will purge and remove all data (conf/libs/images etc etc) installed by the packages.

    Fourdee

    March 30, 2015

  • Your last comment: “This dropped my disk usage to just under 1GB. Keep in mind this strips out the GUI so the HDMI no longer works. This leaves only the serial port and SSH to manage the ODROID C1.”

    Can i still use the HDMI console tty?

    spanx

    May 2, 2015

  • No you cant. This removes the HDMI FrameBuffer software. If you want something easier, take a look at my post about a Debian install on the C1 where the HDMI TTY is still active.

    segfault

    May 2, 2015

  • […] Minimal Footprint (600MB OOTB). (See: previous post) […]

Leave a comment  

name*

email*

website

Submit comment