# VIA Eden ESP 4000 (Samuel 2 core)

## redwood

I have some old HP t5125 thinclients that are adequate to run LXDE. 

These thinclients have 32M ram and 128M IDE/Flash and came with linux-2.4 and XFree86 installed in the flash.

Unfortunately, I've not been able to find many newer mice that work properly with this old image. 

Some old PS2 mice work but every newer USB/PS2 mouse I've tried doesn't work.

Since HP no longer supports these old thinclients and doesn't provide kernel updates,

I thought I could roll my own and pxe boot it over nfs.

I already have other diskless thinclients working following the Gentoo Diskless guide, 

so I hoped this would be as simple.

Unfortunately I'm getting the dreaded kernel panic after the thinclient 

downloads its kernel from my pxe boot server (192.168.1.254 192.168.1.0/24)

```

Console: colour dummy device 80x25

Fast TSC calibration using PIT

Mount-cache hash table entries size ...

Weird: boot cpu #0 not listed by BIOS

kworker/u:0 used greatest stack depth

bio: create slab <bio-0> at 0

PCI - probing hardware

Dquot-cache hash table entries ...

Console - switching to frame buffer dev 128x48

registered taskstats version 1

IP-Config: Got DHCP answer from 192.168.1.254, my address is 192.168.1.18

IP-Config: Complete

     device eth0, addr=192.168.1.18, mask=255.255.255.0, my address is 192.168.1.18

     bootserver: 192.168.1.254, rootserver: 192.168.1.254, rootpath: /tftpboot/t5125

init used greatest stack depth

Kernel panic - not syncing - attempted to kill init!

```

My client's "emerge --info"

```

Portage 2.1.9.24 (default/linux/x86/10.0, gcc-4.4.4, glibc-2.11.2-r3, 2.6.30-gentoo-r8 i686)

=================================================================

System uname: Linux-2.6.30-gentoo-r8-i686-AMD_Athlon-TM-_XP_2800+-with-gentoo-2.0.1

Timestamp of tree: Tue, 04 Jan 2011 11:00:01 +0000

app-shells/bash:     4.1_p7

dev-lang/python:     2.6.6-r1, 3.1.2-r4

sys-apps/baselayout: 2.0.1-r1

sys-apps/openrc:     0.6.8

sys-apps/sandbox:    2.4

sys-devel/autoconf:  2.65-r1

sys-devel/automake:  1.9.6-r3, 1.11.1

sys-devel/binutils:  2.20.1-r1

sys-devel/gcc:       4.4.4-r2

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.10

sys-devel/make:      3.81-r2

virtual/os-headers:  2.6.30-r1 (sys-kernel/linux-headers)

ACCEPT_KEYWORDS="x86"

ACCEPT_LICENSE="* -@EULA"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=c3 -pipe -fomit-frame-pointer -m3dnow"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/splash /etc/terminfo"

CXXFLAGS="-O2 -march=c3 -pipe -fomit-frame-pointer -m3dnow"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm iconv ipv6 modules mudflap ncurses nfs nls nptl nptlonly openmp pam pcre perl pppd python readline session ssl sysfs tcpd unicode x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vesa via" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

```

My client's /etc/make.conf:

```

CFLAGS="-O2 -march=c3 -pipe -fomit-frame-pointer -m3dnow"

CXXFLAGS="${CFLAGS}"

CHOST="i686-pc-linux-gnu"

VIDEO_CARDS="vesa via"

USE="nfs"

```

For my client I installed gentoo-sources-2.6.26-gentoo-r5 and patched for unionfs 

(I've also tried the unpatched kernel with same results)

I began by "make defconfig" and then changed the cpu arch to Cyrix/C3: CONFIG_MCYRIXIII=y

and I have Centaur support:

# grep ^CONFIG_CPU_SUP .config

```

CONFIG_CPU_SUP_INTEL=y

CONFIG_CPU_SUP_CYRIX_32=y

CONFIG_CPU_SUP_AMD=y

CONFIG_CPU_SUP_CENTAUR=y

CONFIG_CPU_SUP_TRANSMETA_32=y

CONFIG_CPU_SUP_UMC_32=y

```

I kept the default NFS with root over nfs support:

```

CONFIG_NETWORK_FILESYSTEMS=y

CONFIG_NFS_FS=y

CONFIG_NFS_V3=y

CONFIG_NFS_V3_ACL=y

CONFIG_NFS_V4=y

# CONFIG_NFS_V4_1 is not set

CONFIG_ROOT_NFS=y

```

and enabled dhcp under NetworkSupport->NetworkingOptions

```

CONFIG_IP_PNP=y

CONFIG_IP_PNP_DHCP=y

# CONFIG_IP_PNP_BOOTP is not set

# CONFIG_IP_PNP_RARP is not set

# CONFIG_NET_IPIP is not set

# CONFIG_NET_IPGRE is not set

```

My /tftpboot/pxelinux.cfg/01-<mac address>

```

default linux

label linux

  kernel /t5125/boot/kernel-genkernel-x86-2.6.36-gentoo-r5

  append ip=dhcp root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/nfs nfsroot=192.168.1.254:/tftpboot/t5125 rw vga=791 video=vesa:1024x768@60 splash=silent pci=noacpi nolapic noapic ide1=noprobe ide2=noprobe ide3=noprobe debug nfsrootdebug loglevel=5  initrd=/t5125/boot/initramfs-genkernel-x86-2.6.36-gentoo-r5

  #append ip=dhcp root=/dev/nfs nfsroot=192.168.1.254:/tftpboot/t5125 nolapic ide1=noprobe ide2=noprobe ide3=noprobe debug nfsrootdebug loglevel=5

```

I get the same kernel panic whether or not I use the genkernel initramfs

but to be safe I also blacklisted the framebuffer modules in /etc/modprobe.d/blacklist:

```

blacklist viafb

blacklist vt8623fb

```

I took the ide?=noprobe from HP's grub line

but that may only be a linux-2.4 thing since I see no mention of it here:

http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/ch09.pdf

HP's grub line for its 2.4 kernel:

```

# cat /tftpboot/hp/boot/boot/grub/menu.lst 

color white/blue black/light-gray

timeout 0

title HP Thin Client

  root (hd0,0)

  kernel (hd0,0)/boot/bzImage root=/dev/hda2 init=/start vga=788 video=vesa:800x600@60 splash=silent ide1=noprobe ide2=noprobe ide3=noprobe 

  initrd=/boot/initrd.splash

```

If I can't get 2.6.36-gentoo-r5 to boot, I thought I might try to install sys-kernel/vanilla-source-2.4.37

in my thinclient's chroot. But I would need to downgrade from gcc-4.4.4:

```

GCC >= 4.2 miscompiles kernel 2.4, do not use it!

While the resulting kernel may boot, you will encounter random bugs

at runtime. Only versions 2.95.3 to 4.1 are known to work reliably.

To build with another version, for instance 3.3, please do 

   make bzImage CC=gcc-3.3

```

Anybody have any clues on my kernel panic?

There is only one other mention of t5125 on the forums a year ago by someone trying to use GNAP

to compile a kernel for t5125 to use as mp3 player. He solved his problem but didn't post his kernel config.

----------

## gerdesj

You have machines with less RAM than my mobile phone!  My PC's CPU cache is 4Mb

Still, I applaud your efforts.

On something like that, trying to run a full on modern desktop distro is probably unlikely to work.

I suspect a 2.4  kernel with a small GlibC is needed.

You will probably be better off with a distro like MeeGo - its designed for hardware like yours.

Cheers

Jon

----------

## redwood

Thanks for the reply.

My XDMCP server is an AMD 2.0GHz Socket 634 Magny-cours 8-core 6128 with 16G ram and 2T diskspace.

For thinclients, I've used a mish mash of Pentium II, III computers -- usually with .5-1.0 G ram and low end nvidia-cards.  The thinclients are only running Xorg to control video/mouse/kbd. The user desktop/applications are running on the xdmcp server, so the requirements for the thinclients are fairly minimal -- just need to boot a kernel to control eth,video,sound and run X server.

But as Desktop environments such as KDE-4.5 have grown in resource requirements, the thin clients' graphics have gotten slower. The HP t5125 can handle LXDE xdmcp-sessions but no KDE-4.5. I probably need to look into upgrading the thinclients. Unfortunately, most thinclients seem to cost more than off-the-shelf desktop pcs. Maybe a barebones mini-itx form factor pc would suffice. 

Chip PC makes a linux-based thin client, the LXN2321 and the LXP2310 (VGA only):

```

RMI 1250 RISC Processor, 528 MHz, including local multimedia acceleration

256 MB Flash/256 MB RAM DDR2

3 x USB 2.0 ports, DVI-D & VGA Video, 1 Serial port, Audio-In/Ou

Resolutions: up to 1920x1200px @ 64K (16 bit) colors

```

They might work. The web site doesn't say anything about supporting X11 (xdmcp) protocol, 

but does support Windows protocols including Citrix, which is all useless to me.

I saw a post somewhere where someone bought one with the idea of hacking its linux 

but it looked locked down rather tight. 

At one time the HP t5125 did work with ltsp according to edubuntu. They may still work with ltsp-5.

I did have ltsp-4 with the last kernel update of 2.6.17.8-ltsp-1. I have ltsp configured in my dhcp.conf

but I have not used it recently. Once logged into the t5125, I can edit the XF86config file, but none of

the drivers I chose  ( IMPS/2, PS/2, Microsoft, Mouseman, Logitech ...) worked with newer mice.

I might try building a uclibc chroot. I downloaded stage3-x86-uclibc-2008.0.tar.bz2 (and stage1)

from the gentoo/experimental/x86/embedded/stages mirror, but the stages are a couple years out-of-date

and there is no old portage provided, so everytime I try to emerge something it complains that I need EAPI2

and must upgrade portage, but trying to emerge =portage-2.1.6.13  it too complains that its dependencies require EAPI2. So catch-22. Maybe there's a way to forceably upgrade portage/python/bash to EAPI2.

Well, nothing simple I guess.

----------

## gerdesj

 *redwood wrote:*   

> Thanks for the reply.
> 
> My XDMCP server is an AMD 2.0GHz Socket 634 Magny-cours 8-core 6128 with 16G ram and 2T diskspace.
> 
> 

 

No probs.  

I still maintain that you would be better off looking for a thin distro to do your client machines.  Use the big guns of Gentoo on your central terminal server - that's where you'll really benefit from the power of compiling from source and never having to do a rebuild etc etc.  You might want to keep a reduced clone of it in a KVM on the box itself to test updates.

Make the clients commodity systems with a binary distro - It'll make life easier.  Again you can test updates in a KVM - you have the system for it!

Cheers

Jon

----------

