当前位置: 首页 > news >正文

android4.4内核移植

01 init/目录下Kconfig修改:

956行添加:

config PANIC_TIMEOUT
    int "Default panic timeout"
    default 0
    help
      Set default panic timeout.

02 drivers目录下Kconfig:

添加:

source "drivers/rongpin/Kconfig"

source "drivers/switch/Kconfig"

source "drivers/nfc/Kconfig"

source "drivers/gud/Kconfig"

03 drivers目录下Makefile:

添加:

obj-$(CONFIG_SWITCH)        += switch/
obj-$(CONFIG_MOBICORE_DRIVER)    += gud/
obj-$(CONFIG_RPDZKJ_SYSFS)     += rongpin/

 

 04 drivers目录下:

将switch,gud,rongpin三个目录拷贝进来(对应原目录)

05

 ---------------------------------

法二:

(对比法)

荣品的内核源码和从官方下载的内核源码不一样的有如下文件:

一 :arch

01◐arch主目录下:

①除arm、config其他全部删除

②修改config文件,在最后一行:source "kernel/gcov/Kconfig"

添加:

config HAVE_ARCH_SECCOMP_FILTER
    bool
    help
      An arch should select this symbol if it provides all of these things:
      - syscall_get_arch()
      - syscall_get_arguments()
      - syscall_rollback()
      - syscall_set_return_value()
      - SIGSYS siginfo_t support
      - secure_computing is called from a ptrace_event()-safe context
      - secure_computing return value is checked and a return value of -1
        results in the system call being skipped immediately.

config SECCOMP_FILTER
    def_bool y
    depends on HAVE_ARCH_SECCOMP_FILTER && SECCOMP && NET
    help
      Enable tasks to build secure computing environments defined
      in terms of Berkeley Packet Filter programs which implement
      task-defined system call filtering polices.

      See Documentation/prctl/seccomp_filter.txt for details.


source "kernel/gcov/Kconfig"

 

 02◐在arch/arm/configs下添加:

①exynos5_defconfig

 

二:block

1 blk-core.c文件:

①32行添加:

#include <linux/ratelimit.h>  //add by phone at 20151117

 

 

②2122行:

switch (error) {
case -ENOLINK:
error_type = "recoverable transport";
break;
case -EREMOTEIO:
error_type = "critical target";
break;
case -EBADE:
error_type = "critical nexus";
break;
case -EIO:
default:
error_type = "I/O";
break;
}
printk(KERN_ERR "end_request: %s error, dev %s, sector %llu\n",
error_type, req->rq_disk ? req->rq_disk->disk_name : "?",
(unsigned long long)blk_rq_pos(req));
}

 

换成:

switch (error) {
case -ENOLINK:
error_type = "recoverable transport";
break;
case -EREMOTEIO:
error_type = "critical target";
break;
case -EBADE:
error_type = "critical nexus";
break;
case -ETIMEDOUT:
error_type = "timeout";
break;
case -ENOSPC:
error_type = "critical space allocation";
break;
case -ENODATA:
error_type = "critical medium";
break;
case -EIO:
default:
error_type = "I/O";
break;
}
printk_ratelimited(KERN_ERR "end_request: %s error, dev %s, sector %llu\n",
error_type, req->rq_disk ?
req->rq_disk->disk_name : "?",
(unsigned long long)blk_rq_pos(req));

}

 

 

2 partition-genneric.c文件下:

①219行,添加:

static int part_uevent(struct device *dev, struct kobj_uevent_env *env)
{
    struct hd_struct *part = dev_to_part(dev);

    add_uevent_var(env, "PARTN=%u", part->partno);
    if (part->info && part->info->volname[0])
        add_uevent_var(env, "PARTNAME=%s", part->info->volname);
    return 0;
}

 

②233行添加:

.uevent        = part_uevent,

 

三:drivers

 1 Makefile:

103行添加:

obj-$(CONFIG_SWITCH)        += switch/

 

139行(最后添加):

obj-$(CONFIG_MOBICORE_DRIVER)    += gud/
obj-$(CONFIG_RPDZKJ_SYSFS)     += rongpin/

 

2 Kconfig:

第3行添加:

source "drivers/rongpin/Kconfig"   //add by phone at 20151117

 

第100行添加:

source "drivers/switch/Kconfig"   //add by phone at 20151117

 

第146行添加:

source "drivers/nfc/Kconfig"

source "drivers/gud/Kconfig"

 

3 将 

 

四:include

 

五:kernel

 

六:lib

 

七:mm

 

八:net

 

九:security

 

 

 

 

 

 

 

 

 

 

 

 

 

------------------

转载于:https://www.cnblogs.com/Ph-one/p/4942552.html

相关文章:

  • fedora如何设置上网
  • i386 和amd64 的意思
  • ubuntu下root用户配置
  • Android电源管理-休眠简要分析
  • sysfs实例
  • sysfs - 用于导出内核对象(kobject)的文件系统
  • 如何在User版本开启串口(Uart),抓取上层Log,开启输入控制台
  • Allegro16.3约束设置
  • allegro蛇形线
  • opencore
  • 深入浅出:Linux设备驱动之字符设备驱
  • Linux设备模型——设备驱动模型和sysfs文件系统解读
  • Linux内核的整体架构
  • ERP
  • PCB阻抗调节
  • python3.6+scrapy+mysql 爬虫实战
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • android 一些 utils
  • express如何解决request entity too large问题
  • gitlab-ci配置详解(一)
  • laravel with 查询列表限制条数
  • Promise面试题,控制异步流程
  • Python - 闭包Closure
  • rc-form之最单纯情况
  • React中的“虫洞”——Context
  • spring security oauth2 password授权模式
  • uva 10370 Above Average
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 高性能JavaScript阅读简记(三)
  • 关于springcloud Gateway中的限流
  • 诡异!React stopPropagation失灵
  • 前端临床手札——文件上传
  • 如何实现 font-size 的响应式
  • 软件开发学习的5大技巧,你知道吗?
  • 首页查询功能的一次实现过程
  • 主流的CSS水平和垂直居中技术大全
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​人工智能书单(数学基础篇)
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #HarmonyOS:Web组件的使用
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #微信小程序:微信小程序常见的配置传值
  • $.ajax,axios,fetch三种ajax请求的区别
  • ${factoryList }后面有空格不影响
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (BFS)hdoj2377-Bus Pass
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Python第六天)文件处理
  • (九)信息融合方式简介
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (四) 虚拟摄像头vivi体验