摘要:
通用统计信息 crash> kmem -i PAGES TOTAL PERCENTAGE TOTAL MEM 197646761 754 GB FREE 33983015 129.6 GB 17% of TOTAL MEM USED 163663746 624.3 GB 82% of TOTAL M
阅读全文
posted @ 2023-09-24 14:37
dolinux
阅读(338)
推荐(0)
摘要:
crash> mach MACHINE TYPE: x86_64 MEMORY SIZE: 766.5 GB CPUS: 96 PROCESSOR SPEED: 2200 Mhz HZ: 250 PAGE SIZE: 4096 KERNEL VIRTUAL BASE: ffff88800000000
阅读全文
posted @ 2023-09-24 12:55
dolinux
阅读(127)
推荐(0)
摘要:
crash> mach -c CPU 0: struct cpuinfo_x86 { x86 = 6 '\006', x86_vendor = 0 '\000', x86_model = 85 'U', x86_stepping = 7 '\a', x86_tlbsize = 0, x86_virt
阅读全文
posted @ 2023-09-24 12:45
dolinux
阅读(163)
推荐(0)
摘要:
crash> mach -m PHYSICAL ADDRESS RANGE TYPE 0000000000000000 - 0000000000001000 E820_RESERVED 0000000000001000 - 000000000006e000 E820_RAM 000000000006
阅读全文
posted @ 2023-09-24 12:43
dolinux
阅读(103)
推荐(0)
摘要:
通过sym可以将内核地址转换成内核符号,或者将内核符号转换成内核地址。 根据地址转换为符号 函数地址 crash> sym ffffffff8166f300 ffffffff8166f300 (T) blk_update_request+16 /home/pengdl/x86_64/linux-6.
阅读全文
posted @ 2023-09-24 12:06
dolinux
阅读(124)
推荐(0)
摘要:
查看所有的内核符号以及地址 crash> sym -l 0 (D) __per_cpu_start 0 (D) irq_stack_union 4000 (D) cpu_debug_store 5000 (D) cpu_tss_rw 8000 (D) gdt_page 9000 (d) except
阅读全文
posted @ 2023-09-24 11:44
dolinux
阅读(177)
推荐(0)
摘要:
crash —— 如何知道哪些数据结构内嵌了指定的数据结构或者内嵌了指向指定数据结构的指针
阅读全文
posted @ 2023-09-24 11:08
dolinux
阅读(51)
推荐(0)
摘要:
需求 有时我们有这样的需求,比如我们知道了结构体task_struct,然后我们又想知道内核中有哪些数据结构中包含了task_struct,或者包含了指向task_struct的指针。 做法 用whatis -m可以做到: crash> whatis -m task_struct SIZE TYPE
阅读全文
posted @ 2023-09-24 11:06
dolinux
阅读(100)
推荐(0)
摘要:
whatis 如果提前知道数据类型的定义,可以直接用struct、union等,否则可以直接用whatis。 crash> whatis -o page struct page { [0] unsigned long flags; union { struct { union { [8] struc
阅读全文
posted @ 2023-09-24 10:49
dolinux
阅读(688)
推荐(0)
摘要:
在crash中可以用whatis命令查看数据类型信息以及函数的原型。 如果想知道某个数据是什么类型那么可以用下面的方法: 查看结构体的定义 crash> whatis mm_struct struct mm_struct { struct { struct maple_tree mm_mt; uns
阅读全文
posted @ 2023-09-24 10:04
dolinux
阅读(181)
推荐(0)
摘要:
crash提供了eval命令,实现了一些很好用的功能,下面学习一下。 格式: eval [-b][-l] (表达式) | 值 支持的运算符:+ - & | ^ * % / << >> 下面是需要注意的: 括号并不是必须的,但是如果使用了|、<<或者>>,那么需要使用括号 crash> eval (1
阅读全文
posted @ 2023-09-23 22:55
dolinux
阅读(173)
推荐(0)
摘要:
crash的dev命令可以获取系统磁盘IO的统计数据。 获取所有磁盘的IO统计数据 crash> dev -d MAJOR GENDISK NAME REQUEST_QUEUE TOTAL ASYNC SYNC 8 ffff88de95d51000 sdm ffff88de94a90000 6537
阅读全文
posted @ 2023-09-23 22:09
dolinux
阅读(139)
推荐(0)
摘要:
在linux中通过/proc/ioport和/proc/iomem可以获取系统的IO端口和内存的布局信息,在crash中需要使用dev命令来获取。 crash> dev -i RESOURCE RANGE NAME ffffffff822668c0 0000-ffff PCI IO ffff88de
阅读全文
posted @ 2023-09-23 21:50
dolinux
阅读(84)
推荐(0)
摘要:
在linux系统上用lspci可以查看PCI设备信息,crash的dev命令也提供了这个功能。 crash> dev -p ROOT BUS BUSNAME ffff893eaeb43000 0000:00 PCI DEV DO:BU:SL.FN CLASS PCI_ID TYPE ffff88de
阅读全文
posted @ 2023-09-23 21:43
dolinux
阅读(150)
推荐(0)
摘要:
通过sys命令可以获取当前系统的系统调用的信息: crash> sys -c NUM SYSTEM CALL FILE AND LINE NUMBER 0 __x64_sys_read ../fs/read_write.c: 621 1 __x64_sys_write ../fs/read_writ
阅读全文
posted @ 2023-09-23 21:34
dolinux
阅读(96)
推荐(0)
摘要:
在编译内核时如果配置了CONFIG_IKCONFIG,那么内核配置文件会被内嵌到内核中,那么可以通过crash工具将其输出出来。 crash> sys config # # Automatically generated file; DO NOT EDIT. # Linux/x86 4.18.0 K
阅读全文
posted @ 2023-09-23 20:03
dolinux
阅读(475)
推荐(0)
摘要:
在linux上一般通过dmidecode来获取DMI信息,crash也提供了获取DMI信息的命令,不过内容不会像dmidecode那么详细。 crash> sys -i DMI_BIOS_VENDOR: SeaBIOS DMI_BIOS_VERSION: rel-1.14.0-0-g155821a1
阅读全文
posted @ 2023-09-23 17:59
dolinux
阅读(115)
推荐(0)
摘要:
使用crash工具根据地址查看结构体的内容时,有时需要输入struct或者union,多少有些繁琐,crash提供了*命令,直接跟在结构体或者联合体的名字的前面即可。 示例: 带struct crash> struct kmem_cache -x ffff893751f60800 struct km
阅读全文
posted @ 2023-09-23 17:36
dolinux
阅读(152)
推荐(0)
摘要:
作者 pengdonglin137@163.com 查看percpu变量在每个cpu上的基地址 crash> kmem -o PER-CPU OFFSET VALUES: CPU 0: ffff88807f600000 CPU 1: ffff88807fa00000 CPU 2: ffff88813
阅读全文
posted @ 2023-09-23 16:59
dolinux
阅读(1290)
推荐(0)
摘要:
作者 pengdonglin137@163.com 背景 内核在/proc、/sys下面提供了大量的控制文件,可以获取内核某个子系统的状态或者控制内核的执行流,有时我们需要快速确认操作某个节点时的执行流,那么怎么做呢? 做法 最适合做这个就是ftrace提供的function graph跟踪器,在6
阅读全文
posted @ 2023-09-22 21:21
dolinux
阅读(110)
推荐(0)
摘要:
休眠 在虚拟机中执行下面的命令: # echo mem > /sys/power/state 唤醒 进入monitor模式:ctrl+a c (qemu) system_wakeup 查看日志 查看虚拟机的内核日志: [ 63.878427] PM: suspend entry (deep) [ 6
阅读全文
posted @ 2023-09-22 20:44
dolinux
阅读(588)
推荐(0)
摘要:
场景 如果虚拟机没有开启kdump,或者卡死了,那么可以进入qemu的monitor模式将虚机的内存保存到文件中,然后使用crash工具进行分析。 示例 启动虚拟机,然后按ctrl+a c进入monitor,查看帮助 (qemu) help dump-guest-memory dump-guest-
阅读全文
posted @ 2023-09-22 20:26
dolinux
阅读(1566)
推荐(0)
摘要:
参考 https://blog.csdn.net/cuma2369/article/details/107667731 https://support.mozilla.org/en-US/questions/1307935 点击设置 -> 配置编辑器: 然后搜索mailnews.wraplength
阅读全文
posted @ 2023-09-13 17:10
dolinux
阅读(105)
推荐(0)
摘要:
pahole这个工具可以用来分析结构体的内部布局信息,参考下面的文章: https://lwn.net/Articles/335942/
阅读全文
posted @ 2023-09-10 23:25
dolinux
阅读(548)
推荐(0)
摘要:
# 参考 - [DELL R730 iDRAC与IPMI的使用](https://blog.csdn.net/satsuma_samurai/article/details/74940145 "DELL R730 iDRAC与IPMI的使用") - [Linux上使用IPMITool常用的命令](h
阅读全文
posted @ 2023-09-03 14:11
dolinux
阅读(86)
推荐(0)
摘要:
# 参考 - [A study of the Linux kernel PCI subsystem with QEMU](https://blogs.oracle.com/linux/post/a-study-of-the-linux-kernel-pci-subsystem-with-qemu "
阅读全文
posted @ 2023-09-01 16:53
dolinux
阅读(696)
推荐(0)
摘要:
# 参考 - [公开 VMware 硬件辅助的虚拟化](https://docs.vmware.com/cn/VMware-vSphere/6.7/com.vmware.vsphere.vm_admin.doc/GUID-2A98801C-68E8-47AF-99ED-00C63E4857F6.ht
阅读全文
posted @ 2023-08-20 23:31
dolinux
阅读(123)
推荐(0)
摘要:
# 参考 - [如何用一台UPS控制多台主机的断电自动关机?NetworkUPSTools(NUT)的安装与配置](https://www.zhihu.com/tardis/zm/art/282181425 "如何用一台UPS控制多台主机的断电自动关机?NetworkUPSTools(NUT)的安装
阅读全文
posted @ 2023-08-19 12:07
dolinux
阅读(5280)
推荐(0)
摘要:
书籍 《UEFI编程实践》 技术博客 罗冰的UEFI开发专栏 https://www.lab-z.com/iof/ UEFI入门必读的12本书
阅读全文
posted @ 2023-08-17 20:24
dolinux
阅读(260)
推荐(0)
摘要:
# 参考 - 《UEFI编程实践》 - https://github.com/tianocore/edk2 # 作者 pengdonglin137@163.com # 概述 在Ubuntu中安装ubuntu18.04的容器环境,在其中搭建编译和开发环境,支持运行UEFI模拟器。 # 步骤 ## 安装
阅读全文
posted @ 2023-08-17 16:58
dolinux
阅读(1241)
推荐(0)
摘要:
由于买的T620主要是自己玩,不需要特别高的配置,不需要组raid,就让卖家把H710阵列卡换成了[直通的H310阵列卡](https://www.bilibili.com/read/cv5583360/ "直通的H310阵列卡")(non raid),这样家里富裕的sata固态和机械硬盘就可以直接
阅读全文
posted @ 2023-08-15 21:05
dolinux
阅读(432)
推荐(0)
摘要:
# 参考 - https://www.cnblogs.com/pengdonglin137/p/6431234.html - https://github.com/kvmtool/kvmtool - [KVM-api学习--基于kvmtool](https://zhuanlan.zhihu.com/
阅读全文
posted @ 2023-08-14 17:51
dolinux
阅读(149)
推荐(0)
摘要:
# 背景 在工作过程中,我们经常会遇到可执行程序依赖的glibc跟当前运行环境的版本不兼容,导致应用程序无法运行,比如: /lib64/libc.so.6: version `GLIBC_2.14’ not found 原因是运行环境的glibc的版本比编译环境的glibc的版本低。 # 几种可行的
阅读全文
posted @ 2023-08-11 16:13
dolinux
阅读(4337)
推荐(1)
摘要:
# 参考 - [基于rootfs构建Docker镜像](https://blog.csdn.net/xie__peng/article/details/129364707 "基于rootfs构建Docker镜像") - [将rootfs.tar.gz制作成docker image](https://
阅读全文
posted @ 2023-08-11 15:25
dolinux
阅读(525)
推荐(0)
摘要:
前些天从淘宝上买了一台不知道几手的dell T620塔式服务器,主要用来瞎折腾,下面记录一些使用经验。 T620 PowerEdge T620 Dell PowerEdge T620 Systems Owner's Manual Technical Guide dell技术支持 https://ww
阅读全文
posted @ 2023-08-10 16:07
dolinux
阅读(370)
推荐(0)
摘要:
# 作者 pengdonglin137@163.com # 背景 开发过程中,有时需要读取内核中某个变量的值,比如我想获取下面这个变量的内容: ```c const char linux_banner[] = "Linux version " UTS_RELEASE " (" LINUX_COMPI
阅读全文
posted @ 2023-08-07 14:08
dolinux
阅读(189)
推荐(0)
摘要:
# 需求 有一个笔记本电脑和一个支持HDMI输出的机顶盒,希望机顶盒的内容输出到笔记本的屏幕上。 # 硬件 hdmi转usb的视频采集卡。 - [绿联视频采集卡](https://detail.tmall.com/item.htm?abbucket=16&id=652906743661 "绿联视频采
阅读全文
posted @ 2023-07-27 11:23
dolinux
阅读(274)
推荐(0)
摘要:
# 背景 在工作中我们经常需要交叉编译一些可执行程序或者动态库,有时要编译的程序过于复杂,如果靠纯的交叉编译,费事又费力,需要解决大量的编译依赖以及报错。 # 解决方案 docker + qemu-user 利用qemu-user可以运行不同架构的用户态程序,而docker可以创建一个运行不同架构的
阅读全文
posted @ 2023-07-27 09:17
dolinux
阅读(2075)
推荐(0)
摘要:
原文:https://www.kernel.org/doc/html/latest/kbuild/modules.html This document describes how to build an out-of-tree kernel module. 1. Introduction "kbui
阅读全文
posted @ 2023-06-30 20:18
dolinux
阅读(1224)
推荐(0)
摘要:
[TOC] # 参考 [https://docs.kernel.org/trace/user_events.html](https://docs.kernel.org/trace/user_events.html) # 测试程序 [samples/user_events/example.c](htt
阅读全文
posted @ 2023-06-11 17:01
dolinux
阅读(192)
推荐(0)