From: "Pierre Cassimans" <kammicazze@hotmail.com>
To: gentoo-embedded@lists.gentoo.org
Subject: Re: [gentoo-embedded] x86 SBC Gentoo Embedded HotTo version 0.07
Date: Wed, 17 Aug 2005 13:02:50 +0000 [thread overview]
Message-ID: <BAY23-F4127DB583D673CBF325F91CBB30@phx.gbl> (raw)
In-Reply-To: <200508131752.40677.liquidcable@bulah.com>
>From: Heath Holcomb <liquidcable@bulah.com>
>Reply-To: gentoo-embedded@lists.gentoo.org
>To: gentoo-embedded@lists.gentoo.org
>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@bulah.com]
> > Sent: Monday, 08 August, 2005 4:17
> > To: gentoo-embedded@lists.gentoo.org
> > 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@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-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@gentoo.org mailing list
>
>--
>heath holcomb
>liquidcable at bulah.com
>www.bulah.com
>--
>gentoo-embedded@gentoo.org mailing list
>
Regards,
Pierre Cassimans
--
gentoo-embedded@gentoo.org mailing list
next prev parent reply other threads:[~2005-08-17 13:03 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-12 6:39 [gentoo-embedded] x86 SBC Gentoo Embedded HotTo version 0.07 Marcel Romijn
2005-08-12 9:19 ` Pierre Cassimans
2005-08-12 13:37 ` Heath Holcomb
2005-08-12 15:59 ` [gentoo-embedded] ffmpeg, susv3 math, and uclibc Kurt E. Kiefer
2005-08-12 13:34 ` [gentoo-embedded] x86 SBC Gentoo Embedded HotTo version 0.07 Heath Holcomb
2005-08-13 22:52 ` Heath Holcomb
2005-08-17 13:02 ` Pierre Cassimans [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-08-18 6:26 Marcel Romijn
2005-08-18 6:24 Marcel Romijn
2005-08-16 6:43 Marcel Romijn
2005-08-16 9:28 ` S. ancelot
2005-08-16 11:09 ` Natanael Copa
2005-08-16 16:46 ` Robert Wohleb
2005-08-16 9:30 ` S. ancelot
2005-08-16 6:43 Marcel Romijn
2005-08-16 18:50 ` Lee Azzarello
2005-08-08 2:16 Heath Holcomb
2005-08-16 20:33 ` Joshua ChaitinPollak
2005-08-17 12:59 ` Pierre Cassimans
2005-08-19 9:05 ` Pierre Cassimans
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BAY23-F4127DB583D673CBF325F91CBB30@phx.gbl \
--to=kammicazze@hotmail.com \
--cc=gentoo-embedded@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox