驱动开发
dingdongkk
在0和1的世界中探索.....
展开
-
解决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 · 1858 阅读 · 1 评论 -
linux如何彻底的删除文件
linux如何彻底的删除文件,rm,rm -rf, sudo rm -rf, lsattr,chattr等。原创 2023-02-26 16:22:48 · 7446 阅读 · 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 · 450 阅读 · 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 · 6845 阅读 · 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 · 627 阅读 · 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 · 609 阅读 · 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 · 12299 阅读 · 1 评论 -
vim按快捷键ctrl s挂掉
原因: 对于vim,ctrl+s:停止输入; 解决办法: 按快捷键:ctrl+q退出停止输入模式即可。原创 2017-08-23 10:03:13 · 410 阅读 · 0 评论 -
bmp转rgb565在framebuffer中显示
需求:在kernel中自定义显示图片 解决办法:在网上找了很多方法,都是去替换的,那样就有了很大的局限性,还比较麻烦,所以经过研究最后找到此方法: 首先:得到一副图片eg:jpeg格式的图片,可以用格式工厂或者其他软件吧jpeg格式转换为bmp格式的图片,再用工具(BmpCvt链接如下:)将bmp格式图片转换为rgb565的c文件数组。 工具使用方法: 双击打开,然后打开一副bmp格式的图片原创 2017-08-17 15:05:54 · 1890 阅读 · 0 评论 -
Android系统的开机画面显示过程分析
Android系统的开机画面显示过程分析 提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面了。Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。本文将详细分析这三个开机画面的显示过程,以便可以开启我们对Android系统U转载 2017-08-01 11:42:14 · 646 阅读 · 0 评论 -
使用 Git & Repo 下载代码
客户端安装 Git安装 git,gitk网络连接正常的情况下:$ sudo apt-get install git-core gitk git-gui不能上网,有.deb安装包的,请执行:$ sudo dpkg -i XXXX.deb初次运行 Git 前的配置配置用户信息$ git config --global user.name your转载 2017-07-06 14:42:18 · 790 阅读 · 0 评论 -
Linux之V4L2基础编程
1. 定义V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程:打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓冲 区管理)-> 循环获取数据-> 关闭设备。3. 设备的打开和关闭:#include int open(const char *device_name, int fl转载 2017-04-27 00:20:11 · 396 阅读 · 0 评论 -
V4L2框架分析学习
1、概述Video4Linux2是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。就像公司的老板一般都不会直接找底层的员工谈话,而是找部门经理了解情况,一个是因为底层屌丝人数多,意见各有不同,措辞也不准,部门经理会把情况汇总后再向上汇报;二个是老板时间宝贵。转载 2017-04-27 00:17:28 · 247 阅读 · 0 评论