Linux
永不做码农
一枚正在努力的学僧
展开
-
llvm clang编译器源码编译
llvm clang编译器源码编译原创 2022-01-18 10:21:15 · 2732 阅读 · 0 评论 -
记录一下关于Unix时间戳、UTC时间的知识点
世界标准时间GMT,即格林尼治时间,也就是世界时。GMT时间的正午时刻是指太阳垂直照射本初子午线的时间,为了描述世界各地的时间,将地球划分为24个时区,已本初子午线为0时区´’,向西、向东每隔15°划分一个时区,总共24个时区。由于GMT是以太阳横穿格里尼治的时刻为基准,但是由于地球自转速度不规则且缓慢减速,造成GMT时间越来越不准确,为了协调地球自转造成的时间误差,推出了UTC时间。UTC,即世界协调时,通过原子时钟秒长为基础,通过不规则的加入闰秒来抵消地球自转造成的影响,UTC的时间在时刻上接近原创 2021-12-07 21:45:00 · 2712 阅读 · 0 评论 -
CLion下如何使用cmake构建Qt项目
CMakeLists.txtcmake_minimum_required(VERSION 3.15)project(untitled)set(CMAKE_CXX_STANDARD 14)#设置qt5的cmake文件路径,让它cmake自动去寻找Qt5SET(CMAKE_PREFIX_PATH /opt/Qt5.14.0/5.14.0/gcc_64/lib/cmake)find_package(Qt5 COMPONENTS Widgets Core REQUIRED)set(CMAKE_AU原创 2021-06-05 01:38:44 · 682 阅读 · 0 评论 -
Ubuntu配置Nginx服务器
1、安装Nginxsudo apt-get install nginx 2、nginx服务sudo service nginx startsudo service nginx stopsudo service nginx restart3、测试Nginx服务访问:http://服务器IP:80/可以看到nginx的欢迎界面4、配置Nginxnginx的配置文件/etc/nginx/nginx.confuser root; // 指定Nginx Worker原创 2020-12-16 14:59:19 · 1155 阅读 · 0 评论 -
Linux下使用ALSA进行音频播放
编译方法gcc -o main main.c -lasound注: 这个程序必须链接到alsalib库,通过在编译时需要加上-lasound选项。有些alsa库函数使用dlopen函数以及浮点操作,所以您可能还需要加上-ldl,-lm选项。alsa显示详细参数信息#include <alsa/asoundlib.h>int main(){ int val; printf("ALSA library version: %s\n",SND_LIB_VERSION_S原创 2020-09-18 10:43:42 · 4969 阅读 · 0 评论 -
Linux编程之Makefile简介
格式: 目标项: 依赖一 依赖二 … <Tab>command 示例: /*这里只有一个依赖项main.c*/ main : main.c gcc main.c –o main 编译多个文件示例: /* 这个Makefile将main.c、add.c、sub.c这三个文件编译成对应的.o文件, 然后将这三个.o文件编译成名叫out的可执行程序 */ out : main.o a...原创 2020-09-18 10:25:22 · 117 阅读 · 0 评论 -
MakeFile 资料
格式: 目标项: 依赖一 依赖二 … <Tab>command 示例: /*这里只有一个依赖项main.c*/ main : main.c gcc main.c –o main 编译多个文件示例: /* 这个Makefile将main.c、add.c、sub.c这三个文件编译成对应的.o文件, 然后将这三个.o文件编译成名叫out的可执行程序 */ out : main....原创 2020-08-19 13:41:15 · 153 阅读 · 1 评论 -
Linux 添加802.11n网卡驱动
1、烧写镜像,编译板子的Linux内核,覆盖sd卡的内核文件2、编译网卡驱动 将驱动源码的内核路径改为Linux内核路径,然后make,生成.ko文件3、添加开机自动加载网卡驱动功能 将驱动文件拷贝到/lib/modules/$(uname -r)/kernel/drivers中,然后执行depmod,重启即可4、降低NetWork Manager的开机等待时间 /lib/systemd/system/NetworkManager-wait-online.service文件内容...原创 2020-08-19 13:40:14 · 2310 阅读 · 0 评论 -
嵌入式Android底层开发
嵌入式Linux主要有这几部分:Bootloader:主要用于引导Linux内核到内存中,让内核进行自解压并运行zImage:带自解压的Linux内核<Board>.dtb:每个型号的主板都有对应的设备树(保存对应的设备型号等信息,实现驱动和 设备分离)rootfs.img:Linux根文件系统,用于支持Linux内核运行的最小文件系统 (其实Android系统也是属于Linux文件系统的一种)Android系统主要有这几部分...原创 2020-08-19 13:37:07 · 1263 阅读 · 0 评论 -
linux 将系统制作为IMG
安装工具$sudo apt-get install dosfstools dump parted kpartx根据文件系统大小生成镜像文件将SD卡插入PC机上$df -h -m打印信息如下文件系统 1M-块 已用 可用 已用% 挂载点udev 1907 0 1907 0% /devtmpfs 386 7 380 2% /run/dev/sda6 314483 15原创 2020-08-19 12:54:35 · 4112 阅读 · 3 评论 -
Android系统下如何通过外设实现GPIO中断触发调用Android程序执行
沙雕老板不知道在哪请了个沙雕项目经理,公司产品改进需要,要求在Android系统下通过GPIO硬件中断实现Android程序唤醒,我擦,我特么要死了,还要去搞Linux驱动,在此记录一下实现方式。先上一张Android系统架构图:Android系统底层基于Linux内核,所以要实现硬件中断唤醒Android程序,需要编写Linux驱动,注册对应GPIO中断函数,然后通过异步通知方式将中...原创 2020-02-21 13:21:22 · 4218 阅读 · 3 评论 -
Linux 下使用V4L2协议通过mmap方式进行摄像头原始图像的采集与存储
原理Linux内核用一个被称为V4L2的机制来管理摄像头图像信息。在内核中,摄像头所捕获的视频数据,我们可以通过一个队列来存储,当摄像头数据到来时,内核会查看队列中是否有缓冲区(v4l2_buffer),若有缓冲区则将摄像头数据保存到缓冲区(v4l2_buffer)中,若没有缓冲区或所有的缓冲区被使用完则放弃此次摄像头传送过来的数据。工作流程大致是这样的:首先查询摄像头所支持的相关参数...原创 2019-04-11 19:01:46 · 5591 阅读 · 8 评论