Debian编译安装Linux Kernel及串口操作Linux系统
标签:
debian-6.07linux-2.6.38串口 |
分类: 嵌入式虚拟化 |
本文首先研究在Debian-6.07系统上编译安装新的内核版本,并讨论在安装的过程中出现的问题以及解决方法;接着讨论将Linux内核输出信息重定向到串口,使得开发者可以从串口登录并操作Linux系统。
第一部分 Debian-6.07系统编译安装Linux-2.6.38内核
Debian-6.07预装的是Linux-2.6.32-6-686内核版本,示意图如下:
http://s12/mw690/70dd1691tx6Bru0vUP9cb&690Kernel及串口操作Linux系统" TITLE="Debian编译安装Linux
下载linux-2.6.38.tar.bz2:
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
解压内核:
$cd /home/tom
$tar xvf linux-2.6.38.tar.bz2
$cd linux-2.6.38
配置内核:
$make
menuconfig
备注:进入配置界面后,直接退出,选择保存新的配置文件。目的是使用生成的配置文件.config。
示意图如下:
http://s3/mw690/70dd1691tx6BrujXEvE22&690Kernel及串口操作Linux系统" TITLE="Debian编译安装Linux
生成内核压缩镜像:
$make bzImage
编译模块并安装模块:
$make modules
$sudo make modules_install
备注:这一步需要把编译好的模块安装在/lib/modules/2.6.38目录下,所以需要用sudo获取root权限。由于在我的系统中已经在/etc/suders文件中为tom授予了root权限,所有用sudo命令可以暂时获取root权限。示意图如下:
http://s13/mw690/70dd1691tx6Bruuv5Za4c&690Kernel及串口操作Linux系统" TITLE="Debian编译安装Linux
安装Linux内核到/boot目录
$sudo make install
备注:这一步需要把编译产生的内核安装在/boot/目录下,所以也需要暂时获取管理员root权限。示意图如下:
通过观察上图,再和Debian默认的2.6.32-5-686版本的内核相比较,我们可以看出如果想让Linux-2.6.38内核顺利替换Debian默认内核,还需要一个initrd.img-2.6.38文件。我们用下面的命令生成initrd.img-2.6.38
$sudo /usr/sbin/update-initramfs –c –k 2.6.38
示意图如下:
http://s16/mw690/70dd1691tx6Brv5gWePaf&690Kernel及串口操作Linux系统" TITLE="Debian编译安装Linux
理论上到目前为止,Linux-2.6.38内核已经运行了,事实也正是如下,示意图如下:
http://s11/mw690/70dd1691tx6BrvcZAiS5a&690Kernel及串口操作Linux系统" TITLE="Debian编译安装Linux
备注:但是原来的Linux-2.6.32-6却无法启动,症状:grub启动显示到“loading ramdisk…”就卡住了。经过测试发现Debian-6.07默认的Linux-2.6.32-6内核不支持:
“load_video
set_gfxpagload=keep”
属性,因此在grup-update生成的grub.cfg配置文件中,要将Linux-2.6.32-6对应的启动项的上述两行注掉,示意图如下。而对我们编译生成的Linux-2.6.38版本的内核则不存在这样的问题。
2.3
至此,我们就可以通过串口终端操作Linux系统了。

加载中…