[ANNOUNCE] Prebuilt kernels

Go To Last Post
24 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi again 'freaks

By now hopefully you've seen (or are about to see) my at32ipkg package repository. Originally this was going to include prebuilt kernels as well, but I didn't really want people to be able to kill their system with ipkg, so have decided to not include packages for kernels, busybox, base files etc.

Instead, prebuilt kernels are available on another page: http://niasdigital.com/bnizette/...

There aren't many versions up yet, but I plan to have kernels built with support for various versions and hardware configurations.

At the moment I just have 2.6.23.atmel.4 and latest git in default configurations and 2.6.23.atmel.4 with all spare SPI CS lines wired in to spidev. Both of these are available in ngw and stk1002 flavours. Eventually there will be stk1003/4 versions too.

Let me know if there're other versions you need ( bn@niasdigital.com ) and I'll see what I can do. Though be patient with me please, I may not have time, I ain't getting paid for any of this occourse :)

Have fun all!
-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

WoW!That`s great!Thanks squidgit !!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

Instead, prebuilt kernels are available on another page: http://niasdigital.com/bnizette/...

After following the instructions in the above link to update my NGW100 to a new kernel, my board kept re-booting after an exception immediately when the kernel started. The "if something breaks" instructions to reboot from the saved image ( set bootfile=uImage.old; boot ) did nothing; it still loaded the bad uImage. I found that an "fsload /uImage.old" followed by "bootm" did the trick and I was back up running the original kernel. I immediately deleted the bad uImage, and renamed the .old back to uImage. It's working fine now.

What went wrong? Aren't all NGW100 boards the same? I really appreciate the effort of squidgit to provide these pre-packaged kernels and would love to be able to use them.

I used the monolithic version because my WinXP couldn't handle the modules tar.tar file. Would it make a difference if I used the standard kernel and un-tar-tar'ed the modules somehow?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ronter,

when you save a tar file in Windows, just rename the extension and use WinRAR to open it.
http://www.rarlab.com/

You could also use wget on the NGW and untar it directly there.

I like cats, too. Let's exchange recipes.

Last Edited: Wed. Jan 2, 2008 - 03:22 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ronter wrote:
Quote:

Instead, prebuilt kernels are available on another page: http://niasdigital.com/bnizette/...

After following the instructions in the above link to update my NGW100 to a new kernel, my board kept re-booting after an exception immediately when the kernel started. The "if something breaks" instructions to reboot from the saved image ( set bootfile=uImage.old; boot ) did nothing; it still loaded the bad uImage. I found that an "fsload /uImage.old" followed by "bootm" did the trick and I was back up running the original kernel. I immediately deleted the bad uImage, and renamed the .old back to uImage. It's working fine now.

Thanks, indeed your way is more robust, now you mention it I have had problems with 'set' in some versions of uboot. Have changed the instructions :)
ronter wrote:
What went wrong? Aren't all NGW100 boards the same? I really appreciate the effort of squidgit to provide these pre-packaged kernels and would love to be able to use them.
Most likely your uboot load address is too low and the big monolithic kernel is actually overwriting useful gumph as it is decompressed.

In the uboot bootcmd, change any occurrence of 0x10200000 or 0x10300000 to something like 0x10400000. If there is no such occurrence then you may have to enter one. For example, booting a kernel over dhcp may be done with a bootcmd like

dhcp /boot/uImage;bootm

and it will automatically choose a load location and recognize it needs to use tftp. If you need to change the load address, the bootcmd will become:

dhcp 0x10400000 /boot/uImage;bootm

If it isn't immediately obvious what to change post back with the output of 'printenv' on your uboot prompt and I'll try and help :)

Don't forget to 'saveenv' once you've changed your bootcmd otherwise you'll have to go through this at every boot :D

Many thanks for using this service at this early stage and helping me iron out the bugs!

-S.

EDIT: brainfart in example bootcmds, fixed now :oops:

Last Edited: Wed. Jan 2, 2008 - 02:54 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ronter wrote:
I used the monolithic version because my WinXP couldn't handle the modules tar.tar file. Would it make a difference if I used the standard kernel and un-tar-tar'ed the modules somehow?
Under Windows I generally have Cygwin installed for good measure. You can use the command line 'tar' from inside cygwin.

If you've got the Atmel AVR32 Win32 Toolchain installed you'll have Cygwin on your box already.

And for the record, this probably would have fixed it as the static kernel probably would have been small enough to fit in the allocated space :)

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I would recommend VMware running Linux on Windows instead of Cygwin. Sounds like a good idea for a new wiki topic...

[EDIT] and here it is: http://avr32linux.org/twiki/bin/...

I like cats, too. Let's exchange recipes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Squidgit,

Can you recommend any reading on how to create ipkgs? I've created a wiki topic on rpm building for AVR32, and then I discovered that rpm in busybox sucks. There is no dependency checking and no uninstall function. I'll write a wiki when I understand how to do it myself. I find that wiki editing is a fantastic way to store and share my knowledge of the mundane/arcane so when I go all alzheimery I can look it up.

I like cats, too. Let's exchange recipes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm going to try making ipkgs of X today. I found this: http://www.handhelds.org/hyperma... explaining how to do it on non-debian systems since I use Fedora 8.

Squidgit, what do you think would be the best way to divide up all of the packages? Should I do it like the Fedora project does, and combine all of the X utilities in one ipkg, the server in another, the libs in another, fonts in another, and the headers in yet another? Does ipkg have a way to point the user to the source tarballs if they want them (similar to src.rpms)? Do you have an incoming/pub anonymous ftp so people can upload packages? I might see if my boss would let me set up a U.S. mirror on our server here since it's on 24-7-365 (unless it crashes, it's a thin-client terminal server and some of the people here I swear are trying to run Doom 3 on it) and we have OC3 service :twisted: Nobody hold their breath for that though.

I like cats, too. Let's exchange recipes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ninevoltz9 wrote:
I would recommend VMware running Linux on Windows instead of Cygwin. Sounds like a good idea for a new wiki topic...

[EDIT] and here it is: http://avr32linux.org/twiki/bin/...


So do I, good call, thanks as usual JV! I just tend to have Cygwin lying around anyway, it's a useful piece of kit.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ninevoltz9 wrote:
Squidgit,

Can you recommend any reading on how to create ipkgs?


http://handhelds.org/moin/moin.c... is what I've been working off, but it is actually slightly incomplete.

First, when you get ipkg-utils you'll probably want to replace the ipkg.py script with the one on my site (http://www.niasdigital.com/bnize...)

Second, when you actually run ipkg-build it'll tell you that you need some sections in your CONTROL/control file that aren't mentioned on the BuildingIpkg page. One of the required fields is "Source" which should point to a source tarball.

ninevoltz9 wrote:
I've created a wiki topic on rpm building for AVR32, and then I discovered that rpm in busybox sucks. There is no dependency checking and no uninstall function. I'll write a wiki when I understand how to do it myself. I find that wiki editing is a fantastic way to store and share my knowledge of the mundane/arcane so when I go all alzheimery I can look it up.
Brilliant, thanks! We all love your wiki pages, useful kit for all :)

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ninevoltz9 wrote:
Squidgit, what do you think would be the best way to divide up all of the packages? Should I do it like the Fedora project does, and combine all of the X utilities in one ipkg, the server in another, the libs in another, fonts in another, and the headers in yet another?
Seems a nice sane way to do it yup :)
ninevoltz9 wrote:
Does ipkg have a way to point the user to the source tarballs if they want them (similar to src.rpms)?
You can stick it in the Source field of CONTROL/control, though this doesn't really _do_ anything. If, when you submit the package, you can provide a link to the source tarball too that'd be aces as I'm keeping source tarballs on niasdigital.com/bnizette/src mainly for GPL compliance.
ninevoltz9 wrote:
Do you have an incoming/pub anonymous ftp so people can upload packages?
I don't, mainly because each time a packages gets added you must rebuild the package index. This unfortunately requires a local copy of every package currently in the repos and trying to keep local copies in sync with server copies when there are a bunch of users is a bit of a pita. Well, I do lie a bit, you can add individual index entries yourself, but AFAIK there isn't a script to do it so it becomes a bit of a dickaround getting the right bits in the right places. If the package is less than, say, 5MB the best way is probably just to attach them to an email. More than that I might set up such an anonymous ftp account, let you upload them, I'll then grab them and update the index.
ninevoltz9 wrote:
I might see if my boss would let me set up a U.S. mirror on our server here since it's on 24-7-365 (unless it crashes, it's a thin-client terminal server and some of the people here I swear are trying to run Doom 3 on it) and we have OC3 service :twisted: Nobody hold their breath for that though.
Coolies, that'd be nice :) Though I don't anticipate the load on our server to be too great for a while. Plus the speed advantages of a local mirror aren't huge when each package is a few 100KB.

Cheers JV,
-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Does the ipkg script on your site work for you? When I run ipkg update it fails, first because busybox wget doesn't like --passive-ftp. Then the destination path doesn't get passed to the downloading routine. Installing local packages fails too, but I fixed that by removing the ./ from ./control.tar.gz and ./data.tar.gz. Apparently busybox tar doesn't like that. Should I be using the python ipkg program instead? Doesn't that then need python on the AVR32 board? I've got my first working ipkg built now though.

I like cats, too. Let's exchange recipes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ninevoltz9 wrote:
Does the ipkg script on your site work for you? When I run ipkg update it fails, first because busybox wget doesn't like --passive-ftp.
Yeah I've got a binary of GNU wget on my site too, you should use that. Though due to some quirk of serverness it's called 'wgt', you must rename it when it hits your board.
ninevoltz9 wrote:
Then the destination path doesn't get passed to the downloading routine.
This may be because the ipkg.conf which was on my site somehow got whitespace corrupted, fixed now :)
ninevoltz9 wrote:
Installing local packages fails too, but I fixed that by removing the ./ from ./control.tar.gz and ./data.tar.gz. Apparently busybox tar doesn't like that.
Just to clarity; the ipkg.py on my site replaces the one in the ipkg-utils package and is used when building packages on a host. It isn't a replacement for the ipkg shell script which runs on your avr32.

Anyway, this was in fact what I had to change in the script python script for the host, though I haven't run in to that issue on the target :s. It tries to extract *control.tar.gz to account for the fact that there may or may not be a ./ on the front. In the new ipkg.py on my site I've just added the appropriate switches to recognize the wildcards in the path name, I wonder whether something similar must be done in the ipkg shell script for the target.

ninevoltz9 wrote:
I've got my first working ipkg built now though.
Cool :)

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Here's the latest version of ipkg written in C, compiled for AVR32. Works like a charm with the ipkg.conf from squidgit's site. http://avr32linux.org/twiki/bin/...

I like cats, too. Let's exchange recipes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Wiki about building ipkgs is here:
http://avr32linux.org/twiki/bin/...

I like cats, too. Let's exchange recipes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Squidgit,

Can we get an anonymous ftp pub/incoming to upload packages to? I'm sure you don't want me flooding your email with hundreds of megs of ipkgs :)

I like cats, too. Let's exchange recipes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

squidgit wrote:
for the record, this probably would have fixed it as the static kernel probably would have been small enough to fit in the allocated space :)

-S.

You're right, that fixed it. I'm running 2.6.23 now -- thanks very much.

B.T.W... Cygwin untar'ed the archive just fine. I also have a Parallels Workstation VM. I'll get around someday to installing a Linux in it; I intended to use that to re-build new AVR32 kernels - but wait - thanks to you, I don't need to! :D

One small question if I may... I notice that during etc/init.d/S10modules-init it fails to load 2 modules that are specified in the etc/modules file. These are "mmc_block" and "atmel-mci". Are these no longer needed? Should I comment-out those lines in etc/modules ?

Thanks for your help and super thanks for these pre-built kernels.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ninevoltz9 wrote:
Here's the latest version of ipkg written in C, compiled for AVR32. Works like a charm with the ipkg.conf from squidgit's site. http://avr32linux.org/twiki/bin/...
Cool thanks. I compiled the 'C' version a while back, it worked fine for a while but every now and then would segfault. For now I think I'll recommend on the at32ipkg homepage that people use the shell script but use your C version myself. If in a week all's hunky-dory I'll change the advice :)

Thanks for this and the Wiki entries, I had been meaning to be making all these :)

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ninevoltz9 wrote:
Squidgit,

Can we get an anonymous ftp pub/incoming to upload packages to? I'm sure you don't want me flooding your email with hundreds of megs of ipkgs :)

Done :)

Just ping my email when you're done and I'll shuffle things appropriately.

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ronter wrote:
One small question if I may... I notice that during etc/init.d/S10modules-init it fails to load 2 modules that are specified in the etc/modules file. These are "mmc_block" and "atmel-mci". Are these no longer needed? Should I comment-out those lines in etc/modules ?
Are you still using the monolithic kernel? If so then there won't be any modules for that script to load. All I do is

#: mv /etc/init.d/S10modules-init /etc/init.d/_S10modules-init

as only S-prefix scripts will be run and this means it's still there to rename if you go back to using modules.

If you are now using the modular kernel then yes, these 2 have been built in now in case you want to boot off an SD card. Indeed just remove those 2 module entries.

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Squidgit,
Thanks for the pre-built kernels, I appreciate you doing that for everyone. I am having a problem, however with not being able to untar the modules-xxx.tar.bz2 file for the 2.6.23.atmel.4 ATNGW100
Spidev download. I am able to see the file on the SD card from the board, but when I try to untar it into the /dev/modules directory (tar -xvf blah blah), I get a "tar: invalid tar magic". I copied the file over several times to make sure it wasn't just a file copy error. Has anyone else had a problem with this tar file? Also, when I opened the archive with RAR, it mentions a reference to a "build" and "source" directory structure - not sure what that means. Thanks for your help.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello apineda,
the problem is your tar arguments.
I you write "tar" and enter, you will see the options. For bz2 you need 'j' option, so try :

tar -xjvf modele-xxx.tar.bz2

:wink:

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks! That was it.