Android--增加开机自启服务
增加自启动服务环境:目前在rk3568芯片上 测试成功/common
目前需要把 BoardConfig.mk 中selinux关闭,目前开启后会执行不成功,原因暂时未知。
1BOARD_SELINUX_ENFORCING ?= false
path: /device/rockchip/common/sepolicy/vendor
增加 cstest.te
其中cstest是创建的脚本程序名称
12345678910111213141516171819202122type cstest, domain;type cstest_exec, exec_type, vendor_file_type, file_type;init_daemon_domain(cstest)allow cstest vendor_shell_exec:file { execute_no_trans };#allow cstest shell_exec:file { map };allow cstest de ...
Git--本地服务器搭建
前言本地搭建git服务其环境
新建管理员账号(用于单独管理仓库)
12useradd -m gitmanagerpasswd gitmanager
下载安装git
123apt-get install git## 下载失败apt-get update
安装openssh
1apt-get install openssh-server openssh client
下载gitosis
1234567git clone https://github.com/res0nat0r/gitosis.gitcd gitosissudo python setup.py install##未安装需要安装Pythonsudo apt-get install python
创建项目仓库存储点
1mkdir /home/gitServer
管理员公钥 放入服务器
123456789###主机电脑上ssh-keygen -t rsascp .ssh/id_rsa.pub gitmanager@ip:/home/gitmanager/id_rsa.pub###追加其他人公钥至管理员$ ...
Linux内核--Makefile和kconfig详细关系
Makefile和kconfig 语法与关系kconfig用法kconfig是可以menuconfig识别,专门从其中提取配置菜单项,用于添加到内核配置项目中
关键字如下:
123456789101112131415161718menuconfig:表示菜单。后面接在菜单中显示的选项名一般用大写说明,需要与Makefile文件中名称对应source:加载子kconfig,该目录下含有子目录,在子目录中也有kconfig文件,必须用source。tristate:变量值,表示可以设置3种状态,(对应Y、N、M三种选择方式)。bool:变量值,和tristate类似,但只可以选择两种状态(对应Y和N)。string:变量值,表示字符串。depends:该配置项必须依赖某个配置项,依赖的配置项必须为Y或者M状态,如果是N状态,则不会在menu菜单中显示。select:表示depends on的值有效时,select 修饰的配置项也会成立。default:接三种状态,表示默认处于修饰的状态,特殊情况会伴随条件。help:自己写的帮助描述信息,以“.”结束。
案例分析
1234567891011 ...
Linux驱动--GPIO驱动编写
Linux 驱动编写GPIO驱动编写
头文件
123456#include <linux/module.h>#include <linux/init.h>#include <linux/of.h>#include <linux/of_gpio.h>#include <linux/platform_device.h>#include <dt-bindings/gpio/gpio.h>
module.h :驱动必须加载头文件,动态加载到内核init.h : 模块的初始化的宏定义 以及一些其他函数的初始化函数,可以使用module_initof.h ,of_gpio.h:设备树相关头文件,含有对设备数操作函数platform_device.h:抽象平台设备,用于内核抽象匹配写的驱动
函数解析
加载和卸载驱动
module_init()module_exit()
这两个函数分别在加载和卸载驱动时被调用。流程如下insmod -> init_module -> module_init;rmmod ...