# Gentoo with 256 RAM and GEODE CPU ?

## evilAngel

Hi all,

I have a miniPC build on a AMD Geode CPU and embedding 256 Mo RAM.

I would like to build a server (no X).

The initial compil for the kernel and the binaries will be long. But this is OK has the server will ne be in production at this moment.

On such an hardware architecture, how long do you think compiling and installing updates would take ?

A few minutes ?

Half an hour ?

A few hours ?

I hope i was clear enough.

Thanks

----------

## jamapii

I think the initial build will take about a day (with gcc and glibc), kernel builds a few hours, minor updates usually a few minutes if built in a tmpfs.

boost and paludis takes a day, if you use this.

I'm using an alix board, 256 MB RAM, /tmp and /var/tmp as tmpfs (but I set PORTAGE_TMPDIR if it doesn't fit), + IDE hard disk.

You might want to set CHOST=i586-pc-linux-gnu (starting with an i386 stage3), as i686 might not work.

----------

## NeddySeagoon

jamapii,

Correct - the i686 stage3 tarball won't work, the Geode is missing one instruction to make it a i686 CPU.

Use the x86 tarball, which provides i486 compatible code. Its not worth the effort of rebuilding the toolchain to change the CHOST.

evilAngel,

There is nothing wrong with using a toolchain built to run on an i486 to emit code for more capable CPUs. 

The code that the compiler produces is determined by CFLAGS, not CHOST.

Such a toolchain will be a little slower than a CHOST=i586 but are you going to save the time you spend rebuilding the toolchain ?

I doubt it.

If you have another Linux system, (it need not be Gentoo) you can do a gentoo install in a file but aimed at your Geode, then you use it as a BINHOST and install the binaries made there on the Geode.

----------

## evilAngel

Thanks for info.

 *Quote:*   

> minor updates usually a few minutes if built in a tmpfs. 

 So when the system will be up and running, you think i will just need a few minutes to make the ongoing maintenance update ?

My major concer at the moment is to know if such a small system can run a gentoo.

If the unavailability due to the maintenance is a question of minutes, then it is OK.

----------

## NeddySeagoon

evilAngel,

It can run gentoo and it will not be unavailable during updates.

It may be a little slower to respond when you have an update in progress but you may set a nice value for portage so that all the tasks portage owns run at a lower priority than other things.

Updates will take loner than "minutes". Exactly how long depends on the packages involved.

----------

## zyko

 *Quote:*   

> My major concer at the moment is to know if such a small system can run a gentoo.
> 
> If the unavailability due to the maintenance is a question of minutes, then it is OK.

 

Even the oldest Geode (which is something like a 100MHz i586 if I'm not mistaken) will run Gentoo very well. 256MB of RAM are even enough to run a full desktop. The only downside are compile times. Compiling anything will take forever.

You should have some pre-built binaries of packages that take very long to compile. I imagine glibc and gcc would take a day to finish (longer then the whole rest of the Gentoo system set), so either never recompile them or have them available in your PKGDIR! Sadly, tinderbox only offers binaries made with -march=i686.

The fabulous embedded project might be a great resource for you. If you build your Gentoo from an embedded stage3, you'll have a somewhat smaller system that uses uClibc instead of Glibc. This removes compatibility with some of the fancier stuff that needs iconv, but many server applications work. Also, all binaries on http://tinderbox.dev.gentoo.org/uclibc/i386/ would work for you.

----------

## daemonflower

I can second that it will work. I ran Gentoo for years on my 300 MHz-Celeron, 128MB home server. And I can second that updating will take very long. Sometimes it took days to emerge -uD world. I had a GUI installed, though. YMMV.

----------

## szczerb

Last year I had my gentoo home server on a p166mmx with 64MB RAM. Of course it took time to set it up initially but then everything was just fine. It had samba, dhcp, ssh, ntp, cache dns (and local), and apache (although just for me and friends - no real work) and I never had problems with availability during upgrades (which of course took a while, but it was absolutely bearable).

BTW I synced and updated every couple of days so I never once had more then a dozen packages to update.

I moved up to a 2x500MHz coppermine just because I wanted a full blown desktop on it (not to waste electricity for just browsing www, watching low-def movies or listening to music).

----------

## Lucractius

I had a gentoo system working fine on a 400Mhz celleron laptop with 64MB of ram. 

Compared to that, the 256MB of ram on that board will be roomy.

Now the biggest advice i can give for someone working on shoehorning gentoo anywhere is to always always always examine the Useflags.

I diligently sliced way at every wasted option and actually had a working system with a modular X.Org x server working on 64MB of ram. Even managed to run Opera (abeit a bit sluggishly) when on the X desktop.

Edit: 

All of this is to point out that you wont have any performance issues using a board like this for a server.

----------

## evilAngel

Thanks all for these information.

I will give a try using a stage3 gentoo.

One last question:

```
I'm using an alix board, 256 MB RAM, /tmp and /var/tmp as tmpfs
```

It is important on a performance point of view to dedicate a /tmp partition with tmpfs ?

Thx

----------

## jamapii

 *evilAngel wrote:*   

> It is important on a performance point of view to dedicate a /tmp partition with tmpfs ?
> 
> 

 

On machines of mine with >=1GB RAM and no swap, it was a big improvement. I think if you need all the memory for servers like squid, asterisk or whatever, (or for your applications, if it were a desktop) they should have priority, and you don't compile in tmpfs. If you have "too much" RAM most of the time, you can use it, it also keeps disk activity down.

If you don't have a real hard disk, only flash memory, then tmpfs is good for some other things (/tmp), but you'll probably compile somewhere else, see NeddySeagoon's post.

----------

## evilAngel

As I have a few RAM (256 MB only) I think I won't use this option.

Thanks for info.

----------

## CodAv

I suggest to build the system on another PC in a chroot environment, using the buildpkg feature. Then, set up this host as a repository for binary packages. To update the slow/embedded system, just do a world update on the "BINHOST" machine, and then the same on the embedded PC, but with:

```
emerge -uD --getbinpkg --usepkg world
```

Even if the binhost machine runs on x86_64, you can use it to compile any i386/i586/i686 based systems on it. 

To build an x86 kernel on a x86_64 host, use

```
export ARCH="i386"
```

before running the kernel's make, or when using genkernel, add ARCH=i386 to the KERNEL_MAKE variable in /etc/genkernel.conf.

Also see the documentation about binary packages

----------

