linux 内核编译错误总结
1. include/linux/time.h:174: undefined reference to `__aeabi_uldivmod'
此问题是由于arm-2008q3的Gcc 4.3版,进行了代码优化导致。
- - - include / linux/ time . h 2008- 10- 09 19: 47: 23. 000000000 + 0200
+ + + include / linux/ time . h. new 2008- 10- 09 19: 47: 54. 000000000 + 0200
@@ - 173, 6 + 173, 10 @@
{
ns + = a- > tv_nsec;
while ( unlikely( ns > = NSEC_PER_SEC) ) {
+ /* The following asm() prevents the compiler from
+ * optimising this loop into a modulo operation. */
+ asm ( "" : "+r" ( ns) ) ;
+
ns - = NSEC_PER_SEC;
a- > tv_sec+ + ;
}
2、上图到“## Starting application at 0x30008000 ...”处即停住是因为0x30008000本应该存放的是zImage内核映像文件,没有编译成功,需执行linux-2.6.22根目录下的# cp config_ok .config后,make uImage重新编译后将zImage和uImage拷到/tftpboot目录才能运行(默认运行的是zImage)
开启后图:
3、当采用NFS方式映射文件系统时,设置好的默认的目录为:/source/rootfs,如果将rootfs目录名称改变了,linux内核无法启动文件系统
改回后启动成功: