主题 : 编译内核时的难题!!!高手指点下!! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 1358
精华: 0
发帖: 2
金钱: 20 两
威望: 2 点
综合积分: 4 分
注册时间: 2008-08-21
最后登录: 2008-12-15
楼主  发表于: 2008-08-26 13:43

 编译内核时的难题!!!高手指点下!!

在kernel下make distclean,make menuconfig(未改任何设置),make dep,make zImage后出现如下错误:
/usr/arm-vijay-linux/bin/ld -p -X -T arch/arm mlinux.lds
arch/arm/kernel/head-armv.o arch/arm/kernel/init_task.o in
it/main.o init ersion.o \
        --start-group \
        arch/arm/kernel/kernel.o arch/arm/mm/mm.o
arch/arm/mach-integrator/integrator.o kernel/kernel.o mm/mm.o fs/f
s.o ipc/ipc.o \
        drivers rial rial.o drivers ar ar.o drivers/block/block.o
drivers/misc/misc.o drivers/net/net.o dri
vers/media/media.o drivers/isdn/isdn.a drivers/mtd/mtdlink.o
drivers ideo ideo.o drivers/message/i2o/i2o.o \
        net/network.o \
        arch/arm/nwfpe/math-emu.o arch/arm b b.a
/home ijay/Armlinux nux b b.a \
        --end-group \
        -o vmlinux
init/main.o: In function `start_kernel':
init/main.o(.text.init+0x648): undefined reference to
`cpu_CPU_NAME_check_bugs'
arch/arm/kernel/kernel.o: In function `__dabt_svc':
arch/arm/kernel/kernel.o(.text+0xf0): undefined reference to
`cpu_CPU_NAME_data_abort'
arch/arm/kernel/kernel.o: In function `__dabt_usr':
arch/arm/kernel/kernel.o(.text+0x2ac): undefined reference to
`cpu_CPU_NAME_data_abort'
arch/arm/kernel/kernel.o: In function `arch_idle':
arch/arm/kernel/kernel.o(.text+0x11b4): undefined reference to
`cpu_CPU_NAME_do_idle'
arch/arm/kernel/kernel.o: In function `machine_restart':
arch/arm/kernel/kernel.o(.text+0x1308): undefined reference to
`cpu_CPU_NAME_proc_fin'
arch/arm/kernel/kernel.o: In function `setup_return':
arch/arm/kernel/kernel.o(.text+0x34c8): undefined reference to
`cpu_CPU_NAME_icache_invalidate_range'
arch/arm/kernel/kernel.o: In function `arm_syscall':
arch/arm/kernel/kernel.o(.text+0x4de0): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_range'
arch/arm/kernel/kernel.o: In function `__real_stubs_start':
arch/arm/kernel/kernel.o(.text.init+0x664): undefined reference to
`cpu_CPU_NAME_proc_init'
arch/arm/mm/mm.o: In function `do_check_pgt_cache':
arch/arm/mm/mm.o(.text+0x4c): undefined reference to
`cpu_CPU_NAME_dcache_clean_entry'
arch/arm/mm/mm.o(.text+0x84): undefined reference to
`cpu_CPU_NAME_dcache_clean_entry'
arch/arm/mm/mm.o: In function `do_translation_fault':
arch/arm/mm/mm.o(.text+0x8a4): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o: In function `consistent_sync':
arch/arm/mm/mm.o(.text+0xaf8): undefined reference to
`cpu_CPU_NAME_dcache_invalidate_range'
arch/arm/mm/mm.o(.text+0xb08): undefined reference to
`cpu_CPU_NAME_dcache_clean_range'
arch/arm/mm/mm.o(.text+0xb1c): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_range'
arch/arm/mm/mm.o: In function `adjust_pte':
arch/arm/mm/mm.o(.text+0xcf4): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_range'
arch/arm/mm/mm.o(.text+0xd00): undefined reference to
`cpu_CPU_NAME_set_pte'
arch/arm/mm/mm.o(.text+0xd20): undefined reference to
`cpu_CPU_NAME_tlb_invalidate_page'
arch/arm/mm/mm.o(.text+0xd40): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o: In function `update_mmu_cache':
arch/arm/mm/mm.o(.text+0xe7c): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_range'
arch/arm/mm/mm.o: In function `remap_area_pages':
arch/arm/mm/mm.o(.text+0xed8): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_all'
arch/arm/mm/mm.o(.text+0xff0): undefined reference to
`cpu_CPU_NAME_set_pte'
arch/arm/mm/mm.o(.text+0x107c): undefined reference to
`cpu_CPU_NAME_tlb_invalidate_all'
arch/arm/mm/mm.o: In function `get_pgd_slow':
arch/arm/mm/mm.o(.text+0x11dc): undefined reference to
`cpu_CPU_NAME_set_pte'
arch/arm/mm/mm.o(.text+0x1200): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_range'
arch/arm/mm/mm.o: In function `free_pgd_slow':
arch/arm/mm/mm.o(.text+0x126c): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o(.text+0x1284): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o: In function `setup_mm_for_reboot':
arch/arm/mm/mm.o(.text+0x1310): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o: In function `pte_cache_ctor':
arch/arm/mm/mm.o(.text+0x1374): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_range'
arch/arm/mm/mm.o: In function `paging_init':
arch/arm/mm/mm.o(.text.init+0x48c): undefined reference to
`cpu_CPU_NAME_tlb_invalidate_all'
arch/arm/mm/mm.o(.text.init+0x5c4): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_range'
arch/arm/mm/mm.o: In function `nocache_setup':
arch/arm/mm/mm.o(.text.init+0x7b0): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_all'
arch/arm/mm/mm.o: In function `nowrite_setup':
arch/arm/mm/mm.o(.text.init+0x7f8): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_all'
arch/arm/mm/mm.o: In function `create_mapping':
arch/arm/mm/mm.o(.text.init+0x994): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o(.text.init+0x9cc): undefined reference to
`cpu_CPU_NAME_set_pte'
arch/arm/mm/mm.o(.text.init+0xa2c): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o(.text.init+0xa98): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o(.text.init+0xad0): undefined reference to
`cpu_CPU_NAME_set_pte'
arch/arm/mm/mm.o: In function `memtable_init':
arch/arm/mm/mm.o(.text.init+0xbb8): undefined reference to
`cpu_CPU_NAME_set_pmd'
arch/arm/mm/mm.o(.text.init+0xc28): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_all'
kernel/kernel.o: In function `schedule':
kernel/kernel.o(.text+0x520): undefined reference to
`cpu_CPU_NAME_set_pgd'
kernel/kernel.o: In function `mm_init':
kernel/kernel.o(.text+0x212c): undefined reference to
`cpu_CPU_NAME_dcache_clean_entry'
kernel/kernel.o: In function `copy_mm':
kernel/kernel.o(.text+0x23a0): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_all'
kernel/kernel.o(.text+0x2558): undefined reference to
`cpu_CPU_NAME_tlb_invalidate_all'
kernel/kernel.o: In function `end_lazy_tlb':
kernel/kernel.o(.text+0x50e8): undefined reference to
`cpu_CPU_NAME_set_pgd'
kernel/kernel.o: In function `access_process_vm':
kernel/kernel.o(.text+0x8028): undefined reference to
`cpu_CPU_NAME_cache_clean_invalidate_range'
kernel/kernel.o(.text+0x8058): undefined reference to
`cpu_CPU_NAME_flush_ram_page'
kernel/kernel.o(.text+0x8078): undefined reference to
`cpu_CPU_NAME_flush_ram_page'
mm/mm.o: In function `clear_page_tables':
mm/mm.o(.text+0xe4): undefined reference to `cpu_CPU_NAME_set_pmd'
mm/mm.o(.text+0xfc): undefined reference to `cpu_CPU_NAME_set_pmd'
make:***[vmlinux]Error 1,在arch/arm/boot下没有生成内核文件。
级别: 新手上路
UID: 1330
精华: 0
发帖: 39
金钱: 390 两
威望: 139 点
综合积分: 78 分
注册时间: 2008-08-18
最后登录: 2011-02-07
1楼  发表于: 2008-08-26 15:18
是不是没有加载配置文件?
make menuconfig 后要先load config file,然后输入你对应的型号配置,比如config_cs8900_n35,然后save,然后直接make即可
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2008-08-26 15:49
make distclean之後用
cp -a /path/to/config/you/want/to/use .config
然後
make oldconfig
make dep zImage

我假設你已經修改過Makefile里的ARCH和CROSS_COMPILE變量
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."