热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Redhat9上安装RTLinux3.2[dslab]

在Redhat9上安装RTLinux3.2>>>>dslab杨红刚更多文章见:http:dslab.lzu.edu.cn使用的

//在Redhat9上安装RTLinux3.2  >>>> dslab 杨红刚


//更多文章见:http://dslab.lzu.edu.cn/

 

使用的文件:
rtlinux-3.2-wr.tar.bz2:从风河公司网站免费注册后下载 http://www.rtlinuxfree.com/
linux-2.4.28.tar.bz2  : 可以从兰大开源社区镜像站下载 ftp://mirror.lzu.edu.cn/kernel.org/v2.6/
环境:
处理器:Intel(R) Pentium(R) 4 CPU 2.80GHz
操作系统发行版:RedHat9
----------------------------------------------------------
1. 创建工作目录,解压文件
    # mkdir rtlinux
    # cd rtlinux
    将rtlinux-3.2-wr.tar.bz2, linux-2.4.28.tar.bz2 复制到当前目录
    # tar -jxf rtlinux-3.2-wr.tar.bz2
    # tar -jxf linux-2.4.28.tar.bz2
2. 编译linux
    # cd linux-2.4.28
    //给内核打补丁
    //补丁测试
    # patch -p1 --dry-run <../rtlinux-3.2-wr/patches/kernel_patch-2.4.28-rtl3.2-rc1  //选择对应的补丁版本
    如果没有什么错误那么就可以执行如下的命令,打上补丁
    # patch -p1 <../rtlinux-3.2-wr/patches/kernel_patch-2.4.28-rtl3.2-rc1
    实际上,有个问题:
    ...
    patch: **** malformed patch at line 2061: *+/
    ...
    修改补丁文件
    # vim ../rtlinux-3.2-wr/patches/kernel_patch-2.4.28-rtl3.2-rc1
    将2061行的 *+/ 修改为 +*/
    再重复上面的打补丁的过程
    //配置内核
    # cp /boot/config-2.4.20-8 .config   //将系统上已有的配置文件拷贝过来
    # make menuconfig
    注意选择Processor family,我的为:Pentium-4
   
    USB support
         USB HIDBP Keyboard (basic) support 选上
        USB HIDBP Mouse (basic) support 选上
    我的鼠标键盘都是 usb接口
    其他的默认即可
    # make dep
    # make bzImage  //生成内核镜像
    # make modules  //生成模块
        出现如下错误       
        ...
        dn_neigh.c:584: `THIS_MODULE' undeclared here (not in a function)
        dn_neigh.c:584: initializer element is not constant
        dn_neigh.c:584: (near initialization for `dn_neigh_seq_fops.owner')
        make[2]: *** [dn_neigh.o] Error 1
        make[2]: Leaving directory `/home/joseph/wf/rtlinux/an/linux-2.4.28/net/decnet'
        make[1]: *** [_modsubdir_decnet] Error 2
        make[1]: Leaving directory `/home/joseph/wf/rtlinux/an/linux-2.4.28/net'
        make: *** [_mod_net] Error 2
        在 ./net/decnet/dn_neigh.c 添加   
        #include    
        重新生成模块
    # make modules_install //模块安装
    # cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.28-rtl3.2-rc1
    # cp System.map /boot/System.map-2.4.28-rtl3.2-rc1
    # cd /boot
    # mkinitrd initrd-2.4.28-rtl3.2-rc1.img  2.4.28-rtl3.2-rc1
    //如果有提示 mkinitrd 不能用,你要把 /sbin 添加到PATH中
        # vim ~/.bashrc
         添加内容: PATH=/sbin:$PATH
               export PATH
        # source ~/.bashrc  //让设置生效]
    //修改grub引导
    #vim grub/menu.lst
    增加如下内容:
    title Red Hat Linux (2.4.28-rtl3.2-rc1-Joseph-Yang)
        root (hd0,1)
        kernel /vmlinuz-2.4.28-rtl3.2-rc1 ro root=LABEL=/
        initrd /initrd-2.4.28-rtl3.2-rc1.img
    # reboot   //重新引导,如果没有问题就可以启动你新编译的内核了
3. RTLinux编译安装
    # cd rtlinux-3.2-wr
    # make menuconfig
    出现如下错误:
    ls: No: 没有那个文件或目录
    ls: directory: 没有那个文件或目录
    ls: for: 没有那个文件或目录
    ls: rtlinux: 没有那个文件或目录
    ls: 3.2/include/asm: 没有那个文件或目录
    ls: No: 没有那个文件或目录
    ls: directory: 没有那个文件或目录
    ls: for: 没有那个文件或目录
    ls: rtlinux: 没有那个文件或目录
    ls: 3.2/include/asm: 没有那个文件或目录
    schedulers//Makefile:8: ../rtl.mk: 没有那个文件或目录
    ls: No: 没有那个文件或目录
    ls: directory: 没有那个文件或目录
    ls: for: 没有那个文件或目录
    ls: rtlinux: 没有那个文件或目录
    ls: 3.2/include/asm: 没有那个文件或目录
    ls: No: 没有那个文件或目录
    ls: directory: 没有那个文件或目录
    ls: for: 没有那个文件或目录
    ls: rtlinux: 没有那个文件或目录
    ls: 3.2/include/asm: 没有那个文件或目录
    ls: No: 没有那个文件或目录
    ls: directory: 没有那个文件或目录
    ls: for: 没有那个文件或目录
    ls: rtlinux: 没有那个文件或目录
    ls: 3.2/include/asm: 没有那个文件或目录
    ls: No: 没有那个文件或目录
    ls: directory: 没有那个文件或目录
    ls: for: 没有那个文件或目录
    ls: rtlinux: 没有那个文件或目录
    ls: 3.2/include/asm: 没有那个文件或目录
    ls: No: 没有那个文件或目录
    ls: directory: 没有那个文件或目录
    ls: for: 没有那个文件或目录
    ls: rtlinux: 没有那个文件或目录
    ls: 3.2/include/asm: 没有那个文件或目录
    Makefile:526: warning: overriding commands for target `install'
    schedulers//Makefile:56: warning: ignoring old commands for target `install'
    Makefile:600: warning: overriding commands for target `clean'
    schedulers//Makefile:6: warning: ignoring old commands for target `clean'
    make: *** No rule to make target `../rtl.mk'.  Stop.
    解决方法是:在 rtlinux-3.2-wr目录下创建linux-2.4.28目录的符号链接:
    # cd rtlinux-3.2-wr
    # ln -s ../linux-2.4.28 linux   //符号链接名为linux
    # make menuconfig
    采用默认配置,保存即可
    # make dep
    出现如下的提示:
        rm -f .depend
        make .depend
        make[1]: Entering directory `/home/joseph/wf/rtlinux/an/rtlinux-3.2-wr'
        gcc -Wall -O2 -o scripts/mkdep scripts/mkdep.c
        Kernel version 2.4.28-rtl3.2-rc1
        for x in `find . -name Makefile`; do /
            F=`echo $x|sed 's/Makefile$//g'`; /
            (cd $F; $RTL/scripts/mkdep *.c *.h *.S > .depend 2>/dev/null); /
        done
        xargs: environment is too large for exec
        make[1]: *** [.depend] Error 1
        make[1]: Leaving directory `/home/joseph/wf/rtlinux/an/rtlinux-3.2-wr'
        make: *** [dep] Error 2
    我没有做任何处理,直接执行
    # make
    ...
    Now do "sh scripts/insrtl" to install the modules
    # make install
    # make regression 
    有如下提示:
    ...
    ./scripts/regression.sh
    make: execvp: ./scripts/regression.sh: 权限不够
    make: *** [regression] Error 127
    # chmod +x ./scripts/regression.sh
    # make regression
    ...
    ./scripts/regression.sh
    ----------------------------
    - Installing basic modules -
    ----------------------------
    Testing multiple loads of rtl.o...             [   OK   ]
    Testing multiple loads of rtl_time.o...             [   OK   ]
    Testing multiple loads of rtl_sched.o...         [   OK   ]
    Testing multiple loads of rtl_posixio.o...         [   OK   ]
    Testing multiple loads of rtl_fifo.o...             [   OK   ]
    Testing RTLinux fifos...                [   OK   ]
    Testing thread wait times...                [   OK   ]
    Testing that Linux time progresses...            [   OK   ]
    Testing that Linux time is monotonically increasing...    [   OK   ]
    Testing ping flood...                    [   OK   ]
    Testing floating-point support...            [   OK   ]
    Removing rtl_sched.o...                    [   OK   ]
    Testing periodic timer...                [   OK   ]
    Testing oneshot timer...                [   OK   ]

    # rtlinux start
    ...
    Scheme: (-) not loaded, (+) loaded
      (+) mbuff
      (+) rtl_fifo
      (+) rtl
      (+) rtl_posixio
      (+) rtl_sched
      (+) rtl_time
    # rtlinux stop
    rmmod: rtl is in use

    Scheme: (-) not loaded, (+) loaded
      (-) mbuff
      (-) rtl_fifo
      (-) rtl
      (-) rtl_posixio
      (-) rtl_sched
      (-) rtl_time
4. 应用例子
    # cd examples/hello
    # rtlinux start
    # insmod hello.o
    Warning: loading hello.o will taint the kernel: no license
      See http://www.tux.org/lkml/#export-tainted for information about tainted modules
    Module hello loaded, with warnings
    #lsmod
    Module                  Size  Used by    Tainted: P 
    hello                   1160   0  (unused)
    rtl_sched              30752   0  [hello]
    rtl_fifo               10752   0  (unused)
    rtl_posixio             8052   0  [rtl_fifo]
    rtl_time                7020   0  [hello rtl_sched rtl_posixio]
    rtl                    20752   0  [hello rtl_sched rtl_fifo rtl_posixio rtl_time]
    mbuff                   7852   0  (unused)
    parport_pc             19204   1  (autoclean)
    lp                      8548   0  (autoclean)
    parport                36512   1  (autoclean) [parport_pc lp]
    autofs                 12244   0  (autoclean) (unused)
    8139too                17224   1
    mii                     3992   0  [8139too]
    ehci-hcd               21064   0  (unused)
    usb-ohci               21864   0  (unused)
    usbcore                78816   1  [ehci-hcd usb-ohci]
    ext3                   71460   2
    jbd                    51492   2  [ext3]
--------------------------------------------------------------------------------------------------
注意:你在运行例子程序时如果发现有类似的提示:
    /bin/sh: line 1: scripts/insrtl: 权限不够
    只要给相应的文件添加可执行权限即可
    # chmod +x scripts/insrtl


推荐阅读
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • 在网络故障排查中,tcpdump 是一款强大的工具,尤其在 Linux 环境下。尽管开发环境中问题较少,但在测试或生产环境中,往往会遇到各种难以预料的异常情况。通过在问题发生的环境中启用 tcpdump 进行抓包,并重现问题,可以获取到宝贵的原始数据,为问题的诊断提供关键线索。本文将详细介绍如何使用 tcpdump 进行实战操作,帮助读者掌握这一技能。 ... [详细]
  • 在CentOS上部署并使用FFmpeg多媒体处理工具
    最近在进行音频处理时需要用到FFmpeg,本文将详细介绍如何在CentOS系统上部署并使用这一强大的多媒体处理工具。首先,从官方网站下载FFmpeg的最新版本,然后通过Xftp工具将下载的压缩包(如ffmpeg-4.3.1.tar.xz)传输到服务器上。接下来,解压文件并按照官方文档进行编译安装。安装完成后,可以通过命令行工具验证FFmpeg是否成功安装,并开始进行多媒体文件的转换和处理。此外,文章还将介绍一些常用的FFmpeg命令和参数,帮助用户快速上手。 ... [详细]
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 本文介绍了如何在GitHub上设置多个SSH Key,以解决原有Key失效的问题,并确保不同项目使用不同的私钥进行安全访问。 ... [详细]
  • Argus: 免费的Outlook插件,有效检测恶意邮件
    Argus: 免费的Outlook插件,有效检测恶意邮件 ... [详细]
  • 在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统
    本文详细介绍了在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统的步骤。首先,通过“文件”菜单选择“新建虚拟机”并进入自定义设置。接着,在硬盘兼容性选项中选择默认设置。为了更好地进行Linux操作系统的安装练习,建议选择稍后安装操作系统,并在虚拟机安装完成后,根据实际需求删除不必要的硬件组件。此外,本文还提供了详细的配置参数和注意事项,帮助用户顺利完成整个部署过程。 ... [详细]
  • 2023年必备的六大Web3安全交互策略与实践
    2023年必备的六大Web3安全交互策略与实践 ... [详细]
author-avatar
美多小涛_584
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有