先说说我的编译步骤:先从网上下载了linux-2.6.19的源代码,然后拷贝到/usr/src目录下,解压,然后执行make distclean命令。之后执行make menuconfig命令,在菜单中,未作任何修改直接点Exit,保存退出(之所以未在该菜单下做配置,是不熟悉配置,想后面用X86里面的默认配置文件)。执行后在linux-2.6.19目录下生成了.config的文件。
之后执行命令 cd /arch/x86/configs,执行后,用cp指令将configs里X86的默认配置文件拷贝到linux-2.6.19目录下的.config文件中。
下面就执行make bzImage编译内核,之后就提示下面信息:
[root@localhost linux-2.6.29]# make bzImage
scripts/kconfig/conf -s arch/arm/Kconfig
*
* Restart config...
*
*
* RCU Subsystem
*
RCU Implementation
> 1. Classic RCU (CLASSIC_RCU)
2. Tree-based hierarchical RCU (TREE_RCU) (NEW)
choice[1-2]:
*
* Control Group support
*
Control Group support (CGROUPS) [Y/n/?] y
Example debug cgroup subsystem (CGROUP_DEBUG) [N/y/?] n
Namespace cgroup subsystem (CGROUP_NS) [Y/n/?] y
Freezer cgroup subsystem (CGROUP_FREEZER) [N/y/?] (NEW)
Device controller for cgroups (CGROUP_DEVICE) [N/y/?] n
Simple CPU accounting cgroup subsystem (CGROUP_CPUACCT) [Y/n/?] y
Resource counters (RESOURCE_COUNTERS) [Y/n/?] y
Memory Resource Controller for Control Groups (CGROUP_MEM_RES_CTLR) [N/y/?] n
*
* General setup
*
Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) [Y/n/?] y
Local version - append to kernel release (LOCALVERSION) []
Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] n
Support for paging of anonymous memory (swap) (SWAP) [Y/n/?] y
System V IPC (SYSVIPC) [Y/n/?] y
POSIX Message Queues (POSIX_MQUEUE) [Y/n/?] y
BSD Process Accounting (BSD_PROCESS_ACCT) [Y/n/?] y
BSD Process Accounting version 3 file format (BSD_PROCESS_ACCT_V3) [N/y/?] n
Export task/process statistics through netlink (EXPERIMENTAL) (TASKSTATS) [Y/n/?] y
Enable per-task delay accounting (EXPERIMENTAL) (TASK_DELAY_ACCT) [Y/n/?] y
Enable extended accounting over taskstats (EXPERIMENTAL) (TASK_XACCT) [Y/n/?] y
Enable per-task storage I/O accounting (EXPERIMENTAL) (TASK_IO_ACCOUNTING) [Y/n/?] y
Auditing support (AUDIT) [Y/n/?] y
Kernel .config support (IKCONFIG) [N/m/y/?] n
Kernel log buffer size (16 => 64KB, 17 => 128KB) (LOG_BUF_SHIFT) [18] 18
Group CPU scheduler (GROUP_SCHED) [Y/n/?] y
Group scheduling for SCHED_OTHER (FAIR_GROUP_SCHED) [Y/n] y
Group scheduling for SCHED_RR/FIFO (RT_GROUP_SCHED) [N/y/?] n
Basis for grouping tasks
1. user id (USER_SCHED)
> 2. Control groups (CGROUP_SCHED)
choice[1-2]: 2
Create deprecated sysfs layout for older userspace tools (SYSFS_DEPRECATED_V2) [N/y/?] n
Kernel->user space relay support (formerly relayfs) (RELAY) [Y/?] y
Namespaces support (NAMESPACES) [Y/?] y
UTS namespace (UTS_NS) [Y/n/?] y
IPC namespace (IPC_NS) [Y/n/?] y
User namespace (EXPERIMENTAL) (USER_NS) [Y/n/?] y
PID Namespaces (EXPERIMENTAL) (PID_NS) [Y/n/?] y
Network namespace (NET_NS) [N/y/?] (NEW)
Initial RAM filesystem and RAM disk (initramfs/initrd) support (BLK_DEV_INITRD) [Y/n/?] y
Initramfs source file(s) (INITRAMFS_SOURCE) []
Optimize for size (CC_OPTIMIZE_FOR_SIZE) [Y/n/?] y
Disable heap randomization (COMPAT_BRK) [N/y/?] n
Choose SLAB allocator
1. SLAB (SLAB)
> 2. SLUB (Unqueued Allocator) (SLUB)
choice[1-2?]: 2
Profiling support (EXPERIMENTAL) (PROFILING) [Y/n/?] y
Activate markers (MARKERS) [Y/n/?] y
OProfile system profiling (EXPERIMENTAL) (OPROFILE) [N/m/y/?] n
Kprobes (KPROBES) [Y/n/?] y
*
* System Type
*
ARM system type
1. Agilent AAEC-2000 based (ARCH_AAEC2000) (NEW)
2. ARM Ltd. Integrator family (ARCH_INTEGRATOR) (NEW)
3. ARM Ltd. RealView family (ARCH_REALVIEW) (NEW)
> 4. ARM Ltd. Versatile family (ARCH_VERSATILE) (NEW)
5. Atmel AT91 (ARCH_AT91) (NEW)
6. Cirrus Logic CLPS711x/EP721x-based (ARCH_CLPS711X) (NEW)
7. EBSA-110 (ARCH_EBSA110) (NEW)
8. EP93xx-based (ARCH_EP93XX) (NEW)
9. FootBridge (ARCH_FOOTBRIDGE) (NEW)
10. Hilscher NetX based (ARCH_NETX) (NEW)
11. Hynix HMS720x-based (ARCH_H720X) (NEW)
12. IMX (ARCH_IMX) (NEW)
13. IOP13xx-based (ARCH_IOP13XX) (NEW)
14. IOP32x-based (ARCH_IOP32X) (NEW)
15. IOP33x-based (ARCH_IOP33X) (NEW)
16. IXP23XX-based (ARCH_IXP23XX) (NEW)
17. IXP2400/2800-based (ARCH_IXP2000) (NEW)
18. IXP4xx-based (ARCH_IXP4XX) (NEW)
19. LinkUp-L7200 (ARCH_L7200) (NEW)
20. Marvell Kirkwood (ARCH_KIRKWOOD) (NEW)
21. Micrel/Kendin KS8695 (ARCH_KS8695) (NEW)
22. NetSilicon NS9xxx (ARCH_NS9XXX) (NEW)
23. Marvell Loki (88RC8480) (ARCH_LOKI) (NEW)
24. Marvell MV78xx0 (ARCH_MV78XX0) (NEW)
25. Freescale MXC/iMX-based (ARCH_MXC) (NEW)
26. Marvell Orion (ARCH_ORION5X) (NEW)
27. Philips Nexperia PNX4008 Mobile (ARCH_PNX4008) (NEW)
28. PXA2xx/PXA3xx-based (ARCH_PXA) (NEW)
29. RiscPC (ARCH_RPC) (NEW)
30. SA1100-based (ARCH_SA1100) (NEW)
31. Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443 (ARCH_S3C2410) (NEW)
32. Samsung S3C64XX (ARCH_S3C64XX) (NEW)
33. Shark (ARCH_SHARK) (NEW)
34. Sharp LH7A40X (ARCH_LH7A40X) (NEW)
35. TI DaVinci (ARCH_DAVINCI) (NEW)
36. TI OMAP (ARCH_OMAP) (NEW)
37. Qualcomm MSM (ARCH_MSM) (NEW)
38. Nuvoton W90X900 CPU (ARCH_W90X900) (NEW)
choice[1-38]:
怪哉,我已经使用的X86的默认配置文件,怎么还提示俺配置信息呢?而且配置信息里System Type竟然都是跟ARM相关的。我打开内核目录下的.config文件,看到里面的信息确实是跟X86相关的啊,.config的信息如下:
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.27-rc5
# Wed Sep 3 17:23:09 2008
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
# CONFIG_GENERIC_LOCKBREAK is not set
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_FAST_CMPXCHG_LOCAL=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
....
....
请大侠帮忙解释下 啊,想不明白!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |