![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
llljjlj
这个作者很懒,什么都没留下…
展开
-
Linux kernel中断子系统之(五):驱动申请中断API
一、前言本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的驱动的时候,如何向Linux Kernel中的中断子系统注册中断处理函数?为了理解注册中断的接口,必须了解一些中断线程化(threaded interrupt handler)的基础知识,这些在第二章描述。第三章主要描述了驱动申请 interrupt line接口API request_threaded_irq的规格。第四章是进入request_threaded_irq的实现细节,分析整个代码的执行过程。二、和中断相关的linux转载 2022-04-26 10:38:48 · 823 阅读 · 0 评论 -
你真的懂Linux内核中的阻塞和异步通知机制吗?
阻塞/非阻塞简介 阻塞操作是指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作。被挂起的进程进入睡眠状态,被从调度器的运行队列移走,直到等待的条件被满足。而非阻塞操作的进程在不能进行设备操作时,并不挂起,它要么放弃,要么不停地查询,直至可以进行操作为止。阻塞/非阻塞例程 阻塞方式int fd;int data = 0;fd = open("/dev/xxx_dev", O_RDWR); /* 阻塞方式打开 */ret = read(fd, &d转载 2022-01-10 12:51:51 · 317 阅读 · 0 评论 -
关于openssl的交叉编译
最*有个*台软件模块需要依赖openssl,于是去openssl的官方网站上下载了最新的版本,v1.1.1b版本。解压之后,发现配置编译,可以使用./config或者./Configure来完成。网上也查了一些交叉编译的说明,经常在config之后,但是大都还要手动的修改makefile才行。这就让我这种需要为N个交叉编译环境提供*台库文件的人头疼了。但是仔细一想,openssl这种用途如此广的开源库,在交叉编译应该做得很好才对啊!于是打开config脚本,稍微研究了一下,其实交叉编译也原创 2021-07-05 16:04:34 · 604 阅读 · 0 评论 -
Source Insight工程精准导入用到的Linux内核文件
见https://blog.csdn.net/yunlong654/article/details/84654042转载 2021-06-29 20:12:32 · 231 阅读 · 0 评论 -
linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group 文件内容解释
与用户相关的系统配置文件主要有/etc/passwd和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等;/etc/passwd和/etc/shadow 文件是互补的;/etc/passwd 是系统识别用户的一个文件,系统所有的用户都在这里有登录记载;当我们以beinan 这个账号登录时,系统首先会查阅 /etc/passwd文件,...原创 2020-03-29 15:27:19 · 2853 阅读 · 0 评论 -
Linux权限管理-基本权限
阅读目录(Content)1.权限概述 1.1.什么是权限? 1.2.为什么要有权限? 1.3.权限与用户之间的关系? 1.4.权限中的rwx分别代表什么含义? 2.权限设置示例 2.1.为什么要设定权限,我们⼜如何修改⼀个文件的权限? 2.2.使用chmod设定权限示例 2.3.权限设置案例 3.权限设置案例 权限 对文件的影响 对目录的影响 读取权限...原创 2020-03-17 12:29:08 · 164 阅读 · 0 评论 -
Linux 建立 TCP 连接的超时时间分析
见https://blog.csdn.net/qq_22054285/article/details/79189146原创 2020-03-09 19:36:12 · 409 阅读 · 0 评论 -
linux很实用的命令:返回上一次所在的目录
经常有这种情况,千辛万苦才进入到一个很深的目录,一不小心手贱输入了cd并回车一下子回到根目录下了,又需要花费很多时间重新进入到那个目录,那么有没有办法一下子回到先前的目录吗?答案是肯定的。使用cd -命令...原创 2020-03-03 17:19:26 · 1570 阅读 · 0 评论 -
linux unzip 命令
1.命令简介unzip 命令用于列出、测试和提取 ZIP 存档中的压缩文件。如果 unzip 不跟任何选项(默认行为),会将指定的 ZIP 存档文件解压到当前目录。2.命令格式unzip [-Z] [OPTIONS] [ZIP_FILE...] [FILE...] [-x FILE...] [-d EXDIR][ZIP_FILE…] 表示 ZIP 存档文件,[FILE…] 表示...原创 2020-03-03 15:18:36 · 1385 阅读 · 0 评论 -
Linux zip命令
Linux zip命令用于压缩文件。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。语法zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本...原创 2020-03-03 15:07:37 · 98 阅读 · 0 评论 -
嵌入式Linux上移植unzip工具
由于busybox编译出来的unzip不支持有密码的压缩包解压,因此基于unzip60源码包,交叉编译一个嵌入式Linux上的unzip工具。1.下载地址是:https://sourceforge.net/projects/infozip/2.配置修改unzip60/unix/Makefile:1 CC =arm-arago-linux-gnueabi-gcc #try us...原创 2020-03-03 14:53:13 · 752 阅读 · 0 评论 -
Linux驱动(并发):02---编译乱序、执行乱序(屏障API(bm、rmb、wmb、__iormb、__iowmb))
原文地址https://blog.csdn.net/qq_41453285/article/details/103098096比如下面一段代码,写端申请一个新 的struct foo结构体并初始化其中的a、b、c,之后把结构体地址赋值给全局gp指针:struct foo { int a; int b; int c;};struct foo *gp =...转载 2019-12-25 17:42:30 · 865 阅读 · 0 评论 -
wifi的几种工作模式
Linux系统下关于WIFI的配置,其具体的模式主要有以下这几种:STA模式、AccessPoint模式、Monitor模式、Ad-hoc(IBSS)模式、WDS模式、Mesh模式。第一种:STA模式任何一种无线网卡都可以运行在此模式下,这种模式也可以称为默认模式。在此模式下,无线网卡发送连接与认证消息给热点,热点接收到后完成认证后,发回成功认证消息,此网卡接入无线网络。这种模式下,wifi工...原创 2019-11-11 08:16:49 · 533 阅读 · 0 评论 -
Linux 的各种 signal
信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加...原创 2019-11-09 11:00:59 · 241 阅读 · 0 评论 -
如何查看linux的信息
查看CPU信息:cat /proc/cpuinfo其他查看硬件信息命令。查看板卡信息:cat /proc/pci查看PCI信息:lspci (相比cat /proc/pci更直观)查看内存信息:cat /proc/meminfo查看USB设备:cat /proc/bus/usb/devices查看键盘和鼠标:cat /proc/bus/input/devices查看系统硬盘信息和使用...原创 2019-11-07 09:55:59 · 171 阅读 · 0 评论 -
linux函数库之htons(), ntohl(), ntohs(),htons() 函数
字节序分为大端字节序和小端字节序:大端字节序: 是指一个整数的高位字节(32-31bit)存储在内存的低地址处,低位字节(0-7bit)存储在内存的高地址处。小端字节序: 是指一个整数的高位字节(32-31bit)存储在内存的高地址处,低位字节(0-7bit)存储在内存的低地址处。现代PC大多采用小端字节序,所以小端字节序又被称为主机字节序。大端字节序也称为网络字节序。/C++写网络程序...原创 2019-11-04 19:43:56 · 1083 阅读 · 0 评论 -
海思HI35XX串口调试
https://blog.csdn.net/li_wen01/article/details/86529523原创 2019-10-16 16:39:32 · 515 阅读 · 0 评论 -
Ubuntu 18.04LTS安装配置Java OpenJDK8
安装OpenJDK8sudo apt-get install openjdk-8-jdk配置Java环境变量sudo vim /etc/profile在profile末尾添加以下内容:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$J...原创 2019-10-13 15:51:28 · 383 阅读 · 0 评论 -
list.h使用说明
原文位置https://blog.csdn.net/lmjjw/article/details/98330251位置位于./usr/src/linux-2.6.32.9/include/linux/list.h使用时包括#include<linux/list.h>2数据结构1234567891...原创 2019-10-13 10:13:18 · 306 阅读 · 0 评论 -
交叉编译openssl
交叉编译openssl1.1.1a的时候遇到的问题,记录一下,方便下次查找一、下载源码1.打开openssl官网,下载openssl-1.1.1.tar.gz源码包。2.执行下面的命令解压源码包: $ tar xvzf openssl-1.1.1.tar.gz二、配置openssl1.执行下面的命令配置工程 $ ./config no-asm share...原创 2019-09-27 15:21:50 · 299 阅读 · 0 评论 -
configure: error: cannot run C compiled programs出错
configure: error: cannot run C compiled programs出错时需要使用--host参数来选择目标环境。在交叉编译arm板上时,使用--host=arm原创 2019-09-27 16:09:56 · 2631 阅读 · 0 评论 -
strtok和strsep函数详解
函数原型:char *strtok(char *s, const char *delim);char *strsep(char **s, const char *delim);功能:strtok和strsep两个函数的功能都是用来分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。返回...原创 2019-05-06 09:12:18 · 812 阅读 · 0 评论 -
linux下统计程序/函数运行时间
如果只是初步统计或比较各函数的运行时间,可以用以下方法,若是想详细统计项目中各个函数时间,建议使用第三方工具一. 使用time 命令例如编译一个hello.c文件#gcc hello.c -o hello生成了hello可执行文件,此时统计该程序的运行时间便可以使用如下命令#time ./hello 在程序运行结束后便会显示出所需时间real 0m2.913suser 0m0.012...原创 2018-04-30 11:31:53 · 1561 阅读 · 0 评论 -
Linux 中 sudo、su命令
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。sudo -i: 为了频繁的执行某些只有超级用户才能...原创 2019-09-27 10:32:34 · 3099 阅读 · 0 评论 -
加载内核模块-Unknown symbol错误分析
在调试过程中,发现一个问题,编译生成一个KO文件,insmod加载后报错:Unknown symbol var_set_integer (err 0)Unknown symbol parse_arg_eq (err 0)问题分析思路:一、用命令查看内核中是否已有这个内核符号,例如要查看是否有var_set_integer这个内核符号,输入命令:#cat /proc/ka...原创 2019-08-22 12:24:43 · 629 阅读 · 1 评论 -
字符串分割函数strtok和strsep使用注意事项
转载自https://blog.csdn.net/astrotycoon/article/details/50813959为什么写本文最近工作中经常需要解析字符串,并且这些字符串都有一个共同的特点,那就是它们由一个或者多个分隔符(delimiter)隔开,而我要做的就是提取出由这些分隔符隔开的诸多子串。我们来看一个例子,假设DHCP服务器返回的信息如下格式:网络地址:子网掩...转载 2019-06-26 16:36:26 · 767 阅读 · 0 评论 -
tcp_socket绑定(bind)失败---Address already is use原因
我们前面介绍了三种tcp_server编写多进程多线程服务器编写,在测试这三个servet我们遇到一个问题,就是当我们绑定一个端口号后,ctrl-z结束掉server服务器,此时再次绑定该端口号会出现这样的出错提示:显示端口号正在被使用,可是我们已经关闭了服务器了,为什么不能使用呢?但过一端时间之后,该端口号又可以使用了,这又是为什么呢?IBM官网给出了具体解释linux套接字编程的五大隐患 其中...原创 2018-04-24 19:16:31 · 2011 阅读 · 0 评论 -
pthread_attr_init线程属性
1.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1.名称::pthread_attr_init/pthread_attr_destroy功能:对线程属性初始化/去除初始化头文件:#inclu...原创 2018-04-30 22:16:27 · 245 阅读 · 0 评论 -
linux 网络参数调优
所有的TCP/IP调优参数都位于/proc/sys/net/目录。例如, 下面是最重要的一些调优参数, 后面是它们的含义:1. /proc/sys/net/core/rmem_max — 最大的TCP数据接收缓冲。2. /proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲。3. /proc/sys/net/ipv4/tcp_timestamps — 时间戳在(请参考...原创 2018-04-13 19:37:02 · 466 阅读 · 0 评论 -
linux setsockopt 设置发送缓冲区大小
setsockopt(s, SOL_SOCKET, SO_SNDBUF, (const char*)&m_sLinger, sizeof(linger)); 根据上述配置可以配置发送缓存区和接受缓存区大小。但是设置后的真实缓存区大小是多少呢? (1)当设置的值val > 最大值sysctl_wmem_max,则设置为最大值的2倍:2*sysctl_wmem_max; ...原创 2018-04-13 19:24:49 · 2809 阅读 · 0 评论 -
linux setsockopt函数
功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#include <sys...原创 2018-04-13 18:38:32 · 368 阅读 · 0 评论 -
嵌入式linux开发板上增加rfkill命令
很多计算机系统包含无线电传输,其中包括Wi-Fi、蓝牙和3G设备。这些设备消耗电源,在不使用这些设备时是一种浪费。 RFKill是Linux内核中的一个子系统,它可提供一个界面,在此界面中可查询、激活并取消激活计算机系统中的无线电传输。当取消激活传输时,可使其处于可被软件重新激活的状态(软锁定)或者将其放在软件无法重新激活的位置(硬锁定)。 RFKill核为子系统提供应用程序编程界面(API)。内...原创 2018-04-30 10:10:13 · 3246 阅读 · 0 评论 -
通过 xshell 连接 ubuntu on windows(WSL)
装上 ubuntu on windows 后,默认要先打开 cmd, 再运行 bash 进入 ubuntu 的 shell。 但是这个shell很难看,配色不好就算了,还存在各种复制粘贴麻烦、默认没进入 home 目录、各种报警声等问题。所以尝试用 xshell 登陆 ubuntu 这里主要讲几个关键步骤1. 卸载 ssh serversudo apt-get remove openssh-ser...原创 2018-04-18 23:56:21 · 1107 阅读 · 0 评论 -
linux网络编程:设置非阻塞socket收发数据
非阻塞式I/O包括非阻塞输入操作,非阻塞输出操作,非阻塞接收外来连接,非阻塞发起外出连接。包括的函数有:read, readv, recv, recvfrom, recvmsg, write, writev, send, sendto, sendmsg, accept。 将socket 设置为非阻塞模式有三种方法: (1)创建socket的时候,指定socket是异步的,在type的参...原创 2018-04-17 15:01:31 · 449 阅读 · 0 评论 -
libnl编译
1,配置./configure --prefix=$(pwd)/_install --enable-shared --enable-static表示安装到当前文件夹下_install目录 方便管理2,make ARCH=arm CROSS_COMPILE=xxxxxx3.make isntall原创 2018-04-16 11:20:25 · 865 阅读 · 0 评论 -
LINUX socketopt 设置
功能描述:获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位 于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须 给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#include <sys/types...原创 2018-04-29 15:15:01 · 213 阅读 · 0 评论 -
Ubuntu 16.04配置国内高速apt-get更新源
Ubuntu 16.04下载软件速度有点慢,因为默认的是从国外下载软件,那就更换到国内比较好的快速更新源(就是这些软件所在的服务器),一般直接百度Ubuntu更新源就能出来一大堆,这时候最好是找和自己Ubuntu版本一致的更新源,我的Ubuntu版本是16.04,下面是我找到的一个比较好的更新源。1.寻找国内镜像源https://mirrors.tuna.tsinghua.edu.cn/h...原创 2018-08-11 12:57:30 · 9505 阅读 · 0 评论 -
Linux-压缩解压命令(gzip,zip,tar,bzip)
1.命令:gzip (压缩文件) 压缩文件后缀.gz ps: gzip test.txt 结果:生成文件test.txt.gz,原文件test.txt消失。 注意:只能压缩文件,不能压缩目录,压缩后不保留 原始文件,压缩比大概1/5 解压命令:gunzip2.命令:tar (打包压缩目录) 严格意义上来说此命令为“打包”命令,将目录打包成一个*.tar文件 语法:t...翻译 2019-05-24 09:47:08 · 467 阅读 · 0 评论 -
route命令详解与使用实例
1. 使用背景需要接入两个网络,一个是部署环境所在内网环境,这个环境是上不了外网, 外网环境很可能是一个无线网络。如果两者都连接上,很可能导致有一方不能起作用,即外网或内网上不了,常常需要使用繁琐的“禁用网络连接”、“启用网络连接”的操作来进行内外网的切换,甚是麻烦。为了解决这个问题,可以使用route命令来使得同时内外网都可用。2. route命令rou...原创 2019-05-23 09:52:13 · 1632 阅读 · 0 评论 -
Linux终端下后台运行程序被Stopped的原因以及解决
一、问题以及原因将一个可执行文件,放到后台运行时,一会就stoped,/AP_Connect &终端打印此信息:[1]+ 已停止 ./AP_Connect然后使用 top 命令查看进程AP_Connect的状态为T,即Stopped该段程序的main.cpp,如下:[cpp]view plaincopy#includ...原创 2019-05-11 10:44:25 · 3249 阅读 · 0 评论