ugles: micro graphic linux embedded system

Author

romalta.jpg

Roberto A. Foglietta

eman.atteilgof.otrebor|em#eman.atteilgof.otrebor|em

http://www.roberto.foglietta.name/work

Abstract

In the short term:

  • just play with buildroot
  • integrate a minimalistic desktop environment for Asus eeepc 701/4G.
  • prepare a slide show manager to deploy onto SD cards

However in the future could be changed in a internet media player box with these feature:

  • Boot from SD card or USB pen drive because eeepc is a standard well diffused HW platform many people could find easy booting from an external device
  • Support for some IR dongle key and software to learn IR remote control sequences in such a way people could configure the use of their eeepc media box and use their VCD/DVD remote controller (or buying a programmable low cost remote control).
  • For other suggestions mail me at me@roberto.foglietta.name or search me on skype netwrok as robang74

Current Specification

  • boot time from grub to X gui is 14 seconds
  • foot print on disk is 14 Mb which contains:
      • kernel for generic x86 + Asus eeepc 701 support + complete USB peripherals support
      • Xvesa + basic fonts + keyboard translation layer + shared data and libs for graphical applications

Project overview

At this time there is any project plan because it is a hobby project I decided to start-up in order to keep me busy until I find a new job or contract. However this is the list of the actual phases that have been just done:

Start Version Effort Mission Achievements
2008-10-15 0.0.1 10 days get in touch with the buildroot environment tried different configs and options
2008-10-27 0.0.2 - 0.0.8 2 weeks make buildroot environment and software suitable as soon as possible some bugfix closed and some best effort patches
2008-11-10 0.0.9 - 0.1 4 days @ 50% documenting and repeating the building process until it became enough stable reproducibility and documentation
2008-11-14 0.1.1 ^ bug fixing resolution 800x480 support for eeepc was broken because 915resolution
2008-11-14 0.1.2 ^ bug fixing X server resolution stays fix at 640x480 until /root/.xserverrc exists
2008-11-10 devel 1 week plan and verify technical requirements in order to split the project in two halves ugles-initramfs verified, planned and partially accomplished
2008-11-21 initramfs 0.1.3 3 days documenting and repeating the building process until it became enough stable reproducibility and documentation
2008-11-22 - 1 week take a break waiting buildroot bug and patch tracking returns available rest and looking for a new job
2008-11-30 0.1.3 1 day align 0.1.2 with changes in 0.1.3 reproducibility, minor bugfixes and diversification from initramfs

As you can see the integration sequence was:

  1. feasibility study
  2. bugfixing in best effort
  3. stabilize and document the result

The next step could be:

  • return again at the stage 2 in order to found the best general solution of any issues still open and then redo the stage 3
  • continuing the project development and splitting it in two project with well known purposes for each ones

In particular focusing on the basic part which belong to both project and managing to find a general solutions only for the related issues would save some time. In fact it is probable that some issues would be resolved, addressed or dropped during the future development phases. In few words: this project is in an early stage and because buildroot is in heavy development phase too, at this time, it is acceptable to have some best effort bugfix and proceed for further developments.

For example: including the gqview application increases the size of the iso9660 image from 49 to 122 Mb. This size is definitely too big to be reasonable managed with initrd. Once I will split the rootfs from the initrd image then including gqview would be feasible. Filesystem footprint and memory footprint reductions will be faced once the project would have been split in two parts:

  1. one frame buffer application which could run over many x86 hardware platform
  2. many applications which run over X server but tailored only for eeepc hardware

The first project kernel + initrd would be used in order to boot and mount the rootfs which contains the second project.

Development

Please refer to this page for future developments:

Documentation

Documentation about the last stable version 0.1.x are available following the link:

but the most of the documentation stays in this following page:

Screenshots

You can see some screenshots in this following page:

Download

The last stable version is 0.1.2 and it still in beta testing by users and you could download from here:

Installation

THESE COMMANDS COULD DAMAGE YOUR BOOT RECORD
PLEASE BE SURE TO TYPE IT ONTO EMULATED SYSTEM ONLY

Connect the USB pen or the SD flash storage device to your computer:

roberto@rafbook:~/gles/buildroot$ cat /proc/partitions 
major minor  #blocks  name

   3     0   58605120 hda
   3     1    4088511 hda1
   3     2    8249377 hda2
   3     3    4088542 hda3
   3     4          1 hda4
   3     5     987966 hda5
   3     6   11462346 hda6
   3     7   29712186 hda7
   8     0    7852031 sda         <---- USB pen on my notebook
   8     1    7849417 sda1     

roberto@rafbook:~/gles/buildroot$ sudo qemu -boot d -cdrom binaries/ugles/ugles-0.1.iso -kernel-kqemu -hda /dev/sda

Go into ugles console and type:

# mount -o remount,rw /mnt/sda1
# cd /mnt/cdrom
# cp -f kernel initrd /mnt/sda1
# cp -rf /boot/grub /mnt/sda1
# grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
# umount -ar
# reboot

After reboot this time try to boot from hard disk which means your USB or SD storage device.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.