Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-embedded
Navigation:
Lists: gentoo-embedded: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-embedded@g.o
From: "Pierre Cassimans" <kammicazze@...>
Subject: Re: x86 SBC Gentoo Embedded HotTo version 0.07
Date: Wed, 17 Aug 2005 13:02:50 +0000


>From: Heath Holcomb <liquidcable@...>
>Reply-To: gentoo-embedded@g.o
>To: gentoo-embedded@g.o
>Subject: Re: [gentoo-embedded] x86 SBC Gentoo Embedded HotTo version 0.07
>Date: Sat, 13 Aug 2005 17:52:40 -0500
>
>On Friday 12 August 2005 01:39 am, Marcel Romijn wrote:
> > Hello Heath,
> >
> > Nice writedown! I haven't made it to the end yet (lack of time), but I'm
> > getting there...
> >
> > I noticed some issues along the way (not counting grub begin spelled as
> > "grug" or "gurb" ;-) )
> >
> > In step 3 you write:
> >
> > <snip>
> > # Set root password for the embedded_rootfs
> > chromm /embedded_rootfs
> > passwd
> > rm /embedded_rootfs/etc/passwd-
> > Exit
> > </snip>
> >
> > I presume 'chromm' should have been 'chroot' ?
> > If it is indeed 'chroot' then you should either do "rm /etc/passwd-"
> > before the "exit" or the "exit" before the "rm
> > /embedded_rootfs/etc/passwd-".
>
>Yes, "chromm" should be "chroot".  The order is correct, as far as I can 
>tell.
>chroot /embedded_rootfs
>passwd
>rm /embedded_rootfs/etc/passwd-
>exit
>

I think Marcel got it right, first exit the chroot before you can remove 
something in /embedded_rootfs

OR

rm /etc/passwd- while you are in the chroot and exit after that.

>
> > A few lines down, you write:
> >
> > <snip>
> > rm -R /embedded_rootfs/var/db/pkg/ *
> > </snip>
> >
> > As a reletive newbie, doing a quick copy/paste of this command late in
> > the evening as root in '/', this wiped out all files, except the ones
> > that were firmly locked.
> > Fortunately, I'm going through you HowTo in VMWare, so I could restore a
> > previous snapshot ;-)
> >
> > I presume the space before the '*' should have been omitted?
> >
> > <snip>
> > rm -R /embedded_rootfs/var/db/pkg/*
> > </snip>
>
>Major typo on my part.  Fixed in version 0.08.
>
> >
> > My aim is to create an embedded Gentoo for a Via Epia ME6000, which
> > reads the kernel and a ramdisk image from CF and then runs completely
> > from RAM.
> > If I'm not mistaken, you were heading for a Via Epia as well?
>
>My target will be a Via based SBC.  From what I have read using a ramdisk 
>on a
>x86 based platform really does not buy you much.  But you sure don't want 
>to
>write to the CF all that often (limited write cycles, usallay 100,000 to
>300,000).  So I plan on mounting the / partition of the CF as read only and
>creating a separate partition that is mounted read/write and have my 
>embedded
>application and only my application write to that partition.
>
> > Regards,
> >
> > Marcel Romijn
> >
> >
> > -----Original Message-----
> > From: Heath Holcomb [mailto:liquidcable@...]
> > Sent: Monday, 08 August, 2005 4:17
> > To: gentoo-embedded@g.o
> > Subject: [gentoo-embedded] x86 SBC Gentoo Embedded HotTo version 0.07
> >
> > Version 0.07
> > Please add, delete, modify. Thanks!
> >
> > Several fixes.  Root password now works.  Several work arounds are no
> > longer
> > need, as the embedded Gentoo team has fixed them (I'm guess because I no
> >
> > longer get those errors).  There is still one problem when "emerge -e
> > system"
> > for groff.  Bug 98187 (http://bugs.gentoo.org/show_bug.cgi?id=98187).
> > Check
> > out the bug report for the temp fix/work around (USE="-sandbox" emerge
> > -e
> > 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.07
> > # 2005.8.7
> > #
> > # Heath Holcomb (heath at bulah.com)
> > # Ned Ludd (original commands posted)
> > # Lloyd Sargent (contributor)
> > # Yuri Vasilevski (contributor)
> > # Mike George (contributor)
> > # Kammi Cazze (contributor)
> > # Marius Schaefer (contributor)
> > #
> > # Definitions and Terms
> > # system_rootfs = your regular rootfs, development computer
> > # 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@g.o)
> > #
> > #
> > # 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-ucl
> > ibc-2005.0.tar.bz2
> >
> > # Untar the stage to the development_rootfs.
> > tar -xvjpf 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 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.
> > cd /etc/
> > unlink make.profile
> > ln -s ../usr/portage/profiles/uclibc/x86 make.profile
> >
> > # Start the bootstrap script.
> > cd /usr/portage/scripts
> > ./bootstrap.sh -p -v
> > ./bootstrap.sh
> >
> > # Emerge the system ebuild for the development_rootfs.
> > 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 1
> > # 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 to your target SBC you will
> > # have to run grub on the command line to write to the master boot
> > record
> > # (MBR).
> > # For some reason not all of /boot/grub is copied over to the
> > # embedded_rootfs, so a extra manual copy step is needed.
> > # The --nodeps gets rip of the run time need of ncurses.
> > emerge --nodeps grub
> > ROOT=/embedded_rootfs emerge -K --nodeps 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 for the embedded_rootfs
> > chromm /embedded_rootfs
> > passwd
> > rm /embedded_rootfs/etc/passwd-
> > exit
> >
> > # 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
> > */
> >
> > # Clean up the embedded_rootfs.
> > # Don't know why these files are there in the first place, so if anyone
> > # can tell me why.....
> > rm -R /embedded_rootfs/var/db/pkg/ *
> > rm -R /embedded_rootfs/var/lib/portage/
> >
> > #---- 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 foo*
> > ROOT=/embedded_rootfs emerge -K foo*
> >
> >
> > #---- 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.  I HIGHLY suggest you
> > # configure the kernel to compile everything into the kernel, and
> > nothing
> > # as a module.
> > 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 use 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/nfs_embedded_rootfs
> > cp -adpR /mnt/nfs_embedded_rootfs/* /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 at bulah.com
> > www.bulah.com
> > --
> > gentoo-embedded@g.o mailing list
>
>--
>heath holcomb
>liquidcable at bulah.com
>www.bulah.com
>--
>gentoo-embedded@g.o mailing list
>


Regards,

Pierre Cassimans


-- 
gentoo-embedded@g.o mailing list


References:
Re: x86 SBC Gentoo Embedded HotTo version 0.07
-- Heath Holcomb
Navigation:
Lists: gentoo-embedded: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Re: x86 SBC Gentoo Embedded HotTo version 0.07
Next by thread:
RE: x86 SBC Gentoo Embedded HotTo version 0.07
Previous by date:
Re: x86 SBC Gentoo Embedded HotTo version 0.07
Next by date:
eBOX


Updated Jun 17, 2009

Summary: Archive of the gentoo-embedded mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.