drivers/built-in.o: In function `pnp_check_dma':
(.text.pnp_check_dma+0xe0): undefined reference to `request_dma'
drivers/built-in.o: In function `pnp_check_dma':
(.text.pnp_check_dma+0xe0): relocation truncated to fit: R_MIPS_26 against `request_dma'
drivers/built-in.o: In function `pnp_check_dma':
(.text.pnp_check_dma+0x1fc): undefined reference to `free_dma'
drivers/built-in.o: In function `pnp_check_dma':
(.text.pnp_check_dma+0x1fc): relocation truncated to fit: R_MIPS_26 against `free_dma'
make: *** [.tmp_vmlinux1] 错误 1
此问题:
在内核中增加pnp选项以后,出现pnp_check_dma的依赖的reuqest_dma函数未定义,pnp选项选择是打入到内核中,request_dma没有打入到内核导致,出现未定义的提示;
首先通过调试:
1.vim -t request_dma
发现:在kernel/dma.c 文件中,
2.
vim kernel/Makefile
查找到dma.c 对应的配置选项,通过配置选项进行,GENERIC_ISA_DMA_SUPPORT_BROKEN
3.make menuconfig
/
查找对应的依赖关系;
4.发现他和machine type 有关系,
这样,通过和自己的选择架构,然后增加select 默认选项就好了。
5 config LOONGSON3_EVB
6 bool "Loongson3 evaluate board based on HT interconnection"
7 select ARCH_SPARSEMEM_ENABLE
8 select CEVT_R4K
9 select CSRC_R4K
10 select BOOT_ELF32
11 select I8259
12 select IRQ_CPU
13 select SYS_SUPPORTS_32BIT_KERNEL
14 select SYS_SUPPORTS_64BIT_KERNEL
15 select SYS_SUPPORTS_LITTLE_ENDIAN
16 select SYS_SUPPORTS_HIGHMEM
17 select SYS_HAS_EARLY_PRINTK
18 select GENERIC_HARDIRQS_NO__DO_IRQ
19 select SYS_HAS_CPU_LOONGSON3
20 select HW_HAS_PCI
21 select CPU_UART
22 select ARCH_DMA_ADDR_T_64BIT
23 select SYS_SUPPORTS_NUMA
24 select HAVE_DMA_ATTRS
25 select PHYS48_TO_HT40
26 select ZONE_DMA32 if 64BIT
27 select SYNC_R4K
28 #select DMA_NONCOHERENT
29 select GENERIC_ISA_DMA_SUPPORT_BROKEN
阅读(1466) | 评论(0) | 转发(0) |