Brad For Dem Bedded

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Thursday, 17 March 2011

File System - Check!

Posted on 04:43 by Unknown
I've gotten an Embedded CLFS system running on my BeagleBoard-xM!
I made a public gist of the boot-up.

I'm still using the supplied U-Boot so I'm not using the automated "bootcmd", but that's shortly coming up on my list of things to fix (along with getting a few microSD cards). I've put my kernel (that was built before and uses no modules) in the first FAT partition on the microSD card and then created a 1GB ext3 partition as the 3rd partition, which is where my root file system lives. In order to boot I use the following U-Boot commands:
  • setenv console ttyO2,115200n8
  • mmc init ${mmcdev}
  • setenv mmcroot /dev/mmcblk0p3 rw
  • run loaduimage
  • run mmcboot

When booted, the system's only using about 8MB of RAM according to 'top', which isn't half bad. Granted, it's not doing anything useful yet, but that's a nice starting place. My system doesn't have networking yet, but that's next up on the to do list along with an SSH server.

In order to get this far, I've made some changes that aren't yet in the Embedded CLFS book. I've opened Trac tickets that document the issues and I'll be updating the book soon (hopefully this weekend).
Read More
Posted in beagleboard, clfs, embedded, linux, open source | No comments

What Is CLFS?

Posted on 03:59 by Unknown
In this week's BeagleCast, my blog post about getting a kernel running on my BeagleBoard-xM with CLFS got a mention. That's cool! But there seemed to be some confusion around what CLFS really is. Let me try to explain, in my own words:

CLFS stands for Cross Linux From Scratch, it's an offshoot of the LFS (Linux From Scratch) project. The goal of both LFS and CLFS is to provide instruction on how to build a Linux system, step by step, from source. In both projects, first a toolchain is built and then a bootable GNU/Linux operating system is built using that toolchain. CLFS differs from LFS in that CLFS builds a GNU/Linux system for an architecture different than the one doing the building. For example, if I have an x86 based computer on my desk that I want to use to build GNU/Linux for a PowerPC system I just bought off eBay, I'd use CLFS rather than LFS.

The methods described by CLFS are very similar to the methods used by OpenEmbedded or Buildroot, but each step is described and there's very little automation. You literally manually build, step by step from upstream source, a toolchain and then a functioning GNU/Linux system. Throughout the books there is information on all the different choices you are required to make. For example: if targeting an ARM processor, when building GCC, you have to choose which ARM version to target, like "armv7-a" for Cortex-A8.

The CLFS project has three different books: Standard, Embedded, and Sysroot. The Standard book is the most developed book and mostly targets people who want to build a cross-compiled system for a desktop computer system. The Embedded book (the one I work on) builds a minimal GNU/Linux system using uClibc targeted at embedded devices where resources may be constrained. The Sysroot book uses a different technique to accomplish similar goals as the Standard book. Both the Standard and Embedded books are under active development, Sysroot hasn't been updated in a while.

Where OpenEmbedded and Buildroot hide a lot of the complexity of building a cross compiled version of GNU/Linux, CLFS hides almost nothing. Think of CLFS as more of a learning experience rather than a quick way to build a cross system. A big advantage of CLFS over an automated system is that errors are usually easy to identify, since everything's done manually you stay at the terminal and you'll probably watch the configure scripts and compiler output. If something doesn't look right, you will have a much better idea of where the problem is, if not what the problem is.

If you'd like to help with the CLFS project, or if you just have questions, come join the IRC channel (#cross-lfs) on Freenode and / or sign up for the clfs-support mailing list.

PS: On Freenode (both in #cross-lfs and #beagle), I'm user "bradfa".
Read More
Posted in beagleboard, clfs, embedded, linux, open source | No comments

Monday, 14 March 2011

Toolchain, Check! Kernel, Check!

Posted on 04:39 by Unknown
I've been working on the CLFS embedded book for a few months now.  I've been learning a lot and my goal has been to get a CLFS embedded system running on my BeagleBoard-xM. I'm now one step closer!

I've built my own toolchain using CLFS instructions currently found in my git repo. My toolchain consists of:
  • Linux Headers from 2.6.36
  • GMP 5.0.1
  • MPFR 3.0.0
  • MPC 0.8.2
  • Binutils 2.21
  • GCC 4.5.2
  • uClibc 0.9.31 (with uClibc provided patches)

My kernel is from tmlind's OMAP tree, version 2.6.38-rc8.  I started with the omap2plus_defconfig and modified it a little bit (although modification may not be needed, still have to check that).

I'm using the provided xM U-Boot but with a few slight changes to the boot args and boot up sequence:
  • setenv console ttyO2,115200n8
  • mmc init ${mmcdev}
  • run loaduimage
  • run mmcboot

I've made public gists of the boot console output and my kernel config, in case anyone is interested.

Next step is to get the CLFS embedded filesystem up and running on my xM!

EDIT: Thought my selection of ABI and triplets might be of interest as well:
  • target triplet: armv7a-unknown-linux-uclibceabi
  • ABI: aapcs-linux
  • little endian
  • hard float
  • arm mode only (no thumb instructions)
  • vfpv3 floating point hardware
Also, happy Pi day!
Read More
Posted in beagleboard, clfs, embedded, gcc, linux | No comments

Thursday, 3 March 2011

Chromium Minimum Font Size

Posted on 04:16 by Unknown
I've recently switched to using Chromium.  I liked Firefox / Iceweasel but it has gotten a bit slower over time and Chromium is now faster for the places I visit on the web.  Also, all the plugins I use on Firefox / Iceweasel are now available on Chromium (mainly Adblock Plus and Xmarks).

But one thing I was missing, that Firefox / Iceweasel had, was an easy way to set the minimum font size through the GUI settings panel.  Firefox / Iceweasel makes it easy, just pick the smallest font size you want from a drop down menu where you pick your default fonts.  Chromium (at least the version that ships with Debian 6) doesn't have a menu choice to set this and the default was causing some pages I visit to have smaller fonts than I desired.  And I don't like having to zoom.

But the fix is easy!
Simply open up your ~/.config/chromium/Default/Preferences file and in the "webkit" section, add these two lines (make sure Chromium is not running when you both open and save the file):

"minimum_font_size": 14,
"minimum_logical_font_size": 14

You can substitute your favorite minimum font size for the 14 I've chosen.  Next time you start Chromium, fonts won't be smaller than 14! :)
Read More
Posted in computers, linux, web 2.0 | No comments
Newer Posts Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • Downsides and Upsides of Altera's Configuration Via Protocol
    Yesterday, I wrote a little about reconfigurable FPGAs attached to the PCI-Express bus as an addition to the general purpose computer. The...
  • Toolchain, Check! Kernel, Check!
    I've been working on the CLFS embedded book for a few months now.  I've been learning a lot and my goal has been to get a CLFS embe...
  • KDE4 Sucks
    I upgraded to Debian 6 Squeeze last weekend on my desktop.  I was very excited to get some more up-to-date packages (git, gcc, kernel, and c...
  • Low Cost ARM Computer
    I was thinking about my ARM + FPGA computer idea some more.  There's already a lot of competition in the single board computer space an...
  • Crypto Load Balancer Using Off The Shelf Hardware
    At my day job, I work a reasonable amount of time with cryptographic and authentication systems. Lately, I've been reading about OpenCL...
  • Embedded Linux and Long Term Support / Updates - Part 2
    In my previous post about embedded Linux long term support, I neglected Ubuntu. I had not realized how much effort Canonical are putting i...
  • The TuxedoBoard has a Brain! (picked out)
    I've chosen an ARM SoC (system on chip) for the TuxedoBoard! The Texas Instruments AM1707 ARM9 core will meet my requirements. The AM1...
  • Pick an ARM ABI When Building GCC
    If you follow the CLFS embedded book for ARM , you'll see that your ABI choice isn't used until compiling packages (ie: after you...
  • SanDisk iNAND
    I stumbled upon SanDisk's iNAND products today while doing some searching about SD cards. The iNAND idea looks very appealing to me co...
  • I'm Writing a Book
    I'm writing a book about embedded Linux but I'm not going to compete with traditional technical books.  O'Reilly isn't my co...

Categories

  • beagleboard
  • blog
  • book review
  • business
  • c
  • chairs
  • clfs
  • community
  • computers
  • crypto
  • db
  • debian
  • disapointment
  • embedded
  • energy
  • fedora
  • flash
  • fpga
  • gcc
  • git
  • google
  • health
  • hp
  • internet
  • iOS
  • learning
  • license
  • linux
  • market
  • microsoft
  • movie review
  • my book
  • next steps
  • open source
  • pandaboard
  • rails
  • software
  • SOPA
  • tuxedo
  • web 2.0
  • webOS
  • windows
  • work

Blog Archive

  • ►  2012 (10)
    • ►  January (10)
  • ▼  2011 (70)
    • ►  December (10)
    • ►  November (9)
    • ►  October (7)
    • ►  September (8)
    • ►  August (1)
    • ►  July (3)
    • ►  June (3)
    • ►  May (3)
    • ►  April (8)
    • ▼  March (4)
      • File System - Check!
      • What Is CLFS?
      • Toolchain, Check! Kernel, Check!
      • Chromium Minimum Font Size
    • ►  February (5)
    • ►  January (9)
  • ►  2010 (16)
    • ►  December (6)
    • ►  November (9)
    • ►  October (1)
Powered by Blogger.

About Me

Unknown
View my complete profile