
linux
Wang20122013
喷泉有了压力才优美,滴水有了坚持才有了穿石。顶住压力,享受压力,坚持奋斗。
展开
-
开机进入GRUB不要慌,命令行也可启动Linux
假定通过 ls (hd1,gpt2)/boot/grub 发现了grub.cfg文件,则表明Linux安装在这个分区。查找包含grub.cfg文件的分区。原创 2024-09-25 16:00:25 · 1278 阅读 · 0 评论 -
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 · 1218 阅读 · 0 评论 -
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 · 1144 阅读 · 0 评论 -
自定义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 · 6730 阅读 · 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 · 979 阅读 · 0 评论 -
安装ubuntu的时候注意事项
安装的时候一定要选择上第三方更新,并且不下载updates安装完毕后第一件事件就是,搜索Software&Updates 然后在Updates项目那里把自动检查更新更改为Never,通知我ubuntu有新版本了改为Never,当有其他更新的时候选择两周通知一次,不然他会悄悄更新,然后占用apt-get,很麻烦的。https://ywnz.com/linuxjc/4557.html...原创 2022-05-19 14:39:36 · 481 阅读 · 0 评论 -
[已解决]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 · 2491 阅读 · 0 评论 -
查看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 · 1183 阅读 · 0 评论 -
通过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 · 1418 阅读 · 0 评论 -
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 · 277 阅读 · 0 评论 -
linux查看磁盘的inquery data
sg_inq命令可以原创 2022-05-09 10:57:24 · 608 阅读 · 0 评论 -
scsi命令的读写命令在哪里构建?
drivers\scsi\sd.c 中的sd_setup_read_write_cmnd函数里构建原创 2022-05-06 11:03:53 · 428 阅读 · 0 评论 -
一个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 · 310 阅读 · 0 评论 -
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 · 48329 阅读 · 2 评论 -
如何根据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 · 444 阅读 · 0 评论 -
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 · 3401 阅读 · 0 评论 -
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 · 821 阅读 · 0 评论 -
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 · 3471 阅读 · 0 评论 -
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 · 7256 阅读 · 0 评论 -
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 · 5360 阅读 · 0 评论 -
linux调试小技巧
当linux系统启动界面一直在加载中,又想看内核打印,可以按下ESC键就看到黑色屏幕和白色的字体的打印了原创 2022-01-13 16:56:27 · 275 阅读 · 0 评论 -
linux patch那些事(涉及到diff pathch等命令)
1 读懂diffref:http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html一、diff的三种格式由于历史原因,diff有三种格式:* 正常格式(normal diff)* 上下文格式(context diff)* 合并格式(unified diff)我们依次来看。二、示例文件为了便于讲解,先新建两个示例文件。第一个文件叫做f1,内容是每行一个a,一共7行。a a a a a a a第二个文件原创 2022-01-13 11:06:45 · 370 阅读 · 0 评论 -
Linux下判断磁盘是SSD还是HDD的几种方法
# cat /sys/block/*/queue/rotationalYou should get 1 for hard disks and 0 for a SSD.It will probably not work if your disk is a logical device emulated by hardware (like a RAID controller).通过判断cat /sys/block//queue/rotational的返回值(其中为你的硬盘设备名称,例如sda等等),如转载 2022-01-04 11:02:39 · 2971 阅读 · 0 评论 -
linux下的磁盘常用工具
hdparm:hdparm可以检测,显示与设定IDE,SCSI,SATA,SAS硬盘的硬件参数,如: hdparm -I /dev/sdc 可以获取sdc的硬件信息hdparm -W 0 /dev/sda 关闭磁盘写缓存, (这个缓存是在磁盘内部的, 一般不关闭, 只能整个盘有效)iostat:可以查看硬盘的io状态, 从这个命令中可以看出硬盘io的基本情况, 这个命令主要和硬盘的驱动对接. 如: iostat -x /dev/sdc 2 每个2秒查看一次硬盘的io情况 各个参数意义转载 2021-12-28 16:43:24 · 2856 阅读 · 0 评论 -
linux驱动之字符设备之异步通知 fasync_struct
异步通知的全称是"信号驱动的异步IO",通过"信号"的方式,放期望获取的资源可用时,驱动会主动通知指定的应用程序,和应用层的"信号"相对应,这里使用的是信号"SIGIO"。操作步骤是应用层程序将自己注册为接收来自设备文件的SIGIO信号的进程驱动实现相应的接口,以期具有向所有注册接收这个设备驱动SIGIO信号的应用程序发SIGIO信号的能力。驱动在适当的位置调用发送函数,应用程序即可接收到SIGIO信号。整个机制的框架:应用层接收SIGIO和其他信号一样,应用层需要注册一个信号处理函数,注册的转载 2021-12-17 17:45:19 · 974 阅读 · 0 评论 -
Linux常用命令
which命令 查看命令的路径find / -name “abc.h” 查看文件的位置原创 2021-11-15 10:05:43 · 892 阅读 · 0 评论 -
以rpm包形式升级Linux驱动
一般在自己适配驱动或者升级驱动时,如果将所有的安装命令以及后续的依赖关系写在一个文件中,那么在现场环境中只需要执行一步命令即可,减少了现场维护人员操作步骤,那么这里想写的一个方法是将升级驱动的步骤打包成rpm包的形式;总体的步骤分为如下两步:1、编写SPEC文件;2、利用SPEC文件制作rpm包;本文参考的RPM打包原理的网址如下:https://blog.csdn.net/get_set/article/details/53453320以升级i40e驱动为例编写SPEC文件如下:Name:转载 2021-10-29 10:02:56 · 678 阅读 · 0 评论 -
嵌入式Linux和PC串口传输文件
要从PC机下周东西到嵌入式linux系统里面,可使用tftp sftp等网络工具或挂载nfs文件系统进行拷贝。这是通过网络的形式来下载,速度也快。但是,如果网络用不了,这些方法就行不通了;通过U盘/SD卡来拷贝,效率就低了;这里介绍个方法,通过lrzsz工具使用串口进行文件传输。下面具体介绍lrzsz。一、编译安装下载地址:点我下载解压➜ tar -zxvf lrzsz-0.12.20.tar.gz ./配置➜ cd lrzsz-0.12.20➜ ./configure --host=arm-转载 2021-10-28 13:02:16 · 563 阅读 · 0 评论 -
安装和使用Hardinfo、Sysinfo、Lshw以在Linux上查找硬件规格
本文介绍在Linux系统中安装Hardinfo、Sysinfo、Lshw的方法,使用它们以在Linux上查找硬件规格,经测试,在Ubuntu 18.04系统能完美运行,不过也适用于其他Linux发行版。以下介绍的三种工具都能获取Linux系统的所有硬件(和软件)细节。1、Hardinfo安装和使用方法Hardinfo将为您提供系统的硬件和软件详细信息,要说明的是,这些信息在lshw中不可用。HardInfo可以收集有关系统硬件和操作系统的信息,执行基准测试,并以HTML或纯文本格式生成可打印的报告。转载 2021-10-26 14:17:12 · 5846 阅读 · 0 评论 -
make: *** /lib/modules/3.10.0-327.2.el7.x86_64/build: No such file or directory. Stop
problem:make: *** /lib/modules/3.10.0-327.2.el7.x86_64/build: No such file or directory. StopReason:The kernel head files are missing for the current kernel.How I solved it:find current kernel: uname -ryum install kernel-devel-$(uname -r)you may not转载 2021-10-25 10:55:13 · 759 阅读 · 0 评论 -
linux下用命令怎么判断分区是GPT还是MBR
fdisk -l原创 2021-10-20 16:43:19 · 1063 阅读 · 1 评论 -
多文件目录下makefile文件递归执行编译所有c文件
首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的。**意义:**自动化编译行为,以后编译自己的c文件时可把这些makefile文件直接复制到相应目录即可方便编译出所有文件。这些makefile文件是通用的,只需根据自己的工程情况改动少许内容即可。下面会说。**总体思路是:**把目标文件放在debug文件夹下的obj目录下,把最终的二进制文件放在debug文件夹下的bin目录下;如何递归编译所有除了debug目录下的makefi转载 2021-10-20 15:56:47 · 2561 阅读 · 0 评论 -
如何下载Centos的内核源代码
1 源代码的官网:http://vault.centos.org/2 进入内核版本内部进入os/Source/Spackage 找到kernel_xxx.rpm里面解压后就有源代码。原创 2021-10-18 14:41:16 · 2106 阅读 · 0 评论 -
一堂课玩转rpm包的制作
1 基本知识常见的Linux发行版主要可以分为两类,类ReadHat系列和类Debian系列,这里我们是以其软件包的格式来划分的,这两类系统分别提供了自己的软件包管理系统和相应的工具。类RedHat系统中软件包的后缀是rpm;类Debian系统中软件包的后缀是deb。另一方面,类RedHat系统提供了同名的rpm命令来安装、卸载、升级rpm软件包;类Debian系统同样提供了dpkg命令来对后缀是deb的软件包进行安装、卸载和升级等操作。无论是rpm命令还是dpkg命令在安装软件包时都存在一个让人非常头转载 2021-10-13 18:06:43 · 4064 阅读 · 0 评论 -
Linux应用软件的安装包常见三种格式
一、解析Linux应用软件安装包(回目录)通常Linux应用软件的安装包有三种:tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。大多数Linux应用软件包的命名也有一定的规律,它遵循:名称-版本-修正版-类型例如:sof转载 2021-10-12 10:51:34 · 7865 阅读 · 0 评论 -
make -C M选项(在外部编译驱动模块必备)
modules:$(MAKE) -C (KERNELDIR)M=(KERNELDIR) M=(KERNELDIR)M=(PWD) modules这句是Makefile的规则:这里的$(MAKE)就相当于make,-C 选项的作用是指将当前工作目录转移到你所指定的位置。“M=”选项的作用是,当用户需要以某个内核为基础编译一个外部模块的话,需要在make modules 命令中加入“M=dir”,程序会自动到你所指定的dir目录中查找模块源码,将其编译,生成KO文件。注释:这个是编译driver modu转载 2021-10-12 10:47:53 · 7423 阅读 · 1 评论 -
UBOOT简介
Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NOR FLASH, SD, MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。当然了, bootloader 的实际工作要复杂的多,但是它最主要的工作就是启动 Linux 内核, bootloader 和 Linux 内核的关系就跟 PC 上的 BIOS 和 Window转载 2021-10-11 17:51:10 · 1468 阅读 · 0 评论 -
如何向Linux内核提交驱动
当Linux驱动程序开发到一定阶段,向kernel.org提交代码是一个很好的选择。对于很多没有向上游提交过代码的开发者来说,还是有很多疑问需要解决的。比如,究竟我们向哪里提交驱动程序?提交时我们的代码应该处于什么状态?提交的过程又如何呢?向哪里提交inux staging tree是Greg KH建立的用于提交驱动程序的git仓库。我们可以把staging tree看作是代码进入mainline内核之前的一个预科班,新增的驱动程序首先需要放到这里供社区review和测试。Staging tree是 G转载 2021-10-09 18:14:04 · 784 阅读 · 0 评论 -
DKMS简介
1 介绍我们都知道,如果要使用没有集成到内核之中的Linux驱动程序需要手动编译。当然,这并不是一件什么难事,即使是对于没有编程经验的Linux使用者,只要稍微有点hacker的意识,努力看看代码包里的Readme或者INSTALL文件,按部就班的执行几条命令还是很容易办到的。但这里还有一个问题,Linux模块和内核是有依赖关系的,如果遇到因为发行版更新造成的内核版本的变动,之前编译的模块是无法继续使用的,我们只能手动再编译一遍。这样重复的操作有些繁琐且是反生产力的,而对于没有内核编程经验的使用者来说可能转载 2021-10-09 18:00:01 · 1853 阅读 · 0 评论 -
以包管理器的角度,把当下使用比较主流的一些Linux发行版系统做过一个分类
因为当今市面上Linux操作系统的种类实在是太多了,各种各样的Linux发行版及其衍生系统数不胜数,常常让人看得眼花缭乱。把当下使用比较主流的一些Linux发行版系统做过一个分类转载 2021-10-08 18:20:49 · 130 阅读 · 0 评论