热门标签 | 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


推荐阅读
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • ***Createdbyjiachenpanon161118.**合法uri*exportfunctionvalidateURL(textval){consturlregex^( ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 记录一次es集群load过高问题(待更新)
    toptop-H-ppid按shiftp以cpu来排序按shiftm以memory来排序将10进制线程pid转为16进制printf%x\npidjstackjstackP ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
  • Thisworkcameoutofthediscussioninhttps://github.com/typesafehub/config/issues/272 ... [详细]
  • AndroidJetpackNavigation基本使用本篇主要介绍一下AndroidJetpack组件Navigation导航组件的基本使用当看到Navigation单词的时候应 ... [详细]
  • IP双栈环境下网络应用迁移
    IPv4向IPv6迁移有多种途径,在选择具体的迁移方式时,当前环境中运行的应用是否支持IPv6是重要的考量因素之一,同时在编写新的应用时,需要考虑新编写的应用不仅可以适应当前主流的IPv4环境, ... [详细]
  • 三小时掌握计算机网络基础(通俗易懂)
    目录1.网络层次划分2.OSI七层网络模型3.IP地址4.子网掩码及网络划分5.ARPRARP协议6.路由选择协议7.TCPIP协议8.UDP协议 9.DNS协议 ... [详细]
  • 苹果发布无人车安全报告,内容竟只有7页?
    众所周知,苹果无人车一直是一个极其神秘的项目。早些时候,国外媒体在加州曾拍到过苹果无人车路测的照片与视频,但是都遭到了苹果的极力否认。直到 ... [详细]
  • Haveaoracletablewithalmost1.5TBdatainit.Needtopurgeatleast0.5TBdatafromit.Thisi ... [详细]
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社区 版权所有