- 博客(160)
- 资源 (13)
- 收藏
- 关注
原创 开机进入GRUB不要慌,命令行也可启动Linux
假定通过 ls (hd1,gpt2)/boot/grub 发现了grub.cfg文件,则表明Linux安装在这个分区。查找包含grub.cfg文件的分区。
2024-09-25 16:00:25 199
原创 ubuntu下手工编译安装 6.* 最新内核
我这里使用 Ubuntu 22.04 的最新 HWE 6.5 内核,从相应镜像网站下载包含内核配置文件(config-6.5.0-14-generic)模块包 linux-modules-6.5.0-14-generic_6.5.0-14.14~22.04.1_amd64.deb。. 从当前机器的启动目录拷贝配置信息到源代码目录。这步操作的意思是我们编译内核的配置采用用当前环境一致的配置。假定电脑是 UEFI 类型的 BIOS,手工编译内核之前先在主板 BIOS 中禁止 UEFI 的安全启动。
2024-09-13 15:13:36 690
原创 linux HBA驱动中scsi_host_template .shost_attrs
scsi_host_template是一个结构体,用于定义SCSI主机(host adapter)的属性和操作。这个模板用于初始化SCSI主机结构体scsi_host_template,它包含了主机的属性、操作函数等。shost_attrs是scsi_host_template结构体中的一个成员,它是一个属性组,用于定义SCSI主机可以支持的属性。每个属性都会有相应的操作函数,这些函数定义了如何读取或写入属性值。例如,一个属性可能有一个show函数来返回当前值,一个store函数来设置新值。
2024-08-13 15:26:19 567
原创 Linux驱动 | 在驱动中创建sysfs接口
https://developer.aliyun.com/article/1324315#:~:text=sysfs%E6%8E%A5%E5%8F%A3%E5%88%9B%E5%BB%BA%201%201%E3%80%81%E4%BD%BF%E7%94%A8DEVICE_ATTR%E5%A3%B0%E6%98%8E%E4%B8%80%E4%B8%AAsys%E8%8A%82%E7%82%B9%202%202%E3%80%81%E5%AE%8C%E6%88%90sys%E8%8A%82%E7%82%B9%E7
2024-08-13 15:16:10 248
原创 Linux 内核代码风格
Documentation/process/coding-style.rst 的中文翻译如果想评论或更新本文的内容,请直接发信到LKML。如果你使用英文交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻译存在问题,请联系中文版维护者::中文版维护者: 张乐 Zhang Le中文版翻译者: 张乐 Zhang Le中文版校译者: 王聪 Wang Congwheelz管旭东 Xudong GuanLi ZefanWang Chen以下为正文。
2024-08-05 11:03:13 984
原创 解决VM虚拟机中ubuntu系统上不了网的问题
在对应的虚拟机上右键,点击设置,找到网络适配器,点击移除,再次点击添加,将网络适配器再次添加回来,点击确定。在虚拟机软件种选择编辑->虚拟网络编辑器->然后还原默认设置。
2023-09-25 10:44:03 370
原创 如何查看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 304
转载 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 1240 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 1128
转载 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 1568
转载 结构体中char a[0]用法——柔性数组
这种形式是非法的,C99支持的形式是形同intitem[];C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。包含柔性数组成员的结构用malloc()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。这样我们就可以定义一个可变长的结构,用sizeof(type_a)得到的只有4,就是sizeof(nCnt)=sizeof(int)那个0个元素的数组没有占用空间,而后我们可以进行变长操作了。...
2022-07-20 10:08:20 578 1
转载 sas控制器驱动之设备管理
通过此文,了解一个控制器需要管理哪些设备,后续在此基础上可以进一步学习掌握驱动及内核存储上层部分的操作流程。1.内核模块接口说明httpshttpshttpshttps。
2022-07-15 17:31:33 1351
转载 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 507
转载 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 1018
转载 自定义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 6359 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 932
原创 安装ubuntu的时候注意事项
安装的时候一定要选择上第三方更新,并且不下载updates安装完毕后第一件事件就是,搜索Software&Updates 然后在Updates项目那里把自动检查更新更改为Never,通知我ubuntu有新版本了改为Never,当有其他更新的时候选择两周通知一次,不然他会悄悄更新,然后占用apt-get,很麻烦的。https://ywnz.com/linuxjc/4557.html...
2022-05-19 14:39:36 402
转载 [已解决]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 2021
原创 查看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 1027
原创 通过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 1220
原创 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 231
转载 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 1960
原创 一个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 289
转载 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 48092 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 1882
原创 如何根据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 379
转载 uboot的作用
一、uboot是用来干什么的,有什么作用?uboot 属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启动内核。所以,由上面描述的,就知道,UBOOT需要具有读写flash的能力。二、uboot是怎样引导启动内核的?1.uboot刚开始被放到flash中,板子上电后,会自动把其中的一部分代码拷到内存中执行,这部分代码负责把剩余的uboot代码拷到内存中2.uboot代码再把kernel部分代码也拷到内存中,并且启动,内核启动后,挂着根文件系
2022-03-22 17:32:22 1242 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 3120
原创 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 783
转载 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 3344
转载 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 4752
原创 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 4696
原创 vmlinux zImage uImage 是什么,如何区分
vmlinux是内核文件,zImage是一般情况下默认的压缩内核映像文件,压缩vmlinux,加上一段解压启动代码得到。而uImage则是使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。其实就是一个自动跟手动的区别,有了uImage头部的描述,u-boot就知道对应Image的信息,如果没有头部则需要自己手动.
2022-02-17 13:57:13 393
转载 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 10976
转载 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 23945 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 1056
转载 设备树基础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 182
PCI EXPRESS CARD ELECTROMECHANICAL SPECIFICATION,REV. 3.0.pdf
2020-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人