Linux--Cmake使用语法
CMake的基本语法12cmake [options] <path-to-source>
其中,path-to-source是要编译的源代码路径。CMake的选项包括:
12345678-D<var>=<value>:定义变量。-G <generator>:指定生成器。-B <build-dir>:指定生成的构建文件目录。-S <source-dir>:指定源代码目录。
定义变量可以使用-D选项定义变量,例如:
12cmake -DVAR_NAME=VAR_VALUE <path-to-source>
也可以在CMakeLists.txt文件中使用set命令定义变量,例如:
12set(VAR_NAME VAR_VALUE)
指定生成器CMake支持多种生成器,例如Unix Makefiles、Ninja、Visual Studio等。可以使用-G选项指定生成器,例如:
12cmake -G "Unix Makefiles" <path-to-source>
指 ...
Linux命令--常用指令
Linux 常用命令系统相关指令12345678910uname -a 查看内核cpu等信息head -n 1 /etc/issue 查看操作系统版本cat /proc/cpuinfo 查看cpu信息hostname 计算机名lsusb 列出usb设备lsmod 加载内核模块env 查看环境变量scp filename root@192.168.1.1:path 把本地文件放到 root(用户名)局域网ip下的 path下scp remote@www.abc.com:/usr/local/sin.sh /home/administrator 把远程服务器(局域网IP)文件放到本地目录(绝对路径)注意点:需要输入password,配置ssh
资源相关指 ...
Git--gitLab本地搭建
本地搭建gitLab服务器
清华源下载gitlab-ce安装包
网络地址
12345678# 信任gitlab公钥,否则无法下载curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null# 在/etc/apt/sources.list.d/gitlab-ce.list(没有则创建)增加deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal mainsudo apt-get updatesudo apt-get install gitlab-ce
失败请先安装
12345# sudo apt-get install curl # 其他之后用到的依赖sudo apt-get install openssh-server ca-certificates postfix
配置gitlab
12sudo vim /etc/gitlab/gitlab.rb
修改以下内容(初始为注释状态 ...
Git--基础指令
git 常用指令必知指令
git clone <网址>从远程仓库克隆项目到本地
git add <文件>增加文件索引
git commit -m “描述” 同步到本地仓库
git commit --amend撤销上次提交文件
git push -u origin master推送更改到远程 master 分支
git pull <远程主机> <分支>取回远程分支 (在合并之前如果修改必须先commit)
初始化仓库git init在本地初始化一个 Git 仓库,用于版本控制。会在当前目录下创建 .git 目录,包含所有版本控制信息。
git init --bare初始化一个裸仓库,不包含工作区,只存储 Git 的版本控制信息。常用于远程仓库的创建。
删除远程分支:
git push origin :<分支>推送一个空分支到远程,删除远程分支。
git push origin --delete <分支>删除远程指定分支。
分支操作:git checkout -b dev创建一个dev分支
git checkout ...
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 ...