自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 资源 (13)
  • 收藏
  • 关注

原创 解决VM虚拟机中ubuntu系统上不了网的问题

在对应的虚拟机上右键,点击设置,找到网络适配器,点击移除,再次点击添加,将网络适配器再次添加回来,点击确定。在虚拟机软件种选择编辑->虚拟网络编辑器->然后还原默认设置。

2023-09-25 10:44:03 287

原创 如何查看edk2支持的TARGET_ARCH

要查看EDK2支持的TARGET_ARCH,可以通过以下步骤进行:访问EDK2项目的代码仓库,例如GitHub上的EDK2(https://github.com/tianocore/edk2)。在代码仓库中,导航到/MdePkg/MdePkg.dec文件(路径可能会有所不同,具体取决于EDK2版本)。打开MdePkg.dec文件,这是一个包含EDK2配置信息的文件。在该文件中,寻找以[Components.X64]或[Components.AARCH64]等形式开始的节(具体名称可能会有所不同,取

2023-09-07 11:24:19 226

转载 UEFI Drivers & UEFI Driver Model

2>. UEFI Driver Model Drivers必须安装一个Driver Binding Protocol到它的Image Handle上,可选择的安装Driver Configuration Protocol, Driver Diagnostics Protocol, Component Name Protocol。随着硬件总线结构的发展,Bus的种类和数量都在增加,在Preboot的环境下,就需要有一种简单的方式来描述和管理平台上的Bus和Device。

2022-11-21 17:45:49 1113 1

转载 yum install 失败 Failed to download metadata for repo ‘AppStream‘问题解决

Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failed to download metadata for repo ‘AppStream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist”最终原因是源的问题,解决办法也是解决源的问题。2、修改所有的CentOS文件内容。1、进入yum的repos目录。3、更新yum源为阿里镜像。

2022-11-08 15:42:01 1045

原创 vscode常用集锦

vscode常用集锦

2022-08-31 15:29:13 182

转载 dd命令中seek和skip的用法

假如有一个文件abc.gz,大小为83456k,我想用dd命令实现如下备份 结果:首先将备份分成三个部分,第一部分为备份文件abc.gz的前10000k,第二部分为中间的70000k,最后备份后面的3456k.seek=xxx则是在备份时对of 后面的部分也就是目标文件跳过多少块再开始写。skip=xxx是在备份时对if 后面的部分也就是原文件跳过多少块再开始备份;这时查看一下恢复的文件将和原来的文件一模一样,说明备份成功了。dd命令中seek和skip用法,感兴趣的朋友可以参考下。...

2022-08-12 10:14:21 1465

转载 结构体中char a[0]用法——柔性数组

这种形式是非法的,C99支持的形式是形同intitem[];C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。包含柔性数组成员的结构用malloc()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。这样我们就可以定义一个可变长的结构,用sizeof(type_a)得到的只有4,就是sizeof(nCnt)=sizeof(int)那个0个元素的数组没有占用空间,而后我们可以进行变长操作了。...

2022-07-20 10:08:20 494 1

转载 sas控制器驱动之设备管理

通过此文,了解一个控制器需要管理哪些设备,后续在此基础上可以进一步学习掌握驱动及内核存储上层部分的操作流程。1.内核模块接口说明httpshttpshttpshttps。

2022-07-15 17:31:33 1149

转载 SCSI Upper Layer 与LLD的联系——sd_probe

sg_format --format /dev/ada --size=512关闭PI,sg_readcap /dev/sda -l 显示是否开启pi,sg_inq /dev/sda sg_inq /dev/sda -x 只是表示支持。

2022-07-07 17:43:03 419

转载 win10离线装linux子系统 运行ubuntu.exe失败闪退没反应

解决过程在新的系统版本下,lxrun等命令已经失效,可利用wsl --list --verbose查看当前电脑上子系统信息,成功之后如下图所示:这里注意状态是running是因为已经配置好了,原本是stopped的状态运行wsl --unregister Ubuntu-16.04,这里更改成上面查到的相应版本的NAME即可,将其注销,然后再运行Ubuntu16.04.exe进行安装即可成功之后可在CMD和powershell里运行bash,即可进入子系统注:上面都要在管理员权限下运行如果出现

2022-05-24 16:48:26 914

转载 自定义WSL的安装位置,别再装到C盘啦

WSL(Windows Subsystem for Linux) 是win10的一项十分强大的功能。WSL让我们可以像使用普通的软件一样直接使用Linux的功能。配合微软的Windows Terminal,拥有比通常的虚拟机更方便的启动方式(告别需要重启切换的双系统方案吧)。在WSL2更新之后,WSL支持了GPU、图形界面和docker等各种功能,速度也有了不小提升。但是有一个大问题:在Microsoft Store下载的WSL发行版会自动安装到C盘,不能手动选择安装位置。如果你不是只有一个C盘的话,基

2022-05-23 15:58:33 6057 3

转载 ubuntu16.04开机登录后一直蓝屏解决方法

Ctrl + Alt + F4,进入字符界面,然后重新登录,先输入用户名,然后输入登录密码,然后安装相应服务,然后重置它!sudo apt-get install xserver-xorg-lts-utopic sudo dpkg-reconfigure xserver-xorg-lts-utopic reboot恢复正常~如果前面第一个操作有问题,先用下面命令重置 dpkg 后再试,总之按提示操作就好了sudo dpkg --configure -a...

2022-05-20 09:38:27 848

原创 安装ubuntu的时候注意事项

安装的时候一定要选择上第三方更新,并且不下载updates安装完毕后第一件事件就是,搜索Software&Updates 然后在Updates项目那里把自动检查更新更改为Never,通知我ubuntu有新版本了改为Never,当有其他更新的时候选择两周通知一次,不然他会悄悄更新,然后占用apt-get,很麻烦的。https://ywnz.com/linuxjc/4557.html...

2022-05-19 14:39:36 333

转载 [已解决]Ubuntu安装libssl-dev失败

ygu@guyongqiangx:~$ sudo apt-get install libssl-devReading package lists... DoneBuilding dependency tree Reading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if yo

2022-05-18 10:05:28 1570

原创 查看sas盘支持的所有命令

sg_raw -r 1024 /dev/sda a3 0c 00 00 00 00 00 00 04 00 00 00

2022-05-13 16:42:36 903

原创 通过sg3_utils发送scsi cdb命令码

sg_raw: 可以直接发送scsi命令, 如sg_raw -r 1k /dev/sg0 12 00 00 00 60 00 是inquiry命令

2022-05-13 09:05:45 1011

原创 SCSI任务优先级

在SCSI命令参考手册中给出了三个优先级控制位:HEADSUP,ORDWUP、SIMPSUP,分别对应的优先级是HEAD OF QUEUE、ORDERED、SIMPLEHEAD OF QUEUE优先级的任务会被插入到队列头,ORDERED优先级的任务会被插入到队列尾,SIMPLE优先级的任务可以插入到任意顺序,但不能插入到HEAD OF QUEUE与ORDERED任务之前。一般来说ORDERED优先级是很少被使用的,因为即使在这一层完成了保序,在写入磁盘时顺序依旧会被打乱,所以这么操作没有任何意义。

2022-05-10 17:12:34 173

原创 linux查看磁盘的inquery data

sg_inq命令可以

2022-05-09 10:57:24 437

原创 scsi命令的读写命令在哪里构建?

drivers\scsi\sd.c 中的sd_setup_read_write_cmnd函数里构建

2022-05-06 11:03:53 344

转载 SAS学习笔记

术语解释Phy:The term Phy is used in the standard with respect to the interface between a device and the service delivery subsystem(e.g.: cable, backplane, etc.).ref:https://www.jianshu.com/p/0f4333a5f1afSAS概述ExpanderExpander相当于是SAS domain里的路由表。有两种Expan

2022-04-25 14:24:01 1811

原创 一个linux驱动链表例子

Free_list初始化struct list_head free_list;struct scsiio_tracker *scsi_lookup;unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order)功能:以gfp_mask的方式分配2^order个物理页面gfP_mask:分配的方式,指出如何分配在哪分配如GFP_KERNELorder:分配2^order个页面返回值:返回分配的第一个页的逻辑地址fre

2022-04-08 17:43:37 244

转载 VIM中字符串的替换

VIM中字符串的替换字符串的替换1. vim 中可用 :s 命令来替换字符串,具体如下::s/str1/str2/ 替换当前行第一个 str1 为 str2:s/str1/str2/g 替换当前行中所有 str1 为 str2:m,ns/str1/str2/ 替换第 n 行开始到最后一行中每一行的第一个 str1 为 str2:m,ns/str1/str2/g 替换第 n 行开始到最后一行中所有的 str1 为 str2(注:m和n 为数字,若m为 .,表示为当前行开始;若n为$,则表示到最后

2022-04-01 14:29:33 47753 2

转载 scsi eh(scsi error handle)处理流程

内核文档Documentation/scsi/scsi_eh.txtscmd为scsi cmd的简称。scsi_eh_scmd_add()作用:将发生error的scmd加入到eh中。发生error有两种情况:1).scmd执行完成了,但是结果为error。2).scmd执行超时了,即一直没有返回,发生了timeout。scsi_eh_scmd_add()在两处被调用:1).scsi_times_out函数 => scmd超时处理函数,将timeout的scmd加入eh2).scsi

2022-03-31 10:05:57 1599

原创 如何根据lspci找到HBA在sysfs中的位置

1 基础知识lspci和sysfs对于pci的编号都是基于<domain, bus, device, 和 function>的PCI系统示意图2 开始展示如何找到对应关系图中可以看到HBA的bus是1,说明他不是直接连接到PCI bridge(00:01:0),bridge(00:01:0)会创建一个总线bus1,然后下面挂了HBA(01:00:00)所以其在sysfs中的位置为/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0

2022-03-25 17:41:38 330

转载 uboot的作用

一、uboot是用来干什么的,有什么作用?uboot 属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启动内核。所以,由上面描述的,就知道,UBOOT需要具有读写flash的能力。二、uboot是怎样引导启动内核的?1.uboot刚开始被放到flash中,板子上电后,会自动把其中的一部分代码拷到内存中执行,这部分代码负责把剩余的uboot代码拷到内存中2.uboot代码再把kernel部分代码也拷到内存中,并且启动,内核启动后,挂着根文件系

2022-03-22 17:32:22 1175 1

原创 centos开机启动后只是一条横杠

今天和以往一样上班后开启台式机,发现系统启动不来,只显示白色的-,经过各种设置也无法解决,把系统盘放到其他主机开机提示”/boot目录下文件丢失error: file ‘/initramfs-3.10.0-957.el7.x86_64.img‘ not found“然后进去了另外一个系统删除掉/root下面的initramfs-3.10.0-957.el7.x86_64.img备份等然后从新安装了kernel-3.10.0-957.el7.x86_64.rpm解决ref:https://blog.cs

2022-03-11 10:05:42 2811

原创 shell命令做别名(alias命令)

查看别名#alias #查看所有#alias ls #查看特定命令,也可以在输入ls的时候按下Ctrl+Alt+E 组合键把别名转化为实际命令设置别名alias [name[=value]]#等号(=)前后不能有空格,否则就会出现语法错误了。#如果value中有空格或tab,则value一定要使用引号(单、双引号都行)括起来。全局设置别名#find / -name ".bashrc" 找到.bashrc文件,一般在/root目录下#在这个文件中添加别名,保存重启终端即可.

2022-03-08 16:50:56 726

转载 Linux下统计代码行数(wc命令)

最近写了一些代码,想统计一下代码的行数,在eclipse中好像没这功能,网上搜了一下才发现原来Linux有一个统计文件行数的命令wc。使用wc可以打印出每个文件和总文件的行数、字数和字节数,如果没有指定文件,则会读取标准输入(一般是终端)做统计。格式如下:Usage: wc [OPTION]... [FILE]... -c, --bytes, --chars print the byte counts -l, --lines print the newline counts -L,

2022-03-04 14:06:05 3191

转载 Vim下多行同时编辑与删除技巧

问题:在Vim内同时对多行增加或删除相同的内容,如:item 1item 2item 3变成(增加):my_item 1my_item 2my_item 3再变成(删除):tem 1tem 2tem 3- 方法:编辑:1.将光标移到要插入相同内容的第一行第一个字符上,如上面代码中item 1中的i上按下ctrl+v进入visual block模式2.按两次j或者2j,将光标移动到要插入的最后一样,如上面代码中item 3中的i上按下I(大写i)进入编辑.

2022-02-22 10:17:16 2458

原创 linux磁盘镜像技术,Linux 下使用 dd 和 gzip 命令来代替 Ghost 做磁盘镜像

1.使用 dd 和 gzip 命令来代替 Ghost 做磁盘镜像在 Linux 下,其实可以使用 dd 和 gzip 命令来代替 Ghost 做磁盘镜像。要使用 dd 和 gzip 备份,可以执行命令:dd if=/dev/sda status=progress| gzip -c > sda.dd.gz也可以不用压缩命令dd if=/dev/sda status=progress bs=32M > sda.dd.gzbs的添加非常重要,可以提升速度在还原时,可以执行下列命令:g

2022-02-18 17:47:48 4137

原创 vmlinux zImage uImage 是什么,如何区分

vmlinux是内核文件,zImage是一般情况下默认的压缩内核映像文件,压缩vmlinux,加上一段解压启动代码得到。而uImage则是使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。其实就是一个自动跟手动的区别,有了uImage头部的描述,u-boot就知道对应Image的信息,如果没有头部则需要自己手动.

2022-02-17 13:57:13 265

转载 NFS和SAMBA的区别

NFS和SAMBA的区别1、NFS(网络文件系统)2、samba 即smb(服务信息块)协议1、其中NFS是TCP/IP协议集所提供的一种子协议,该协议可以实现LINUX/UNIX主机之间的文件共享。(将TCP/IP中的全部层或者某几层组合起来进行实现)2、 samba是一种基于linux/unix平台中利用于smb(服务信息块)-- service message block协议samba 在不同的Unix机器间进行资源共享,现基于tcp,它使用的协议是SMB。微软不愿意交License费,在w

2022-02-10 16:35:34 10331

转载 ARM——体系架构

1.ARM简介ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。1.1 ARM(Advanced RISC Machines)的几种含义:1、ARM是一种RISC MPU/MCU的体系结构,如同x86架构是一种CISC体系结构一样。另外,还有MIPS架构、PowerPC架构等等。2、AR.

2022-02-08 15:53:06 22846 1

转载 设备树的引入及简明教程

1 设备树的引入与作用以 LED 驱动为例,如果你要更换 LED 所用的 GPIO 引脚,需要修改驱动程序源码、重新编译驱动、重新加载驱动。在内核中,使用同一个芯片的板子,它们所用的外设资源不一样,比如 A 板用 GPIO A,B 板用 GPIO B。而 GPIO 的驱动程序既支持 GPIO A 也支持 GPIO B,你需要指定使用哪一个引脚,怎么指定?在 c 代码中指定。随着 ARM 芯片的流行,内核中针对这些 ARM 板保存有大量的、没有技术含量的文件。Linus 大发雷霆:“this whole

2022-01-27 11:22:00 1000

转载 设备树基础1

1.设备树的引入在没有引入设备树之前,在内核中充斥的很多板卡硬件描述代码。而且很多都是重复的。对于修改以及维护都很麻烦。因此引入了设备树。 https://www.cnblogs.com/downey-blog/p/10486568.html2.什么是设备树Device Tree是一种描述硬件的数据结构,在Linux 2.6中,ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx,采用Device Tree后,许多硬件的细节可以直接透过它传递

2022-01-27 11:12:30 158

转载 三星Exyos4412

早期的ARM芯片以‘ARM’为前缀来命名,例如ARM7、ARM9、ARM11,大概从08年以后,改为以’CORTEX’为前缀来命名了,如Cortex-A8、Cortex-A9,如下图:随着技术的进步,芯片制造工艺越来越精细,成本越来越低,功耗控制也越来越好,如下图:Cortex-A9的推出,使ARM处理器达到了从未有的高度,成熟稳定的多核技术,使得嵌入式设备开始有了革命性的提高和用户体验。三星、高通、英伟达、飞思卡尔等公司陆续发布了自己的Cortex-A9芯片,其中三星的Exynos 4412无.

2022-01-24 11:10:16 367

转载 C51中data,idata,xdata,pdata的区别

从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。在51系列中data

2022-01-24 09:27:24 7403 1

原创 如何安装centos的源代码

源代码/usr/src/kernels/下有对应内核的源代码,在编译内核或者制作RPM包的时候经常会用到/lib/modules/uname−r/build这个build其实是个软链接是链接到/usr/src/kernels/{uname -r}/build 这个build其实是个软链接是链接到/usr/src/kernels/uname−r/build这个build其实是个软链接是链接到/usr/src/kernels/{uname -r}/ 下面的源内核源码里了安装源代码安装源代码到/usr/sr

2022-01-17 11:02:27 1546

原创 制作内核rpm spec的解读

Name: helloBuildRequires: %kernel_module_package_buildreqsLicense: GPL-2.0Group: System/KernelSummary: hello Module PackageVersion: 0.1Release: 1.1Source0: hello-%version.tar.gzBuildRoot: %{_tmppat

2022-01-14 17:40:31 1094

原创 linux调试小技巧

当linux系统启动界面一直在加载中,又想看内核打印,可以按下ESC键就看到黑色屏幕和白色的字体的打印了

2022-01-13 16:56:27 232

修改版本编译脚本,编译模块,全部可选择

修改版本编译脚本,编译模块,全部可选择

2022-03-01

How to create an RPM package_zh-cn.zip

如何创建RPM包

2022-01-17

How to create an RPM package_zh-cn - Fedora Project Wiki.pdf

RPM package的制作

2022-01-11

makefile_test_plus.zip

多文件目录下makefile文件递归执行编译所有c文件(可以遍历文件夹)

2021-10-20

makefile_test_基础通用版本_文件只在本文件下有效.zip

akefile_test_基础通用版本_文件只在本文件下有效

2021-10-15

makefile中文手册.zip

makefile 手册

2021-10-14

rpm-hello_0.1.zip

制作rpm的hello world 包

2021-10-13

hello-0.1.zip

dkms教程的hello包

2021-10-11

升级驱动的linux脚本

升级驱动的linux脚本,适合驱动开发和嵌入式开发

2021-09-22

PCI EXPRESS CARD ELECTROMECHANICAL SPECIFICATION,REV. 3.0.pdf

PCIE 引脚定义,PCI EXPRESS CARD ELECTROMECHANICAL SPECIFICATION,REV. 3.0.pdf

2020-10-14

文件系统详解

比较详细的文件系统

2015-08-26

FAT32文件系统讲解

很详细的Fat32文件系统讲解,正中的英文版,里面的比较原著,相比中文版,理解比较全面和准确。

2015-08-26

AS3933_AN01_DemoboardDescription

AS3933_AN01_DemoboardDescription

2014-09-09

空空如也

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

TA关注的人

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