public inbox for gentoo-embedded@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
@ 2005-06-06 15:03 Heath H Holcomb
  2005-06-06 16:16 ` Yuri Vasilevski
  2005-06-06 18:08 ` Ned Ludd
  0 siblings, 2 replies; 10+ messages in thread
From: Heath H Holcomb @ 2005-06-06 15:03 UTC (permalink / raw
  To: gentoo-embedded

Version 0.06
Please add, delete, modify. Thanks!
This procedure produces a working embedded rootfs, that boots form a hard 
drive on a Geode based SBC (single board computer); at least on my 
development system.

I've update my website with this version also.
http://www.bulah.com/embeddedgentoo.html


#--------------------------------------------------------------------------------
# Embedded Gentoo How-To for x86
#
# A how-to guide to setup a Gentoo embedded environment, you must be root.
# These commands are to be run on your development system, 
# any x86 Gentoo Linux computer will do.  The system should be fast,
# to speed development.  The target can be any x86 based SBC.  I'm
# using a Geode based SBC.  Latter I'll use a Via based SBC.
#
# version 0.06
# 2005.6.6
#
# Heath Holcomb (heath at bulah.com)
# Ned Ludd (embedded Gentoo project lead, original commands posted)
# Lloyd Sargent (contributor)
# Yuri Vasilevshi (contributor)
# Mike George (contributor)
# Kammi Cazze (contributor)
# Marius Schaefer (contributor)
#
# Definitions and Terms
# system_rootfs = your regular rootfs
# development_rootfs = what you use to build the embedded_rootfs
# embedded_rootfs = rootfs you deploy to the target system
# SBC = single board computer (here it's an x86 based)
#
# References
# http://www.gentoo.org/doc/en/handbook/index.xml
# http://www.epiawiki.org
# http://epia.kalf.org
# Gentoo embedded mailing list (gentoo-embedded@lists.gentoo.org)
#
#
# Overview of process (steps)
# 1 - Prepare the development_rootfs from your system_rootfs
# 2 - Build the development_rootfs
# 3 - Build the embedded_rootfs
# 4 - Build and install non-system programs to the embedded_rootfs
# 5 - Build and install a kernel to the embedded_rootfs
# 6 - Deploy embedded_rootfs to target
#
#--------------------------------------------------------------------------------

#----- Step 1 - Prepare the development_rootfs from your system_rootfs -------

# You must be root.
su -

# Create the development_rootfs.
# I use i586 because of target is a Geode processor.
mkdir -p /opt/i586-gentoo-uclibc-linux/usr/portage

# Download the latest stage 1 tarball.
wget \ 
http://gentoo.osuosl.org/experimental/x86/embedded/stages/stage1-x86-uclibc-2005.0.tar.bz2

# Untar the stage to the development_rootfs.
tar -xvjf stage1-x86-uclibc-2005.0.tar.bz2 -C /opt/i586-gentoo-uclibc-linux/

# Mount the proc and portage directories to your development_rootfs.
# Makes your system_rootfs's proc and portage directory available from inside
# of your development_rootfs (after chrooting).
mount --bind /proc /opt/i586-gentoo-uclibc-linux/proc/
mount --bind /usr/portage /opt/i586-gentoo-uclibc-linux/usr/portage

# Copy over DNS information to the development_rootfs.
cp /etc/resolv.conf /opt/i586-gentoo-uclibc-linux/etc/resolv.conf

# Chroot into the development_rootfs.
chroot /opt/i586-gentoo-uclibc-linux /bin/bash --login


#----- Step 2 - Build the development_rootfs ---------------------------------

# Create new environment and load variables into memory.
env-update
source /etc/profile

# Modify make.conf file to your liking/needs.
nano -w /etc/make.conf
# This is for my target, Geode x86 processor.
/*
USE="bitmap-fonts minimal truetype-fonts uclibc mmx"
CHOST="i586-gentoo-linux-uclibc"
CFLAGS="-march=i586 -Os -pipe -fomit-frame-pointer -mmmx"
CXXFLAGS="${CFLAGS}"
FEATURES="buildpkg"

VIDEO_CARDS="chips"
UCLIBC_CPU="586MMX"
*/

# Set profile to use 2.6 kernel.
# The current stage uses 2.4 by default, and for most cases you are going
# to want a 2.6.x kernel.
rm /etc/make.profile
ln -s /usr/portage/profiles/uclibc/x86 /etc/make.profile

# Start the bootstrap script.
cd /usr/portage/scripts
./bootstrap.sh -p -v
./bootstrap.sh

# Workaround 1
# Failure compiling uclibc (gcc-config error: Could not run/locate "gcc")?
# If you get a failure while bootstrap is compileing uclibc here are the steps
# to work around the problem.
gcc-config 1
source /etc/profile
./bootstrap.sh

# Emerge the system ebuild for the development_rootfs.
emerge -e system

# Workaround 2
# During emerge -e system, python-fchksum failes complaing about
# gcc-config error: Could not run/locate "i386-gentoo-linux-uclibc-gcc"
# The following commands work around this problem.
emerge python
emerge -e system


#----- Step 3 - Build the embedded_rootfs ------------------------------------

# Create the embedded_rootfs directory.
mkdir /embedded_rootfs

# Emerge baselayout-lite into embedded_rootfs.
# This gives your system a basic file structure.
# 1.0_pre1 is the only one that is stable, right?
cd /usr/portage/sys-apps/baselayout-lite/
ROOT=/embedded_rootfs emerge baselayout-lite-1.0_pre1.ebuild

# Workaround 3
# Baselayout-lite is still beta, so a few fixes are needed.
# There needs to be a directory "log" in /var.
# Inittab calls for /usr/bin/tail, but it needs to /usr/bin.
mkdir /embedded_rootfs/var/log
nano -w /embedded_rootfs/etc/inittab
/*
#tty3::respawn:/usr/bin/tail -f /var/log/messages
tty3::respawn:/bin/tail -f /var/log/messages
*/

# Emerge uclibc into the embedded_rootfs.
# Use the -K option because we don't get the extra files created by the
# build/emerge process into our embedded rootfs which needs to be as 
# small as possible.
ROOT=/embedded_rootfs emerge -K uclibc

# Emerge busybox into the embedded_rootfs.
# First you must emerge it into your development_rootfs.
# This does not create the symlinks in our development embedded rootfs.
emerge busybox
ROOT=/embedded_rootfs emerge -K busybox

# Create the symlinks for busybox in the embedded_rootfs.
mkdir /embedded_rootfs/proc
mount -o bind /proc/ /embedded_rootfs/proc/
chroot /embedded_rootfs /bin/busybox --install -s
umount /embedded_rootfs/proc

# Set time zone in your embedded_rootfs.
# See http://leaf.sourceforge.net/doc/guide/buci-tz.html for details.
# For central standard time in the US, use "CST6CDT".
nano -w /embedded_rootfs/etc/TZ
/*
CST6CDT
*/

# Install a boot loader (usually grug or lilo).
# Once you copy/deploy your embedded_rootfs program to you target SBC you will 
# have to run the grub on the command line to write to the master boot record
# (MBR).
# Ncurses is needed by grub, if you are not using gurb then you don't need 
# ncurses. For some reason not all of /boot/grub is copied over to the 
# embedded_rootfs, so a extra manual copy step is needed.
ROOT=/embedded_rootfs emerge -K ncurses
emerge grub
ROOT=/embedded_rootfs emerge -K grub
cp -R /boot/grub /embedded_rootfs/boot/

# Modify your boot configure file.
# The example below is for a gurb, for a boot partition on /dev/hda1 and only
# one partition on the target SBC system.
nano -w /embedded_rootfs/boot/grub/grub.conf
/*
default 0
timeout 10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Linux 2.6.x
root (hd0,0)
kernel /vmlinuz-2.6.x root=/dev/hda1 vga=792
*/

# Set root password
ROOT=/embedded_rootfs passwd

# Modify fstab.
# Below is mine, yours may vary.
nano -w /embedded_rootfs/etc/fstab
/*
/dev/hda1		/		reiserfs	defaults	0 0
none			/proc		proc		defaults  	0 0
none			/sys		sysfs		defaults	0 0
none			/dev/shm	tmpfs	defaults	0 0
*/

#---- Step 4 - Build and install non-system programs to the embedded_rootfs --

# Emerge other software you need for you embedded target.
# This is very wildly depending on your needs.
# Also your proprietary application will be done here.
emerge foobar*
ROOT=/embedded_rootfs emerge -K foobar*


#---- Step 5 - Build and install a kernel to the embedded_rootfs -------------

# Install a kernel into embedded_rootfs.
# First we will emerge it into our development_rootfs, then configure and 
# build it.
emerge vanilla-sources
cd /usr/src/
cd linux
make menuconfig
# configure your kernel for your TARGET SBC here
make
ROOT=/embedded_rootfs make modules_install
cp /usr/src/linux/arch/i386/boot/bzImage /embedded_rootfs/boot/vmlinuz-2.6.x

# A few notes on compiling your kernel.
# If deploying to Compact Flash/DiskOnChip/SD us ext2, as the journaling
# filing systems "write" to much for a flash device.
# If deploying to a hard drive use a journaling filing system, such as
# ext3 or reiserfs.


#---- Step 6 - Deploy embedded_rootfs to target ------------------------------

# Prepare a Gentoo (or any Linux distro) system on the target SBC using a
# harddrive.  This is known as the target development rootfs.
# We will create a partition (/embedded_rootfs) that will server as our 
# "test" partition to deploy our embedded_rootfs that we generate on our
# development_system.
#
# I use the following partitions to speed development (yours may vary):
# /dev/hda1 - /embedded_rootfs - 1 GB
# /dev/hda2 - /boot - 100 MB
# /dev/hda3 - swap - (size varies, 512 MB is a good number)
# /dev/hda4 - / - (what is left, at least 1.5 GB per 2005.0 install guide 
specs)
#
# Copy over your embedded_rootfs from you development system to your target
# system and the directory /embedded_rootfs.  This needs to be done via NFS as
# need to preserve the permissions.
#
#The following commands are done from the
# target development rootfs.
mount -t reiserfs /dev/hda1 /mnt/embedded_rootfs
mount -t nfs 
192.168.0.10:/opt/i586-gentoo-uclibc-linux/embedded_rootfs /mnt/transfer
cp -adpR /mnt/transfer/* /mnt/embedded_rootfs


# Modify your target system's gurb.conf (or lilo.conf) for allow you to boot 
# to the embedded_rootfs partition.
#
# Reboot, and if all goes well you'll be greeted with a login prompt.
#
# Fin.



-- 
Heath Holcomb
liquidcable
liquidcable at bulah.com
-- 
gentoo-embedded@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-06 15:03 [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished) Heath H Holcomb
@ 2005-06-06 16:16 ` Yuri Vasilevski
  2005-06-07 15:05   ` michael
                     ` (2 more replies)
  2005-06-06 18:08 ` Ned Ludd
  1 sibling, 3 replies; 10+ messages in thread
From: Yuri Vasilevski @ 2005-06-06 16:16 UTC (permalink / raw
  To: gentoo-embedded

Hi,

On Mon, 6 Jun 2005 10:03:26 -0500
Heath H Holcomb <liquidcable@bulah.com> wrote:

> Version 0.06
> Please add, delete, modify. Thanks!

Just some things that came to my mind with respect to this
version.

> This procedure produces a working embedded rootfs, that boots form a hard 
> drive on a Geode based SBC (single board computer); at least on my 
> development system.
> 
> I've update my website with this version also.
> http://www.bulah.com/embeddedgentoo.html
> 
> 
> #--------------------------------------------------------------------------------
> # Embedded Gentoo How-To for x86
> #
> # A how-to guide to setup a Gentoo embedded environment, you must be root.
> # These commands are to be run on your development system, 
> # any x86 Gentoo Linux computer will do.  The system should be fast,
> # to speed development.  The target can be any x86 based SBC.  I'm
> # using a Geode based SBC.  Latter I'll use a Via based SBC.
> #
> # version 0.06
> # 2005.6.6
> #
> # Heath Holcomb (heath at bulah.com)
> # Ned Ludd (embedded Gentoo project lead, original commands posted)
> # Lloyd Sargent (contributor)
> # Yuri Vasilevshi (contributor)

It's Vasilevski :-)

> # Mike George (contributor)
> # Kammi Cazze (contributor)
> # Marius Schaefer (contributor)
> #
> # Definitions and Terms
> # system_rootfs = your regular rootfs
> # development_rootfs = what you use to build the embedded_rootfs
> # embedded_rootfs = rootfs you deploy to the target system
> # SBC = single board computer (here it's an x86 based)
> #
> # References
> # http://www.gentoo.org/doc/en/handbook/index.xml
> # http://www.epiawiki.org
> # http://epia.kalf.org
> # Gentoo embedded mailing list (gentoo-embedded@lists.gentoo.org)
> #
> #
> # Overview of process (steps)
> # 1 - Prepare the development_rootfs from your system_rootfs
> # 2 - Build the development_rootfs
> # 3 - Build the embedded_rootfs
> # 4 - Build and install non-system programs to the embedded_rootfs
> # 5 - Build and install a kernel to the embedded_rootfs
> # 6 - Deploy embedded_rootfs to target
> #
> #--------------------------------------------------------------------------------
> 
> #----- Step 1 - Prepare the development_rootfs from your system_rootfs -------
> 
> # You must be root.
> su -
> 
> # Create the development_rootfs.
> # I use i586 because of target is a Geode processor.
> mkdir -p /opt/i586-gentoo-uclibc-linux/usr/portage
> 
> # Download the latest stage 1 tarball.
> wget \ 
> http://gentoo.osuosl.org/experimental/x86/embedded/stages/stage1-x86-uclibc-2005.0.tar.bz2
> 
> # Untar the stage to the development_rootfs.
> tar -xvjf stage1-x86-uclibc-2005.0.tar.bz2 -C /opt/i586-gentoo-uclibc-linux/

it should be tar -xvjpf ...
where -p stands for --preserve-permissions

> 
> # Mount the proc and portage directories to your development_rootfs.
> # Makes your system_rootfs's proc and portage directory available from inside
> # of your development_rootfs (after chrooting).
> mount --bind /proc /opt/i586-gentoo-uclibc-linux/proc/
> mount --bind /usr/portage /opt/i586-gentoo-uclibc-linux/usr/portage
> 
> # Copy over DNS information to the development_rootfs.
> cp /etc/resolv.conf /opt/i586-gentoo-uclibc-linux/etc/resolv.conf
> 
> # Chroot into the development_rootfs.
> chroot /opt/i586-gentoo-uclibc-linux /bin/bash --login
> 
> 
> #----- Step 2 - Build the development_rootfs ---------------------------------
> 
> # Create new environment and load variables into memory.
> env-update
> source /etc/profile
> 
> # Modify make.conf file to your liking/needs.
> nano -w /etc/make.conf
> # This is for my target, Geode x86 processor.
> /*
> USE="bitmap-fonts minimal truetype-fonts uclibc mmx"

The uclibc USE flag was obsoleted, see:
http://www.mail-archive.com/gentoo-embedded@lists.gentoo.org/msg00140.html

> CHOST="i586-gentoo-linux-uclibc"
> CFLAGS="-march=i586 -Os -pipe -fomit-frame-pointer -mmmx"
> CXXFLAGS="${CFLAGS}"
> FEATURES="buildpkg"
> 
> VIDEO_CARDS="chips"
> UCLIBC_CPU="586MMX"
> */
> 
> # Set profile to use 2.6 kernel.
> # The current stage uses 2.4 by default, and for most cases you are going
> # to want a 2.6.x kernel.
> rm /etc/make.profile

This are equivalent but I would use:
unlink /etc/make.profile
for clarity's sake.

> ln -s /usr/portage/profiles/uclibc/x86 /etc/make.profile
> 
> # Start the bootstrap script.
> cd /usr/portage/scripts
> ./bootstrap.sh -p -v
> ./bootstrap.sh
> 
> # Workaround 1
> # Failure compiling uclibc (gcc-config error: Could not run/locate "gcc")?
> # If you get a failure while bootstrap is compileing uclibc here are the steps
> # to work around the problem.
> gcc-config 1
> source /etc/profile
> ./bootstrap.sh
> 
> # Emerge the system ebuild for the development_rootfs.
> emerge -e system
> 
> # Workaround 2
> # During emerge -e system, python-fchksum failes complaing about
> # gcc-config error: Could not run/locate "i386-gentoo-linux-uclibc-gcc"
> # The following commands work around this problem.
> emerge python
> emerge -e system
> 
> 
> #----- Step 3 - Build the embedded_rootfs ------------------------------------
> 
> # Create the embedded_rootfs directory.
> mkdir /embedded_rootfs
> 
> # Emerge baselayout-lite into embedded_rootfs.
> # This gives your system a basic file structure.
> # 1.0_pre1 is the only one that is stable, right?
> cd /usr/portage/sys-apps/baselayout-lite/
> ROOT=/embedded_rootfs emerge baselayout-lite-1.0_pre1.ebuild
> 
> # Workaround 3
> # Baselayout-lite is still beta, so a few fixes are needed.
> # There needs to be a directory "log" in /var.
> # Inittab calls for /usr/bin/tail, but it needs to /usr/bin.
> mkdir /embedded_rootfs/var/log
> nano -w /embedded_rootfs/etc/inittab
> /*
> #tty3::respawn:/usr/bin/tail -f /var/log/messages
> tty3::respawn:/bin/tail -f /var/log/messages
> */
> 
> # Emerge uclibc into the embedded_rootfs.
> # Use the -K option because we don't get the extra files created by the
> # build/emerge process into our embedded rootfs which needs to be as 
> # small as possible.
> ROOT=/embedded_rootfs emerge -K uclibc
> 
> # Emerge busybox into the embedded_rootfs.
> # First you must emerge it into your development_rootfs.
> # This does not create the symlinks in our development embedded rootfs.
> emerge busybox
> ROOT=/embedded_rootfs emerge -K busybox
> 
> # Create the symlinks for busybox in the embedded_rootfs.

I have not used it, but form the ebuild it looks like
if you emerge busybox with make-symlinks in USE flags
it'll just make them for you. I think the proper way
may be (gain, this is just by looking at the ebuild):
VERY_BRAVE_OR_VERY_DUMB=yes USE=make-symlinks emerge -B busybox
(this will just make the package without installing it
to the system and consequently without braking it with
the symlinks)
ROOT=/embedded_rootfs emerge -K busybox
(at this point the busybox binary package should have
the symlinks in it)

> mkdir /embedded_rootfs/proc
> mount -o bind /proc/ /embedded_rootfs/proc/
> chroot /embedded_rootfs /bin/busybox --install -s
> umount /embedded_rootfs/proc
> 
> # Set time zone in your embedded_rootfs.
> # See http://leaf.sourceforge.net/doc/guide/buci-tz.html for details.
> # For central standard time in the US, use "CST6CDT".
> nano -w /embedded_rootfs/etc/TZ
> /*
> CST6CDT
> */
> 
> # Install a boot loader (usually grug or lilo).
> # Once you copy/deploy your embedded_rootfs program to you target SBC you will 
> # have to run the grub on the command line to write to the master boot record
> # (MBR).
> # Ncurses is needed by grub, if you are not using gurb then you don't need 
> # ncurses. For some reason not all of /boot/grub is copied over to the 
> # embedded_rootfs, so a extra manual copy step is needed.
> ROOT=/embedded_rootfs emerge -K ncurses
> emerge grub
> ROOT=/embedded_rootfs emerge -K grub
> cp -R /boot/grub /embedded_rootfs/boot/

Why not installing grub with static USE flag?
I think ncurses is to expensive (big) to have if it is used
just by grub.
Another option will be to install install grub with:
ROOT=/embedded_rootfs emerge -K --nodeps grub
rm -f /embedded_rootfs/sbin/grub
As we can still use grub-install that doesn't need ncurses.

> 
> # Modify your boot configure file.
> # The example below is for a gurb, for a boot partition on /dev/hda1 and only
> # one partition on the target SBC system.
> nano -w /embedded_rootfs/boot/grub/grub.conf
> /*
> default 0
> timeout 10
> splashimage=(hd0,0)/boot/grub/splash.xpm.gz
> 
> title=Linux 2.6.x
> root (hd0,0)
> kernel /vmlinuz-2.6.x root=/dev/hda1 vga=792
> */
> 
> # Set root password
> ROOT=/embedded_rootfs passwd
> 
> # Modify fstab.
> # Below is mine, yours may vary.
> nano -w /embedded_rootfs/etc/fstab
> /*
> /dev/hda1		/		reiserfs	defaults	0 0
> none			/proc		proc		defaults  	0 0
> none			/sys		sysfs		defaults	0 0
> none			/dev/shm	tmpfs	defaults	0 0
> */
> 
> #---- Step 4 - Build and install non-system programs to the embedded_rootfs --
> 
> # Emerge other software you need for you embedded target.
> # This is very wildly depending on your needs.
> # Also your proprietary application will be done here.
> emerge foobar*
> ROOT=/embedded_rootfs emerge -K foobar*
> 
> 
> #---- Step 5 - Build and install a kernel to the embedded_rootfs -------------
> 
> # Install a kernel into embedded_rootfs.
> # First we will emerge it into our development_rootfs, then configure and 
> # build it.
> emerge vanilla-sources
> cd /usr/src/
> cd linux
> make menuconfig
> # configure your kernel for your TARGET SBC here
> make
> ROOT=/embedded_rootfs make modules_install
> cp /usr/src/linux/arch/i386/boot/bzImage /embedded_rootfs/boot/vmlinuz-2.6.x
> 
> # A few notes on compiling your kernel.
> # If deploying to Compact Flash/DiskOnChip/SD us ext2, as the journaling
> # filing systems "write" to much for a flash device.
> # If deploying to a hard drive use a journaling filing system, such as
> # ext3 or reiserfs.
> 
> 
> #---- Step 6 - Deploy embedded_rootfs to target ------------------------------
> 
> # Prepare a Gentoo (or any Linux distro) system on the target SBC using a
> # harddrive.  This is known as the target development rootfs.
> # We will create a partition (/embedded_rootfs) that will server as our 
> # "test" partition to deploy our embedded_rootfs that we generate on our
> # development_system.
> #
> # I use the following partitions to speed development (yours may vary):
> # /dev/hda1 - /embedded_rootfs - 1 GB
> # /dev/hda2 - /boot - 100 MB
> # /dev/hda3 - swap - (size varies, 512 MB is a good number)
> # /dev/hda4 - / - (what is left, at least 1.5 GB per 2005.0 install guide 
> specs)
> #
> # Copy over your embedded_rootfs from you development system to your target
> # system and the directory /embedded_rootfs.  This needs to be done via NFS as
> # need to preserve the permissions.
> #
> #The following commands are done from the
> # target development rootfs.
> mount -t reiserfs /dev/hda1 /mnt/embedded_rootfs
> mount -t nfs 
> 192.168.0.10:/opt/i586-gentoo-uclibc-linux/embedded_rootfs /mnt/transfer
> cp -adpR /mnt/transfer/* /mnt/embedded_rootfs
> 
> 
> # Modify your target system's gurb.conf (or lilo.conf) for allow you to boot 
> # to the embedded_rootfs partition.
> #
> # Reboot, and if all goes well you'll be greeted with a login prompt.
> #
> # Fin.

Yuri.
-- 
gentoo-embedded@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-06 15:03 [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished) Heath H Holcomb
  2005-06-06 16:16 ` Yuri Vasilevski
@ 2005-06-06 18:08 ` Ned Ludd
  1 sibling, 0 replies; 10+ messages in thread
From: Ned Ludd @ 2005-06-06 18:08 UTC (permalink / raw
  To: gentoo-embedded

On Mon, 2005-06-06 at 10:03 -0500, Heath H Holcomb wrote:
> Version 0.06
> Please add, delete, modify. Thanks!
> This procedure produces a working embedded rootfs, that boots form a hard 
> drive on a Geode based SBC (single board computer); at least on my 
> development system.


> #----- Step 2 - Build the development_rootfs ---------------------------------


> rm /etc/make.profile
> ln -s /usr/portage/profiles/uclibc/x86 /etc/make.profile

# This should be.
cd /etc
rm make.profile
ln -s ../usr/portage/profiles/uclibc/x86 make.profile

# Note the ../ vs / ; This is how portage expects things to be for the 
cascading profile setup. 
If you do it the other wrong way you encounter strange bugs here and
there.

> # Workaround 2
> # During emerge -e system, python-fchksum failes complaing about
> # gcc-config error: Could not run/locate "i386-gentoo-linux-uclibc-gcc"
> # The following commands work around this problem.
> emerge python


> emerge -e system
You already built python. So you know need to rebuild python-fscksum vs all of '-e system'
That bootstrap+system+system would end up having the user rebuild
gcc/uclibc etc about 3 times total. 


-- 
Ned Ludd <solar@gentoo.org>

-- 
gentoo-embedded@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-06 16:16 ` Yuri Vasilevski
@ 2005-06-07 15:05   ` michael
  2005-06-08 13:10     ` Heath H Holcomb
  2005-06-13 17:34   ` michael
  2005-08-06 22:02   ` Heath Holcomb
  2 siblings, 1 reply; 10+ messages in thread
From: michael @ 2005-06-07 15:05 UTC (permalink / raw
  To: gentoo-embedded

Hi Heath or anyone else,

I get the following error while running the bootstrap script:

 	>>> Unmerging sys-apps/portage-2.0.51.19...
 	No package files given... Grabbing a set.
 	/usr/lib/portage/bin/ebuild.sh: line 1319:
 	/usr/portage/eclass/multilib.eclass:
 	No such file or directory

 	!!! ERROR: sys-apps/portage-2.0.51.19 failed.
 	!!! Function inherit, Line 1320, Exitcode 1
 	!!! died sourcing /usr/portage/eclass/multilib.eclass in inherit()

Of course the workaround makes no difference, but I tried it just in
case.

Any tips?  "No package files given" - is that my problem? Or the lack of 
/usr/portage/eclass/multilib.eclass?

Thanks,
Michael


>>
>> # Start the bootstrap script.
>> cd /usr/portage/scripts
>> ./bootstrap.sh -p -v
>> ./bootstrap.sh
>>
>> # Workaround 1
>> # Failure compiling uclibc (gcc-config error: Could not run/locate "gcc")?
>> # If you get a failure while bootstrap is compileing uclibc here are the steps
>> # to work around the problem.
>> gcc-config 1
>> source /etc/profile
>> ./bootstrap.sh
>>
-- 
gentoo-embedded@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-08 13:10     ` Heath H Holcomb
@ 2005-06-08  2:18       ` michael
  0 siblings, 0 replies; 10+ messages in thread
From: michael @ 2005-06-08  2:18 UTC (permalink / raw
  To: gentoo-embedded

Broken /usr/portage sounds like a good theory. I will try this out.
Thanks for the suggestion.

Michael


On Wed, 8 Jun 2005, Heath H Holcomb wrote:

> I have never come across that particular error.  It's almost like
> your /usr/portage directory is not complete.
>
> I would exit out of the development rootfs, reboot (yes reboot), after booting
> back up in our regular rootfs emerge --sync, get back into the development
> rootfs (be sure to mount /usr/portage and /proc per the instructions) and see
> if the problem persists.
>
> Hope this helps.
>
>
> -- 
> Heath Holcomb
> liquidcable
> liquidcable at bulah.com
>
>
> On Tuesday 07 June 2005 10:05 am, michael@michaelshiloh.com wrote:
>> Hi Heath or anyone else,
>>
>> I get the following error while running the bootstrap script:
>>  >>> Unmerging sys-apps/portage-2.0.51.19...
>>
>>  	No package files given... Grabbing a set.
>>  	/usr/lib/portage/bin/ebuild.sh: line 1319:
>>  	/usr/portage/eclass/multilib.eclass:
>>  	No such file or directory
>>
>>  	!!! ERROR: sys-apps/portage-2.0.51.19 failed.
>>  	!!! Function inherit, Line 1320, Exitcode 1
>>  	!!! died sourcing /usr/portage/eclass/multilib.eclass in inherit()
>>
>> Of course the workaround makes no difference, but I tried it just in
>> case.
>>
>> Any tips?  "No package files given" - is that my problem? Or the lack of
>> /usr/portage/eclass/multilib.eclass?
>>
>> Thanks,
>> Michael
>>
>>>> # Start the bootstrap script.
>>>> cd /usr/portage/scripts
>>>> ./bootstrap.sh -p -v
>>>> ./bootstrap.sh
>>>>
>>>> # Workaround 1
>>>> # Failure compiling uclibc (gcc-config error: Could not run/locate
>>>> "gcc")? # If you get a failure while bootstrap is compileing uclibc here
>>>> are the steps # to work around the problem.
>>>> gcc-config 1
>>>> source /etc/profile
>>>> ./bootstrap.sh
>
> -- 
> gentoo-embedded@gentoo.org mailing list
>
>
-- 
gentoo-embedded@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-07 15:05   ` michael
@ 2005-06-08 13:10     ` Heath H Holcomb
  2005-06-08  2:18       ` michael
  0 siblings, 1 reply; 10+ messages in thread
From: Heath H Holcomb @ 2005-06-08 13:10 UTC (permalink / raw
  To: gentoo-embedded

I have never come across that particular error.  It's almost like 
your /usr/portage directory is not complete.

I would exit out of the development rootfs, reboot (yes reboot), after booting 
back up in our regular rootfs emerge --sync, get back into the development 
rootfs (be sure to mount /usr/portage and /proc per the instructions) and see 
if the problem persists.

Hope this helps.


-- 
Heath Holcomb
liquidcable
liquidcable at bulah.com


On Tuesday 07 June 2005 10:05 am, michael@michaelshiloh.com wrote:
> Hi Heath or anyone else,
>
> I get the following error while running the bootstrap script:
>  	>>> Unmerging sys-apps/portage-2.0.51.19...
>
>  	No package files given... Grabbing a set.
>  	/usr/lib/portage/bin/ebuild.sh: line 1319:
>  	/usr/portage/eclass/multilib.eclass:
>  	No such file or directory
>
>  	!!! ERROR: sys-apps/portage-2.0.51.19 failed.
>  	!!! Function inherit, Line 1320, Exitcode 1
>  	!!! died sourcing /usr/portage/eclass/multilib.eclass in inherit()
>
> Of course the workaround makes no difference, but I tried it just in
> case.
>
> Any tips?  "No package files given" - is that my problem? Or the lack of
> /usr/portage/eclass/multilib.eclass?
>
> Thanks,
> Michael
>
> >> # Start the bootstrap script.
> >> cd /usr/portage/scripts
> >> ./bootstrap.sh -p -v
> >> ./bootstrap.sh
> >>
> >> # Workaround 1
> >> # Failure compiling uclibc (gcc-config error: Could not run/locate
> >> "gcc")? # If you get a failure while bootstrap is compileing uclibc here
> >> are the steps # to work around the problem.
> >> gcc-config 1
> >> source /etc/profile
> >> ./bootstrap.sh

-- 
gentoo-embedded@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-06 16:16 ` Yuri Vasilevski
  2005-06-07 15:05   ` michael
@ 2005-06-13 17:34   ` michael
  2005-06-14 14:01     ` Quentin Arce
  2005-08-06 22:02   ` Heath Holcomb
  2 siblings, 1 reply; 10+ messages in thread
From: michael @ 2005-06-13 17:34 UTC (permalink / raw
  To: gentoo-embedded

Hi Yuri, Heath, Gentoo-embedded folks:

I've taken your suggestion, Heath, and built a 2.6 kernel (instead of
the 2.4 I made by accident), and I've followed version 0.6 of your HOWTO
with Yuri's comments.

Grub loads, finds the kernel, and booting starts, but it doesn't go all
the way:

 	warning: unable to open an initial console
 	kernel panic: no init found

(That's not an exact quote). I've checked that my kernel's .config
includes consoles, and that /dev/console exists and is linked to
character device 5,1.

I haven't done a whole lot of research into this yet but wonder if
anything springs to your collective minds.

As usual, any comments appreciated and any suggestions entertained.

Michael


On Mon, 6 Jun 2005, Yuri Vasilevski wrote:

> Hi,
>
> On Mon, 6 Jun 2005 10:03:26 -0500
> Heath H Holcomb <liquidcable@bulah.com> wrote:
>
>> Version 0.06
>> Please add, delete, modify. Thanks!
>
> Just some things that came to my mind with respect to this
> version.
>
>> This procedure produces a working embedded rootfs, that boots form a hard
>> drive on a Geode based SBC (single board computer); at least on my
>> development system.
>>
>> I've update my website with this version also.
>> http://www.bulah.com/embeddedgentoo.html
>>
>>
>> #--------------------------------------------------------------------------------
>> # Embedded Gentoo How-To for x86
>> #
>> # A how-to guide to setup a Gentoo embedded environment, you must be root.
>> # These commands are to be run on your development system,
>> # any x86 Gentoo Linux computer will do.  The system should be fast,
>> # to speed development.  The target can be any x86 based SBC.  I'm
>> # using a Geode based SBC.  Latter I'll use a Via based SBC.
>> #
>> # version 0.06
>> # 2005.6.6
>> #
>> # Heath Holcomb (heath at bulah.com)
>> # Ned Ludd (embedded Gentoo project lead, original commands posted)
>> # Lloyd Sargent (contributor)
>> # Yuri Vasilevshi (contributor)
>
> It's Vasilevski :-)
>
>> # Mike George (contributor)
>> # Kammi Cazze (contributor)
>> # Marius Schaefer (contributor)
>> #
>> # Definitions and Terms
>> # system_rootfs = your regular rootfs
>> # development_rootfs = what you use to build the embedded_rootfs
>> # embedded_rootfs = rootfs you deploy to the target system
>> # SBC = single board computer (here it's an x86 based)
>> #
>> # References
>> # http://www.gentoo.org/doc/en/handbook/index.xml
>> # http://www.epiawiki.org
>> # http://epia.kalf.org
>> # Gentoo embedded mailing list (gentoo-embedded@lists.gentoo.org)
>> #
>> #
>> # Overview of process (steps)
>> # 1 - Prepare the development_rootfs from your system_rootfs
>> # 2 - Build the development_rootfs
>> # 3 - Build the embedded_rootfs
>> # 4 - Build and install non-system programs to the embedded_rootfs
>> # 5 - Build and install a kernel to the embedded_rootfs
>> # 6 - Deploy embedded_rootfs to target
>> #
>> #--------------------------------------------------------------------------------
>>
>> #----- Step 1 - Prepare the development_rootfs from your system_rootfs -------
>>
>> # You must be root.
>> su -
>>
>> # Create the development_rootfs.
>> # I use i586 because of target is a Geode processor.
>> mkdir -p /opt/i586-gentoo-uclibc-linux/usr/portage
>>
>> # Download the latest stage 1 tarball.
>> wget \
>> http://gentoo.osuosl.org/experimental/x86/embedded/stages/stage1-x86-uclibc-2005.0.tar.bz2
>>
>> # Untar the stage to the development_rootfs.
>> tar -xvjf stage1-x86-uclibc-2005.0.tar.bz2 -C /opt/i586-gentoo-uclibc-linux/
>
> it should be tar -xvjpf ...
> where -p stands for --preserve-permissions
>
>>
>> # Mount the proc and portage directories to your development_rootfs.
>> # Makes your system_rootfs's proc and portage directory available from inside
>> # of your development_rootfs (after chrooting).
>> mount --bind /proc /opt/i586-gentoo-uclibc-linux/proc/
>> mount --bind /usr/portage /opt/i586-gentoo-uclibc-linux/usr/portage
>>
>> # Copy over DNS information to the development_rootfs.
>> cp /etc/resolv.conf /opt/i586-gentoo-uclibc-linux/etc/resolv.conf
>>
>> # Chroot into the development_rootfs.
>> chroot /opt/i586-gentoo-uclibc-linux /bin/bash --login
>>
>>
>> #----- Step 2 - Build the development_rootfs ---------------------------------
>>
>> # Create new environment and load variables into memory.
>> env-update
>> source /etc/profile
>>
>> # Modify make.conf file to your liking/needs.
>> nano -w /etc/make.conf
>> # This is for my target, Geode x86 processor.
>> /*
>> USE="bitmap-fonts minimal truetype-fonts uclibc mmx"
>
> The uclibc USE flag was obsoleted, see:
> http://www.mail-archive.com/gentoo-embedded@lists.gentoo.org/msg00140.html
>
>> CHOST="i586-gentoo-linux-uclibc"
>> CFLAGS="-march=i586 -Os -pipe -fomit-frame-pointer -mmmx"
>> CXXFLAGS="${CFLAGS}"
>> FEATURES="buildpkg"
>>
>> VIDEO_CARDS="chips"
>> UCLIBC_CPU="586MMX"
>> */
>>
>> # Set profile to use 2.6 kernel.
>> # The current stage uses 2.4 by default, and for most cases you are going
>> # to want a 2.6.x kernel.
>> rm /etc/make.profile
>
> This are equivalent but I would use:
> unlink /etc/make.profile
> for clarity's sake.
>
>> ln -s /usr/portage/profiles/uclibc/x86 /etc/make.profile
>>
>> # Start the bootstrap script.
>> cd /usr/portage/scripts
>> ./bootstrap.sh -p -v
>> ./bootstrap.sh
>>
>> # Workaround 1
>> # Failure compiling uclibc (gcc-config error: Could not run/locate "gcc")?
>> # If you get a failure while bootstrap is compileing uclibc here are the steps
>> # to work around the problem.
>> gcc-config 1
>> source /etc/profile
>> ./bootstrap.sh
>>
>> # Emerge the system ebuild for the development_rootfs.
>> emerge -e system
>>
>> # Workaround 2
>> # During emerge -e system, python-fchksum failes complaing about
>> # gcc-config error: Could not run/locate "i386-gentoo-linux-uclibc-gcc"
>> # The following commands work around this problem.
>> emerge python
>> emerge -e system
>>
>>
>> #----- Step 3 - Build the embedded_rootfs ------------------------------------
>>
>> # Create the embedded_rootfs directory.
>> mkdir /embedded_rootfs
>>
>> # Emerge baselayout-lite into embedded_rootfs.
>> # This gives your system a basic file structure.
>> # 1.0_pre1 is the only one that is stable, right?
>> cd /usr/portage/sys-apps/baselayout-lite/
>> ROOT=/embedded_rootfs emerge baselayout-lite-1.0_pre1.ebuild
>>
>> # Workaround 3
>> # Baselayout-lite is still beta, so a few fixes are needed.
>> # There needs to be a directory "log" in /var.
>> # Inittab calls for /usr/bin/tail, but it needs to /usr/bin.
>> mkdir /embedded_rootfs/var/log
>> nano -w /embedded_rootfs/etc/inittab
>> /*
>> #tty3::respawn:/usr/bin/tail -f /var/log/messages
>> tty3::respawn:/bin/tail -f /var/log/messages
>> */
>>
>> # Emerge uclibc into the embedded_rootfs.
>> # Use the -K option because we don't get the extra files created by the
>> # build/emerge process into our embedded rootfs which needs to be as
>> # small as possible.
>> ROOT=/embedded_rootfs emerge -K uclibc
>>
>> # Emerge busybox into the embedded_rootfs.
>> # First you must emerge it into your development_rootfs.
>> # This does not create the symlinks in our development embedded rootfs.
>> emerge busybox
>> ROOT=/embedded_rootfs emerge -K busybox
>>
>> # Create the symlinks for busybox in the embedded_rootfs.
>
> I have not used it, but form the ebuild it looks like
> if you emerge busybox with make-symlinks in USE flags
> it'll just make them for you. I think the proper way
> may be (gain, this is just by looking at the ebuild):
> VERY_BRAVE_OR_VERY_DUMB=yes USE=make-symlinks emerge -B busybox
> (this will just make the package without installing it
> to the system and consequently without braking it with
> the symlinks)
> ROOT=/embedded_rootfs emerge -K busybox
> (at this point the busybox binary package should have
> the symlinks in it)
>
>> mkdir /embedded_rootfs/proc
>> mount -o bind /proc/ /embedded_rootfs/proc/
>> chroot /embedded_rootfs /bin/busybox --install -s
>> umount /embedded_rootfs/proc
>>
>> # Set time zone in your embedded_rootfs.
>> # See http://leaf.sourceforge.net/doc/guide/buci-tz.html for details.
>> # For central standard time in the US, use "CST6CDT".
>> nano -w /embedded_rootfs/etc/TZ
>> /*
>> CST6CDT
>> */
>>
>> # Install a boot loader (usually grug or lilo).
>> # Once you copy/deploy your embedded_rootfs program to you target SBC you will
>> # have to run the grub on the command line to write to the master boot record
>> # (MBR).
>> # Ncurses is needed by grub, if you are not using gurb then you don't need
>> # ncurses. For some reason not all of /boot/grub is copied over to the
>> # embedded_rootfs, so a extra manual copy step is needed.
>> ROOT=/embedded_rootfs emerge -K ncurses
>> emerge grub
>> ROOT=/embedded_rootfs emerge -K grub
>> cp -R /boot/grub /embedded_rootfs/boot/
>
> Why not installing grub with static USE flag?
> I think ncurses is to expensive (big) to have if it is used
> just by grub.
> Another option will be to install install grub with:
> ROOT=/embedded_rootfs emerge -K --nodeps grub
> rm -f /embedded_rootfs/sbin/grub
> As we can still use grub-install that doesn't need ncurses.
>
>>
>> # Modify your boot configure file.
>> # The example below is for a gurb, for a boot partition on /dev/hda1 and only
>> # one partition on the target SBC system.
>> nano -w /embedded_rootfs/boot/grub/grub.conf
>> /*
>> default 0
>> timeout 10
>> splashimage=(hd0,0)/boot/grub/splash.xpm.gz
>>
>> title=Linux 2.6.x
>> root (hd0,0)
>> kernel /vmlinuz-2.6.x root=/dev/hda1 vga=792
>> */
>>
>> # Set root password
>> ROOT=/embedded_rootfs passwd
>>
>> # Modify fstab.
>> # Below is mine, yours may vary.
>> nano -w /embedded_rootfs/etc/fstab
>> /*
>> /dev/hda1		/		reiserfs	defaults	0 0
>> none			/proc		proc		defaults  	0 0
>> none			/sys		sysfs		defaults	0 0
>> none			/dev/shm	tmpfs	defaults	0 0
>> */
>>
>> #---- Step 4 - Build and install non-system programs to the embedded_rootfs --
>>
>> # Emerge other software you need for you embedded target.
>> # This is very wildly depending on your needs.
>> # Also your proprietary application will be done here.
>> emerge foobar*
>> ROOT=/embedded_rootfs emerge -K foobar*
>>
>>
>> #---- Step 5 - Build and install a kernel to the embedded_rootfs -------------
>>
>> # Install a kernel into embedded_rootfs.
>> # First we will emerge it into our development_rootfs, then configure and
>> # build it.
>> emerge vanilla-sources
>> cd /usr/src/
>> cd linux
>> make menuconfig
>> # configure your kernel for your TARGET SBC here
>> make
>> ROOT=/embedded_rootfs make modules_install
>> cp /usr/src/linux/arch/i386/boot/bzImage /embedded_rootfs/boot/vmlinuz-2.6.x
>>
>> # A few notes on compiling your kernel.
>> # If deploying to Compact Flash/DiskOnChip/SD us ext2, as the journaling
>> # filing systems "write" to much for a flash device.
>> # If deploying to a hard drive use a journaling filing system, such as
>> # ext3 or reiserfs.
>>
>>
>> #---- Step 6 - Deploy embedded_rootfs to target ------------------------------
>>
>> # Prepare a Gentoo (or any Linux distro) system on the target SBC using a
>> # harddrive.  This is known as the target development rootfs.
>> # We will create a partition (/embedded_rootfs) that will server as our
>> # "test" partition to deploy our embedded_rootfs that we generate on our
>> # development_system.
>> #
>> # I use the following partitions to speed development (yours may vary):
>> # /dev/hda1 - /embedded_rootfs - 1 GB
>> # /dev/hda2 - /boot - 100 MB
>> # /dev/hda3 - swap - (size varies, 512 MB is a good number)
>> # /dev/hda4 - / - (what is left, at least 1.5 GB per 2005.0 install guide
>> specs)
>> #
>> # Copy over your embedded_rootfs from you development system to your target
>> # system and the directory /embedded_rootfs.  This needs to be done via NFS as
>> # need to preserve the permissions.
>> #
>> #The following commands are done from the
>> # target development rootfs.
>> mount -t reiserfs /dev/hda1 /mnt/embedded_rootfs
>> mount -t nfs
>> 192.168.0.10:/opt/i586-gentoo-uclibc-linux/embedded_rootfs /mnt/transfer
>> cp -adpR /mnt/transfer/* /mnt/embedded_rootfs
>>
>>
>> # Modify your target system's gurb.conf (or lilo.conf) for allow you to boot
>> # to the embedded_rootfs partition.
>> #
>> # Reboot, and if all goes well you'll be greeted with a login prompt.
>> #
>> # Fin.
>
> Yuri.
> -- 
> gentoo-embedded@gentoo.org mailing list
>
>
-- 
gentoo-embedded@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-13 17:34   ` michael
@ 2005-06-14 14:01     ` Quentin Arce
  2005-06-14 17:08       ` michael
  0 siblings, 1 reply; 10+ messages in thread
From: Quentin Arce @ 2005-06-14 14:01 UTC (permalink / raw
  To: gentoo-embedded



--- michael@michaelshiloh.com wrote:

> Hi Yuri, Heath, Gentoo-embedded folks:
> 
> I've taken your suggestion, Heath, and built a 2.6
> kernel (instead of
> the 2.4 I made by accident), and I've followed
> version 0.6 of your HOWTO
> with Yuri's comments.
> 
> Grub loads, finds the kernel, and booting starts,
> but it doesn't go all
> the way:
> 
>  	warning: unable to open an initial console
>  	kernel panic: no init found

I had this exact error for a while with a 2.6 kernel
and using syslinux to boot.  It turned out I had the
wrong root device.  The naming changed between my
image build system and the real system.  I'm assuming
you are building an embedded system for some old
hardware and it's not really an embedded system.

my 1.5 cents
Q 

> (That's not an exact quote). I've checked that my
> kernel's .config
> includes consoles, and that /dev/console exists and
> is linked to
> character device 5,1.
> 
> I haven't done a whole lot of research into this yet
> but wonder if
> anything springs to your collective minds.
> 
> As usual, any comments appreciated and any
> suggestions entertained.
> 
> Michael
> 
> 
> On Mon, 6 Jun 2005, Yuri Vasilevski wrote:
> 
> > Hi,
> >
> > On Mon, 6 Jun 2005 10:03:26 -0500
> > Heath H Holcomb <liquidcable@bulah.com> wrote:
> >
> >> Version 0.06
> >> Please add, delete, modify. Thanks!
> >
> > Just some things that came to my mind with respect
> to this
> > version.
> >
> >> This procedure produces a working embedded
> rootfs, that boots form a hard
> >> drive on a Geode based SBC (single board
> computer); at least on my
> >> development system.
> >>
> >> I've update my website with this version also.
> >> http://www.bulah.com/embeddedgentoo.html
> >>
> >>
> >>
>
#--------------------------------------------------------------------------------
> >> # Embedded Gentoo How-To for x86
> >> #
> >> # A how-to guide to setup a Gentoo embedded
> environment, you must be root.
> >> # These commands are to be run on your
> development system,
> >> # any x86 Gentoo Linux computer will do.  The
> system should be fast,
> >> # to speed development.  The target can be any
> x86 based SBC.  I'm
> >> # using a Geode based SBC.  Latter I'll use a Via
> based SBC.
> >> #
> >> # version 0.06
> >> # 2005.6.6
> >> #
> >> # Heath Holcomb (heath at bulah.com)
> >> # Ned Ludd (embedded Gentoo project lead,
> original commands posted)
> >> # Lloyd Sargent (contributor)
> >> # Yuri Vasilevshi (contributor)
> >
> > It's Vasilevski :-)
> >
> >> # Mike George (contributor)
> >> # Kammi Cazze (contributor)
> >> # Marius Schaefer (contributor)
> >> #
> >> # Definitions and Terms
> >> # system_rootfs = your regular rootfs
> >> # development_rootfs = what you use to build the
> embedded_rootfs
> >> # embedded_rootfs = rootfs you deploy to the
> target system
> >> # SBC = single board computer (here it's an x86
> based)
> >> #
> >> # References
> >> # http://www.gentoo.org/doc/en/handbook/index.xml
> >> # http://www.epiawiki.org
> >> # http://epia.kalf.org
> >> # Gentoo embedded mailing list
> (gentoo-embedded@lists.gentoo.org)
> >> #
> >> #
> >> # Overview of process (steps)
> >> # 1 - Prepare the development_rootfs from your
> system_rootfs
> >> # 2 - Build the development_rootfs
> >> # 3 - Build the embedded_rootfs
> >> # 4 - Build and install non-system programs to
> the embedded_rootfs
> >> # 5 - Build and install a kernel to the
> embedded_rootfs
> >> # 6 - Deploy embedded_rootfs to target
> >> #
> >>
>
#--------------------------------------------------------------------------------
> >>
> >> #----- Step 1 - Prepare the development_rootfs
> from your system_rootfs -------
> >>
> >> # You must be root.
> >> su -
> >>
> >> # Create the development_rootfs.
> >> # I use i586 because of target is a Geode
> processor.
> >> mkdir -p
> /opt/i586-gentoo-uclibc-linux/usr/portage
> >>
> >> # Download the latest stage 1 tarball.
> >> wget \
> >>
>
http://gentoo.osuosl.org/experimental/x86/embedded/stages/stage1-x86-uclibc-2005.0.tar.bz2
> >>
> >> # Untar the stage to the development_rootfs.
> >> tar -xvjf stage1-x86-uclibc-2005.0.tar.bz2 -C
> /opt/i586-gentoo-uclibc-linux/
> >
> > it should be tar -xvjpf ...
> > where -p stands for --preserve-permissions
> >
> >>
> >> # Mount the proc and portage directories to your
> development_rootfs.
> >> # Makes your system_rootfs's proc and portage
> directory available from inside
> >> # of your development_rootfs (after chrooting).
> >> mount --bind /proc
> /opt/i586-gentoo-uclibc-linux/proc/
> >> mount --bind /usr/portage
> /opt/i586-gentoo-uclibc-linux/usr/portage
> >>
> >> # Copy over DNS information to the
> development_rootfs.
> >> cp /etc/resolv.conf
> /opt/i586-gentoo-uclibc-linux/etc/resolv.conf
> >>
> >> # Chroot into the development_rootfs.
> >> chroot /opt/i586-gentoo-uclibc-linux /bin/bash
> --login
> >>
> >>
> >> #----- Step 2 - Build the development_rootfs
> ---------------------------------
> >>
> >> # Create new environment and load variables into
> memory.
> >> env-update
> >> source /etc/profile
> >>
> >> # Modify make.conf file to your liking/needs.
> >> nano -w /etc/make.conf
> >> # This is for my target, Geode x86 processor.
> >> /*
> >> USE="bitmap-fonts minimal truetype-fonts uclibc
> mmx"
> >
> > The uclibc USE flag was obsoleted, see:
> >
>
http://www.mail-archive.com/gentoo-embedded@lists.gentoo.org/msg00140.html
> >
> >> CHOST="i586-gentoo-linux-uclibc"
> >> CFLAGS="-march=i586 -Os -pipe
> -fomit-frame-pointer -mmmx"
> >> CXXFLAGS="${CFLAGS}"
> >> FEATURES="buildpkg"
> >>
> >> VIDEO_CARDS="chips"
> >> UCLIBC_CPU="586MMX"
> >> */
> >>
> >> # Set profile to use 2.6 kernel.
> >> # The current stage uses 2.4 by default, and for
> most cases you are going
> >> # to want a 2.6.x kernel.
> >> rm /etc/make.profile
> >
> > This are equivalent but I would use:
> > unlink /etc/make.profile
> > for clarity's sake.
> >
> >> ln -s /usr/portage/profiles/uclibc/x86
> /etc/make.profile
> 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-- 
gentoo-embedded@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-14 14:01     ` Quentin Arce
@ 2005-06-14 17:08       ` michael
  0 siblings, 0 replies; 10+ messages in thread
From: michael @ 2005-06-14 17:08 UTC (permalink / raw
  To: gentoo-embedded

Thanks Quentin,

That was exactly it! In my grub.conf I had the root partition wrong.

Now it boots, and I'm on to my next mission: Add wireless tools to
support my wireless network card (D-Link DWL-520)

Michael


On Tue, 14 Jun 2005, Quentin Arce wrote:

>
>
> --- michael@michaelshiloh.com wrote:
>
>> Hi Yuri, Heath, Gentoo-embedded folks:
>>
>> I've taken your suggestion, Heath, and built a 2.6
>> kernel (instead of
>> the 2.4 I made by accident), and I've followed
>> version 0.6 of your HOWTO
>> with Yuri's comments.
>>
>> Grub loads, finds the kernel, and booting starts,
>> but it doesn't go all
>> the way:
>>
>>  	warning: unable to open an initial console
>>  	kernel panic: no init found
>
> I had this exact error for a while with a 2.6 kernel
> and using syslinux to boot.  It turned out I had the
> wrong root device.  The naming changed between my
> image build system and the real system.  I'm assuming
> you are building an embedded system for some old
> hardware and it's not really an embedded system.
>
> my 1.5 cents
> Q
>
>> (That's not an exact quote). I've checked that my
>> kernel's .config
>> includes consoles, and that /dev/console exists and
>> is linked to
>> character device 5,1.
>>
>> I haven't done a whole lot of research into this yet
>> but wonder if
>> anything springs to your collective minds.
>>
>> As usual, any comments appreciated and any
>> suggestions entertained.
>>
>> Michael
>>
>>
>> On Mon, 6 Jun 2005, Yuri Vasilevski wrote:
>>
>>> Hi,
>>>
>>> On Mon, 6 Jun 2005 10:03:26 -0500
>>> Heath H Holcomb <liquidcable@bulah.com> wrote:
>>>
>>>> Version 0.06
>>>> Please add, delete, modify. Thanks!
>>>
>>> Just some things that came to my mind with respect
>> to this
>>> version.
>>>
>>>> This procedure produces a working embedded
>> rootfs, that boots form a hard
>>>> drive on a Geode based SBC (single board
>> computer); at least on my
>>>> development system.
>>>>
>>>> I've update my website with this version also.
>>>> http://www.bulah.com/embeddedgentoo.html
>>>>
>>>>
>>>>
>>
> #--------------------------------------------------------------------------------
>>>> # Embedded Gentoo How-To for x86
>>>> #
>>>> # A how-to guide to setup a Gentoo embedded
>> environment, you must be root.
>>>> # These commands are to be run on your
>> development system,
>>>> # any x86 Gentoo Linux computer will do.  The
>> system should be fast,
>>>> # to speed development.  The target can be any
>> x86 based SBC.  I'm
>>>> # using a Geode based SBC.  Latter I'll use a Via
>> based SBC.
>>>> #
>>>> # version 0.06
>>>> # 2005.6.6
>>>> #
>>>> # Heath Holcomb (heath at bulah.com)
>>>> # Ned Ludd (embedded Gentoo project lead,
>> original commands posted)
>>>> # Lloyd Sargent (contributor)
>>>> # Yuri Vasilevshi (contributor)
>>>
>>> It's Vasilevski :-)
>>>
>>>> # Mike George (contributor)
>>>> # Kammi Cazze (contributor)
>>>> # Marius Schaefer (contributor)
>>>> #
>>>> # Definitions and Terms
>>>> # system_rootfs = your regular rootfs
>>>> # development_rootfs = what you use to build the
>> embedded_rootfs
>>>> # embedded_rootfs = rootfs you deploy to the
>> target system
>>>> # SBC = single board computer (here it's an x86
>> based)
>>>> #
>>>> # References
>>>> # http://www.gentoo.org/doc/en/handbook/index.xml
>>>> # http://www.epiawiki.org
>>>> # http://epia.kalf.org
>>>> # Gentoo embedded mailing list
>> (gentoo-embedded@lists.gentoo.org)
>>>> #
>>>> #
>>>> # Overview of process (steps)
>>>> # 1 - Prepare the development_rootfs from your
>> system_rootfs
>>>> # 2 - Build the development_rootfs
>>>> # 3 - Build the embedded_rootfs
>>>> # 4 - Build and install non-system programs to
>> the embedded_rootfs
>>>> # 5 - Build and install a kernel to the
>> embedded_rootfs
>>>> # 6 - Deploy embedded_rootfs to target
>>>> #
>>>>
>>
> #--------------------------------------------------------------------------------
>>>>
>>>> #----- Step 1 - Prepare the development_rootfs
>> from your system_rootfs -------
>>>>
>>>> # You must be root.
>>>> su -
>>>>
>>>> # Create the development_rootfs.
>>>> # I use i586 because of target is a Geode
>> processor.
>>>> mkdir -p
>> /opt/i586-gentoo-uclibc-linux/usr/portage
>>>>
>>>> # Download the latest stage 1 tarball.
>>>> wget \
>>>>
>>
> http://gentoo.osuosl.org/experimental/x86/embedded/stages/stage1-x86-uclibc-2005.0.tar.bz2
>>>>
>>>> # Untar the stage to the development_rootfs.
>>>> tar -xvjf stage1-x86-uclibc-2005.0.tar.bz2 -C
>> /opt/i586-gentoo-uclibc-linux/
>>>
>>> it should be tar -xvjpf ...
>>> where -p stands for --preserve-permissions
>>>
>>>>
>>>> # Mount the proc and portage directories to your
>> development_rootfs.
>>>> # Makes your system_rootfs's proc and portage
>> directory available from inside
>>>> # of your development_rootfs (after chrooting).
>>>> mount --bind /proc
>> /opt/i586-gentoo-uclibc-linux/proc/
>>>> mount --bind /usr/portage
>> /opt/i586-gentoo-uclibc-linux/usr/portage
>>>>
>>>> # Copy over DNS information to the
>> development_rootfs.
>>>> cp /etc/resolv.conf
>> /opt/i586-gentoo-uclibc-linux/etc/resolv.conf
>>>>
>>>> # Chroot into the development_rootfs.
>>>> chroot /opt/i586-gentoo-uclibc-linux /bin/bash
>> --login
>>>>
>>>>
>>>> #----- Step 2 - Build the development_rootfs
>> ---------------------------------
>>>>
>>>> # Create new environment and load variables into
>> memory.
>>>> env-update
>>>> source /etc/profile
>>>>
>>>> # Modify make.conf file to your liking/needs.
>>>> nano -w /etc/make.conf
>>>> # This is for my target, Geode x86 processor.
>>>> /*
>>>> USE="bitmap-fonts minimal truetype-fonts uclibc
>> mmx"
>>>
>>> The uclibc USE flag was obsoleted, see:
>>>
>>
> http://www.mail-archive.com/gentoo-embedded@lists.gentoo.org/msg00140.html
>>>
>>>> CHOST="i586-gentoo-linux-uclibc"
>>>> CFLAGS="-march=i586 -Os -pipe
>> -fomit-frame-pointer -mmmx"
>>>> CXXFLAGS="${CFLAGS}"
>>>> FEATURES="buildpkg"
>>>>
>>>> VIDEO_CARDS="chips"
>>>> UCLIBC_CPU="586MMX"
>>>> */
>>>>
>>>> # Set profile to use 2.6 kernel.
>>>> # The current stage uses 2.4 by default, and for
>> most cases you are going
>>>> # to want a 2.6.x kernel.
>>>> rm /etc/make.profile
>>>
>>> This are equivalent but I would use:
>>> unlink /etc/make.profile
>>> for clarity's sake.
>>>
>>>> ln -s /usr/portage/profiles/uclibc/x86
>> /etc/make.profile
>>
> === message truncated ===
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> -- 
> gentoo-embedded@gentoo.org mailing list
>
>
-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished)
  2005-06-06 16:16 ` Yuri Vasilevski
  2005-06-07 15:05   ` michael
  2005-06-13 17:34   ` michael
@ 2005-08-06 22:02   ` Heath Holcomb
  2 siblings, 0 replies; 10+ messages in thread
From: Heath Holcomb @ 2005-08-06 22:02 UTC (permalink / raw
  To: gentoo-embedded

On Monday 06 June 2005 11:16 am, Yuri Vasilevski wrote:
> Hi,
>
> On Mon, 6 Jun 2005 10:03:26 -0500
>
> Heath H Holcomb <liquidcable@bulah.com> wrote:
> > Version 0.06
> > Please add, delete, modify. Thanks!
>
> Just some things that came to my mind with respect to this
> version.
>
> > This procedure produces a working embedded rootfs, that boots form a hard
> > drive on a Geode based SBC (single board computer); at least on my
> > development system.
> >
> > I've update my website with this version also.
> > http://www.bulah.com/embeddedgentoo.html
> >
> >
> > #------------------------------------------------------------------------
> >-------- # Embedded Gentoo How-To for x86
> > #
> > # A how-to guide to setup a Gentoo embedded environment, you must be
> > root. # These commands are to be run on your development system,
> > # any x86 Gentoo Linux computer will do.  The system should be fast,
> > # to speed development.  The target can be any x86 based SBC.  I'm
> > # using a Geode based SBC.  Latter I'll use a Via based SBC.
> > #
> > # version 0.06
> > # 2005.6.6
> > #
> > # Heath Holcomb (heath at bulah.com)
> > # Ned Ludd (embedded Gentoo project lead, original commands posted)
> > # Lloyd Sargent (contributor)
> > # Yuri Vasilevshi (contributor)
>
> It's Vasilevski :-)

Fixed

> > # Mike George (contributor)
> > # Kammi Cazze (contributor)
> > # Marius Schaefer (contributor)
> > #
> > # Definitions and Terms
> > # system_rootfs = your regular rootfs
> > # development_rootfs = what you use to build the embedded_rootfs
> > # embedded_rootfs = rootfs you deploy to the target system
> > # SBC = single board computer (here it's an x86 based)
> > #
> > # References
> > # http://www.gentoo.org/doc/en/handbook/index.xml
> > # http://www.epiawiki.org
> > # http://epia.kalf.org
> > # Gentoo embedded mailing list (gentoo-embedded@lists.gentoo.org)
> > #
> > #
> > # Overview of process (steps)
> > # 1 - Prepare the development_rootfs from your system_rootfs
> > # 2 - Build the development_rootfs
> > # 3 - Build the embedded_rootfs
> > # 4 - Build and install non-system programs to the embedded_rootfs
> > # 5 - Build and install a kernel to the embedded_rootfs
> > # 6 - Deploy embedded_rootfs to target
> > #
> > #------------------------------------------------------------------------
> >--------
> >
> > #----- Step 1 - Prepare the development_rootfs from your system_rootfs
> > -------
> >
> > # You must be root.
> > su -
> >
> > # Create the development_rootfs.
> > # I use i586 because of target is a Geode processor.
> > mkdir -p /opt/i586-gentoo-uclibc-linux/usr/portage
> >
> > # Download the latest stage 1 tarball.
> > wget \
> > http://gentoo.osuosl.org/experimental/x86/embedded/stages/stage1-x86-ucli
> >bc-2005.0.tar.bz2
> >
> > # Untar the stage to the development_rootfs.
> > tar -xvjf stage1-x86-uclibc-2005.0.tar.bz2 -C
> > /opt/i586-gentoo-uclibc-linux/
>
> it should be tar -xvjpf ...
> where -p stands for --preserve-permissions

Fixed.

> > # Mount the proc and portage directories to your development_rootfs.
> > # Makes your system_rootfs's proc and portage directory available from
> > inside # of your development_rootfs (after chrooting).
> > mount --bind /proc /opt/i586-gentoo-uclibc-linux/proc/
> > mount --bind /usr/portage /opt/i586-gentoo-uclibc-linux/usr/portage
> >
> > # Copy over DNS information to the development_rootfs.
> > cp /etc/resolv.conf /opt/i586-gentoo-uclibc-linux/etc/resolv.conf
> >
> > # Chroot into the development_rootfs.
> > chroot /opt/i586-gentoo-uclibc-linux /bin/bash --login
> >
> >
> > #----- Step 2 - Build the development_rootfs
> > ---------------------------------
> >
> > # Create new environment and load variables into memory.
> > env-update
> > source /etc/profile
> >
> > # Modify make.conf file to your liking/needs.
> > nano -w /etc/make.conf
> > # This is for my target, Geode x86 processor.
> > /*
> > USE="bitmap-fonts minimal truetype-fonts uclibc mmx"
>
> The uclibc USE flag was obsoleted, see:
> http://www.mail-archive.com/gentoo-embedded@lists.gentoo.org/msg00140.html

Removed uclibc.

> > CHOST="i586-gentoo-linux-uclibc"
> > CFLAGS="-march=i586 -Os -pipe -fomit-frame-pointer -mmmx"
> > CXXFLAGS="${CFLAGS}"
> > FEATURES="buildpkg"
> >
> > VIDEO_CARDS="chips"
> > UCLIBC_CPU="586MMX"
> > */
> >
> > # Set profile to use 2.6 kernel.
> > # The current stage uses 2.4 by default, and for most cases you are going
> > # to want a 2.6.x kernel.
> > rm /etc/make.profile
>
> This are equivalent but I would use:
> unlink /etc/make.profile
> for clarity's sake.

Change made.

> > ln -s /usr/portage/profiles/uclibc/x86 /etc/make.profile
> >
> > # Start the bootstrap script.
> > cd /usr/portage/scripts
> > ./bootstrap.sh -p -v
> > ./bootstrap.sh
> >
> > # Workaround 1
> > # Failure compiling uclibc (gcc-config error: Could not run/locate
> > "gcc")? # If you get a failure while bootstrap is compileing uclibc here
> > are the steps # to work around the problem.
> > gcc-config 1
> > source /etc/profile
> > ./bootstrap.sh
> >
> > # Emerge the system ebuild for the development_rootfs.
> > emerge -e system
> >
> > # Workaround 2
> > # During emerge -e system, python-fchksum failes complaing about
> > # gcc-config error: Could not run/locate "i386-gentoo-linux-uclibc-gcc"
> > # The following commands work around this problem.
> > emerge python
> > emerge -e system
> >
> >
> > #----- Step 3 - Build the embedded_rootfs
> > ------------------------------------
> >
> > # Create the embedded_rootfs directory.
> > mkdir /embedded_rootfs
> >
> > # Emerge baselayout-lite into embedded_rootfs.
> > # This gives your system a basic file structure.
> > # 1.0_pre1 is the only one that is stable, right?
> > cd /usr/portage/sys-apps/baselayout-lite/
> > ROOT=/embedded_rootfs emerge baselayout-lite-1.0_pre1.ebuild
> >
> > # Workaround 3
> > # Baselayout-lite is still beta, so a few fixes are needed.
> > # There needs to be a directory "log" in /var.
> > # Inittab calls for /usr/bin/tail, but it needs to /usr/bin.
> > mkdir /embedded_rootfs/var/log
> > nano -w /embedded_rootfs/etc/inittab
> > /*
> > #tty3::respawn:/usr/bin/tail -f /var/log/messages
> > tty3::respawn:/bin/tail -f /var/log/messages
> > */
> >
> > # Emerge uclibc into the embedded_rootfs.
> > # Use the -K option because we don't get the extra files created by the
> > # build/emerge process into our embedded rootfs which needs to be as
> > # small as possible.
> > ROOT=/embedded_rootfs emerge -K uclibc
> >
> > # Emerge busybox into the embedded_rootfs.
> > # First you must emerge it into your development_rootfs.
> > # This does not create the symlinks in our development embedded rootfs.
> > emerge busybox
> > ROOT=/embedded_rootfs emerge -K busybox
> >
> > # Create the symlinks for busybox in the embedded_rootfs.
>
> I have not used it, but form the ebuild it looks like
> if you emerge busybox with make-symlinks in USE flags
> it'll just make them for you. I think the proper way
> may be (gain, this is just by looking at the ebuild):
> VERY_BRAVE_OR_VERY_DUMB=yes USE=make-symlinks emerge -B busybox
> (this will just make the package without installing it
> to the system and consequently without braking it with
> the symlinks)
> ROOT=/embedded_rootfs emerge -K busybox
> (at this point the busybox binary package should have
> the symlinks in it)

The method I currently use was suggest by another embedded developer, I think 
it was Ned Ludd.  This seems to work fine, so I'll keep the current method.

> > mkdir /embedded_rootfs/proc
> > mount -o bind /proc/ /embedded_rootfs/proc/
> > chroot /embedded_rootfs /bin/busybox --install -s
> > umount /embedded_rootfs/proc
> >
> > # Set time zone in your embedded_rootfs.
> > # See http://leaf.sourceforge.net/doc/guide/buci-tz.html for details.
> > # For central standard time in the US, use "CST6CDT".
> > nano -w /embedded_rootfs/etc/TZ
> > /*
> > CST6CDT
> > */
> >
> > # Install a boot loader (usually grug or lilo).
> > # Once you copy/deploy your embedded_rootfs program to you target SBC you
> > will # have to run the grub on the command line to write to the master
> > boot record # (MBR).
> > # Ncurses is needed by grub, if you are not using gurb then you don't
> > need # ncurses. For some reason not all of /boot/grub is copied over to
> > the # embedded_rootfs, so a extra manual copy step is needed.
> > ROOT=/embedded_rootfs emerge -K ncurses
> > emerge grub
> > ROOT=/embedded_rootfs emerge -K grub
> > cp -R /boot/grub /embedded_rootfs/boot/
>
> Why not installing grub with static USE flag?
> I think ncurses is to expensive (big) to have if it is used
> just by grub.
> Another option will be to install install grub with:
> ROOT=/embedded_rootfs emerge -K --nodeps grub
> rm -f /embedded_rootfs/sbin/grub
> As we can still use grub-install that doesn't need ncurses.

Cool.  Change made.

> > # Modify your boot configure file.
> > # The example below is for a gurb, for a boot partition on /dev/hda1 and
> > only # one partition on the target SBC system.
> > nano -w /embedded_rootfs/boot/grub/grub.conf
> > /*
> > default 0
> > timeout 10
> > splashimage=(hd0,0)/boot/grub/splash.xpm.gz
> >
> > title=Linux 2.6.x
> > root (hd0,0)
> > kernel /vmlinuz-2.6.x root=/dev/hda1 vga=792
> > */
> >
> > # Set root password
> > ROOT=/embedded_rootfs passwd
> >
> > # Modify fstab.
> > # Below is mine, yours may vary.
> > nano -w /embedded_rootfs/etc/fstab
> > /*
> > /dev/hda1		/		reiserfs	defaults	0 0
> > none			/proc		proc		defaults  	0 0
> > none			/sys		sysfs		defaults	0 0
> > none			/dev/shm	tmpfs	defaults	0 0
> > */
> >
> > #---- Step 4 - Build and install non-system programs to the
> > embedded_rootfs --
> >
> > # Emerge other software you need for you embedded target.
> > # This is very wildly depending on your needs.
> > # Also your proprietary application will be done here.
> > emerge foobar*
> > ROOT=/embedded_rootfs emerge -K foobar*
> >
> >
> > #---- Step 5 - Build and install a kernel to the embedded_rootfs
> > -------------
> >
> > # Install a kernel into embedded_rootfs.
> > # First we will emerge it into our development_rootfs, then configure and
> > # build it.
> > emerge vanilla-sources
> > cd /usr/src/
> > cd linux
> > make menuconfig
> > # configure your kernel for your TARGET SBC here
> > make
> > ROOT=/embedded_rootfs make modules_install
> > cp /usr/src/linux/arch/i386/boot/bzImage
> > /embedded_rootfs/boot/vmlinuz-2.6.x
> >
> > # A few notes on compiling your kernel.
> > # If deploying to Compact Flash/DiskOnChip/SD us ext2, as the journaling
> > # filing systems "write" to much for a flash device.
> > # If deploying to a hard drive use a journaling filing system, such as
> > # ext3 or reiserfs.
> >
> >
> > #---- Step 6 - Deploy embedded_rootfs to target
> > ------------------------------
> >
> > # Prepare a Gentoo (or any Linux distro) system on the target SBC using a
> > # harddrive.  This is known as the target development rootfs.
> > # We will create a partition (/embedded_rootfs) that will server as our
> > # "test" partition to deploy our embedded_rootfs that we generate on our
> > # development_system.
> > #
> > # I use the following partitions to speed development (yours may vary):
> > # /dev/hda1 - /embedded_rootfs - 1 GB
> > # /dev/hda2 - /boot - 100 MB
> > # /dev/hda3 - swap - (size varies, 512 MB is a good number)
> > # /dev/hda4 - / - (what is left, at least 1.5 GB per 2005.0 install guide
> > specs)
> > #
> > # Copy over your embedded_rootfs from you development system to your
> > target # system and the directory /embedded_rootfs.  This needs to be
> > done via NFS as # need to preserve the permissions.
> > #
> > #The following commands are done from the
> > # target development rootfs.
> > mount -t reiserfs /dev/hda1 /mnt/embedded_rootfs
> > mount -t nfs
> > 192.168.0.10:/opt/i586-gentoo-uclibc-linux/embedded_rootfs /mnt/transfer
> > cp -adpR /mnt/transfer/* /mnt/embedded_rootfs
> >
> >
> > # Modify your target system's gurb.conf (or lilo.conf) for allow you to
> > boot # to the embedded_rootfs partition.
> > #
> > # Reboot, and if all goes well you'll be greeted with a login prompt.
> > #
> > # Fin.
>
> Yuri.

Thanks,

-- 
heath holcomb
liquidcable at bulah.com
www.bulah.com
-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2005-08-06 22:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-06 15:03 [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.06 (almost finished) Heath H Holcomb
2005-06-06 16:16 ` Yuri Vasilevski
2005-06-07 15:05   ` michael
2005-06-08 13:10     ` Heath H Holcomb
2005-06-08  2:18       ` michael
2005-06-13 17:34   ` michael
2005-06-14 14:01     ` Quentin Arce
2005-06-14 17:08       ` michael
2005-08-06 22:02   ` Heath Holcomb
2005-06-06 18:08 ` Ned Ludd

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox