2018-01-18 10:29:28 morixinguan 阅读数 563

   最近在调试Inter平台core i7,基于X86架构的工控产品,在移植驱动的过程中,发现GPIO和I2C的device ID添加到pnp驱动框架后无法进入probe函数,后面找了下原因,因为pnp遵循的是ACPI规范,是由于如下Hardware ID字段是需要从BIOS中进行描述的,而目前的驱动匹配不到对应的字段,自然就不可能注册成功了。

   PNP是什么东西?不是三极管的那个PNP啦,这个PNP表示的是:Plug-and-Play,译文为即插即用。

   PnP的作用是自动配置底层计算机中的板卡和其他设备,然后告诉对应设备都做了什么。PnP的任务是把物理设备和软件设备驱动程序相配合,并操作设备,在每个设备和它的驱动程序之间建立通信信道。然后,PnP分配下列资源给设备和硬件:I/O地址、IRQ、DMA通道和内存段。即插即用设备配置的控制权将从系统BIOS传递到系统
软件,所以驱动中一定会有代码进行描述,到时可以跟一下这部分的代码深入了解一下。
由于PNP遵循ACPI的规范,那么既然是规范,那肯定要照着做了,规范怎么说,那就怎么做。

以下是关于ACPI Spec中对Hardware ID的描述,描述如下:



有关ASL语言可以参考ACPI SPEC手册的ACPI Source Language (ASL)Reference章节。

如上,关于Hardware ID手册中的意思大致如下:

      该对象用于向OSPM提供设备的PNP ID或ACPI ID。 在描述平台时,任何_HID对象的使用都是可选的。但是,_HID对象必须是用于描述将由OSPM枚举的任何设备。 当总线枚举器不能检测到设备ID时,OSPM只枚举一个设备。当总线枚举器不能检测到设备ID时。例如,ISA总线上的设备是由OSPM列举。除了OSPM使用_ADR对象来描述总线枚举器枚举的设备。

    其中OPSM是:OSPM(OS-directed Power Management) :OSPM 操作系统支持 ACPI 的一个部分,操作系统 (OS)可以从操作系统下驱动程序的角度控制 ACPI 子模块,同时支持 ACPI 包括 SCI 中断,设备事件,系统事件模式,这些事件模式可以充分支持 Hot-plug 方式。

    所以解决驱动匹配不上的问题,只要在BIOS中的ASL工程中对应Hardware描述的部分添加一个字段描述,确保驱动中的字段和BIOS中的字段一致,这样就可以匹配成功了。

OSPM 

操作系统支持

 ACPI 

的一个部分,操作系统

 

OS

)可以从操作系统下驱动程

序的角度控制

 

ACPI 

子模块,

同时支持

 

ACPI 

包括

 SCI 

中断,

设备事件,

系统事件模式,

这些事件模式可以充分支持

 

Hot-pl

ug 

方式。

以下是ACPI中关于PNP ID和ACPI ID的规范信息:

网址:http://www.uefi.org/PNP_ACPI_Registry

PNP ID AND ACPI ID REGISTRY

This is an industry registry of PNP ID and ACPI ID used in the _HID (Hardware ID), _CID (Compatibility ID) or _SUB (Subsystem ID) objects as described in the ACPI Specification for devices that do not have standard enumeration mechanism.  All these devices must contain a _HID (and possibly _CID and _SUB as well) in order to allow the operating system to uniquely recognize the device so that it can load the appropriate driver software. Each device manufacturer is responsible for assigning the PNP ID or ACPI ID for each of these products.

Both PNP ID and ACPI ID consist of two parts: a Vendor ID, followed by a product identifier. Each manufacturer of these devices must be assigned an industry-unique Vendor ID. Your company may already have a Vendor ID from previous work, such as EISA boards or other Plug and Play devices (PNPISA cards, PNP serial devices, PNP monitors, and so on). If you do not have a vendor ID, or do not know if you have one, the UEFI Forum can assign one for you as described on this page, or can verify an existing ID.

The format of Vendor IDs varies depending on the form of ID you choose:

  • PNP ID: PNP Vendor IDs consist of 3 characters, each character being an uppercase letter (A-Z).
  • ACPI ID: ACPI Vendor IDs consist of 4 characters, each character being either an uppercase letter (A-Z) or a numeral (0-9).


It is important to note that the use of PNP ID and ACPI ID are completely interchangeable for use with ACPI. The decision is strictly related to the availability of the characters you want. The PNP ID is legacy, intended for the Plug and Play Specifications that could not support 4 characters, but is still supported in ACPI. ACPI ID enables a much bigger namespace for the ecosystem.

Vendor IDs are subject to uniqueness requirements and some ID requests may not be available. For instance, Microsoft has reserved the PNP ID’s Vendor ID "PNP" to identify various devices that do not have an existing EISA ID, as well as defining compatibility devices. These IDs are defined in the file. The ACPI Specification reserves the ACPI ID’s Vendor ID “ACPI” for use only with devices defined in that specification. Additionally, Vendor IDs consisting only of valid hexadecimal characters (0-9 and A-F) are reserved for assignment by the PCI SIG (these Vendor IDs must be registered with the PCI SIG but can still be used in ACPI). Finally, it may simply be that the character string you request has previously been assigned to another company.

Product Identifiers are always four-character hexadecimal numbers (0-9 and A-F). The Device Manufacturer is responsible for assigning this identifier to each individual product MODEL. Once an identifier is assigned to a product model, it must not be assigned to any other product model manufactured by the same company (that is, that uses the same Vendor ID).

The registry aims to ensure fair, orderly, consistent and conflict free naming of the Vendor IDs.  Originally implemented by Microsoft, this registry is used to help companies avoid unnecessary collisions in implementation.

TO REGISTER A NEW UNIQUE VENDOR ID FOR THE PNP ID OR ACPI ID

Send a request to the ACPI Specification Workgroup Chairperson specifying whether the Vendor ID is for PNP ID or ACPI ID. All requests are subject to Work Group approval based on the objectives noted above.

The list of currently approved Vendor IDs for PNP ID and ACPI ID.  Please note, due to the size of the PNP ID List, your internet browser may take a minute to for the page to load.   


2017-05-04 16:07:01 mirabelle521 阅读数 1337

    1. 开机重启,按下F2,进入BIOS,选择Processor Configuration

     

    1. 找到Hyper Threading Tech,选择Enable

     

     

    1. 调整CPU 核数,找到Active Processor Cores,选择要设置的个数

    或者使用命令修改,需要几个core,把其他core都禁掉

    echo 0 > /sys/devices/system/cpu/cpu0/online 禁掉cpu0

    echo 1 > /sys/devices/system/cpu/cpu0/online开启cpu0

     

    HT打开的作用,比如一个cpu有一个core,有两个cpu,那么HT关闭的时候,就有两个coreHT打开的时候就有四个core

2019-08-29 19:05:49 qq_38236457 阅读数 73

一次在实体服务器安装centos 7的过程记录

第一次在实体服务器上面安装服务器(centos 7),在此记录安装过程中遇到的一些坑。

系统版本:CentOS Linux release 7.6.1810 (Core)

设置Bios

将引导设置为U盘优先启动,不同电脑型号进入bios方法不同,调整引导顺序的方式也略有差异,故不做具体介绍。

编辑优盘卷标

在设置过bios为优盘优先启动后,重启,无需按任何键。将会进入如下grub菜单引导界面。

Install CentOS 7
Test this media & install CentOS 7
Troubleshooting -->
 
 
 
Use the ↑ and ↓ keys to change the selection.
Press ‘e’ to edit the selected item,or 'c' for a command prompt. 
  • 通过键盘上的上下方向键选中Install CentOS 7 ,按e,进入如下界面
setparams 'Install CentOS 7'
		
	linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=Centos 7 quiet
	initrdefi /images/pxeboot/initrd.img
	
Press Ctrl-x to start,Ctrl-c for a command prompt or 
Escape to discard edits and return to the menu.
Pressing Tab lists possible completions.
  • 唯一需要修改的就是linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=Centos 7 quiet 这一行,将hd:后面的默认卷标改为所插入U盘的卷标名称。因为并不知道u盘的卷标名称,所以直接按ctrl+x进入类似如下界面。

dracut

在这个临时的命令行界面就可以查看u盘卷标

dracut:/# ls /dev |grep sd
sda
sda1
sda2
sda3
sdb
sdb4
#重启服务器
darcut:/# reboot

sda表示第一块硬盘,sdb表示第二块硬盘,以此类推。sda1表示第一块硬盘下的第1个分区,sda2表示第一块硬盘下的第二个分区,以此类推。对于新增的硬盘,系统会默认分配给他一个卷标递增的号(sda,sdb,sdc等),因此很容易判断出sdb4就是我们所插入的u盘。

  • 在重启服务器后,将再次进入安装引导界面
    1. 重启过程无需按任何键
Install CentOS 7
Test this media & install CentOS 7
Troubleshooting -->
 
 
 
Use the ↑ and ↓ keys to change the selection.
Press ‘e’ to edit the selected item,or 'c' for a command prompt.
 2. 上下键选中`Install CentOS 7`,按e进入编辑
setparams 'Install CentOS 7'
		
	linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=Centos 7 quiet
	initrdefi /images/pxeboot/initrd.img
	
Press Ctrl-x to start,Ctrl-c for a command prompt or 
Escape to discard edits and return to the menu.
Pressing Tab lists possible completions.

linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=Centos 7 quiet这一行的卷标修改为我们之前查找到的u盘卷标,即/dev/sdb4(绝对路径)。

修改过后的结果为:linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:/dev/sdb4 quiet

ctrl+x启动服务器。

  • 最后就进入图形安装界面了,如下:

centos7

4 quiet`

ctrl+x启动服务器。

  • 最后就进入图形安装界面了,如下:

[外链图片转存中…(img-GnoEs93T-1567076713372)]

图形界面的安装基本就是无脑的next,不做赘述。

2010-06-06 22:59:00 mumu2010 阅读数 1576

最近在看一个操作系统的实现,想在linux上安装一个bochs,不过这个开源的东西真不好用,尤其咱又是linux菜鸟,今天终于有所突破了,好高兴,所以记录下来。

 1.首先去bochs的官网
http://bochs.sourceforge.net/
下载最新的程序,我直接下的是bochs-2.4.tar.gz 或者2.5的版本。
tar zxvf bochs-2.4.tar.gz
./configure
如果要调试功能的话,可查看configure文件做相应调整
--enable-debugger                 compile in support for Bochs internal debugger
--enable-disasm                   compile in support for disassembler
--enable-debugger-gui             compile in support for Bochs internal debugger GUI  这个选项是必须有的,否则编译的时候报错找不到pthread

--with-sdl                        use SDL libraries
网上说要加最后一个暂时没有明白其意。
make

sudo make install 安装到默认的目录

BOCHS运行需要bochsrc文件l. 可查看这些文件。

# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage:file=$BXSHARE/BIOS-bochs-latest
#注意上面这一行,2.3.5以后的后面不能加,address=0xf0000  否则会出现
#Message: ROM: System BIOS must end at 0xfffff 错误的  这个后面会解释
#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

# what disk images will be used
floppya: 1_44=hello.img, status=inserted
#ata0-master: type=disk, mode=flat, path="30M.sample"
# hard disk
#ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
#ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
#ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
#ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
boot: floppy
#boot: disk
megs: 32 是说内存是32M
floppya: 1_44=a.img, status=inserted 指定了软盘映像文件
boot: floppy 从软盘启动。
http://bochs.sourceforge.net/下载nasm
我下的是nasm-2.08.tar.gz
tar zxvf nasm-2.05.01.tar.gz
cd nasm-2.05.01
./configure
==============================================================
bximage
Disk Image Creation Tool for Bochs
$Id: bximage.c,v 1.34 2009/04/14 09:45:22 sshwarts Exp $
========================================================================

Do you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd] fd

Choose the size of floppy disk image to create, in megabytes.
Please type 0.16, 0.18, 0.32, 0.36, 0.72, 1.2, 1.44, 1.68, 1.72, or 2.88.
[1.44]
I will create a floppy image with
cyl=80
heads=2
sectors per track=18
total sectors=2880
total bytes=1474560

What should I name the image?
[a.img] hello.img

Writing: [] Done.

I wrote 1474560 bytes to hello.img.

The following line should appear in your bochsrc:
floppya: image="hello.img", status=inserted
把bin写入img中
dd if=/nasm-2.05.01/helloworld/hello.bin of=hello.img bs=512 count=1 conv=notrunc
读入了 0+1 个块
输出了 0+1 个块
bochs -q -f .bochsrc 运行我们的OS
出现如下错误
Bochs is exiting with the following message:
[BIOS ] No bootable device.
查看生成的hello.bin大小
ls -al hello.bin
-rw-r--r--    1 root     900            22  5月 20 11:45 hello.bin
大小为22byte
我们要把它们弄成512byte的
在hello.asm最后添加
times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw        0xaa55      ;这个是结束标志符
再用nasm编译生成hello.bin
再写入到hello.img便可以了。
然后执行
bochs -q -f .bochsrc
便可以看到红色的H字样了
ps:
若出现Message: ROM: System BIOS must end at 0xfffff 错误的原因如下:
In previous versions of Bochs the BIOS size was 64k and you always had to
specify the start address at 0xf0000. Starting with release 2.2.5 Bochs
supports BIOS images up to 512k and it's no longer necessary to specify the
start address if the BIOS ends at memory top
就是不要再指定address了。
当然要显示Hello world可用以下这个
org 07c00h
mov        ax, cs;数据传送指令,将代码段寄存器cs的内容赋给通用寄存器ax
mov        ds, ax;使数据段与代码段在同一个段
mov        es, ax;使附加段与代码段在同一个段
call        DispStr
jmp        $ ;$表示当前地址,无限循环
DispStr:
mov        ax, BootMessage
mov        bp, ax ;es:bp=串地址
mov        cx, 15 ;串长度
mov        ax, 01301h  ;ah=13h, al=01h 视频中断13h号功能:写字符串;AL=01H,表示写完字符串后,更新光标位置
mov        bx, 000ch   ;页号为0(bh=0) 黑底红字(bl=0ch,高亮)
mov        dl, 0 ;DH、DL=写串的光标位置,DH=行号,DL=列号
int        10h
ret
BootMessage:        db "Hello,World OS!"
times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw        0xaa55
times 510-($-$$) db 0
This reads: Times 510-(Start of this Instruction - Start of program) with 0's
$ stands for start of the instruction
$$ stands for start of the program
dw 0xAA55
For some reason the signature has to be written this way round!
This fills the last to bytes of the boot loader with 55AA (this is a hex number)
Without this signature the BIOS won't recognise this as a bootable disk!
2.调试
Bochs是开发操作系统的极品模拟器的另外一个原因是它带有调试功能。这也是本文的另一个需要重点讲解的地方。Bochsdbg这个程序是调试模式。在调试模式中,我不会象前面的那样直接双击配置文件就进入调试模式的法子。我用的是笨法子。在Bochs目录里面把配置文件配好,注意,关于光驱,软驱,硬盘的路径一定要指定正确。然后双击Bochsdbg.exe, 进入图2显示界面

选择2后,选择配置文件的路径和配置文件的文件名,然后选择5就开始运行了。事实上,由于Bochs2.1.1默认的配置文件名是bochsrc.txt,在Bochs目录中,如果你的配置文件的文件名就是这,直接运行Bochsdbg就出现上面的画面,再直接回车就可以了。当然,此种方法也可以运行Bochs,不是调试模式的。
当然,你也可以学dlxlinux的方法,把run.bat文件种的bochs改成bochsdbg就可以。方法类似。
下面则进入如何调试了。敲入help,可以列出各个命令的用法。下面主要调试命令的用法。
下面分类进行讨论。
控制执行类:
c                           继续执行
stepi [count]                  执行count条指令,默认count为1
step [count]                 执行count条指令,默认count为1
s     [count]               执行count条指令,默认count为1
Ctrl-C                      停止执行, 并返回命令行
quit                        退出调试
q                           退出调试

断点类:
       注意:这里面的’seg’和’addr’所用的数的格式和c语言中的一致,例如
              十六进制:0xcdef0123
              八进制  :01234567
              十进制  :12345678

vbreak seg:off              设置指令的虚拟地址的断点位置。
vb    seg:off

lbreak addr                 设置指令的线性地址的断点位置。
lb    addr

pbreak
  • addr             设置指令的物理地址的断点位置。
    pb     
  • addr            (’*’这个选项是为GDB兼容设置的)
    break
  • addr
    b      
  • addr

    info break                  显示现在所有的断点的状态
    delete n                    删除第n个断点
    del   n                    同上
    d    n                     同上

    操作内存类:
    x /nuf addr     查看线性地址的内存
    xp /nuf addr      查看物理地址的内存
         n              显示多少个字节的内存
         u              单位长度; one o单位f
                          b 字节
                          h 半字(2 字节)
                          w 字 (4 字节)
                          g 双字 (8 字节)
                            注意:这些并不是Intel中的术语,但是它们和GDB的是一致的。
           F                                 打印格式:
                                              x   打印十六进制
                                              d   打印十进制
                                              u   打印无符号十进制
                                              o   打印八进制
                                              t      打印二进制
    n, f, 和u都是可选参数。U和f默认的是你最后一次用的值,如果没有用过的话,就是w(word)和x(hex)。N默认的是1。addr也是可选参数。如果你没有知道他的话,它将是下一条地址。

    setpmem addr datasize val     设置物理内存某地址的内容。Addr是内存地址,datasize地址长度,val所想设置的值。
    crc addr1 addr2           显示物理内存addr1到addr2之间的CRC

    Info 命令
    info program      程序的执行状态
    info registers      显示寄存器内容
    info break        显示断点状态

    操作CPU寄存器set $reg = val    改变CPU寄存器的值为val。寄存器可以为eax,ecx,edx,ebx,esp,ebp,esi,edi。                  不能为eflages,cs,ss,ds,es,fs,gs。info registers    见Info部分dump_cpu          显示完整的CPU信息。set_cpu           设置CPU的状态        “dump_cpu”和“set_cpu”的格式:    "eax:0x%x/n"    "ebx:0x%x/n"    "ecx:0x%x/n"    "edx:0x%x/n"    "ebp:0x%x/n"    "esi:0x%x/n"    "edi:0x%x/n"    "esp:0x%x/n"    "eflags:0x%x/n"    "eip:0x%x/n"    "cs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u/n"    "ss:s=0x%x, dl=0x%x, dh=0x%x, valid=%u/n"    "ds:s=0x%x, dl=0x%x, dh=0x%x, valid=%u/n"    "es:s=0x%x, dl=0x%x, dh=0x%x, valid=%u/n"    "fs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u/n"    "gs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u/n"    "ldtr:s=0x%x, dl=0x%x, dh=0x%x, valid=%u/n"    "tr:s=0x%x, dl=0x%x, dh=0x%x, valid=%u/n"    "gdtr:base=0x%x, limit=0x%x/n"    "idtr:base=0x%x, limit=0x%x/n"    "dr0:0x%x/n"    "dr1:0x%x/n"    "dr2:0x%x/n"    "dr3:0x%x/n"    "dr4:0x%x/n"    "dr5:0x%x/n"    "dr6:0x%x/n"    "dr7:0x%x/n"    "tr3:0x%x/n"    "tr4:0x%x/n"    "tr5:0x%x/n"    "tr6:0x%x/n"    "tr7:0x%x/n"    "cr0:0x%x/n"    "cr1:0x%x/n"    "cr2:0x%x/n"    "cr3:0x%x/n"    "cr4:0x%x/n"    "inhibit_int:%u/n"    "done/n"

    反汇编命令:disassemble start end 反汇编的地址范围
    set $disassemble_size = n 告诉调试器,反汇编段的属性(16位或32位,默认32位)。

    相信到这里,大家也基本会用BOCHS这个模拟器了。本文的重点主要在前面的Bochs的使用方面。后面的调试部分,仅仅列个表,大家用的时候,参考下每个命令的用法,也就差不多会调试了。关于更具体的,大家可以参考bochs的文档,里面有更详细的介绍。
  • 2017-10-22 23:10:09 zhang1990_2017 阅读数 1691

    1、安装kexec-tool

    首先安装kexec-tools工具包:

    yum install kexec-tools
    2、配置为kdump转存

    kdump要求操作系统正常使用的时候,不能使用kdump kernel所占用的内存,配置这个需要修改grub文件:

    使用bios安装:

    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title Red Hat Enterprise Linux 6 (2.6.32-504.el6.x86_64)
    	root (hd0,0)
    	kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=2b3e41f8-1b09-407b-b876-e5db3ca4b25b rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=128M LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
    	initrd /initramfs-2.6.32-504.el6.x86_64.img
    使用uefi安装:

    load_video
    	set gfxpayload=keep
    	insmod gzio
    	insmod part_msdos
    	insmod xfs
    	set root='hd0,msdos1'
    	if [ x$feature_platform_search_hint = xy ]; then
    	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  71415a24-f9bf-4400-96e7-5ad44f1191c5
    	else
    	  search --no-floppy --fs-uuid --set=root 71415a24-f9bf-4400-96e7-5ad44f1191c5
    	fi
    	linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=e6f5e7c9-8928-414a-b937-3a0b7466e64d ro crashkernel=auto vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rd.lvm.lv=rhel_node60/root  rd.lvm.lv=rhel_node60/swap rhgb quiet LANG=zh_CN.UTF-8 intel_pstate=disable
    	initrd16 /initramfs-3.10.0-123.el7.x86_64.img
    3、配置转储路径

    默认的vmcore文件存储在/var/crash目录下。

    可以修改这个路径,配置文件是/etc/kdump.conf:

    path /usr/local/cores            //这里必须要保证这个路径是存在的,否则启动kdump服务会失败
    把core dump文件写入一个设备中,把配置文件中的#raw /dev/vg/lv_kdump这一行的#符号去掉然后把后面的改成自己的设备路径,如下:

    raw  /dev/sdb1
    要把dump文件存储在一个使用NFS协议的远程机器上,把配置文件中的#nfs my.server.com:/export/tmp这行前面的#符号删除,然后后面参数部分替换成自己的主机名和路径名。如下:
    nfs penguin.example.com:/export/cores

    4、配置kdump动作

    当kdump在指定的位置创建core文件失败,root文件系统会被挂在,kdump会试图把dump文件保存在本地。可以通过修改/etc/kdump.conf配置文件修改这个默认操作。修改#default shell这行,然后把shell替换为自己想要的默认动作。例如:

    default halt
    5、启动kdump服务

    在系统boot时候启动kdump服务

    systemctl enable kdump.service
    现在应该为多用户启用了kdump服务,相对的systemctl stop kdump可以禁用这个服务。在root权限下,使用下面的命令可以使kdump服务在当前会话可用
    systemctl enable kdump.service
    这里要注意的是当kdump服务启动时候,前面定义为内核转储目标目录必须存在, 否则服务将失败。此时kdump服务已经开启成功了,可以使用下面命令来查看是否开启成功。
    systemctl status kdump.service








    mysql服务器优化

    阅读数 1

    没有更多推荐了,返回首页