You are not logged in.

#1 2010-06-26 19:58:32

synthead
Member
Registered: 2006-05-09
Posts: 1,337

Kernel panics with a Transmeta Crusoe processor (i686)

Here's the /proc/cpuinfo data on it, taken from a running PXE session:

processor       : 0
vendor_id       : GenuineTMx86
cpu family      : 5
model           : 4
model name      : Transmeta(tm) Crusoe(tm) Processor TM5800
stepping        : 3
cpu MHz         : 929.094
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr cx8 sep cmov mmx longrun lrti constant_tsc up
bogomips        : 1858.61
clflush size    : 32
cache_alignment : 32
address sizes   : 32 bits physical, 32 bits virtual
power management:

Here is a screenshot of the panic (is there a better way to do this?):
trasmeta_crusoe_panic.jpg

Not exactly sure what kernel this is running, but this was installed on the machine a day or two ago.

Offline

#2 2010-06-26 20:27:52

xduugu
Member
Registered: 2008-10-16
Posts: 292

Re: Kernel panics with a Transmeta Crusoe processor (i686)

Offline

#3 2010-06-27 22:28:17

synthead
Member
Registered: 2006-05-09
Posts: 1,337

Re: Kernel panics with a Transmeta Crusoe processor (i686)

Reading more into it, it is an i686 compatible CPU, but it can't use all of the i686 optimization flags: http://en.gentoo-wiki.com/wiki/Safe_Cflags/Transmeta

I think I'm going to create a chroot on my server to build 32-bit packages without these optimizations.  I'll build the base set of packages, and if everything works out, I'm going to write a shell script to pick the new packages off archlinux mirrors and rebuild them with these flags.  In the end, I'll create an unofficial repository for arch for the 'crusoe' CPU smile

More about the CPU:
http://en.wikipedia.org/wiki/Transmeta_Crusoe

Offline

#4 2010-06-29 09:27:22

synthead
Member
Registered: 2006-05-09
Posts: 1,337

Re: Kernel panics with a Transmeta Crusoe processor (i686)

Here is the repo so far.  There are still missing dependencies in [core] but I am compiling them.

http://max-o.sytes.net/crusoe

Here are my current scripts:

buildpkgs

#!/bin/bash

HISTORYFILE=".buildpkgs_history"
BUILDPKGEXEC="./buildpkg"

ext () {
 history -w $HISTORYFILE
 echo
 exit
}

trap ext SIGINT
history -r $HISTORYFILE

for (( ; ; ))
do
 #echo -ne '\E[36;40m'"==> "; tput sgr0; echo -n "Which package to build? "
 read -ep "Which package to build? " pkgtobuild; history -s $pkgtobuild
 $BUILDPKGEXEC $pkgtobuild
done

buildpkg

#!/bin/bash

ROOTDIR="/home/crusoe"
ABSDIR="/var/abs"
BUILDDIR="$ROOTDIR/build"
REPODIR="$ROOTDIR/crusoe"
MAKEPKGCONF="$ROOTDIR/makepkg.conf"

for cmds in $@; do
 case $cmds in
  force) force="1";;
  clean) clean="1";;
 esac
done

message () {
 case $1 in 
  0) echo -ne '\E[33;40m'"Action: ";;
  1) echo -ne '\E[31;40m'"Error: ";; 
  2) echo -ne '\E[32;40m'"Success: ";;
 esac
 tput sgr0; echo "$2"
 if [[ $1 = "1" ]]; then exit; fi
}

if [[ $1 = "" ]]; then exit; fi
REPO="$(cd $ABSDIR; find . -maxdepth 2 -name $1 | sed -e 's/^.\///' -e 's/\/.*$//')"
if [ ! -f $ABSDIR/$REPO/$1/PKGBUILD ]; then message 1 "Package $1 not found."; fi
. $ABSDIR/$REPO/$1/PKGBUILD
if [[ $(echo "$REPO" | wc -l) != "1" ]]; then message 1 "Multiple packages of $1 found in ABS."; fi
if [ -f $REPODIR/$REPO/os/i686/$1-$pkgver-$pkgrel-*.pkg.tar.* ]; then 
 if [[ $force != "1" ]]; then message 1 "Package $1-$pkgver-$pkgrel already exists."; fi
 message 0 "Forcing rebuild of package $1-$pkgver-$pkgrel..."
else
 message 0 "Building package $1-$pkgver-$pkgrel..."
fi
if [[ $clean = "1" ]]; then message 0 "Removing $REPO/$1 working directory..."; rm -rf $BUILDDIR/$REPO/$1; fi

mkdir -p $BUILDDIR/$REPO
cp -Rv $ABSDIR/$REPO/$1 $BUILDDIR/$REPO | tee $LOGFILE
cd $BUILDDIR/$REPO/$1
rm -rf {src,pkg} 
makepkg -L -f --config $MAKEPKGCONF || message 1 "Build of package $1-$pkgver-$pkgrel failed." 

message 0 "Adding package $1-$pkgver-$pkgrel to repository..."
mkdir -p $REPODIR/{core,extra,community}/os/i686
cp -v *-$pkgver-$pkgrel-*.pkg.tar.* $REPODIR/$REPO/os/i686
repo-add $REPODIR/$REPO/os/i686/$REPO.db.tar.gz $REPODIR/$REPO/os/i686/*-$pkgver-$pkgrel-*.pkg.tar.*

message 2 "Package $1-$pkgver-$pkgrel built and added to repository."

Later down the road, I'm going to diff the current abs and an old abs every half an hour or so to build the newest packages.  I'm going to need to make a lockfile for this too.

Offline

Board footer

Powered by FluxBB