4

I am working on petalinux, a linux port for Xilinx FPGAs called Zynq. The tool that I am using is petalinux-config.

This opens a GUI where I can select various options, such as compress kernel, enable/disable CRC, rootfs etc etc.

After this configuration I have to build with petalinux-build

This often compiles well, but some times after I change some settings I get the following error:

No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'.  Stop.


[root@xilinx kernel]# petalinux-build
INFO: Checking component...
INFO: Generating make files and build linux
INFO: Generating make files for the subcomponents of linux
INFO: Building linux
[INFO ] build system.dtb
[INFO ] build linux/kernel
[ERROR] make[5]: *** [silentoldconfig] Error 1
[ERROR] make[4]: *** [silentoldconfig] Error 2
[ERROR] make[3]: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'.  Stop.
[ERROR] make[2]: *** [sub-make] Error 2
[ERROR] make[1]: *** [/home/suheb/petalinux-v2013.10-final/Xilinx-ZC702-14.7/build/linux/kernel/xlnx-3.8/vmlinux] Error 2
ERROR: Failed to build linux

What is the meaning of this error?

Are there any general guidlines to tackle such errors? I understand that if I remove some features which are really needed by the OS, then it will not compile. But my idea is to make my image as small as possible so I need to remove more and more features, and compile it successfully.

I would like to understand, is this error because I have deselected some features (and those are required by some other modules) or it is some other problem such as user ownership/permission etc?

  • 1
    generally, you start with ensuring you have all dependencies. Do you have the autoconf tools? – mikeserv Apr 14 '14 at 1:30
3

As mentioned you are using your own custom linux, I assume you run make menuconfig to strip down feature as it leave you with some scripts. The issue is not in the toolchain but some prerequisites:

Petalinux copy the source code and give final codes in the build directory.

The reason you are getting this error could possibly be the source of your kernel. Please check your kernel and try to clean the directory by running

$>make distclean

This will ensure that your source is clean. Next step should be cleaning the created kernel located in build/linux/kernel. Run

$>petalinux-build -c kernel -x distclean
$>petalinux-build -c kernel

this should probably do the job.

  • Hi Priyank, welcome to unix.SE. You put in some effort properly formatting your response, but in the future, favor using the proper markdown instead of placing html tags. I've gone through and updated the formatting; you can click the "edit" link on your answer to see how what I've done affects the output. – drs Jun 27 '14 at 14:10
  • make distclean did the trick for me :) – Adit Ya Jun 13 '16 at 16:12
1

What is the meaning of this error?

Literally, that a make target has been referenced that does not exist. One possible reason is that make processes include directives (which source other makefiles) in-line when it encounters them. So, if the target is defined in a makefile which was supposed to be included at some point, but that point was never reached, the target won't exist.

To sort that out precisely, you could use make -d (which will give you some tracing) and go through the logic of the makefiles. However, keep in mind that some of the make files are evidently generated (as per the INFO output), and another possible cause of the problem is that the target was never generated. That's getting into a pretty serious regress...

There is a bit of a clue in the previous two lines referring to silentoldconfig. This indicates your .config is still being parsed, and likely contains some kind of inconsistency that causes the problem.

You have not said how you are doing the configuration. The make menuconfig et. al. systems ideally prevent such inconsistencies from occurring, but they are not perfect particularly in the context of a patched source tree, which this presumably is. It appears you maybe using a third-party configuration system instead (petalinux-config), and this could be what is failing to catch the issue.

I would go through adding/removing options one at a time to determine which one triggers the issue. If you are then convinced it should not be a problem, you can report it to the petalinux people.

0

I know this thread is old, but I had the same problem and found the solution on a Xilinx's support thread. You need to run petalinux-config and set the (X) PetaLinux u-boot config.

See the following link to Xilinx's support: AR# 66296

-1
  1. Install autoconf
  2. make syncconfig
  3. make

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.