sigma smp8634/8635 toolchain rootfs building source.
=================
Readme.txt
=================
 
This is the Sigma Designs customization of the root file system for the
SMP86xx family of chips.
 
This package is of course heavily depending on the toolchain and kernel
packages.
 
Quick HOW-TO
============
a) You need to have a working toolchain package. Once you have built your 
   toolchain, be sure to source toolchain-path.env. This is required for you to
   be able to build the rootfs package.
b) Untar the rootfs package.
c) First, configure your root file system: 'make menuconfig'. All the options 
   in the configuration menus have detailed help. Once you are satisfied with
   your choice of options, exit and save the configuration.
d) If you are using the toolchain composed of gcc 3.4.2, binutils 2.15.91.0.2,
   and uClibc 0.9.27 (defined in the toolchain package) then you must select
   Busybox 1.00 from the 'Package Selection for the target --->' menu.
   If on the other hand you are using the toolchain composed of gcc 4.0.4,
   binutils 2.17, and uClibc 0.9.28.3 then you must select Busybox 1.5 from
   the 'Package Selection for the target --->' menu.
e) If you chose to customize your root file system (option 'customize' in
   submenu 'Package Selection for the target'), be sure to prepare your custom
   files now.
f) Run 'make' to produce your root file system.
 
IMPORTANT NOTE: as of this release, the only supported option in the 'Target 
Options' menu is 'cramfs root filesystem for the target device' (with all its
suboptions). Any other option is currently unsupported and some are known to
not work.
 
Once you are through with step e), your root file system is available in the
main directory of the package as 'root_fs_mipsel.cramfs'.
 
Note about the integration with the toolchain and the kernel source packages
============================================================================
The rootfs package is now integrated with the toolchain package and the 
kernel source package and is able to interact with them in the following
ways:
 
 a) it can grab the necessary runtime libraries from the toolchain package.
 b) it can receive the kernel modules and support files from the kernel source
    package.
 c) the kernel source package can use the produced rootfs image for its initial
    RAM disk.
 
For interaction a) to take place, the SMP86XX_TOOLCHAIN_PATH environment 
variable must be defined and it must point to the main directory of the 
produced toolchain. The easiest way to achieve that is by sourcing the
'toolchain-path.env' environment file after it is produced at the end of the
toolchain production.
 
Note that defining SMP86XX_TOOLCHAIN_PATH is not optional. The build will not
go through unless the environment variable is defined and points to a correct
location. This is because, even if the build went through, the resulting root
file system would be unusable as it would not provide *any* run time library.
 
For interactions b) and c) to take place, the SMP86XX_ROOTFS_PATH environment
variable must be defined and must point to the main directory of the rootfs
package. The easiest way to achieve that is by sourcing the 'rootfs-path.env'
environment file after it is produced, right after your run 'make' or 
'make menuconfig' for the first time.
 
When SMP86XX_ROOTFS_PATH is defined and points to a valid location, the kernel
source package is able to:
 
 b) install its modules to the correct location under the customization 
    directory ('package/customize/source') in the rootfs package. In order to
    then make sure the modules end up in the produced rootfs image, you must
    select the 'customize' option under the 'Package Selection for the target'
    menu in 'make menuconfig'.
 c) grab the produced rootfs image (root_fs_mipsel.cramfs) and use it for its
    initial RAM disk.
 
Thus, in order to produce a rootfs holding the kernel modules and use it as the
kernel initial RAM disk, you need to go through the following steps in order
(note: this is convoluted):
 1) optionally build the toolchain (or use an existing one, more recent than
    2.6.90.0)
 2) source toolchain-path.env in the toolchain package directory
 3) configure the rootfs package with the 'customize' option on in the
    'Package Selection for the target' menu
 4) source 'rootfs-path.env' in the rootfs package directory
 5) configure the kernel, review what is configured as modules, 'make dep'
 6) 'make modules' in the kernel source directory
 7) the 'modules_install' target for the kernel needs that the system map be
    already produced. In order to achieve that, build a first version of the
    kernel: 'make vmlinux'
 8) 'make modules_install' in the kernel source directory. The modules are now
    installed in the rootfs package customization directory.
 9) 'make' in the rootfs package directory. You have now produced a rootfs 
    image holding the kernel modules.
10) 'make' in the kernel source directory. You have now produced a linux ZBF
    image with an initrd holding the kernel modules.
    
Coming features
===============
N/A
 
Troubleshooting
===============
a) when building the cramfs utility tool, the compiler complains that it can't
   find 'zlib.h' or '-lz'.
 
   You need to have the development version of zlib installed on your system.
   How to do that depends on your distribution.
 
 
 
Date : 2008-12-27
Size : 228.76kb
User : mattli001