#
make[2]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
make EXTRAVERSION=dell1400 ARCH=i386 prepare
make[2]: 正在进入目录 `/home/gdsdj/src/linux-2.6.19'
scripts/kconfig/conf -s arch/i386/Kconfig
make[2]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
make[2]: 正在进入目录 `/home/gdsdj/src/linux-2.6.19'
CHK include/linux/version.h
CHK include/linux/utsrelease.h
make[2]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
echo done > debian/stamp/conf/kernel-conf
make[1]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
make -f debian/rules debian/stamp/conf/full-changelog
make[1]: 正在进入目录 `/home/gdsdj/src/linux-2.6.19'
====== making target debian/stamp/conf/full-changelog [new prereqs: ]======
for file in ChangeLog Control Control.bin86 config templates.in rules; do \
cp -f /usr/share/kernel-package/$file ./debian/; \
done
for dir in Config docs examples ruleset scripts pkg po; do \
cp -af /usr/share/kernel-package/$dir ./debian/; \
done
install -p -m 755 /usr/share/kernel-package/rules debian/rules
sed -e 's/=V/2.6.19dell1400/g' \
-e 's/=D/2.6.19dell1400-10.00.Custom/g' -e 's/=A/i386/g' \
-e 's/=SA//g' \
-e 's/=I//g' \
-e 's/=CV/2.6/g' \
-e 's/=M/Unknown Kernel Package Maintainer < unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
-e 's/=ST/linux/g' -e 's/=B/i386/g' \
/usr/share/kernel-package/Control > debian/control
sed -e 's/=V/2.6.19dell1400/g' -e 's/=D/2.6.19dell1400-10.00.Custom/g' \
-e 's/=A/i386/g' -e 's/=M/Unknown Kernel Package Maintainer < unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
-e 's/=ST/linux/g' -e 's/=B/i386/g' \
/usr/share/kernel-package/changelog > debian/changelog
chmod 0644 debian/control debian/changelog
make -f debian/rules debian/stamp/conf/kernel-conf
make[2]: 正在进入目录 `/home/gdsdj/src/linux-2.6.19'
make[2]: “debian/stamp/conf/kernel-conf”是最新的。
make[2]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
make[1]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
echo done > debian/stamp/conf/minimal_debian
exec debian/rules APPEND_TO_VERSION=dell1400 INITRD=YES kernel_image kernel-headers
====== making target debian/stamp/conf/vars [new prereqs: ]======
====== making target debian/stamp/build/kernel [new prereqs: vars]======
This is kernel package version 12.036+nmu1.
restore_upstream_debianization
test ! -f scripts/package/builddeb.kpkg-dist || mv -f scripts/package/builddeb.kpkg-dist scripts/package/builddeb
test ! -f scripts/package/Makefile.kpkg-dist || mv -f scripts/package/Makefile.kpkg-dist scripts/package/Makefile
/usr/bin/make EXTRAVERSION=dell1400 ARCH=i386 \
bzImage
make[1]: 正在进入目录 `/home/gdsdj/src/linux-2.6.19'
CHK include/linux/version.h
CHK include/linux/utsrelease.h
HOSTCC scripts/mod/sumversion.o
下面为错误提示,加不上红字,加了就乱序了,注释一下把 :
scripts/mod/sumversion.c: 在函数‘get_src_version’中:
scripts/mod/sumversion.c:384:16: 错误: ‘PATH_MAX’未声明(在此函数内第一次使用)
scripts/mod/sumversion.c:384:16: 附注: 每个未声明的标识符在其出现的函数内只报告一次
scripts/mod/sumversion.c:384:7: 警告: 未使用的变量‘filelist’ [-Wunused-variable]
make[3]: *** [scripts/mod/sumversion.o] 错误 1
make[2]: *** [scripts/mod] 错误 2
make[1]: *** [scripts] 错误 2
make[1]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
make: *** [debian/stamp/build/kernel] 错误 2
gdsdj@gdsdj-laptop:~/src/linux-2.6.19$
#include <netinet/in.h>
#ifdef __sun__
#include <inttypes.h>
#else
#include <stdint.h>
#endif
#include <ctype.h>
#include <errno.h>
#include <string.h>
#include "modpost.h"
#include <limits.h>
执行sudo gedit scripts/mod/sumversion.c
加入#include <limits.h>后问题解决了 ,又出现了 新的 问题
CC arch/i386/kernel/cpu/rise.o
CC arch/i386/kernel/cpu/nexgen.o
CC arch/i386/kernel/cpu/umc.o
LD arch/i386/kernel/cpu/built-in.o
CC arch/i386/kernel/reboot.o
CC arch/i386/kernel/reboot_fixups.o
CC arch/i386/kernel/module.o
CC arch/i386/kernel/sysenter.o
arch/i386/kernel/sysenter.c: 在函数‘arch_setup_additional_pages’中:
arch/i386/kernel/sysenter.c:158:17: 警告: 取一个类型为‘void’的表达式的地址 [默认启用]
LDS arch/i386/kernel/vsyscall.lds
AS arch/i386/kernel/vsyscall-int80.o
AS arch/i386/kernel/vsyscall-note.o
SYSCALL arch/i386/kernel/vsyscall-int80.so
gcc: 错误: elf_i386:没有那个文件或目录
make[2]: *** [arch/i386/kernel/vsyscall-int80.so] 错误 1
make[1]: *** [arch/i386/kernel] 错误 2
make[1]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
make: *** [debian/stamp/build/kernel] 错误 2
执行命令
sudo gedit arch/i386/kernel/Makefile
# The DSO images are built using a special linker script.
quiet_cmd_syscall = SYSCALL $@
cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \
-Wl,-T,$(filter-out FORCE,$^) -o $@
export CPPFLAGS_vsyscall.lds += -P -C -U$(ARCH)
改红字部分为-m32问题解决,新的随之又出现
AR arch/i386/lib/lib.a
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
kernel/built-in.o: In function `mutex_lock':
/home/gdsdj/src/linux-2.6.19/kernel/mutex.c:91: undefined reference to `__mutex_lock_slowpath'
kernel/built-in.o: In function `mutex_unlock':
/home/gdsdj/src/linux-2.6.19/kernel/mutex.c:116: undefined reference to `__mutex_unlock_slowpath'
make[1]: *** [.tmp_vmlinux1] 错误 1
make[1]:正在离开目录 `/home/gdsdj/src/linux-2.6.19'
make: *** [debian/stamp/build/kernel] 错误 2
gdsdj@gdsdj-laptop:~/src/linux-2.6.19$
这个问题现在还没解决
* This function is similar to (but not equivalent to) down().
*/
void inline fastcall __sched mutex_lock(struct mutex *lock)
{
might_sleep();
/*
* The locking fastpath is the 1->0 transition from
* 'unlocked' into 'locked' state.
*/
__mutex_fastpath_lock(&lock->count, __mutex_lock_slowpath);
}
EXPORT_SYMBOL(mutex_lock);
static void fastcall noinline __sched
__mutex_unlock_slowpath(atomic_t *lock_count);
/***
~/linux-2.6.19/kernel/mutex.c:91: undefined reference to `__mutex_lock_slowpath'
kernel/built-in.o: In function `mutex_unlock':
~/linux-2.6.19/kernel/mutex.c:116: undefined reference to `__mutex_unlock_slowpath'
make[1]: *** [.tmp_vmlinux1] 错误 1
以下是解决办法:
原文网址:http://blog.csdn.net/lidisha/article/details/7933201
在.config中搜索,发现CONFIG_DEBUG_MUTEXES宏果然没有定义。将其改成y,重新编译