zoukankan      html  css  js  c++  java
  • 增加一个Linux系统调用[嵌入式系统]

    l  实验要求:

    修改RPi上的Linux源码,增加一个带参数的系统调用,具体如课内所讲

    实验过程:

    1、             从github上下载RPI源码,下载地址

    https://github.com/raspberrypi/linux

    2、             修改源码,进入linux 源码文件夹后,在arch/arm/kernel 添加mysyscall.c,

     

    3、              

    修改arch/arm/kernel文件夹下的call.S,我将自己的新系统调用加在了0x900000+378位置上:

     

    修改 arch/arm/kernel 文件夹下的Makefile:

     

    4、             将树莓派现在系统上的内核配置文件(/proc/config.gz)拷贝到源码目录下,命名为.config:  (这里我遇到了一个问题,sudo的权限居然还不够,必须进入超级用户才能成功执行。)

     

    5、             设置两个后面要用到的环境变量

    编译器

     

    模块存放路径

     

    6、             确保配置文件已经更新

    make ARCH=arm CROSS_COMPILE=${ARMGCC} oldconfig

     

     

    7、             编译内核以及安装模块

     

    编译完成后继续安装模块

     

    8、             接下来是安装新内核,将 arch/arm/boot/Image 拷贝到树莓派SD 卡的/boot 目录下,新内核命名为new.img

     

    9、             修改 bootloader 配置文件,config.txt:将kernel_new.img 作为内核镜像。

    #最后一条语句改为:kernel = new_kernel.img

     

    10、       将安装完模块后的lib 目录全都拷贝到树莓派的/目录下,

     

    11、       重启树莓派

    uname –a查看当前内核版本号

    12、       编译运行测试程序用dmesg查看日志文件中的输出情况

     

    最后在dmesg 输出日志的末尾看到了预想的结果!

  • 相关阅读:
    android学习之4种点击事件的响应方式
    python Eve RESTFul 尝试笔记
    完成端口学习笔记(一):完成端口+控制台 实现文件拷贝
    POJ3080:Blue Jeans
    如何让ros支持C++11标准
    ros卸载
    文件读写
    sys.exit()主动结束程序
    python函数查询、数学和比较操作符、二元操作符
    labellmg使用方法
  • 原文地址:https://www.cnblogs.com/zxRPI/p/3014154.html
Copyright © 2011-2022 走看看