Gentoo Archives: gentoo-embedded

From: michael@×××××××××××××.com
To: gentoo-embedded@l.g.o
Subject: Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo
Date: Sun, 22 May 2005 06:00:05
Message-Id: Pine.LNX.4.61.0505211756510.13526@mail.magrittesystems.com
In Reply to: Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo by Heath H Holcomb
1 Thanks for writing back, Heath, and thanks for your answers.
2
3 Is the latest version of you howto available on the web somewhere? If
4 not, can you send me the latest version?
5
6
7 Thanks,
8 Michael
9
10
11 On Sun, 22 May 2005, Heath H Holcomb wrote:
12
13 > I have always planned on using Compact Flash as my storage medium. You don't
14 > have to us any compression if your compact flash size is large enough. You
15 > just have to partition, mount / read only, no swap, and write you embedded
16 > application to only mount and write to the compact flash when data is really
17 > needed (you can use a separate partition from /).
18 >
19 > Flash devices have a write limit usually between 100,000 to 300,000 times,
20 > while hard drive writes are measured in millions or billions. The higher end
21 > compact flash have something that is called ware leveling, which "moves" the
22 > memory cells around in the compact flash so writes are distributed through
23 > out the entire size of the compact flash instead of the exact same location
24 > every time. This was what made DiskOnChip the preferred choice a few years
25 > ago when they had it and compact flash did not. But most non-cheap compact
26 > flash's has were leveling today.
27 >
28 > --
29 > Heath Holcomb
30 > heath at bulah.com
31 > www.bulah.com
32 >
33 >
34 > On 05 21 2005 10:19 am, michael@×××××××××××××.com wrote:
35 >> I agree with Kammi - this is an incredibly useful howto.
36 >>
37 >> I'm also getting ready to install gentoo on my epia board, I'm using the
38 >> ME6000. A major difference, though, is that I want to create the system
39 >> on a Compact Flash card.
40 >>
41 >> I've already done bootable CF systems using a mix of all sort of notes
42 >> I've found on the web. As a result, I have a mix of things I don't
43 >> understand and I'm sure some things I don't need. This time I'd like to
44 >> do it from scratch so that I understand every step.
45 >>
46 >> In the past I've built the filesystem on my desktop, then compressed it
47 >> using cramfs, which gets written to the CF card. I think I'll do the
48 >> same this time, but I'd be interested to hear what you all might
49 >> recommend.
50 >>
51 >> Does there exist a howto that describes this whole process? If not, would
52 >> others find it useful?
53 >>
54 >> Any tips, pointers, and suggestions welcome.
55 >>
56 >> Michael
57 >>
58 >> On Fri, 29 Apr 2005, Kammi Cazze wrote:
59 >>> Hi,
60 >>>
61 >>> first of all i like your id of putting such a howto up. I hope you will
62 >>> get much help from the devs. I think the problem is that this project is
63 >>> in full development and ways of accompishing things here vary very
64 >>> quickly and are always made better and easier to do.
65 >>>
66 >>> Here is some stuff you could put into it, because it won't change alot in
67 >>> the feature ;)
68 >>>
69 >>> - You could mention something about how to set the timezone on the uclibc
70 >>> box. There is a full expl. on this site:
71 >>> http://leaf.sourceforge.net/doc/guide/buci-tz.html
72 >>>
73 >>>> ROOT=/Embedded RootFS emerge busybox uclibc
74 >>>
75 >>> You could also put baselayout-lite in it. I don't know what the status is
76 >>> by now (ask iggy)!
77 >>>
78 >>> As on such a system devfs or udef is mostly unwanted, you will have to
79 >>> create your /dev nodes manualy, because baselayout-lite only makes the
80 >>> most neaded once, like /dev/hd* and /dev/sd*
81 >>>
82 >>>
83 >>> Pierre Cassimans
84 >>>
85 >>>> From: Heath H Holcomb <heath@×××××.com>
86 >>>> Reply-To: gentoo-embedded@l.g.o
87 >>>> To: gentoo-embedded@l.g.o
88 >>>> Subject: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo version 0.03
89 >>>> (unfinished)
90 >>>> Date: Fri, 29 Apr 2005 08:49:21 -0500
91 >>>>
92 >>>> Version 0.03
93 >>>> Please add, delete, modify. Thanks!
94 >>>>
95 >>>>> -----------------------------------------------------------------------
96 >>>>> ---------------- Embedded Gentoo How-To for x86
97 >>>>>
98 >>>>> Commands to setup a Gentoo embedded environment, you must be root.
99 >>>>> These commands are to be run on your developement system,
100 >>>>> any x86 Gentoo Linux computer will do. The system should be fast,
101 >>>>> to speed developement. The target can be any x86 based SBC. I'm
102 >>>>> using a Geode based SBC. Latter I'll use a Via based SBC.
103 >>>>>
104 >>>>> version 0.03
105 >>>>> 2005.29.04
106 >>>>>
107 >>>>> Heath Holcomb (heath at bulah.com)
108 >>>>> Ned Ludd (original commands posted)
109 >>>>> Yuri Vasilevshi (contributor)
110 >>>>> Mike George (contributor)
111 >>>>>
112 >>>>> Development RootFS = what you use to build the Embedded RootFS
113 >>>>> Embedded RootFS = rootfs you deploy to the target system
114 >>>>> SBC = single board computer (here it's an x86 based)
115 >>>>>
116 >>>>> References
117 >>>>>
118 >>>>>> //www.gentoo.org/doc/en/handbook/index.xml
119 >>>>>> //www.epiawiki.org
120 >>>>>> //epia.kalf.org
121 >>>>>
122 >>>>> Gentoo embedded mailing list (gentoo-embedded@l.g.o)
123 >>>>>
124 >>>>>
125 >>>>> -----------------------------------------------------------------------
126 >>>>> ----------------
127 >>>>>
128 >>>>> create the Development RootFS
129 >>>>> I use i586 becasue of target is a Geode processor
130 >>>>
131 >>>> mkdir -p /opt/i586-gentoo-uclibc-linux/usr/portage
132 >>>>
133 >>>> # download the latest stage 1 tarball
134 >>>> wget \
135 >>>> http://gentoo.osuosl.org/experimental/x86/embedded/stages/stage1-x86-ucl
136 >>>> ibc-2005.0.tar.bz2
137 >>>>
138 >>>> # untar the stage to the Development RootFS
139 >>>> tar -xvjf stage1-x86-uclibc-2005.0.tar.bz2 -C
140 >>>> /opt/i586-gentoo-uclibc-linux/
141 >>>>
142 >>>>> mount the Development RootFS proc and portage directories
143 >>>>> don't understand this someone please add comments
144 >>>>
145 >>>> mount --bind /proc /opt/i586-gentoo-uclibc-linux/proc/
146 >>>> mount --bind /usr/portage /opt/i586-gentoo-uclibc-linux/usr/portage
147 >>>>
148 >>>> # copy over DNS information to the Development RootFS
149 >>>> cp /etc/resolv.conf /opt/i586-gentoo-uclibc-linux/etc/resolv.conf
150 >>>>
151 >>>> # chroot into the Development RootFS, create new environment, load
152 >>>> variables
153 >>>> into memory
154 >>>> chroot /opt/i586-gentoo-uclibc-linux /bin/bash --login
155 >>>> env-update
156 >>>> source /etc/profile
157 >>>>
158 >>>> # modify make.conf file to your liking
159 >>>> nano -w /etc/make.conf
160 >>>> # this is for my target, Geode x86 processor
161 >>>> CHOST="i586-gentoo-linux-uclibc"
162 >>>> CFLAGS="-march=i586 -Os -pipe -fomit-frame-pointer -mmmx"
163 >>>> CXXFLAGS="${CFLAGS}"
164 >>>> FEATURES="buildpkg"
165 >>>>
166 >>>> # work around for bug 90306
167 >>>> mknod -m 0444 /dev/random c 1 8
168 >>>> mknod -m 0444 /dev/urandom c 1 9
169 >>>>
170 >>>> # start the bootstrip script
171 >>>> cd /usr/portage/scripts
172 >>>> ./bootstrap.sh -p -v
173 >>>> ./bootstrap.sh
174 >>>>
175 >>>> # emerge system
176 >>>> emerge -e system
177 >>>> # fixes a emerge ebuild bug, this should go away soon
178 >>>> emerge python
179 >>>> # continue with the rest of the emerge system
180 >>>> emerge -e system
181 >>>>
182 >>>>> modify make.conf and set you USE flags for the target embedded build
183 >>>>> these use flags build a smaller system with no documentation, man or
184 >>>>> info
185 >>>>
186 >>>> pages installed
187 >>>> # the make-symlinks option of for busybox to automatically create the
188 >>>> symlinks
189 >>>> to it
190 >>>> nano -w /etc/make.conf
191 >>>> USE="make-symlinks nodoc noinfo noman"
192 >>>>
193 >>>>> build busybox and uclibc, put into the Embedded RootFS (/Embedded
194 >>>>> RootFS)
195 >>>>> don't understand exactally how this works, someone please add comments
196 >>>>
197 >>>> mkdir /Embedded RootFS
198 >>>> ROOT=/Embedded RootFS emerge busybox uclibc
199 >>>>
200 >>>> # emerge other software you need for you embedded target
201 >>>> ROOT=/Embedded RootFS emerge xxxxxxxxx
202 >>>>
203 >>>> # install a kernel into Embedded RootFS
204 >>>> ROOT=/Embedded RootFS emerge vanilla-sources
205 >>>> cd /Embedded RootFS/usr/src
206 >>>> ln -s linux-
207 >>>>
208 >>>> ......... more stuff here ...........
209 >>>> ......... install xorg-x11, less than 10MB hopefully
210 >>>> ......... install light window manager (blackbox, windowmaker, ???)
211 >>>> ......... install very light X11 toolkit (?????)
212 >>>> ......... purge to the Embedded RootFS of unwanted files and libaries
213 >>>> ......... edit all config files
214 >>>> ......... set up the test harddrive on the target SBC
215 >>>> ......... install grub or lilo on the test harddrive on the target SBC
216 >>>> ......... transfer Embedded RootFS to the test harddrive on the target
217 >>>> SBC ......... debug system, and rebuild
218 >>>> ......... deploy Embedded RootFS from the test harddrive to flash
219 >>>> ......... (DiskOnChip, Compact Flash)
220 >>>> ......... tweak, rebuild, redeploy
221 >>>>
222 >>>> --
223 >>>> Heath Holcomb
224 >>>> heath@×××××.com
225 >>>> www.bulah.com
226 >>>> --
227 >>>> gentoo-embedded@g.o mailing list
228 >>>
229 >>> _________________________________________________________________
230 >>>
231 >>>
232 >>> --
233 >>> gentoo-embedded@g.o mailing list
234 >
235 > --
236 > gentoo-embedded@g.o mailing list
237 >
238 >
239 --
240 gentoo-embedded@g.o mailing list

Replies

Subject Author
Re: [gentoo-embedded] x86 SBC Gentoo Embedded HowTo Heath H Holcomb <heath@×××××.com>