1. ×¼±¸¹¤×÷
×¼±¸LinuxÄÚºËÔ´Â룬½»²æ±àÒ빤¾ßÁ´£¬Ò»¸ö¿ÉÓõÄramdiskÎļþϵͳµÈ
2. ¸´ÖƲο¼°åµÄconfigÎļþµ½ÄÚºËÔ´ÂëÊ÷µÄ¸ùĿ¼
root@linuxidc:/source/kernel/linux-2.6.32.24# cp arch/arm/configs/s3c2410_defconfig .config
3. ÐÞ¸ÄMakefile£¬½«Ä¿±êƽ̨¸ÄΪÄúÄ¿±ê°åµÄƽ̨£¬Ê¹Óý»²æ±àÒëÆ÷
root@linuxidc:/source/kernel/linux-2.6.32.24# vim Makefile
½øÈëºó£¬ÕÒµ½
191 ARCH = $(SUBARCH)
192 CROSS_COMPILE = $(CONFIG_CROSS_COMPILE:"%"=%)
½«ÆäÐÞ¸ÄΪ
191 ARCH := arm
192 CROSS_COMPILE := arm-linux-
4. ramdiskÎļþϵͳ1. ÐÞ¸ÄramdiskÎļþϵͳµÄÆðʼµØÖ·ºÍ´óС
½øÈë
root@linuxidc:/source/kernel/linux-2.6.32.24# vim arch/arm/mm/init.c
ÕÒµ½
34 static unsigned long phys_initrd_start __initdata = 0;
35 static unsigned long phys_initrd_size __initdata = 0;
¸ÄΪ
34 static unsigned long phys_initrd_start __initdata = 0x30800000;
35 static unsigned long phys_initrd_size __initdata = 0x1c00000;
2. ÅäÖÃÄÚºËÖ§³Öramdisk×÷ΪÆô¶¯Îļþϵͳ
Device Drivers --->
SCSI device support --->
<*> SCSI device support
<*> SCSI disk support
Block devices --->
<*> RAM disk support
(1) Default number of RAM disks
(8192) Default RAM disk size (kbytes)
General setup --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
5. make
root@linuxidc:/source/kernel/linux-2.6.32.24# make
6. Ð޸ĴíÎówrong_size_cmpxchg
Ìáʾ´íÎó£º
kernel/built-in.o(.text+0x1bee8): In function `alloc_pid':
include/asm-generic/cmpxchg-local.h:42: undefined reference to `wrong_size_cmpxchg'
make: *** [.tmp_vmlinux1] Error 1
ÐÞÕý·½·¨£º
ɾ³ýº¯Êýwrong_size_cmpxchg£¨£©µÄÉùÃ÷
ɾ³ýÕû¸öº¯Êý__cmpxchg_local_generic£¨£©