免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1567 | 回复: 0
打印 上一主题 下一主题

Linux内核2.4.20-8升级到2.6.7以及RTAI-3.1安装过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-17 21:57 |只看该作者 |倒序浏览

Linux内核2.4.20-8升级到2.6.7以及RTAI-3.1安装过程
一、准备工作
1、首先说明,下面带#号的行都是要输入的命令行,且本文提到的所有命令行都在终端里输入。启动Linux系统,并用根用户登录,进入终端模式下。
2、下载2.6内核源码
      下载地址:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.7.tar.bz2
      下载RTAI源代码
      下载地址:https://www.rtai.org/RTAI/rtai-3.1.tar.bz2
3、下载内核升级工具
(1)下载module-init-tools-3.2.tar.bz2
http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2

(2)下载mkinitrd-4.1.18-2.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm

(3)下载lvm2-2.00.25-1.01.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm

(4)下载device-mapper-1.00.19-2.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm
二、配置工作
2.6内核、RTAI-3.1和4个升级工具都下载完成后回到Linux系统中开始安装配置工作。
4、将下载好的内核源码包和4个升级工具都拷贝到/usr/src文件夹下。
5、拷贝完毕,开始解压新内核,具体操作请依次执行以下命令:
# cd /usr/src (进入到/usr/src目录下,如果已经在/usr/src目录下,不执行该命令。)
# rm –rf linux (删除linux文件夹。如果内核从未编译过,则没有这个文件夹,此命令行可略过。)
# tar -jxvf linux-2.6.7.tar.bz2
# tar -jxvf rtai-3.1.tar.bz2
进入/usr/src/linux-2.6.7
#ln -s linux-2.6.7 linux(建立符号连接)
进入/usr/src/rtai-3.1
#ln -s rtai-3.1 rtai(建立符号链接)
6、安装module-init-tools工具
在/usr/src目录下,依次执行下列命令:
# tar jvxf module-init-tools-3.2.tar.bz2 (解压module-init-tools)
# cd module-init-tools-3.2 (由/usr/src目录进入module-init-tools目录下)
#./configure --prefix=/
# make moveold
# make all install
#./generate-modprobe.conf /etc/modprobe.conf
7、安装另外三个升级工具
回到/usr/src目录下,依次执行下列3个命令来安装另外三个升级工具:
# rpm -Uvh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意,这里一定要加入--nodeps参数,下同)
# rpm -Uvh --nodeps lvm2-2.00.25-1.01.i386.rpm
# rpm -Uvh --nodeps device-mapper-1.00.19-2.i386.rpm (这里必须用Uvh升级安装)
如果不更新以上几个升级包,在后面编译内核时会提示以下错误:
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2
8、配置内核选项
(1)# cd linux-2.6.7 (进入到/usr/src/linux-2.6.7目录下)
(2)# make mrproper (该命令可确保源代码目录下没有错误的.o文件)
(3)#patch-p12.6.7.patch(针对linux-2.6.7打rtai-3.1补丁)
(4)# make menuconfig (配置内核各选项)
此时会出现一个图形界面,列出了所有的内核配置选项。大多数选项默认就行,以下几个选项必须选择(请认真核对下面每一个选项,否则编译很有可能前功尽弃):
①Loadable module support
  • Enable loadble module support
  • Module unloading
  • Forced module unloading
    [ ] Module versioning support (EXPERIMENTAL)
  • Automatic kernel module loading
    ②Processor type and features
  • Preemptible Kernel
    [ ] Use register arguments (EXPERIMENTAL)
    ③Adeos Support
  • Adeos support (NEW)
    ④Kernel hacking
    [ ] Compile the kernel with frame pointers
    ⑤Device drivers -> Character devices
    [M] Enable Real Time Clock Support
    Device Drivers--->Block Devices中选上“Loopback device support”;
    Device Drivers--->Multi-device support(RAID and LVM)处要选上“device mapper support”;
    Device Drivers--->Graphics support,一定要选上“ Support for frame buffer devices”;
    Device Drivers --->USB support --->选上“USB Mass Storage support”(要更多USB支持,就全选吧)
    Device Drivers --->Network device support --->Ethernet (10 or 100Mbit) ---> AMD PCnet32 PCI support
    (注意)如果你在vmware下编译内核,硬盘用的是scsi的,以下三个选项必选:
    Device Drivers --->SCSI device support (此项不选的话,下面两项就选择不上)
    Device Drivers --->SCSI device support --->SCSI disk support
    Device Drivers--->SCSI device support--->SCSI low-level drivers--->BusLogic SCSI support
    ⑥File system--->(以下9个选项是关于ext2和ext3文件系统配置,全部选上)
    Second extended fs support
    Ext2 extended attributes
    Ext2 POSIX Access Control Lists
    Ext2 Security Labels
    Ext3 journalling file system support
    Ext3 extended attributes
    Ext3 POSIX Access Control Lists
    Ext3 Security Labels
    JBD (ext3) debugging support
    File system--->DOS/FAT/NT Filesystems --->选上“NTFS file system support”;
    (注意)ext2和ext3文件系统配置很重要,也是必需的,如果对Ext3、Ext2文件的支持直接编译进内核,在你reboot时机器就会当掉,出现如下错误信息:(ext2和ext3文件系统应直接编译进内核。Scorpio)
    kernel panic : no init found ,try passing init = option to kernel.....
    或者是:
    VFS:Cannot open root device "hdxy" or unknow-block(0,0)
    Please append a correct "root=" boot option
    kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
    或者是:
    mount: error 19 mounting ext3
    pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
    umount /initrd/proc fail: 2
    Freeing unused kernel memory: 244k freed
    Kernel panic – not syncing: No init found. Try passing init = option to kernel
    三、编译工作
    9.在/usr/src/linux-2.6.7目录下,执行以下命令即可编译。编译需要一段时间,耐心等候!
    # make bzImage (注意大小写字母,这一步才是真正的编译内核,编译成功后,会在/usr/src/linux/arch/i386/boot,目录里生成一个新的内核映像文件bzImage。)
    # make modules (编译可加载模块)
    # make modules_install (安装可加载模块)
    安装成功后,系统会在/lib/modules目录下生成一个2.6.7子目录,里面存放着新内核的所有可加载模块。
    # make install (安装新内核)
    注意:
    make install的时候可能会出现错误信息:No module BusLogic found for kernel 2.4.7-adeos
    此问题一般只出现在SCSI硬盘+VMWARE+REDHAT架构中,因为BusLogic被编译进了内核而不是一个module的形式(2.4内核的Buslogic模块即使静态编译进内核也不行)。解决方式是直接将BusLogic.o文件复制过去:
    # cp /usr/src/linux-2.6.7/drivers/scsi/BusLogic.o /lib/modules/2.6.7/kernel/drivers/scsi(目录根据情况找)
    复制过后再执行一下make install。这一步若卡住了,下面的都无法进行。
    四、启动新内核
    10、修改Grub
    # df -h   (列出主挂载目录)
    Filesystem       容量 已用 可用 已用% 挂载点
    /dev/sda2   9.3G 6.1G 2.8G 61%   /
    /dev/sda1 99M 14M   80M 15%   /boot
    none       126M 0     126M 0%   /dev/shm
    可知,/目录的挂载点是/dev/sda2,这在下面的引导项中root要用到。
    # vi /grub/grub.conf 进入grub.conf文件,找到如下信息:
    default=1
    timeout=10
    splashimage=(hd0,0)/grub/splash.xpm.gz
    title Red Hat Linux (2.6.7)
    root (hd0,0)
    kernel /vmlinuz-2.6.7 ro root= LABEL=/
    initrd /initrd-2.6.7.img
    做两处修改:
    (1) 将default=1改为default=0(默认进入2.6内核)
    (2) 将kernel行的“LABEL=/”换成根目录所在的分区(df查看到“/”分区)
    此步很重要,修改错误将可能导致进不去系统,修改:
    default=0
    timeout=10
    splashimage=(hd0,0)/grub/splash.xpm.gz
    title Red Hat Linux (2.6.7-adeos)
    root (hd0,0)
    kernel /vmlinuz-2.6.7-adeos ro root=/dev/sda2
    initrd /initrd-2.6.7-adeos.img
    title Red Hat Linux (2.4.20-8)
    root (hd0,0)
    kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
    initrd /initrd-2.4.20-8.img
    11、OK,重启。升级成功。
    五、安装RTAI
    12、配置RTAI
    # make menuconfig               文本界面
    或者 # make xconfig           (QT lib)
    或者 # make gconfig           (GTK lib) (我用的)
    General
    (/usr/src/linux-2.6.7) Linux Source tree
  • Enable source compatibility mode
  • Enable extended configuration mode
    一定要记得,linux源码树位置一定是指向自己新编译的内核/usr/src/linux-2.6.7,其它的就使用缺省配置吧,以后确实要用到什么,再重新配置就可以。记得最后要保存对配置文件所做的修改。
    13、编译RTAI
    #make
    14、安装RTAI
    # make install
    安装目录有make menuconfig中已经指定了,我们使用的是缺省的/usr/realtime目录。
    15、测试RTAI
    [root@localhost rtai-3.1]# cd /usr/realtime/testsuite/kern/latency
    [root@localhost latency]# ./run
    [root@localhost latency]# ls
    display latency_rt.ko run
    [root@localhost latency]# ./run
    ..........................................
    OK,RTAI已经安装
    (郁闷,网上找了那么多教程参考什么的,很多都是运行错误,不过,总算摸索出来了!!!)
    2009.4.17 ilbx


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94668/showart_1902977.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP