I am trying to compile the kernel for imx8x using the steps provided in:
Build Linux Kernel from Source Code | Toradex Developer Center.
When compiling I seem to be missing some dependencies but I cant figure out what I need to install :
aarch64-none-linux-gnu-ld: Unexpected GOT/PLT entries detected!
aarch64-none-linux-gnu-ld: Unexpected run-time procedure linkages detected!
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `pci_imx_set_msi_en':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1913: undefined reference to `dw_pcie_find_capability'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readw_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:329: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writew_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:324: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
Can you please advise as to what I need to install ?
hey @nmohan86,
In the prerequisites section for the link you gave there is a hyperlink for Install Tools and Dependence.
This should help.
-Eric
I installed all the tools and dependencies:
5 dev ⌘ ✔ sudo apt-get install bc build-essential git libncurses5-dev lzop perl libssl-dev bison flex 28m41s /home/nmohan/ivwatch-repos/apollo-app
[sudo] password for nmohan:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
bc is already the newest version (1.07.1-3build1).
bison is already the newest version (2:3.8.2+dfsg-1build1).
build-essential is already the newest version (12.9ubuntu3).
flex is already the newest version (2.6.4-8build2).
lzop is already the newest version (1.04-2build2).
libncurses5-dev is already the newest version (6.3-2ubuntu0.1).
libssl-dev is already the newest version (3.0.2-0ubuntu1.15).
perl is already the newest version (5.34.0-3ubuntu1.3).
git is already the newest version (1:2.34.1-1ubuntu1.10).
0 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
Hey @nmohan86,
Can you verify that your host machine is setup correctly according to this.
And can you show the error logs from the command you are running to the error message.
-Eric
The command I ran is:
make -j$(nproc) Image.gz 2>&1 | tee build.log
See output:
SYNC include/generated/autoconf.h
CALL scripts/atomic/check-atomics.sh
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
AR init/built-in.a
LD vmlinux.o
MODPOST vmlinux.symvers
MODINFO modules.builtin.modinfo
GEN modules.builtin
LD .tmp_vmlinux.kallsyms1
aarch64-none-linux-gnu-ld: Unexpected GOT/PLT entries detected!
aarch64-none-linux-gnu-ld: Unexpected run-time procedure linkages detected!
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `pci_imx_set_msi_en':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1913: undefined reference to `dw_pcie_find_capability'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readw_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:329: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writew_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:324: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_l1ss_quirk':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:2913: undefined reference to `dw_pcie_find_ext_capability'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_l1ss_quirk':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:2918: undefined reference to `dw_pcie_read'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:2934: undefined reference to `dw_pcie_read'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:2936: undefined reference to `dw_pcie_read'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1800: undefined reference to `dw_pcie_find_capability'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1804: undefined reference to `dw_pcie_link_up'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1825: undefined reference to `dw_pcie_wait_for_link'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1873: undefined reference to `dw_pcie_wait_for_link'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readw_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:329: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `imx6_pcie_start_link':
/home/user/linux-toradex/drivers/pci/controller/dwc/pci-imx6.c:1825: undefined reference to `dw_pcie_wait_for_link'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_writel_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:314: undefined reference to `dw_pcie_write_dbi'
aarch64-none-linux-gnu-ld: drivers/pci/controller/dwc/pci-imx6.o: in function `dw_pcie_readl_dbi':
/home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/pci/controller/dwc/pcie-designware.h:319: undefined reference to `dw_pcie_read_dbi'
aarch64-none-linux-gnu-ld: drivers/media/platform/mxc/capture/mx6s_capture.o: in function `mx6s_csi_open':
/home/user/linux-toradex/drivers/media/platform/mxc/capture/mx6s_capture.c:1192: undefined reference to `vb2_dma_contig_memops'
aarch64-none-linux-gnu-ld: drivers/media/platform/mxc/capture/mx6s_capture.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `vb2_dma_contig_memops' which may bind externally can not be used when making a shared object; recompile with -fPIC
/home/user/linux-toradex/drivers/media/platform/mxc/capture/mx6s_capture.c:1192:(.text+0x2624): dangerous relocation: unsupported relocation
aarch64-none-linux-gnu-ld: /home/user/linux-toradex/drivers/media/platform/mxc/capture/mx6s_capture.c:1192: undefined reference to `vb2_dma_contig_memops'
make: *** [Makefile:1227: vmlinux] Error 1
@nmohan86,
It looks like you have a mismatch somewhere between the source, the toolchain, and/or the environment.
Can you verify.
Kernel source location and toolchain installed and environment variables you are setting.
-Eric
I was able to figure it out thanks! I am using the fix terminal so had to make a few modifications.