iMedia linux distribution
   - hybrid between full featured linux distro and embedded linux distro



iMedia General Overview


 With iMedia linux distro iTuner introduces a new category of linux distro: an hybrid between a small embedded linux distribution and full featured linux distribution.
While not having the restrictions of an embedded linux distro (like small range of hardware/architectures, non standard libraries,filesystems) it's still much more lighter in disk space and even on cpu and memory usage than a full featured linux distribution.
Derived from our MediaboxOS streaming server and encoders platform we produced iMedia distribution which has the possibility to run on any hardware as a full linux distribution.
A minimum install of Fedora Linux distribution is about 400Mb while iMedia is about 8Mb.


This minimal install contains:

Filesystem


 - reiserfs v3 filesystem with jounaling capabilities.
Kernel


 - 2.4.x kernel
 - last iMedia distribution has    2.4.23 kernel.
 - kernel image include and supports: APM/ACPI,
   netfilter, traffic shaper/QoS, realtek, ne2000,
   sis900, via network drivers, IRDA, I2C,
   video4linux, ext2, usb.
-  everything else is available as modules in
    separate packages.
-  for a sample config file Click Here
Software

 - most used utils and needed daemons are
   already installed:
   bash
   busybox
   tinylogin
   gnu-utils
   modutils
   setpci
   udhcpc
   nano
   crond
   inetd
   syslogd
 - glibc 2.3.2
 - ncurses
 - libstdc++
 - for a complete listing of the files minimal
   install Click Here

This will fit nicely in a 16 Mb Compact Flash Card leaving space for user applications or optional packages.
The table bellow does a small comparisation between a full featured linux distribution installed with minimal default settings and our hybrid embedded ditribution. (Fedora Core 1 was used to compare the distros)


Fedora Core 1
iMedia 2.6.1



Size on disk
 400Mb
8Mb
FileSystem (default)
 EXT3
ReiserFS
Glibc version
2.3.2
2.3.2
Kernel version
2.4.22
2.4.23
Package system
Yes
Yes
Package management
Yes
No
PAM
Yes
No

Using same libc and kernel as most distributions ensures the capability to run applications from an existing linux installation to an iMedia distro without the need to recompile due to libc/kernel missmatch.
You can copy your application to iMedia and run it.



iMedia Kernel Features

In the current state iMedia distribution works only on x86 compatible processors.
We provide 3 x86 processor optimised builds
- 586 with NSC Geode support.
- Pentium III/Celeron
- Via C3/Eden patches
 

To ensure better performance,stability, uptodate driver fixes and better behaviour in noswap enviroments we selected a few patches for the kernel:
 - Preemptible kernel patches by Robert Love
 - O(1) scheduler by Ingo Molnar
 - Video 4 Linux 2 API

 - Various Alan Cox patches from his -ac tree
 - Various Andreea Arcangeli patches from his -aa tree

We also added some of our small modifications:

- silent booting (no messages are shown on boot)

- reiserfs journal log size change (to minimise space taken by reiserfs jounal)

- various exports of symbols.
- modification of default running parameters

Our modified reiserfs filesystem can be mounted on a stock 2.4 kernel above 2.4.22 version without any modifications.

Kernel sources can be downloaded from :
ftp://update:[email protected]/sources/kernel/



iMedia General  Distribution Features

  Install system
 
Installing iMedia linux it's very simply due to menu drived installation.

  First screen on the install program let user choose the architecture type (target machine hardware) and shows the size of the minimal  install.



Next screen let users choose on which device he can install  the distribution.
He can also choose to format or not the drive. The disk will be automaticaly partitioned.


    iMedia distribution behaves diferently if it detects an harddrive or an compact flash or both.

 Installing to a Compact Flash drive as boot device.

      If users installs to a compact flash /var and /tmp partitions will be created in ram using tmpfs with a predetermined size. /var partition will be automaticaly created everytime the computer boots (directory structure). No data will be persistent in those partitions. The rest of the directory structure in rootfs will be persistent and has journaling fs which will ensure  better handling of filesystem errors on unexpected powerfailures. Any changes to files that not reside in /var and /tmp will be preserved between reboots.

Installing to a Hard Disk drive as boot device. 

      If the target drive is a harddrive only /tmp will be created in ram /var will be created at first boot only

Any other drive beside the boot device will be mounted on /opt/extra.


Next screen will show the progress of diskpartitioning/formating and base distibution install.



Next scren let user choose installing a predefined system from a list of templates that will automaticaly select the needed packages or user can choose himself what packages to install. The last column shows the total size of the installed packages.



If the user choose to Select  individial packages a list grouped by category will be shown with the details of each package. Also user can view a list of files on the packages by pressing <View File List>

When packages are selected Install size will reflect the total size of packages selected.



Next screen will show the progress bar of package install.



After distro and packages has been installed user can setup his networking choosing between dynamic  address assignment (DHCP) or static.



Next screen help user to add an another user beside root user.



In the last screen user can add more users or change settings for created users (password,shell, home directory etc).


  Configure/Update System

We provide an easy way to configure your system options add or update packages on sysadmin package.
By using sysadmin package will you'll get a nice interface for configuring network, administrating users, install or update packages from cdrom, harddrive or network location(ftp/http).

Screenshot of main sysadmin menu.



Screenshot of ftp packages update settings menu. The screen after this is similar to select packages screen found in install.


 
  Distribution startup operation basics.

   After kernel is booted control is passed to init which will execute /etc/rc.sysinit and  the applications startup scripts located in /etc/init.d and /etc/rcS.d
  The /etc/init.d directory can be used to perform operations like mount or create filesystem before other modules/applications are loaded from /etc/rcS.d/. In /etc/init.d/ you will find createvar script which prepare /var partition if you are running the distribution on a compact flash card.
  In /etc/rcS.d/ you will find startup scripts for kernel modules and different daemons like:
 10network, 20syslog, M20-sound, M40-httpd (the prefix M means that the feature has been installed from a package).
  Each package which has a daemon has his own startup script premade.

 In the init scripts you can choose to redirect boot messages to console, LCD or select booting to be totaly silent. This is done by creating a file boot.silent (for silent boot) or boot.lcd in /etc/ directory (touch /etc/boot.lcd).

  Distribution logging system (embedded mode)

Due to space concerns we choose that or logging files to be handled by a kernel module (emlog) which instead of writing to disk it keeps last 32/64/128 Kb of logging in ram (this limit is configurable) in a circular buffer. If you have installed on a harddrive or have another harddrive in the system this can be disable so you can have persistent logging.

   Distribution package system

  To minimise space requirement but still be able to give users the possibility of easy install of packages we choose to build our own packaging system (partialy based on loki installer). Packages are self decompressing and installing each package has the possibility to have his own install script. Also each kernel module or driver have been put in a package so user can select only what he needs and keep space requirement down. If later he installs another device he can install the coresponding package. packages Most of the packages on iMedia are rebuilded from the sources to ensure minimul space requirements and reability.  Also our list of packages grow with any new release and we are open to any suggestions from users. Click Here to go to a list of packages available on CDROM.




iMedia customisation for mini-box.com systems and VIA EPIA platforms

   We customised iMedia to run and have better support for mini-box.com systems and VIA Epia platforms. A big part of the packages have drivers for EPIA motherboards and also our Xwindows server/ Frame buffer is configured for VIA EPIA boards.

  We also provide a lcd software which is suited for the LCD in M100 systems from mini-box.com. This package contains a LCD server and client. Client displays a menu which is configurable by user (can add new entries, assign commands to be executed on LCD Keypad actions). This menu contains:

  - System Status ( live status of your box including processor utilisation, memory, disk space information, VU metter for sound card input signal, list of the processes in memory, FAN/Temperature sensors)

  -  System Maintenance (  Sync drives,  reboot, shutdown etc.)

  -  Network Setup (setup you IP, hostname, gateway, dns servers)

  -  Log Files ( you can list log files on you LCD. Scrolling is made by using the scroll keys on LCD Keypad).

  - Sound options

  - LCD options

Also each F key (function key) on LCD keypad can be assigned a command (like start an mp3player) from the lcdmenu file.




Partial list of packages that you will find on iMedia CDROM:
 
Package name Version Description Uncompressed Size in KB
opera.6.12.minibox 6.12 Opera Web browser 11813
tcpdump.3.7.2.common 3.7.2 A very powerfull analyzer for your network traffic 418
samba-server.3.0.0.common 3.0.0 Samba server for interactivity between UNIX and windows. Also allows to access linux partitions from windows computers 3836
apache.1.3.27.minibox 1.3.27 iMedia HTTPd Server 1.3.27, very light apache server 684
usb2.2.6.0.common 2.6.0 USB 2 support 131
via-sound.2.2.common 2.2 Sound support for via chipsets VT82C686A/VT82C686B/VT8231 75
webcam-ov511.2.6.0.common 2.6.0 Drivers for your OV511 Webcam 152
oss-full.3.9.8b.minibox 3.9.8b OpenSound System drivers for supported audio cards 2514
perl.5.8.0.common 5.8.0 Minimal Perl package based on 5.8.0 release. 3265
firebird.0.7.minibox 0.7 A full featured browser with latest standards compliant. 29135
ftpserver.1.2.common 1.2 A very light FTP Server daemon 50
usb-serial.2.6.0.common 2.6.0 USB/Serial converter support 35
nfs-filesystem.3.0.0.common 3.0.0 Kernel drivers for nfs filesystem. 119
dnsd.1.0.common 1.0 Embedded DNS Server 79
realplayer.1.2.0.minibox 1.2.0 RealMedia Player 1.2.0 only for audio decoding 3125
lirc-serial.0.6.6.minibox 0.6.6 Linux infrared serial device support. Install this package if you have an infrared receiver which connects to computer serial port. 23
iptables-kernel.1.2.9.common 1.2.9 IPTables/Netfilter kernel modules 361
usb.2.6.0.common 2.6.0 USB support 171
diag.2.6.0.common 2.6.0 Some tools to help you diagnose network 984
webcam-3com.2.6.0.common 2.6.0 Drivers for your favorite 3COM USB Webcam 64
sensors-epia.2.6.0.common 2.6.0 Drivers for VIA VT8231 based motherboards used for monitoring your hardware 116
samba-filesystem.3.0.0.common 3.0.0 Kernel drivers for samba filesystems that will help you 67
TinyX.4.3.minibox 4.3 Small XWindows with OpenBox window manager ( TinyX + OpenBOX + EPIA FrameBuffer) 10357
mkdisk.1.0.common 1.0 Format and install a new hard drive device on your system 190
sysadmin-console.1.2.common 1.2 System Administration (console). Allows to change users, http users properties, install or update iMedia packages. 1000
acpi.1.0.1.common 1.0.1 ACPI drivers and daemon for power management 45
mp3decoder.1.0.minibox 1.0 MP3 decoder which let you play local or remote files 234
ntp-client.1.1.common 1.1 NTP Client which allow to syncronise your clock with another time server. 27
usb-hid.2.6.0.common 2.6.0 USB Keyboard/Mouse support 35
joe.2.9.7.common 2.9.7 Joe is a powerful, easy to use, modeless text editor. 195
lirc.0.6.6.minibox 0.6.6 Linux Infrared applications (lirc). If you install this you will need to also install a kernel driver to talk to your hardware like lirc_serial driver. 248
rrdtool.2.1.minibox 2.1 RoundRobinDatabase Tool for generating graphs with your system traffic 656
tftpd.0.9.8.common 0.9.8 A very light TFTP Server daemon 35
ogg123.2.2.minibox 2.2 ogg123 mp3 decoder 415
samba-tools.3.0.0.common 3.0.0 Samba 3.0.0 misc tools 1922
vim.5.7.common 5.7 A very powerfull text editor. 485
usb-storage.2.6.0.common 2.6.0 USB and USB storage devices support (includes scsi disk support) 220
iproute.2.4.7.common 2.4.7 IPRoute is a set of utilities used for advanced networking 287
webcam-ov511.2.6.0.common 2.6.0 Drivers for your favorite OV511 Webcam 152
ssh-server.0.38.common 0.38 Embedded SSH Server with support for v2 protocols 268
telnet-server.0.1.9.common 0.1.9 Embedded Telnet Server 23
webcam-philips.2.6.0.common 2.6.0 Drivers for your favorite Philips USB Webcam 104
bttv.0.9.11.common 0.9.11 BTTV driver for BT878 video capture cards. This version uses V4L2 layer API. 208
Xwindows.4.3.minibox 4.3 XWindows with OpenBox window manager 27137
sensors-sis.2.6.0.common 2.6.0 Drivers for SIS motherboards with IT87 chip used for monitoring your hardware 76
usb.2.6.0.common 2.6.0 USB support 207
usb.2.6.0.common 2.6.0 USB support 147
sensors-sis.2.6.0.common 2.6.0 Drivers for SIS motherboards with IT87 chip used for monitoring your hardware 76
webcam-philips.2.6.0.common 2.6.0 Drivers for your favorite Philips USB Webcam 100
dhcpd.0.9.8.common 0.9.8 A very light DHCP Server daemon 43
lcd.1.0.minibox 1.0 LCD/Keypad support for Mini-Box systems 184
fb-epia.1.0.minibox 1.0 Epia board based FrameBuffer support 128
mplayer.1.0-pre2.minibox 1.0-pre2 Movie player 8103
dillo.0.7.3.minibox 0.7.3 A small browser which doesn't supports frames. 2336
samba-client.3.0.0.common 3.0.0 Applications for mounting network windows shares localy on a linux machine 515