首页 > 代码库 > 【Linux学习】Ubuntu下内核编译(一)

【Linux学习】Ubuntu下内核编译(一)

(1)当要运行内核配置时,输入make menuconfig时出现错误

技术分享

遇到这个问题,主要是以为没有ncurses库,而make menconfig 须要这个库。因此须要安装ncurses或者ncurses-devel就可以。输入命令:sudo  apt-get  install ncurses或者sudo apt-get  install ncurses-devel。

可是可能还会出现还有一种问题,如图:

技术分享

出现这样的问题的解决办法是:如今没有可用的软件包 ncurses , 可是它被其它的软件包引用了。这可能意味着这个缺失的软件包可能已被废弃,或者仅仅能在其它公布源中找到
能够使用命令:$sudo apt-get install libncurses*,进行安装。



错误2:
drivers/input/touchscreen/eeti_ts.c: In function ‘eeti_ts_irq_active‘:

drivers/input/touchscreen/eeti_ts.c:65: error: implicit declaration of function ‘irq_to_gpio‘
make[3]: *** [drivers/input/touchscreen/eeti_ts.o] 错误 1
make[2]: *** [drivers/input/touchscreen] 错误 2
make[1]: *** [drivers/input] 错误 2
make: *** [drivers] 错误 2

解决的方法:
先编译看下内核有没有问题。执行make命令出现以下的错误:
问题:drivers/input/touchscreen/eeti_ts.c:65: 错误: 隐式声明函数‘irq_to_gpio’解决:又一次make menuconfig,将driver中的输入设备->触摸设备中,将EETI选项不选,保存退出后,又一次make

(3)移植linux2.6.38内核到TQ2440。移植步骤见网址:http://blog.sina.com.cn/s/blog_77aea4c60100qs9o.html
在第9条中自己改为:/drivers/tty/serial/
依照第10条中./patch-kernel.sh c m /usr/src/linux-2.6.38(自己内核所在文件夹)后显示“没有那个文件和文件夹”
解决:看到yaffs2目录下没有patch-kernel.sh,仅仅有patch-ker.sh。然后改为:./patch-ker.sh c m /usr/src/linux-2.6.38然后出现:
Updating /usr/src/linux-2.6.38/fs/Kconfig
Updating /usr/src/linux-2.6.38/fs/Makefile
打补丁完毕

【Linux学习】Ubuntu下内核编译(一)