
Linux
文章平均质量分 82
宁静致远2021
天道酬勤,持之以恒。
发上等愿,结中等缘,享下等福;
择高处立,寻平处住,向宽处行。
展开
-
linux下实现U盘和sd卡的自动挂载
2、在/etc下的mdev.conf文件中加入(如果没有这个文件,则新建一个)3、在/etc下建立hotplug文件夹,并在该文件夹下建立两个文件。1、在/etc/init.d/rcS中加入以下语句。原创 2025-01-11 22:39:16 · 967 阅读 · 0 评论 -
嵌入式linux 内核启动时动态加载驱动模块的方法
手头有个项目底层基本结束,所有的驱动都已经写好,并且调试通过了,但是考虑到每次使用时都手动加载驱动,岂不是很“蠢”,能自动的事怎么能手动呢?于是开始折腾“linux开机自动加载驱动”,百度,谷歌了半天,怎么感觉说的都不清楚:为毛他们说的文件、文件夹我都没有?难道我用的是假的文件系统,假的内核?唯一靠谱的就是:在 /etc/rcx.d 文件夹下添加shell脚本,再让脚本去 insmod或modeprob 自己的驱动。原创 2025-01-10 20:03:46 · 796 阅读 · 0 评论 -
Linux驱动开发(速记版)--设备树插件
*Linux 4.4之后引入了动态设备树,其中的设备树插件(Device Tree Overlay)是一种扩展机制,允许在运行时动态添加、修改或删除设备节点和属性。**设备树插件机制通过DTS(设备树源文件)定义,提供了一种灵活配置硬件设备的方式,无需重新编译整个设备树,也无需重启系统即可进行硬件配置更改。在 linux 源码中 linux_sdk/kernel/Documentation/filesystems/configfs 目录下的 configfs.txt。是设备树插件的帮助文档。原创 2024-11-22 22:32:01 · 1190 阅读 · 0 评论 -
解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题
设置缩放比例,调节所有字体缩放的倍数,如我设置1.5倍大小,自己根据自己的电脑分辨率定。屏幕分辨率太高了,导致整个系统字体看起来过小。安装完成后,在终端输入下面命令,弹出优化窗口。安装gnome-tweaks桌面配置工具。输入数字完成后,按下enter回车键即可。原创 2024-11-18 19:52:23 · 1180 阅读 · 0 评论 -
VMware 17虚拟Ubuntu 22.04设置共享目录
lang=zh_cn。笔者按官方文档https://docs.vmware.com/en/VMware-Workstation-Pro/17/com.vmware.ws.using.doc/GUID-AB5C80FE-9B8A-4899-8186-3DB8201B1758.html,以及vmhgfs-fuse -h示例,使用vmhgfs-fuse .host:/ /mnt/hgfs来挂载共享目录,可是还是无法显示出来。是的我认为是我的,共享文件挂载问题,很多文章的挂载过程比较简单,甚至挂载过后依然无效。原创 2024-11-15 11:17:57 · 1581 阅读 · 0 评论 -
Ubuntu中以root身份运行Qt创建的项目
使用Qt开发项目时遇到了一个问题,项目要调用串口时会需要root权限,而当我们使用桌面启动Qt creator使用的是用户身份,在debug或run项目时会出现权限不够的状况。可以在终端直接找到项目的bin文件以sudo权限运行,但是太过繁琐,不能每次都这样去调试。原创 2024-11-09 16:00:33 · 857 阅读 · 0 评论 -
ubuntu18.04下载国内镜像及安装事项
Debian是一种自由的操作系统,它基于Linux内核和GNU项目的软件。Debian的目标是提供一个稳定、安全、高效和易于使用的系统,适用于各种硬件平台和应用场景。Debian的特点包括:丰富的软件包:Debian拥有超过60000个软件包,涵盖了各个领域,如办公、教育、游戏、编程、科学、多媒体等。用户可以通过apt工具方便地安装和更新软件包。多架构支持:Debian支持多种处理器架构,如x86、x86_64、arm、mips、ppc等。用户可以根据自己的硬件选择合适的版本。原创 2024-10-28 08:47:14 · 3648 阅读 · 0 评论 -
如何隐藏 Ubuntu 顶部状态栏
Hide Top Bar 扩展是隐藏 Ubuntu 顶部状态栏的最佳选择,它提供了包括「智能隐藏」在内的多种功能,可以在应用窗口触碰到屏幕顶部或全屏时自动隐藏顶部栏。Hide Top Bar 支持 GNOME 3.16 到 46 版本,包括当前最新的 Ubuntu 24.04 LTS 和所有基于早期 GNOME 版本的旧系统。3安装好后,返回「已安装」标签页,点击 Hide Top Bar 旁边的「齿轮」图标。Hide Top Bar 支持自定义,支持「智能隐藏」功能,当应用窗口全屏时自动隐藏顶栏。原创 2024-07-13 14:52:15 · 2288 阅读 · 0 评论 -
linux就该这么学【进程间通信】
原文链接:https://blog.youkuaiyun.com/m0_53421868/article/details/123194775原创 2024-06-29 11:00:36 · 192 阅读 · 0 评论 -
环境篇-Windows下安装OpenSSL, 【QT】windows下OpenSSL的使用,RSA加解密
OpenSSL是一个功能丰富且开源的安全工具箱,它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。建议,不要拷贝到系统目录下,如果其他软件使用的OpenSSL版本与你安装这个版本不同,可能导致该软件无法使用。再次验证,查看OpenSSL版本正确。原创 2024-06-14 13:16:53 · 1644 阅读 · 0 评论 -
Linux之killall命令
我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。默认情况下,killall 会告诉你命令执行情况,但是,我们如果不关心它的执行结果,只想让它静默执行,只需加上-q选项即可,其中q表示quite。如果你在杀死多个进程时不太放心,担心把不该杀死的进程给杀死了,那么你可以使用-i选项。killall 命令是大小写敏感的,所以我们如果写错大小写,将无法正确杀死进程。原创 2024-05-30 09:09:10 · 1130 阅读 · 0 评论 -
RK3568外置RTC芯片PCF8563T(或替代型号)实验
rtc芯片的电压不低,但是总报错,先注释掉就可以使用了。报错原因以后再看一下寄存器相关文档。在kernel的menuconfig中选中。原创 2024-05-13 15:40:37 · 1815 阅读 · 0 评论 -
RK3568 解决MIPI屏幕开机只显示uboot logo的问题
之前写过一篇文章介绍了RK3568驱动MIPI屏幕的方法,这次产品迭代,硬件改版,选型的新的屏幕了。所以再次开启调试屏幕的过程。本以为会和上次一样会轻车熟路,事情总是事与愿违,同样的路,遇到新的坑。屏是嵌入式驱动开发中常见的设备,一般的带屏项目中最开始要调试的,简单记录一下自己在项目开发中的经验过程。所用平台是rockchip的rk3568,android11。原创 2024-05-11 13:41:55 · 1515 阅读 · 0 评论 -
基于Ubuntu环境Git服务器搭建及使用
将客户端公钥id_rsa.pub内容复制到服务端.ssh/下新建文件authorized_keys里,这样我们在拉取推送代码时,就不需要输入密码了。在服务器终端输入如下命令,输入两次密码后(比如密码也是:git),一路回车就创建好了。客户端:windows10_x64、Ubuntu20.04。无论是服务端还是客户端都需要先安装git。服务器:Ubuntu18.04。原创 2023-12-31 22:10:35 · 3251 阅读 · 0 评论 -
linux实用技巧:ubuntu18.04安装samba服务器实现局域网文件共享
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。原创 2023-12-30 18:54:32 · 2383 阅读 · 2 评论 -
Win10安装TortoiseGit,报错误码 2503
输入 msiexec /package + 安装程序所在的绝对路径,如: msiexec /package F:\DownLoad\TortoiseGit-2.10.0.0-64bit.msi。原创 2023-02-10 16:06:29 · 725 阅读 · 0 评论 -
进程间通信系列 之 概述与对比
进程间通信系列 之 概述与对比引言概述一般来说,linux下的进程包含以下几个关键要素:管道的疑惑FAQ1: 管道与文件描述符,文件指针的关系?FAQ2: 管道的使用方法?FAQ3: 管道与系统IPC之间的优劣比较?FAQ4: WINDOS进程间通信与LINUX进程间通信的关系?FAQ5: 进程间通信与线程间通信之间的关系?/对比注:摘自:原文链接:https://blog.youkuaiyun.com/younger_china/article/details/15808685进程间通信系列 之 概述与对比h原创 2022-03-15 17:04:30 · 179 阅读 · 0 评论 -
进程通信(IPC)之QLocalSocket用法
@TOC原文链接:https://blog.youkuaiyun.com/fangye945a/article/details/106006819进程通信(IPC)的方法有很多,项目开发中,需要根据业务需求来选择适合的IPC方式。所谓LocalSocket,其实就是在socket的基础上衍生出来的一种IPC通信机制。其旨在解决同一台主机上不同进程间互相通信的问题,不能像网络通信使用的socket一样实现不同主机间通信。但正因为这一点,它不需要经过网络协议栈,不需要打包拆包、计算校验,所以执行效率要更高。而Qt对原创 2022-03-15 12:01:14 · 3751 阅读 · 0 评论 -
Linux进程间通信方式--本地socket
Linux进程间通信方式--本地socket先上一个代码服务端:客户端:一、创建socket流程二、命名socket。第一种方式:第二种方式:三、绑定四、监听进程通信(IPC)之QLocalSocket用法原文链接:https://blog.youkuaiyun.com/shanzhizi/article/details/16882087先上一个代码服务端://s_unix.c#include <stdio.h>#include <sys/types.h>#include <原创 2022-03-15 11:48:14 · 5850 阅读 · 1 评论 -
C++ API设计笔记
C++ API设计笔记1. API简介1.1 什么是API1.2 API设计上有什么不同1.3 为什么要使用API1.4 何时应当避免使用API1.5 API示例1.6 文件格式和网络协议2. 特征2.1 问题域建模2.2 隐藏实现细节2.3最小完备性2.4易用性2.5 松耦合3. 模式(1).创建型模式(2).结构型模式(3).行为模式3.1 Pimpl惯用法3.2 单例3.3 工厂模式3.4 API包装器模式3.5 观察者模式4. 设计4.1 良好设计的例子4.2 收集功能性需求4.3 创建用例4.4原创 2022-03-14 16:20:45 · 888 阅读 · 0 评论 -
Linux中TCP断开等待时间
Linux中TCP断开等待时间查看 /proc/sys/net/ipv4/tcp_fin_timeout中的数值,默认为60秒#cat /proc/sys/net/ipv4/tcp_fin_timeout60可以修改这个值修改为20,并查询#echo 20 > /proc/sys/net/ipv4/tcp_fin_timeoutnetstat常用命令格式#netstat -anutp参数含义:-a 显示所有-n 以ip形式显示当前建立的有效连接和端口-u 显示UDP协议原创 2022-02-17 15:38:29 · 2845 阅读 · 0 评论 -
ubuntu 安装 libssl-dev失败的解决方案
ubuntu 安装 libssl-dev失败的解决方案ubuntu下使用如下命令安装libssl-dev时,sudo apt-get install libssl-dev如果报错提示大致意思为,已安装的libssl版本太高,那么请尝试如下操作:解决方案:使用aptitude软件包管理器1.安装aptitudesudo apt-get install aptitude2.用aptitude安装libssl-dev,采用建议的解决方案(将libssl1.0.0版本降级)sudo aptit原创 2022-02-17 10:59:03 · 7103 阅读 · 0 评论 -
C语言开源项目及c++库大全
C语言开源项目及c++库大全1. Webbench2. Tinyhttpd3. cJSON4. CMockery5. Libev6. Memcached7. Lua8. SQLite9. UNIX v610. NETBSDC++ 资源大全标准库框架==C++通用框架和库==人工智能异步事件循环音频生态学压缩并发性容器密码学数据库调试游戏引擎图形用户界面图形图像处理国际化Jason日志机器学习数学多媒体网络物理学机器人学科学计算脚本序列化视频虚拟机Web应用框架XML多项混杂软件编译器在线编译器调试器集成开发原创 2022-02-16 21:38:06 · 1749 阅读 · 0 评论 -
linux 命令行操作串口
linux 命令行操作串口1. 获取串口号2. 配置串口属性(stty命令)3. 串口数据读写操作4. 解析数据5. 后台运行6. 绘制数据Linux stty命令一、参数:二:用法1. 获取串口号在Linux系统中一切皆为文件,所以串口端口号也不例外,都是以设备文件的形式出现。也就是说我们可以用访问文本文件的命令来访问它们。a. 一般串口都是以/dev/ttyS#的格式显示,所以第一个连接的串口就是/dev/ttyS0,第二个连接的串口就是/dev/ttyS1…以此类推。b. USB转串口适配,没原创 2022-02-08 15:40:20 · 25934 阅读 · 1 评论 -
ubuntu 20.04安装谷歌拼音输入法
ubuntu 20.04安装输入法第一步,安装中文输入法框架输入法配置第一步,安装中文输入法框架谷歌拼音输入法是基于Fcitx输入法的。我们首先要安装Fcitx。在终端中运行下面命令:sudo apt install fcitx如果使用搜狗输入法微信发送文字后会卡死,可以使用谷歌输入法,百度输入法等。sudo apt-get install fcitx-googlepinyin配置language support,选择fcitx, 然后重启电脑。输入法配置重启之后在右上角状态栏点击键盘原创 2022-01-09 22:14:25 · 10628 阅读 · 1 评论 -
Linux驱动入门(三)Led驱动
Linux驱动入门(三)Led驱动文章目录一、注册字符设备驱动二、操作硬件2.1 控制led2.2 通用方式实现2.3 gpiolib实现三、源码3.1 通用方式实现3.2 gpiolib实现四、测试测试应用程序https://blog.youkuaiyun.com/weixin_42462202/article/details/99979562文章目录目的:实现一个led驱动,应用层写入1led亮,写0led灭一、注册字符设备驱动led驱动是一个字符设备驱动,编写led驱动首先要注册字符设备,生成设备节点,原创 2022-01-05 09:51:40 · 1623 阅读 · 0 评论 -
Linux I2C驱动框架(超详细)
Linux I2C驱动框架(超详细)一、几个重要的对象1、I2C总线2、I2C驱动3、I2C设备4、I2C设配器二、内核源码分析1、注册I2C驱动2、注册I2C设备原文链接:https://blog.youkuaiyun.com/weixin_42462202/article/details/91128914一、几个重要的对象在讨论I2C驱动框架前,先讨论几个重要的概念1、I2C总线struct bus_type i2c_bus_type = { .name = "i2c", .match = i2c原创 2022-01-05 08:47:29 · 2131 阅读 · 1 评论 -
C语言结构体中定义函数指针详解
C语言结构体中定义函数指针详解结构体指针函数应用场景之一--驱动程序编写结构体的一些基本用法形式1:先定义结构体类型,再定义变量形式2:在定义类型的同时定义变量形式3:直接定义变量,用无名结构体直接定义变量只能一次结构体指针在嵌入式Linux驱动中的典型应用linux设备驱动之I2CLinux I2C驱动框架(超详细)原文链接:https://blog.youkuaiyun.com/qq_21792169/article/details/50436089结构体指针函数应用场景之一–驱动程序编写struct i2c转载 2022-01-05 08:28:27 · 5479 阅读 · 2 评论 -
C语言--函数指针的用法总结
C语言--函数指针的用法总结函数指针的由来函数指针的定义函数指针的用法第一种用法(1.c)第二种用法 (2.c)第三种用法(3.c)函数指针的作用1. 提供调用的灵活性。2. 提供封装性能。回调函数的定义回调函数的例子(4.c)https://blog.youkuaiyun.com/faihung/article/details/80329925函数指针的由来一个函数在编译时被分配一个入口地址,这个入口地址就称为函数的指针。函数名代表函数的入口地址,这一点和数组一样。我们可以用一个指针变量来存放这个入口地址,然原创 2022-01-04 20:24:38 · 2736 阅读 · 0 评论 -
【GIMP】免费开源图像处理软件
【GIMP】免费开源图像处理软件原文链接:https://blog.youkuaiyun.com/yuetaope/article/details/120449121GIMP是GNU Image Manipulation Program(GNU图像处理程序)的缩写,它是Peter Mattis和Spencer Kimhall开发的免费开源照片和图像处理和创作工具,功能十分强大,完全可以与Windows平台下著名的图像处理软件Photoshop媲美。一、GIMP特点开源、免费持续更新的正版软件,比起正版PS ¥:原创 2021-12-21 15:07:24 · 5620 阅读 · 0 评论 -
Base64简介
Base64简介原文链接:https://blog.youkuaiyun.com/fengbingchun/article/details/85016088?ops_request_misc=&request_id=&biz_id=102&utm_term=base64&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-85016088.pc_search_result_con原创 2021-12-02 09:23:59 · 14085 阅读 · 0 评论 -
linux命令之xxd学习
linux命令之xxd学习1、xxd命令主要用来查看文件对应的十六进制形式,也可以讲文件对应的十六进制形式输出到一个指定的文件。使用此命令所支持的特有选项,亦可以以二进制的形式查看文件。关于此命令经常使用的选项主要有:(1)-a : 它的作用是自动跳过空白内容,默认是关闭的(2)-c : 它的后面加上数字表示每行显示多少字节的十六进制数,默认是16bytes,最大是256bytes(3)-g : 设定以几个字节为一块,默认为2bytes(4)-l : 显示多少字节的内容(5)-s : 后面接原创 2021-11-13 08:56:06 · 5006 阅读 · 0 评论 -
linux下使用openssl和md5sum加密文件或者字符串
linux下使用openssl和md5sum加密文件或者字符串前言1 用oppnssl md5 加密字符串和文件的方法1.1 oppnssl md5 加密字符串的方法a.手动输入命令及过程如下b.或者直接用管道命令1.2 用openssl加密文件3 利用md5sum命令4 使用MD5sum该命令判断文件是否被修改了原文链接:https://blog.youkuaiyun.com/chushoutaizhong/article/details/77750872https://www.sojson.com/md5/原创 2021-11-12 14:58:15 · 2430 阅读 · 0 评论 -
开源绘图工具drawio
开源绘图工具drawiodrawio是一款强大、免费的绘图工具(基本可以替代收费的visio等),使用起来非常方便。支持网页版使用(网页版可以自己部署一套)以及客户端使用(支持windows,MacOS以及Linux)。该项目开源在github上的源码:https://github.com/jgraph/drawio-desktop官方的教程链接:https://www.diagrams.net/doc/官网下载地址:https://www.diagrams.net/最近写模块文档,需要绘制一些原创 2021-10-18 08:58:56 · 2038 阅读 · 0 评论 -
Git使用教程
Git使用教程Git使用教程原创 2021-10-16 17:33:05 · 265 阅读 · 0 评论 -
QCustomPlot设置游标
QCustomPlot设置游标void MainWindow::on_pBtn_Add_Youbiao_X_clicked(){QVector cursorX;QVector cursorY;QVector cursorX2;QVector cursorY2;QVector cursorX3;QVector cursorY3;QVector cursorX4;QVector cursorY4;double xLabel_left;double xLabel_right;double原创 2021-09-24 10:55:19 · 2198 阅读 · 0 评论 -
QCustompPlot简明使用教程
QCustompPlot绘制曲线1. 前言1.1 简单介绍QCustomPlot的几个重要类QCustomPlot 图表类:用于图表的显示和交互简单介绍QCustomPlot类1.2层和层元素布局和布局元素1. 前言QCustomPlot 是一个基于Qt的画图和数据可视化C++控件。QCustomPlot 致力于提供美观的界面,高质量的2D画图、图画和图表,同时为实时数据可视化应用提供良好的解决方案。QCustomPlot是一个小型的Qt画图标类,支持绘制静态曲线、动态曲线、多重坐标曲线,柱状图,蜡烛原创 2021-09-23 09:13:22 · 6449 阅读 · 0 评论 -
Reactor反应器模式或应答者模式
Reactor反应器模式或应答者模式Reactor模式是处理并发I/O常见的一种模式,用于同步I/O,其中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程阻塞在多路复用器上,一旦有I/O事件到来或是准备就绪,多路复用器将返回并将相应I/O事件分发到对应的处理器中。Reactor是一种事件驱动机制,和普通函数调用不同的是应用程序不是主动的调用某个API来完成处理,恰恰相反的是Reactor逆置了事件处理流程,应用程序需提供相应的接口并注册到Reactor上,如果有相应的事件发生原创 2021-09-07 08:48:50 · 256 阅读 · 0 评论 -
Qt信号槽机制-传递自定义数据类型(qRegisterMetaType)
Qt信号槽机制-传递自定义数据类型qRegisterMetaType前言前言通过Qt内置的数据类型进行信号与槽参数传递很方便;如果是自己定义的类型如果想使用signal/slot来传递的话,则没有这么简单。直接使用的话,会产生下面这种错误:QObject::connect: Cannot queue arguments of type ‘MyClass’ (Make sure ‘MyClass’ is registed using qRegisterMetaType().)原因:当一个signal被原创 2021-08-24 10:41:51 · 9748 阅读 · 0 评论 -
Qt操作SQLite数据库
Qt操作SQLite数据库前言一、SQLite 简介什么是 SQLite?为什么要用 SQLite?SQLite 局限性SQL-92特性方面低并发操作应用限制NFS问题数据库规模对象的数目和类型宿主变量引用存储过程二、使用步骤(Qt操作SQLite数据库的三种方式)方式1. 使用QSqlQuery来访问前言一、SQLite 简介本教程帮助您了解什么是 SQLite,它与 SQL 之间的不同,为什么需要它,以及它的应用程序数据库处理方式。SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的原创 2021-07-24 09:02:27 · 2969 阅读 · 2 评论