[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] uClinux works, but...
Ivan wrote:
> finally uClinux works in my board.
well done! :)
> The problem
> was the use or hardware multiplier. Virtex-E don't
> have embedded multipliers, so... :)
ahh, of course. I remember now that troubled someone else as well -
time to add it to the FAQ!
> When i compile the kernel the following warning
> message appear:
> "BFD:
> /home/ivan/Aplicaciones/MicroBlaze/uClinux/uClinux-dist-20030909/images/image.elf:
> warning: the asigned .romfs section is not in the
> segment" :P
>
> Is normal, isn't it?
Yes, just a bug/feature of objcopy.
> Well, and the kernel log is:
[snip]
> Shell invoked to run file: /etc/rc
> Command: hostname mbvanilla
> __alloc_pages: 6-order allocation failed (gfp=0x1f0/0)
> Allocation of length 232513 from process 9 failed
> Buffer memory: 20kB
> Cache memory: 0kB
> Free pages: 268kB ( 0kB HighMem)
> Zone:DMA freepages: 268kB
> Zone:Normal freepages: 0kB
> Zone:HighMem freepages: 0kB
> ( Active: 0, inactive: 5, free: 67 )
> 11*4kB 6*8kB 3*16kB 2*32kB 1*64kB 0*128kB 0*256kB
> 0*512kB 0*1024kB 0*2048kB = 2)= 0kB)
> = 0kB)
> Unable to allocate RAM for process text/data, errno 12
[snip]
> hostname: Cannot allocate memory
> Command: /bin/expand /etc/ramfs.img /dev/ram0
> Command: /bin/expand /etc/ramfs.img /dev/ram1
> Command: mount -t proc proc /proc
> __alloc_pages: 6-order allocation failed (gfp=0x1f0/0)
> Allocation of length 232528 from process 12 failed
you don't have a single memory block big enough to load the busybox
application. Busybox rolls all of these common utils into a single
executable, which saves disk space overall, but increases the memory
requirements any specific execution.
How big is your busybox executable (it's in uClinux-dist/romfs/bin/busybox)?
> Command: mkdir /var/tmp
> /var/tmp: %m
...
These all fail because /var didn't mount.
What's the solution? A couple of ideas - first of all I'd go into the
vendor/user config, and strip out all but the bare essentials. In
network apps, unselect boa, inetd and telnetd. In busybox, remove as
much as you can. Unselect the "support for NFS mounts" option as well.
Basically, you need to free up memory, and make busybox smaller.
Also, on your linux dev host, cd into uClinux-dist/romfs/bin, and execute
$ mb-flthdr busybox
At the end of the listing, the "flags" line should say that it is marked
as compressed, and load-to-RAM. If not, let us know - it's easy to do.
You aren't far from a working uClinux system now!
John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/