UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Newbie maikfox
Newbie
11,052 Views
Registered: ‎01-23-2015

Petalinux 2014.4 build problem with large rootfs

Hello,

 

I'm having troubles when building my PetaLinux 2014.4 System on Ubuntu 14.04 LTS when I start adding to "much" to my rootfs.

 

Details:

- Zynq on ZC706 board

- changed UBoot config (#define CONFIG_SYS_BOOTM_LEN 0xF000000) and netstart offsets etc to make the book process work

- "new" PetaLinux Project based on the ZC706 BSP for PetaLinux 2014.4

- Boot from SDCard, BOOT.BIN and image.ub (kernel + dtb)

- several user-generated apps and libs that only contain pre-compiled software & data

- everything else is "pretty standard", in the kernel config I added some of the usb device drivers etc.

 

Problem:

When my compressed rootfs starts to become about 30 MB, I start getting problems during the build-process during the "vmlinux linux/kernel" step. A "petalinux-build -x mrproper" doesn't help.

[ --- snipped --- ]
[INFO ] modules_install linux/kernel
[INFO ] post-install linux/rootfs/gdbm
[INFO ] post-install linux/rootfs/sqlite3
[INFO ] post-install linux/rootfs/fwupgrade
[INFO ] post-install linux/rootfs/joe37
[INFO ] post-install linux/rootfs/python34
[INFO ] post-install linux/rootfs/roothomedata
[INFO ] package rootfs.cpio to /home/maik/LAWAL_SVHW/Petalinux/images/linux
[INFO ] Update and install vmlinux image
[INFO ] vmlinux linux/kernel
[ERROR] make[4]: *** [vmlinux] Error 1
[ERROR] make[3]: *** [sub-make] Error 2
[ERROR] make[2]: *** [vmlinux_only] Error 2
[ERROR] make[1]: *** [update-kernel-package] Error 255
ERROR: Failed to build linux

 An exemplary snippet from a build.log looks like this:

[INFO ] package rootfs.cpio to /home/maik/LAWAL_SVHW/Petalinux/images/linux
[ALL  ] petalinux-gen-initrd -d /home/maik/LAWAL_SVHW/Petalinux/build/linux/rootfs/targetroot -o "/home/maik/LAWAL_SVHW/Petalinux/images/linux/rootfs.cpio" --l
inux-build "/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel" --initcpio "/home/maik/LAWAL_SVHW/Petalinux/build/linux/rootfs_init_cpio_file" || exit 255
[ALL  ] Generating filesystem description file for gen_init_cpio...
[ALL  ] Creating /init symlink if required...Done.
[ALL  ] directories...files...symlinks...device nodes...done.
[ALL  ] Generating CPIO archive /home/maik/LAWAL_SVHW/Petalinux/images/linux/rootfs.cpio ...done.
[ALL  ] gzip -c "/home/maik/LAWAL_SVHW/Petalinux/images/linux/rootfs.cpio" > "/home/maik/LAWAL_SVHW/Petalinux/images/linux/rootfs.cpio.gz" || exit 255
[ALL  ] mkimage -A arm -T ramdisk -O linux -C gzip -d "/home/maik/LAWAL_SVHW/Petalinux/images/linux/rootfs.cpio.gz" "/home/maik/LAWAL_SVHW/Petalinux/images/lin
ux/urootfs.cpio.gz" || exit 255
[ALL  ] Image Name:   
[ALL  ] Created:      Fri Jan 23 15:07:18 2015
[ALL  ] Image Type:   ARM Linux RAMDisk Image (gzip compressed)
[INFO ] Update and install vmlinux image
[ALL  ] Data Size:    27386518 Bytes = 26744.65 kB = 26.12 MB
[ALL  ] Load Address: 00000000
[ALL  ] Entry Point:  00000000
[ALL  ] make INSTANCE=linux/kernel -C /home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel vmlinux_only install || exit 255
[ALL  ] make[2]: Entering directory `/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel'
[ALL  ] rsync /home/maik/LAWAL_SVHW/Petalinux/subsystems/linux/configs/kernel/config /home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/xlnx-3.17/.config
[ALL  ] rm -rf /home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/boot /home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/usr
[ALL  ] ln -s "/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/xlnx-3.17/arch/arm/boot" "/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/boot"
[ALL  ] ln -s "/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/xlnx-3.17/usr" "/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/usr"
[INFO ] vmlinux linux/kernel
[ALL  ] make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- O=/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/xlnx-3.17 KCONFIG_CONFIG="/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/xlnx-3.17"/.config -j2 -C /opt/pkg/petalinux-v2014.4-final/components/linux-kernel/xlnx-3.17 vmlinux 
[ALL  ] make[3]: Entering directory `/opt/pkg/petalinux-v2014.4-final/components/linux-kernel/xlnx-3.17'
[ALL  ] make[1]: Entering directory `/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel/xlnx-3.17'
[ALL  ]   GEN     ./Makefile
[ALL  ] scripts/kconfig/conf --silentoldconfig Kconfig
[ALL  ]   CHK     include/config/kernel.release
[ALL  ]   GEN     ./Makefile
[ALL  ]   CHK     include/generated/uapi/linux/version.h
[ALL  ]   CHK     include/generated/utsrelease.h
[ALL  ]   Using /opt/pkg/petalinux-v2014.4-final/components/linux-kernel/xlnx-3.17 as source for kernel
[ALL  ] make[5]: `include/generated/mach-types.h' is up to date.
[ALL  ]   CALL    /opt/pkg/petalinux-v2014.4-final/components/linux-kernel/xlnx-3.17/scripts/checksyscalls.sh
[ALL  ]   GEN     usr/initramfs_data.cpio.gz
[ALL  ]   CHK     include/generated/compile.h
[ALL  ]   GZIP    kernel/config_data.gz
[ALL  ]   CHK     kernel/config_data.h
[ALL  ]   AS      usr/initramfs_data.o
[ALL  ]   LD      usr/built-in.o
[ALL  ]   LINK    vmlinux
[ALL  ]   LD      vmlinux.o
[ALL  ]   MODPOST vmlinux.o
[ALL  ]   GEN     .version
[ALL  ]   CHK     include/generated/compile.h
[ALL  ]   UPD     include/generated/compile.h
[ALL  ]   CC      init/version.o
[ALL  ]   LD      init/built-in.o
[ALL  ]   KSYM    .tmp_kallsyms1.o
[ALL  ] arch/arm/kernel/built-in.o: In function `cpu_resume':
[ALL  ] arch/arm/kernel/hyp-stub.o:(.data+0x2e8): relocation truncated to fit: R_ARM_CALL against symbol `__hyp_stub_install_secondary' defined in .text section in arch/arm/kernel/built-in.o
[ERROR] make[4]: *** [vmlinux] Error 1
[ERROR] make[3]: *** [sub-make] Error 2
[ALL  ] make[3]: Leaving directory `/opt/pkg/petalinux-v2014.4-final/components/linux-kernel/xlnx-3.17'
[ERROR] make[2]: *** [vmlinux_only] Error 2
[ALL  ] make[2]: Leaving directory `/home/maik/LAWAL_SVHW/Petalinux/build/linux/kernel'
[ERROR] make[1]: *** [update-kernel-package] Error 255
[ALL  ] make[1]: Leaving directory `/home/maik/LAWAL_SVHW/Petalinux/build/linux'
[ALL  ] make: *** [package] Error 2
[ALL  ] make: Leaving directory `/home/maik/LAWAL_SVHW/Petalinux/build/linux'
[INFO ] config linux/rootfs
[INFO ] oldconfig linux
[INFO ] oldconfig linux/kernel
[INFO ] oldconfig linux/rootfs

It looks like the error (relocation truncated with an ARM_CALL) points to some size limit (rel/abs jump??) while packaging vmlinux. I have not figured out where this size limit comes from or where it is defined/set/computed/...

 

If I start taking out my own software packages piece by piece, I end up with a working build (several hundred kB won't change anything, but taking out a MegaByte or two usually helps).

 

Switching off the "compressed kernel image" in petalinux-config doesn't change the behaviour.

 

I am lost, I need more pointers on how to solve this issue... Does anyone have a hint for me?

Any special version of some library needed?

0 Kudos
13 Replies
Visitor bstein
Visitor
10,467 Views
Registered: ‎05-19-2015

Re: Petalinux 2014.4 build problem with large rootfs

Hi maikfox,

 

Have you been able to solve this problem? I'm having a similar issue with another build (not for petalinux), but the error is exactly the same. Has anyone else had success solving this? I'd appreciate some pointers.

 

Thanks!

0 Kudos
Newbie maikfox
Newbie
10,458 Views
Registered: ‎01-23-2015

Re: Petalinux 2014.4 build problem with large rootfs


@bstein wrote:

Have you been able to solve this problem?


No. I avoid it by keeping my rootfs small, causing some inconvenience at other points, but I had no time for further investigation. I'm still lost and thinking about looking for other ways of using Linux on Zynq.

0 Kudos
Xilinx Employee
Xilinx Employee
10,438 Views
Registered: ‎12-17-2007

Re: Petalinux 2014.4 build problem with large rootfs

With FIT images (what PetaLinux uses by default) it is best to keep your rootFS image small for a number of reasons. If you have a specific need to have a larger rootFS image then you should likely be considering something else like a filesystem on disk or compressed rootFS image (without loading via FIT).
-------------------------------------------
this space intentionally left blank
0 Kudos
Visitor gstro
Visitor
9,688 Views
Registered: ‎06-15-2015

Re: Petalinux 2014.4 build problem with large rootfs

What is an estimated size limit for the rootfs image to be considered "too-big?" Running PetaLinux 2015.2 on Zynq.

0 Kudos
Explorer
Explorer
9,528 Views
Registered: ‎03-26-2010

Re: Petalinux 2014.4 build problem with large rootfs

I'd also be interested in seeing some numbers for a "too large" rootfs. Can anyone at Xilinx comment?

0 Kudos
Explorer
Explorer
9,458 Views
Registered: ‎02-16-2014

Re: Petalinux 2014.4 build problem with large rootfs

> What is an estimated size limit for the rootfs image to be considered "too-big?" Running PetaLinux 2015.2 on

Zynq.

 

About 40M.

0 Kudos
Xilinx Employee
Xilinx Employee
9,369 Views
Registered: ‎12-17-2007

Re: Petalinux 2014.4 build problem with large rootfs

All,  sorry for the delay in responding.  The forums didn't send me a notice of a reply.

 

"Too big" is dictated by how U-Boot is configured.  There is an Answer Record on the topic here:

http://www.xilinx.com/support/answers/61332.html

 

-------------------------------------------
this space intentionally left blank
0 Kudos
Highlighted
Adventurer
Adventurer
7,466 Views
Registered: ‎01-09-2014

Re: Petalinux 2014.4 build problem with large rootfs

Hello all,

 

If you hit the limit,

and then you have taken out whatever you added (assuming you use initramfs [via FIT]),

and if you rebuild and see:

 

[ALL  ] arch/arm/kernel/built-in.o: In function `cpu_resume':
[ALL  ] arch/arm/kernel/hyp-stub.o:(.data+0x2e8): relocation truncated to fit: R_ARM_CALL against symbol `__hyp_stub_install_secondary' defined in .text section in arch/arm/kernel/built-in.o
[ERROR] make[4]: *** [vmlinux] Error 1
[ERROR] make[3]: *** [sub-make] Error 2

delete 'build' AND 'images' folders in your project

 

I kept on hitting this compilation error even though I have taken out almost everything from rootfs.

It of course does NOT help to overcome the U-boot (zlib) uncompression failure @ boot time.

 

Im using

Ubuntu 12.04,  petalinux 2014.4

0 Kudos
Participant armendzh
Participant
6,178 Views
Registered: ‎03-04-2016

Re: Petalinux 2014.4 build problem with large rootfs

I am having the same issue.

I want to have Qt libraries available for my built of PetaLinux.

 

Are there any way of addressing this issue?

0 Kudos
Observer kdwivedi01
Observer
3,286 Views
Registered: ‎03-03-2016

Re: Petalinux 2014.4 build problem with large rootfs

Hello Everyone,

 

I am also facing same error while using rootfs of larger size in petalinux.

 

[ALL  ] arch/arm/kernel/built-in.o: In function `cpu_resume':
[ALL  ] arch/arm/kernel/hyp-stub.o:(.data+0x2e8): relocation truncated to fit: R_ARM_CALL against symbol `__hyp_stub_install_secondary' defined in .text section in arch/arm/kernel/built-in.o
[ERROR] make[4]: *** [vmlinux] Error 1
[ERROR] make[3]: *** [sub-make] Error 2
[

Please share how you have resolved this issue.

 

Thanks & Regards,

Krishna Dwivedi

0 Kudos
Explorer
Explorer
3,272 Views
Registered: ‎11-22-2015

Re: Petalinux 2014.4 build problem with large rootfs

You are trying to build a kernel that contains the rootfs.  You need to build a standalone ramdisk if it exceeds a certain size.  I don't know how you do this in petalinux but you should try search the forums since the reason for this problem has been discussed in some other threads.

 

jeff

0 Kudos
Visitor ltarik
Visitor
3,161 Views
Registered: ‎06-05-2016

Re: Petalinux 2014.4 build problem with large rootfs

it is extremely frustrating that with such a well known issue no one from Xilinx provided a well explained step by step solution for the petalinux-build size too big issue. when trying to evaluate the zynq for work to make a decision if it is the right platform for our product. it just make no sense !!

0 Kudos
Visitor zymq
Visitor
1,827 Views
Registered: ‎08-02-2017

Re: Petalinux 2014.4 build problem with large rootfs

Still a problem in 2017.1

 

Okay, I will go ahead and save us all some time...

 

Still a problem in 2017.2, .3, .4, .5, .6, .7, ...

 

Eh... you get it.

 

Still a problem in 2018.1, .2, .3...

 

My $4000.00 ZCU102 won't do it, but my $50.00 Beagle Bone Black will.