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/
|