自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Ubuntu常用软件包

【代码】Ubuntu常用软件包。

2023-12-03 16:59:51 194

原创 linux模块使用外部符号

使用 EXPORT_SYMBOL()这样的宏定义把内核函数的符号导出,也可以理解成将函数名作为符号导出;符号的意思就是函数的入口地址,或者说是把这些符号和对应的地址保存起来的,在内核运行的过程中,可以找到这些符号对应的地址的。(1)、对编译所得的.ko进行strip -S,处理掉调试信息,这样可以大大缩小ko文件的大小;(2)、使用KBUILD_EXTRA_SYMBOLS主要使用于下面这样的场合:有两个我们自己的模块,其中Module B使用了Module A中的export的函数,因此在Module B的

2022-07-04 11:01:02 994 1

原创 ubuntu的root用户

以普通用户登录系统,创建root用户的密码2. 第二步修改 50-ubuntu.conf 文件在文件末尾增加如下两行:3. 第三步(没有的话可忽略)修改 gdm-autologin 文件

2022-07-03 17:05:20 211

原创 构建外部模块(Building External Modules)

参考文档构建外部模块的命令是:(The command to build an external module is:)由于命令中给出的“M=”选项,kbuild 系统知道正在构建外部模块。(The kbuild system knows that an external module is being built due to the “M=” option given in the command.)要针对正在运行的内核进行构建,请使用:(To build against the ..........

2022-06-28 21:34:13 918

原创 Git分支管理

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。创建dev分支,然后

2022-04-10 18:25:50 347

原创 Git标签管理

发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。1 切换到需要打标签的分支$ git branch* dev master$ git checkout masterSwitched to branch 'maste

2022-04-10 16:07:44 78

原创 Git 基础

1 取得项目的 Git 仓库有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。1.1 从当前目录初始化要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:$ git init初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。1.2 从现有仓库克隆如果想对某个开源项目出一份力,可以先把该项目的 Git 仓

2022-04-10 11:06:29 215

原创 Git起步

1 时刻保持数据完整性在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。Git 使用 SHA-1 算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个SHA-1 哈希值,作为指纹字符串。该字串由 40 个十六进制字符(0-9 及 a-f)组成,看起来就像是:24b9da6552252987aa493b52f8696cd6d3b00373Git 的工作完全依赖于这类指纹字串,所有保存在 Git 数据库中的东西都是用此哈希值来作索

2022-04-09 18:25:09 93

原创 常用的Linux(RPM)命令

常用的 RPM 软件包命令安装软件的命令格式rpm -ivh filename.rpm升级软件的命令格式rpm -Uvh filename.rpm卸载软件的命令格式rpm -e filename.rpm查询软件描述信息的命令格式rpm -qpi filename.rpm列出软件文件信息的命令格式rpm -qpl filename.rpm查询文件属于哪个 RPM 的命令格式rpm -qf filename常见的 Yum 命令命令作用

2022-04-03 21:44:26 1920

原创 Linux run_level

运行级别运行级别(Runlevel)指的是Unix或者Linux等类Unix操作系统下不同的运行模式。运行级别通常分为7等,分别是从0到6,但如果必要的话也可以更多。例如在大多数Linux操作系统下一共有如下7个典型的运行级别: 0 停机,关机 1 单用户,无网络连接,不运行守护进程,不允许非超级用户登录 2 多用户,无网络连接,不运行守护进程 3 多用户,正常启动系统 4 用户自定义 5 多用户,带图形界面 6 重启在Debian Linux

2022-03-22 09:51:22 115

原创 linux杂项

查看系统的块大小sudo tune2fs -l /dev/sda1 | grep Blockgedit /var/lib/dpkg/status更新grubgrub-mkconfig -o /boot/grub/grub.cfg查看系统版本lsb_release -a加入sudo组gpasswd -a yyzhang sudo黑名单vim /etc/modprobe.d/blacklist.confblacklist vmwgfxdeb路径ls /var/cache/

2022-03-12 15:39:56 494

原创 shell实战总结2

linux 中wc 用法语法:wc [选项] 文件…该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。(1) 统计行数:$ wc -l file(2) 如果需要将stdin作为输入,使用下列命令:$ cat file | wc -l(3) 统计单词数:$ wc -w file$ cat file | wc -w(4) 统计字符数:$ wc -c file$ cat file |

2022-02-28 14:51:56 157

原创 c语言day01

c语言 函数传递数组 传递的是引用c语言中注释不允许被嵌套c语言中只有四种基本的数据类型 : 整型, 浮点型, 指针, 聚合类型(如数组和结构)字面值(字面常量) :自身的值,并且不允许发生改变...

2022-02-28 14:51:18 82

原创 dd 命令和设备

dd 命令和设备dd if=/dev/zero of=new_file bs=1024 count=1上面的例子是从/dev/zero复制一个大小为1024字节的数据块到文件new_file。dd命令的一些重要选项if=file:代表输入文件,默认是标准输入。of=file:代表输出文件,默认是标准输出。bs=size:代表数据块大小。dd命令一次读取或者写入数据的大小。对于海量数据,你可以在数字后设置b和k来分别代表512字节和1024字节。如:bs=1k和bs=1024一样。ibs

2022-02-28 14:50:46 420

原创 shell_study01_360

变量替换语法说明${变量名#匹配规则}从变量开头进行规则匹配,将符合最短的数据删除${变量名##匹配规则}从变量开头进行规则匹配,将符合最长的数据删除${变量名%匹配规则}从变量尾部进行规则匹配,将符合最短的数据删除${变量名%%匹配规则}从变量尾部进行规则匹配,将符合最长的数据删除${变量名/旧字符串/新字符串}字符串替换,第一个旧字符串会被新字符串取代${变量名//旧字符串/新字符串}字符串替换,全部的旧字符串会被新字符串取代变量测试

2022-02-28 10:24:06 307

原创 error___dpkg

1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名2.$ sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹3.$ sudo apt-get update && apt-get -f install //不用解释了吧4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //执行完上一步操作后会在新的inf

2022-02-25 16:32:03 475

原创 vscode c/c++ 配置

https://code.visualstudio.com/docs/languages/cpp

2022-02-23 12:37:18 1353

原创 qt其他依赖包

./configure -confirm-license -opensource -recheck-recheck: 更新config.cacheiconv ----nohttps://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz$ ./configure --prefix=/usr/local$ make$ make installsudo apt-get install libticonv8./configure -confirm

2022-02-22 17:52:22 628

原创 shell 编程-Expect

No.1 expect的安装…No.2 expect的语法是一个免费的编程工具, 用来实现自动的交互式任务, 而无需人为干预. 说白了 expect 就是一套用来实现自动交互功能的软件在实际工作中我们运行命令、脚本或程序时, 这些命令、脚本或程序都需要从终端输入某些继续运行的指令,而这些输 入都需要人为的手工进行. 而利用 expect 则可以根据程序的提示, 模拟标准输入提供给程序, 从而实现自动化交互执 行. 这就是 expect能够在工作中熟练的使用Shell脚本就可以很大程度的提高工作效率

2022-02-22 13:33:03 67

原创 汇编day02

8088cpu–8位数据8086cpu–16位数据

2022-02-21 16:20:38 116

原创 解决Linux下Firefox无法启动的问题

这时查找system monitor 已经没有Firefox相关的进程在活动态。用su命令切换到别的用户则可以正常启动Firefox。在GOOGLE上查找到解决的办法:需要查找和删除火狐配置文件夹中的parent.lock文件。于是进行如下操作:1. cd ~/.mozilla/firefox,看到nqc15tbq.default文件夹,这里nqc15tbq是8位随机数, 每次访问看到的会不同。2. ls -a 找到隐藏文件 .parentlock3. rm .parentlock, 提示选ye

2022-02-18 17:58:58 5147

原创 liunx qt编译调试

设置环境变量 export QT_DEBUG_PLUGINS=1加了这个环境变量,让我看到了QT程序加载的过程,看到了详细的报错信息。所以各位可以多试试几个参数值,比如从:0.0开始,一直试。但是这样设置,每个项目都要这样整,干脆在树莓派上,设置一个全局变量:sudo vim /etc/profile添加:export DISPLAY=:0.0,注意这个值是要试出来的按esc键,然后:wq退出保存刷新:source /etc/profile安装Qt5.15.0后,在运行测试用

2022-02-18 16:50:16 2191 1

原创 linux 快速查找文件

1.常用查找命令如下:(1)find 根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。(2)grep 根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。(3)which 查看可执行文件的位置 ,只有设置了环境变量的程序才可以用(4)whereis 寻找特定文件,只能用于查找二进制文件、源代码文件和man手册页(5)locate 配合数据库查看文件位置 ,详情

2022-02-18 13:54:41 3314

原创 C++ 语言常见问题解答

什么是 C++?C++ 是一种编程语言。它的字面意思是“增加的 C”,反映了它作为 C 语言演变的本质。在学习 C++ 之前是否有必要已经了解另一种编程语言?不必要。 C++ 的表达方式简单明了。确实,由于大量使用特殊字符 ({}[]*&!|…),对于编程的陌生人来说,用 C++ 编写的一段代码可能比其他一些语言更神秘一些,但是一旦知道这些字符的含义,它就会比其他更依赖英语单词的语言更加简明和清晰。此外,与 C 相比,C++ 的输入/输出接口的简化以及该语言中标准模板库的结合,使得用 C++

2022-02-18 10:36:25 686 1

原创 linux 创建交换文件

交换分区 swap建议大小 mem*2物理内存大于4G swap=mem使用一个块文件来当做swap分区05 再次查看 swapon -s06 确保开机自动使用该swap分区#vi /etc/fstabUUID=****** swap swap defaults,pri=1 0 0#mkdir /swap#dd if=/dev/zero of=/swap/swapfile bs=1M count=512#mkswap /swap/swapfile#s

2022-02-17 18:04:21 195

原创 linux kswapd0进程cpu占用一直居高不下

发现kswapd0进程cpu占用一直居高不下,于是查询资料,总结如下。kswapd0占用CPU时, 说明机器的全部内存(物理内存+虚拟内存)已经用尽了. 机器不得不把内存里的内容卸载到硬盘, 然后才能加载所要的程序, 数据. 这个过程机器会反复进行, 这时机器会很慢.最根本的解决办法是增加物理内存.其它办法是:增加swap的容量 (可以创建swap文件来实现)升级占用内存过多的应用, 或者用替代的应用升级系统. 有时候系统臭虫会导致内存管理的问题swap分区的作用是当物理内

2022-02-17 15:32:36 5770 2

原创 linux配置DHCP

1.打开终端,使用【cd】命令切换工作目录,切换到网络配置目录# localhost:~ # cd /etc/sysconfig/network-devices/ # localhost:/etc/sysconfig/network-devices # ls# ifcfg-eth0 ifcfg-eth2 ifcfg-lo ifcfg.template2.DHCP自动获取IP地址# localhost:~ # vim /etc/sysconfig/network-devices/ifcf

2022-02-17 15:10:02 2352 1

原创 汇编day01

汇编语言的产生汇编语言的组成

2022-02-17 14:27:45 171

原创 linux qemu_ARM

本次PC系统:Ubuntu16.04目标系统:以Versatile Express-A9开发板为例搭建环境参考博客文章(1)参考博客文章(2)一.Qemu编译安装1.Qemu源码下载:wget http://wiki.qemu-project.org/download/qemu-2.7.0.tar.bz22.安装所需要的软件包(参考两文章): sudo apt-get install zlib1g-dev sudo apt-get install libglib2.0-0 sudo a

2022-02-17 10:09:11 312

原创 rsync 基础和who*

who:显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者)who am i: 显示当前登录时用的用户名,尽管切换了多个用户whoami: 显示当前用户的用户名rsync file1 file2 ... user @ host :rsync not foundrsync: connection unexpectedly closed (0 bytes read so far)rsync error: error in rsync protocol data stream (

2022-02-16 15:20:20 303

原创 linux网络

查看自己计算机的IP地址ifconfig子网子网就是一组相互连接的、带有按序排列的IP地址的主机。通常这组主机会在同一个物理网络中。例如,10.23.2.1至10.23.2.254的主机可以构成一个子网,甚至10.23.1.1至10.23.255.254的都可以。划分子网需要考虑两点:一个是网络前缀,一个是子网掩码( Mask )。假若你要建立一个包含10.23.2.1到10.23.2.254的子网,那么它们通用的网络前缀就是10.23.2.0,子网掩码就是255.255.255.0。前缀和

2022-02-16 13:07:50 993

原创 linux acpi=off

kernel后加acpi=off 是什么意思?acpi=off是关闭高级电源管理接口使用acpi = off会在启动Ubuntu时暂时禁用高级配置和电源接口。如果必须添加acpi = off使ubuntu成功启动,则表示计算机上的ACPI与该版本的ubuntu不兼容。但是,如果您不想在acpi = off每次引导时都添加参数,则可以禁用新卡(BIOS)或禁用ACPI(也可以通过BIOS)。如果找不到新卡界面,请使用第二个选项。并不是所有的参数都是永远可用的,只有在特定的模块存在并且相应的硬件也存

2022-02-11 16:38:16 4420

原创 linux 删除 创建 修改 查看...用户

ctrl+alt+delete?正确删除用户若使用userdel 用户名 命令删除该用户时,并不能删除该用户的所有信息,只是删除了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow四个文件里的该账户和组的信息。默认情况下创建一个用户账号,会创建一个家目录和一个用户邮箱(在/var/spool/mail目录以用户名命名)userdel -r 用户名find / -name 用户名正确创建用户adduser usernamepasswd use

2022-02-11 15:57:01 107

原创 linux QEMU使用

下载qemu-system-arm 启动仿真arm芯片qemu-system-arm -M ? 察看支持arm平台有哪些(开发板)qemu-system-arm -cpu ? 察看支持arm哪些cpuqemu-img 格​式​化​虚​拟​客​户​端​映​像​、​附​加​存​储​设​备​以​及​网​络​存​储 1.安装交叉编译链(根据自己的需求去安装编译链,我这里安装的是32位)step1:下载编译链,执行命令:wget https://releases.linaro.org/compone

2022-02-11 13:06:45 1011

原创 error 4 in libc-2.12.so

在RHEL/CentOS 64位(32位没用过)6.0以上版本中,有core文件被截断的问题,即使你已经设置了ulimit -S -c unlimited。原因好像是因为core pattern设置是abrt,abrt的问题导致core文件很小或者不产生core文件。解决的方法是不使用abrt作为core patternsegfault at 0 ip 000000387712164f sp 00007fffb37d5b48 error 4 in libc-2.12.so[3877000000+175

2022-02-09 17:29:38 745

原创 Qt的编译

1.下载Qt源码https://download.qt.io/archive/qt/5.15/5.15.2/single/2.Qt源码编译1.编译的前的基础了解目标platforms(平台),编译静态库或者动态库,skip某个功能模块等选项2.源码下载两种方式:1.直接下载,下载地址:http://download.qt.io/archive/qt/2.git clone Qt源码,仓库地址:https://code.qt.io/qt/qt5.git。推荐使用git克隆的方式,这样在编译生

2022-02-09 13:53:03 4666

原创 Qt之路5--MainWindow简介

#include <QApplication>#include "mainwindow.h"int main(int argc, char* argv[]){ QApplication app(argc, argv); MainWindow win; win.show(); return app.exec();}这个窗口,它实际上分成了几个部分主窗口的最上面是 Window Title,也就是标题栏,通常用于显示标题和控制按钮,比如最大化、

2022-02-09 11:48:48 685

原创 Qt之路4--Qt模块简介

Qt 5 与 Qt 4 最大的一个区别之一是底层架构有了修改。Qt 5 引入了模块化的概念,将众多功能细分到几个模块之中。Qt 4 也有模块的概念,但是是一种很粗的划分,而 Qt 5 则更加细化。Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部分。前者是基础模块,在所有平台上都可用;后者是扩展模块,建立在基础模块的基础之上,在能够运行 Qt 的平台之上可以酌情引入。Qt 基础模块分为以下几个:Qt Core,提供核心的非 GUI 功能,所有模块都需要这个

2022-02-09 11:29:58 257

原创 Qt之路3--自定义信号槽

Qt 的信号槽机制并不仅仅是使用系统提供的那部分,还会允许我们自己设计自己的信号和槽。这也是 Qt 框架的设计思路之一,用于我们设计解耦的程序。信号槽不是 GUI 模块提供的,而是 Qt 核心特性之一。因此,我们可以在普通的控制台程序使用信号槽。#include <QObject>////////// newspaper.hclass Newspaper : public QObject{ Q_OBJECTpublic: Newspaper(const QStrin

2022-02-09 11:06:50 153

原创 Qt之路2--信号和槽

信号槽是 Qt 框架引以为豪的机制之一。熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有利于增强我们的技术设计能力。所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作

2022-02-09 10:49:24 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除