linux
dingdongkk
在0和1的世界中探索.....
展开
-
ubuntu18.04 安装软件报错:E: 无法获得锁 /var/lib/dpkg/lock-frontend - open
E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?原创 2023-07-04 09:13:06 · 1005 阅读 · 0 评论 -
ubuntu 20.04 安装synergy1.14.0报错synergy depends on libqt5core5a (>= 5.12.2)解决办法
ubuntu 20.04 安装synergy1.14.0报错synergy depends on libqt5core5a (>= 5.12.2)解决办法:sudo apt --fix-broken install再去安装synergy即可解决。原创 2023-04-07 10:32:56 · 1197 阅读 · 0 评论 -
解决unable to make backup link of ‘./usr/bin/nvidia-smi‘ before installing new version: Operation not
Unpacking nvidia-utils-525 (525.85.05-0ubuntu0.20.04.1) ...dpkg: error processing archive /var/cache/apt/archives/nvidia-utils-525_525.85.05-0ubuntu0.20.04.1_amd64.deb (--unpack): unable to make backup link of './usr/bin/nvidia-smi' before installing new原创 2023-03-04 13:57:29 · 1291 阅读 · 1 评论 -
ubuntu20.04配置静态ip
1. 查看当前ip:ifconfig2. 查看网关命令:route -n3. 查看dns配置:nmcli dev show4. 编辑网络配置文件:5. 使配置文件生效:原创 2022-06-07 18:44:13 · 1819 阅读 · 1 评论 -
ubuntu 20.04 安装repo找不到包解决方案
mkdir -p ~/.binPATH="${HOME}/.bin:${PATH}"curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repochmod a+rx ~/.bin/reporeference:https://askubuntu.com/questions/1247103/why-is-the-repo-package-unavailable-in-ubuntu-20-04-how-c.原创 2022-02-23 16:03:19 · 4929 阅读 · 0 评论 -
编译报错:No module named elftools please:pip install pyelftools
1. 报错信息如图:2. 解决办法:sudo apt-get install python-pyelftools python3-pyelftools -y原创 2021-05-29 09:49:05 · 7870 阅读 · 0 评论 -
Linux cp命令使用 拷贝文件 目录等
常用几个:拷贝文件a为文件bcp a b拷贝文件夹a为文件夹b,且文件夹子文件也拷贝cp -r a b //完全对吗?若b文件夹已存在,执行上述则会在b文件夹下创建a文件夹,所以正确命令应该为:cp -rf a/. b或cp -a a/. b另外几个常用的-配置选项参考:a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dR选项的组合。d 拷贝时保留链接。f 删除已经存在的目标文件而不提示。i 和f选项相反,在原创 2021-02-23 11:47:21 · 1535 阅读 · 0 评论 -
gdb调试qemu报错:(gdb) break mips_fuloong2e_machine_init Function “cpu_mips_irq_init_cpu“ not defined.
报错原因:编译qemu时没有使能debug解决办法:./configure 时加上--enable-debug即可eg:./configure --enable-debug再make编译最后make install后调试即可解决该问题。原创 2020-08-27 20:45:47 · 424 阅读 · 0 评论 -
几个还不错的博客推荐
1. 内核相关:https://www.jianshu.com/u/ea8fca67c664原创 2020-08-04 15:00:11 · 353 阅读 · 0 评论 -
Linux内核之module_param()函数使用说明
1. 概述:主要区别就是用户可否在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量。不使用module_param如只定一个全局变量:#define MY_MAJOR 0x09static int global_val_test = MY_MAJOR;那么编译模块后,insmod加载模块时不能传参数进去,如:[root@bogon hello_world]# insmod first_hello.ko global_val_test=5insmod:原创 2020-05-26 14:34:08 · 5261 阅读 · 0 评论 -
linux内核的一些基础知识: 内核设备编号及udev等
1. Linux内核设备编号分为主设备编号和次设备编号,前者为dev_t的高12位,后者为dev_t的低20位.对于表示设备节点的inode结构,i_rdev字段包含设备编号.下列操作用于从一个inode中获得主设备号和次设备号:unsigned int iminor(struct inode *inode);unsigned int imajor(struct inode *inode);cat /proc/devices可以获知系统中注册的设备.第一列为主设备编号,第二列为设备.原创 2020-05-26 11:02:04 · 579 阅读 · 0 评论 -
Linux驱动开发之编写第一个内核模块--Hello World
在内核目录下新建一个目录如hello_world命令如下:mkdir hello_world编写hello.c文件,源码如下:/* * a simple kernel module: hello * * Copyright (C) 2020 xxx (xxxxx) * * Licensed under GPLv2 or later */#include <linux/init.h>#include <linux/module.h>static in.原创 2020-05-25 11:48:01 · 574 阅读 · 0 评论 -
vim 常用命令之大小写转换gu
vim中大小写转化的命令是:gu或者gU,形象一点的解释就是小u意味着转为小写,大U意味着转为大写。接下来说明对这两个命令的限定(限定操作的行,字母,单词)等等。 1.整篇文章大写转化为小写打开文件后,无须进入命令行模式。键入:ggguG解释一下:ggguG分作三段gg gu Ggg=光标到文件第一个字符gu=把选定范围全部小写G=到文件结束 2.整篇文章小写转化为大写打开文件后,无须进入命令行模式。键入:gggUG解释一下:gggUG分作三段转载 2020-05-22 15:30:01 · 2672 阅读 · 0 评论 -
intel声卡驱动probe分析--hda_intel.c alsa
1. 关键代码及注释:1. intel声卡初始化流程:/sound/pci/hda/hda_intel.c azx_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE, 0, &card); {//创建snd_card的一个实例 card->dev = parent;原创 2020-05-19 21:01:48 · 1382 阅读 · 0 评论 -
vim进阶1.4 常用技巧之高亮显示当前行列
1. 参考效果如下:2. vim几个关键配置如下:set cursorline "高亮当前行set cursorcolumn “高亮当前列highlight CursorLine cterm=NONE ctermbg=gray ctermfg=yellow guibg=NONE guifg=NONEhighlight CursorColumn cterm=NONE ctermbg=gray原创 2020-05-18 18:02:29 · 3362 阅读 · 1 评论 -
编译开源社区内核报错:scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory
原因:libssl-dev 没有安装解决办法:yum install openssl-devel或者sudo apt-get install libssl-dev原创 2020-04-28 17:43:55 · 773 阅读 · 0 评论 -
federa设置打开terminal终端快捷键
鼠标左键点击屏幕左下方System处,选择Control Center。然后找到keyboard Shortcuts并点击:出现如下图,找到Run a terminal行点击选中该行,然后按快捷键:Ctrl+Alt+T,即可将快捷键设置为Ctrl+Alt+T。快去试试吧。...原创 2020-04-21 11:18:24 · 354 阅读 · 0 评论 -
I2c-tools工具使用及调试
1. 下载iic-toolshttps://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/注意:这里我们下载3.1.1版本的。i2c-tools-3.1.1.tar.gz<<i2c-tools-3.1.1.tar.gz>>2. 编译:将下载好的i2c-tools-3.1.1.tar.gz放到An...原创 2020-01-20 18:00:53 · 1700 阅读 · 0 评论 -
bmp转rgb565在framebuffer中显示
需求:在kernel中自定义显示图片 解决办法:在网上找了很多方法,都是去替换的,那样就有了很大的局限性,还比较麻烦,所以经过研究最后找到此方法: 首先:得到一副图片eg:jpeg格式的图片,可以用格式工厂或者其他软件吧jpeg格式转换为bmp格式的图片,再用工具(BmpCvt链接如下:)将bmp格式图片转换为rgb565的c文件数组。 工具使用方法: 双击打开,然后打开一副bmp格式的图片原创 2017-08-17 15:05:54 · 1767 阅读 · 0 评论 -
例程五、HTTP Range使用 分段下载 与 下载后c语言合成例程 以照片为例
1. HTTP分段下载可靠reference:https://www.bbsmax.com/A/gVdnERW15W/https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Range_requests简单的讲就是首先看服务器端是否支持范围请求然后,支持的话,就可以通过在http请求头中加Range字段来获取指定长度的内容。注意Range使...原创 2019-06-14 11:04:03 · 974 阅读 · 0 评论 -
linux Makefile中:= ?= += =的区别
总结:= 是最基本的赋值 := 是覆盖之前的值 ?= 是如果没有被赋值过就赋予等号后面的值 += 是添加等号后面的值部分细节注意: 1、“=” make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:x = foo y = $(x) ba...转载 2019-07-26 11:01:00 · 5882 阅读 · 1 评论 -
linux 内核kenel优化方案一 -O3编译 Makefile
1. 如写一个test.c test.h2. 内核编译并链接,那么Makefile写法:obj-y += test.o3. 测试发现,运行速度需要优化方案一:修改Makefile,修改为如下:obj-y += test.oCFLAGS_test.o += -O3即可实现优化。实测,deinterlace算法,用默认编译链接的话,cpu处理一帧图像需要60ms,而用...原创 2019-07-26 11:59:18 · 1734 阅读 · 0 评论 -
YUV444,YUV420P,YUV420SP,YUV422P,YUV422SP,NV12,NV21,NV16,NV61等格式区分与存储简介
一、基础知识:概述YUV是顏色編碼方式,常用於視頻及圖像處理中。其中的YUV是三個分量。“Y”表示明亮度(Luminance或Luma),也就是灰度值。“U”和“V” 表示的是彩色信息,分別爲色度和濃度(Chrominance和Chroma)。由於相鄰的兩個像素,數據差異不大,所以,丟棄相鄰像素的部分數據對於整體影響不大。同時,丟棄數據,還節省了空間便於存儲。人對亮度比較敏感,而對...原创 2019-09-18 11:39:07 · 11194 阅读 · 1 评论 -
gcc在终端编译可执行文件 在设备端运行报错/system/bin/sh: ./a.out: not executable: 64-bit ELF file 已解决
常用gcc编译命令如下:gcc -o testback_ground_run.c编译后生成test的可执行文件,推到Android设备端,添加可执行权限后,执行便会报错:/system/bin/sh: ./a.out: not executable: 64-bit ELF file解决办法:方案一:用静态编译,且用交叉编译工具编译:交叉编译工具链可以自己下载解压后使...原创 2019-10-09 10:34:35 · 13729 阅读 · 2 评论 -
例程三、c语言 字符串匹配 sscanf 字符串查找 返回指针地址 段错误Segmentation fault
一、首先,介绍下sscanf用法linux终端窗口下,敲命令:man sscanf可以得到完整描述:1. 定义:int sscanf(const char *str, const char *format, ...);2. 与scanf区别: The scanf() function reads input from the standard input stream ...原创 2019-04-29 21:46:37 · 1268 阅读 · 0 评论 -
scp 拷贝文件夹到远程服务器被拒绝ssh: connect to host xxx.xxx.xxx.xxx port xxxxx: Connection refused
1. 报错log如下:2. 解决办法:a. 首先确认远程服务器有安装ssh服务器:没有安装的话:安装命令如下:客户端# apt-get installssh如果安装失败,则使用下面命令进行安装# apt-get install openssh-client服务端安装服务器# apt-get install openssh-server启动服务器...原创 2019-03-08 17:31:56 · 6333 阅读 · 0 评论 -
linux ubuntu 修改ssh端口及常用命令
一、修改端口(我这边以929端口为例子)1. vim /etc/ssh/sshd_config添加如下一行:Port 9292. 重启ssh服务:/etc/init.d/ssh restart3. 查看ssh服务监听的端口是否为已设置端口:sudo netstat -tunlp | grep ssh说明端口已经打开。可以用ssh进行连接测试,如果用该端口可以...原创 2019-02-16 17:59:57 · 6065 阅读 · 1 评论 -
#define函数
一直以为#define只能宏定义简单变量和简单函数,虽然也知道宏定义编译过程中就是替换,但是今天才真正明白替换的意义:请看如下代码: 关键:define PARAM_WRITE(x,y) param_vendor_write(x,y)#include<stdio.h>#define PARAM_CONFIG "/home/lkg/test/config" //配置文件路径#define VEN原创 2017-08-23 19:45:00 · 1734 阅读 · 0 评论 -
例程四、c读写文件与文件参数管理
直接上代码,代码简单易懂。#include<stdio.h>#define PARAM_CONFIG "/home/lkg/test/config"typedef struct{ unsigned short int id; int offset;}param_offset;typedef struct { char c; int h; unsigne原创 2017-08-23 17:53:44 · 518 阅读 · 0 评论 -
error: unknown type name ‘bool’
解决办法: 在头文件中包含:#include<stdbool.h> //include bool type原创 2017-08-25 17:16:23 · 1632 阅读 · 2 评论 -
git commit 提交多行message
git commit -m “ didididi” //只能提交一行git commit -m ‘didi>lalallal>lalalalll’ //'输入message,按回车自动换行,继续输入message,按’结束输入,按回车即可commitgit log查看commit结果原创 2017-08-04 12:01:34 · 9333 阅读 · 1 评论 -
ISO C90 forbids mixed declarations and code
网上都说是因为变量定义之前任何一条非变量定义的语句(注意:语句是会带分号的)都会引起这个警告! 解决方法:将非变量的定义移到变量定义之后。但是没有例子。也不是特别明白。在这放个有点特殊的例子:void vehicle_flinger_show_nosignal(bool nosignal_tag){ unsigned int x_pos , y_pos ,vir_addr;; in原创 2017-08-18 09:16:58 · 684 阅读 · 0 评论 -
补丁太旧了,新内核打不上
解决办法:1.进入对应根目录 如kernel patch -p1补丁文件路径如:然后git status.rej的是未打成功的,就需要手动打补丁Vi arch/arm/boot/dts/rk3128-cif-sensor.dtsi.rej看下 arch/arm/boot/dts/rk3128-cif-sensor.dtsi文件改动情况,手动原创 2017-07-25 19:32:42 · 353 阅读 · 0 评论 -
Android系统的开机画面显示过程分析
Android系统的开机画面显示过程分析 提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面了。Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。本文将详细分析这三个开机画面的显示过程,以便可以开启我们对Android系统U转载 2017-08-01 11:42:14 · 620 阅读 · 0 评论 -
Android display架构分析
Android display架构分析(一)http://hi.baidu.com/leowenj/blog/item/429c2dd6ac1480c851da4b95.html高通7系列硬件架构分析如上图,高通7系列 Display的硬件部分主要由下面几个部分组成:A、MDP高通MSM7200A内部模块,主要负责显示数据的转换和部分图像处理功能理,如YUV转RGB,放大缩转载 2017-07-14 15:29:04 · 741 阅读 · 0 评论 -
linux环境变量 export命令详解
由host $ export DVSDK="${HOME}/ti-dvsdk_dm368-evm_xx_xx_xx_xx"引发的问题1、 ${HOME}:首先, HOME是个变量,它代表你的home目录,变量前必须加上$符号,否则会报错usr/local/dvsdk为dvsdk的destination folder由#echo $DVSDK 测试环境变量添加成功否 2、转载 2017-05-22 15:39:30 · 638 阅读 · 0 评论 -
unix,linux通过c程序获取本机IP. popen get ip test ok
unix,linux通过c程序获取本机IP.总结:1. 标准I/O库函数相对于系统调用的函数多了个缓冲区(,buf),安全性上通过buf 防溢出。2.用system函数输出是标准输出,进一步理解fork函数和exec函数重新开启一个进程运行程序;3.printf 这类输出函数中“ ”若包含“记得要换成转义字符\" 资料链接: http://原创 2017-03-24 14:11:43 · 374 阅读 · 0 评论 -
段错误原因分析和查找
转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Li转载 2017-09-15 10:59:20 · 1542 阅读 · 0 评论 -
Source Insight 不显示文件列表
解决办法: 选择project->open project 选择自己没有显示文件列表的那个工程名称双击打开即可。 发现已经解决问题了。原创 2017-08-29 21:00:01 · 11266 阅读 · 0 评论 -
32位bmp图转rgba格式数组方式
用ps或其他工具将一副bmp图转换为rgba32的图片然后保存。 做成如下类似 执行如下命令:xxd -I 源图片名 转换后图片名 eg:xxd -i 32b.bmp 32b.h即可得到32位的rgba格式的图像数组。...原创 2018-10-08 09:34:01 · 2916 阅读 · 0 评论