ts-7000
[Top] [All Lists]

Re: [ts-7000] Re: Kernel config required settings for TS SBCs?

To:
Subject: Re: [ts-7000] Re: Kernel config required settings for TS SBCs?
From: Ilya Goldberg <>
Date: Tue, 29 Sep 2009 11:15:38 -0400
On Sep 29, 2009, at 9:58 AM, odonovan_dan wrote:

> --- In  "Blair" <> wrote:
>>
>> Probably a FAQ but I'll throw it out there anyway.
>> So far I've been working reasonably well on Linux 2.4 on a 7260  
>> board.  Now I'm finding a few needs for stuff that's in 2.6 e.g.  
>> audio, inotify, higher timer resolutions etc.  I'd like to take a  
>> stab at building a kernel from scratch and I downloaded what  
>> appears to be a 2.6.29 kernel tarball from the 7260 subdirectory  
>> on the TS website.  But I've never built a kernel before let alone  
>> one that is tailored to the SBC.  I fired up menuconfig and there  
>> are more options than a Chinese restaurant menu (or perhaps a  
>> really great NY deli).  So, does anyone have a config file or list  
>> of options that are required to build a kernel for TS boards?   
>> Perhaps a list of stuff you should never attempt to use would be  
>> good too.
>>
>
>
> To get started with a basic config that works on the SBC, you could  
> take a look in the arch/arm/configs subdirectory to see if there's  
> already a config defined for your target device.  To apply your  
> chosen config (ts7400_defconfig, for my example), type something like:
>
> # make ts7400_defconfig
> (This assumes your cross-compilation environment is already set up  
> correctly, by the way)
>
> Then you should be able to add extra options using
> # make menuconfig
>

I've just spent some hours on this.  As background, I haven't  
compiled a kernel since 2.0 days (> 10 years!), and have never  
attempted a cross-compile.

The gnueabi crosstools on TS's website don't work with the source tar- 
ball posted there:
crosstool-linux26-3.4.4-2005q3-2.tar.gz doesn't work with  
tskernel-2.6.21-ts-src.tar.gz
This combination results in the "sorry, unimplemented: -mfloat- 
abi=hard and VFP" error.

So I went to this website:
http://jandmworks.com/ts7200.html
While this website is very helpful, there are several errors in the  
menuconfig.sh, build.sh and modules.sh scripts.
They "almost" work - you have to remove the quotes in the make  
statements, and make sure that the CCPTH variable points to the bin  
directory containing things like "arm-none-linux-gnueabi-gcc" etc.   
Otherwise its got good recipes to get going.
The crosstools suggested there also point to TS's crosstool- 
linux26-3.4.4-2005q3-2.tar.gz, which doesn't work with linux-2.6.23- 
rc1_arm_marvin.tar.bz either, generating the "uninmplemented" error  
above.

So, I went to this site:
http://stoian.us/hardware/
Which is also quite helpful, and this pointed me to these crosstools:
http://glomationinc.com/download/Generic-arm_gcc-4.2.3- 
glibc-2.3.3.tar.bz2

So with these crosstools, and the source tar-ball here:
http://jandmworks.com/ts7200/linux-2.6.23-rc1_arm_marvin.tar.bz

And the config here:
http://jandmworks.com/ts7200/linux-2.6.23-rc1-jkc.config
For some reason, this config enables swap, which is probably not a  
good idea on a flash system.  I left it alone for now.

I was able to compile a kernel, format a CF card with ext2, and make  
a root file system - all by mostly following what was written up on  
http://jandmworks.com/ts7200.html. This is on FC11 running in  
Virtualbox 3.0.6 on OS X 10.4.11 on a 2 GHz Core Duo Powebook (whew!).

No word yet if this kernel actually boots - will find out tonight.   
It and its modules compiled without error though.

There's been a lot of traffic about math on this processor.  There  
are several ways of getting bad floating point compiled-in.  I don't  
mean just performance, I mean incorrect FP implementation due to  
gcc's incompatibilities with Maverick Crunch.  So, whatever I get I  
plan on testing with paranoia and linpack.  Cross-compiled, native- 
compiled, etc.
http://www.netlib.org/benchmark/linpackc
http://orion.math.iastate.edu/burkardt/c_src/paranoia/paranoia.c

For reference, the TS-linux-11 stock distribution has these  
performances on a TS7260:
gcc -O4 -DSP -DUNROLL -o linpack-dsp-unrl-O4 linpack.c -lm
Unrolled Single  Precision   275 Kflops ; 20 Reps

That's almost exactly 1,000 times slower than my core-duo, but at  
least paranoia reports no errors of any kind.  Hopefully the saner  
floating point treatment with the new kernel/crosstools setup will  
speed this up by a factor of 10 or so.
There's apparently still no hope for Maverick Crunch and gcc - its  
fast but incorrect.  Maybe others had better luck.

That's quite a bit, but I just went through this literally hours ago,  
so I thought I'd spit it all out.

Thanks for everyone's help, code, and trial and error.  Someday  
someone will put all these bits together in a fall-off-a-log kind of  
way, but we're not there yet.
-I


>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU