uboot 编译出现 Error: You must add new CONFIG options using Kconfig 解决方法


[现象]

UBoot 编译时出现:

Error: You must add new CONFIG options using Kconfig The following new ad-hoc CONFIG options were detected:

[方法] 修改其中一个即可

1. 增加对应的值到

u-boot\scripts\config_whitelist.txt

2. 注释掉顶层 Makefile 中下面几句:

quiet_cmd_cfgcheck = CFGCHK  $2
cmd_cfgcheck = $(srctree)/scripts/check-config.sh $2 \
		$(srctree)/scripts/config_whitelist.txt $(srctree)

改成:

#quiet_cmd_cfgcheck = CFGCHK  $2
#cmd_cfgcheck = $(srctree)/scripts/check-config.sh $2 \
#		$(srctree)/scripts/config_whitelist.txt $(srctree)

3. 修改 Error 为 Warning 防止编译中断

diff --git a/scripts/check-config.sh b/scripts/check-config.sh
index 6618dfb..9d2cfc6 100755
--- a/scripts/check-config.sh
+++ b/scripts/check-config.sh
@@ -37,14 +37,13 @@  cat `find ${srctree} -name "Kconfig*"` |sed -n \
 	-e 's/^menuconfig \([A-Za-z0-9_]*\).*$/CONFIG_\1/p' |sort |uniq > ${ok}
 comm -23 ${suspects} ${ok} >${new_adhoc}
 if [ -s ${new_adhoc} ]; then
-	echo "Error: You must add new CONFIG options using Kconfig"
+	echo "Warning: You must add new CONFIG options using Kconfig"
 	echo "The following new ad-hoc CONFIG options were detected:"
 	cat ${new_adhoc}
 	echo
 	echo "Please add these via Kconfig instead. Find a suitable Kconfig"
 	echo "file and add a 'config' or 'menuconfig' option."
 	# Don't delete the temporary files in case they are useful
-	exit 1
 else
 	rm ${suspects} ${ok} ${new_adhoc}
 fi

格科微[GalaxyCore]摄像头成像方向调节方法


GalaxyCore 系列摄像头采用逐行扫描的方式将阵列产生的信号依次输入到模拟信号处理模块中。最开始的行为 0 行。在默认寄存器设置下,Sensor 的阵列数据输出顺序为从下到上,从左到右。GalaxyCore 系列摄像头可通过寄存器控制扫描顺序,实现镜像/垂直翻转。
继续阅读“格科微[GalaxyCore]摄像头成像方向调节方法”

MTK摄像头Android驱动新版本升级指南


MTK摄像头的驱动包含有kernel部分和hal层2个部分,在Android版本升级之后,内核版本也进行了升级,在旧版本往新版本移植的过程中,要注意以下几个部分:

继续阅读“MTK摄像头Android驱动新版本升级指南”

MTK 平台如何在 user 版本打开串口打印信息



串口打印作为常用的调试方法,在解决系统死机和各种设备问题时十分有效,通常是在eng版本的时候才有完整的打印信息,若是在量产阶段或者 user 版本时没有串口通常无法有效分析问题。
因此,在user版本中打开打印,作为分析问题的方法十分有效,下面记录一下 MTK 平台在 user 版本打开串口打印信息的2种方法:
继续阅读“MTK 平台如何在 user 版本打开串口打印信息”

SELinux简介


 LOCK

一、 SELinux 来源

        SELinux 即Security-Enhanced Linux, 由美国国家安全局(NSA)发起, Secure Computing Corporation (SCC) 和 MITRE 直接参与开发, 以及 很多研究机构(如犹他大学)一起参与的强制性安全审查机制, 该系统最初是作为一款通用访问软件,发布于 2000 年 12 月(代码采用 GPL 许可发布)。并在Linux Kernel 2.6 版本后, 有直接整合进入SELinux, 搭建在Linux Security Module(LSM)基础上, 目前已经成为最受欢迎,使用
最广泛的安全方案.

二、SELinux 基本架构与原理

       SELinux 是典型的MAC-Mandatory Access Controls 实现, 对系统中每个对象都生成一个安全上下文(Security Context),每一个对象访问系 统的资源都要进行安全上下文审查。审查的规则包括类型强制检测(type enforcement), 多层安全审查(Multi-Level Security), 以及基于角色 的访问控制(RBAC: Role Based Access Control)。

SELinux 搭建在Linux Security Module(LSM)基础上, 关于 LSM 架构的详细描述请参见文章 《 Linux Security Modules: General Security Support for the Linux Kernel 》,该文章在 2002 年的 USENIX Security 会议上发表。有完整的实现LSM 的所有hook function 。

SELinux 的整体结构如下图所示:

selinux框架

SELinux 包含五个基本组成:

  • 用于处理文件系统的辅助模块, 即SELinuxFS
  • 集成Linux Security Modules 的hooks sets
  • Security Policy Database
  • Security Label 验证模块
  • Access Vector Cache (AVC), 访问向量缓存,以便提高验证速度

基本的访问流程如下图所示:

访问流程图

流程如下:

  • 进程通过系统调用(System Call) 访问某个资源, 进入Kernel 后, 先会做基本的检测, 如果异常则直接返回
  • Linux Kernel DAC 审查, 如果异常则直接返回
  • 调用Linux Kernel Modules 的相关hooks, 对接到SELinux 的hooks, 进而进行MAC 验证, 如果异常则直接返回
  • 访问真正的系统资源
  • 返回用户态, 将结构反馈