xref: /aosp_15_r20/external/igt-gpu-tools/tools/intel_gpu_abrt (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard Worker#!/bin/sh
2*d83cc019SAndroid Build Coastguard Worker
3*d83cc019SAndroid Build Coastguard Workerif [ $(id -ru) -ne 0 ]; then
4*d83cc019SAndroid Build Coastguard Worker    echo "$0 must be run as root"
5*d83cc019SAndroid Build Coastguard Worker    exit 1
6*d83cc019SAndroid Build Coastguard Workerfi
7*d83cc019SAndroid Build Coastguard Worker
8*d83cc019SAndroid Build Coastguard Workerget(){
9*d83cc019SAndroid Build Coastguard Worker    if [ ! -e $tardir/${@:$#} ] ; then
10*d83cc019SAndroid Build Coastguard Worker	mkdir -p $tardir/${@:$#}
11*d83cc019SAndroid Build Coastguard Worker    fi
12*d83cc019SAndroid Build Coastguard Worker    if [ -e $1 ] ; then
13*d83cc019SAndroid Build Coastguard Worker	cp -a ${@:1:$#-1} $tardir/${@:$#} 2>/dev/null
14*d83cc019SAndroid Build Coastguard Worker    fi
15*d83cc019SAndroid Build Coastguard Worker}
16*d83cc019SAndroid Build Coastguard Worker
17*d83cc019SAndroid Build Coastguard Workerigtdir=`dirname $0`
18*d83cc019SAndroid Build Coastguard Worker
19*d83cc019SAndroid Build Coastguard Workerif [ -d /debug/dri ] ; then
20*d83cc019SAndroid Build Coastguard Worker	debugfs_path=/debug_dri
21*d83cc019SAndroid Build Coastguard Workerfi
22*d83cc019SAndroid Build Coastguard Worker
23*d83cc019SAndroid Build Coastguard Workerif [ -d /sys/kernel/debug/dri ] ; then
24*d83cc019SAndroid Build Coastguard Worker	debugfs_path=/sys/kernel/debug/dri
25*d83cc019SAndroid Build Coastguard Workerfi
26*d83cc019SAndroid Build Coastguard Worker
27*d83cc019SAndroid Build Coastguard Workeri915_debugfs=x
28*d83cc019SAndroid Build Coastguard Workerfor dir in `ls $debugfs_path` ; do
29*d83cc019SAndroid Build Coastguard Worker	if [ -f $debugfs_path/$dir/i915_error_state ] ; then
30*d83cc019SAndroid Build Coastguard Worker		i915_debugfs=$debugfs_path/$dir
31*d83cc019SAndroid Build Coastguard Worker		break
32*d83cc019SAndroid Build Coastguard Worker	fi
33*d83cc019SAndroid Build Coastguard Workerdone
34*d83cc019SAndroid Build Coastguard Worker
35*d83cc019SAndroid Build Coastguard Workerif [ $i915_debugfs = "x" ] ; then
36*d83cc019SAndroid Build Coastguard Worker	echo i915 debugfs path not found.
37*d83cc019SAndroid Build Coastguard Worker	exit 1
38*d83cc019SAndroid Build Coastguard Workerfi
39*d83cc019SAndroid Build Coastguard Worker
40*d83cc019SAndroid Build Coastguard Workertmpdir=`mktemp -d`
41*d83cc019SAndroid Build Coastguard Workertardir=$tmpdir/intel_gpu_abrt
42*d83cc019SAndroid Build Coastguard Workermkdir $tardir
43*d83cc019SAndroid Build Coastguard Worker
44*d83cc019SAndroid Build Coastguard Workerget $i915_debugfs/* debugfs
45*d83cc019SAndroid Build Coastguard Worker
46*d83cc019SAndroid Build Coastguard Workerget /sys/module/i915/parameters/* mod_opts
47*d83cc019SAndroid Build Coastguard Worker
48*d83cc019SAndroid Build Coastguard Workermkdir $tardir/X
49*d83cc019SAndroid Build Coastguard Workerxrandr --verbose > $tardir/X/xrandr
50*d83cc019SAndroid Build Coastguard Workerget /var/log/Xorg.0.log X
51*d83cc019SAndroid Build Coastguard Workerget /var/log/Xorg.0.log.old X
52*d83cc019SAndroid Build Coastguard Workerget /etc/X11/xorg.conf X
53*d83cc019SAndroid Build Coastguard Workerget /etc/X11/xorg.conf.d/ X
54*d83cc019SAndroid Build Coastguard Worker
55*d83cc019SAndroid Build Coastguard Workerdmesg > $tardir/dmesg
56*d83cc019SAndroid Build Coastguard Workerlspci -nn > $tardir/lspci
57*d83cc019SAndroid Build Coastguard Worker
58*d83cc019SAndroid Build Coastguard Worker$igtdir/intel_reg dump > $tardir/intel_reg_dump.txt
59*d83cc019SAndroid Build Coastguard Worker$igtdir/intel_bios_dumper $tardir/intel_bios_dump
60*d83cc019SAndroid Build Coastguard Worker$igtdir/intel_stepping > $tardir/intel_stepping
61*d83cc019SAndroid Build Coastguard Worker
62*d83cc019SAndroid Build Coastguard Workerecho 1 > /sys/devices/pci0000:00/0000:00:02.0/rom
63*d83cc019SAndroid Build Coastguard Workercat /sys/devices/pci0000:00/0000:00:02.0/rom > $tardir/vbios.dump
64*d83cc019SAndroid Build Coastguard Workerecho 0 > /sys/devices/pci0000:00/0000:00:02.0/rom
65*d83cc019SAndroid Build Coastguard Worker
66*d83cc019SAndroid Build Coastguard Worker(cd $tmpdir; tar -c intel_gpu_abrt ) > intel_gpu_abrt.tar
67*d83cc019SAndroid Build Coastguard Worker
68*d83cc019SAndroid Build Coastguard Workerrm $tmpdir -Rf
69*d83cc019SAndroid Build Coastguard Worker
70*d83cc019SAndroid Build Coastguard Workerif [ -f intel_gpu_abrt.tar ] ; then
71*d83cc019SAndroid Build Coastguard Worker	cat <<EOF
72*d83cc019SAndroid Build Coastguard Workerintel_gpu_abrt.tar has been created.
73*d83cc019SAndroid Build Coastguard Worker
74*d83cc019SAndroid Build Coastguard WorkerPlease attach it to https://bugs.freedesktop.org
75*d83cc019SAndroid Build Coastguard Workerwith a good bug description as suggested in this template:
76*d83cc019SAndroid Build Coastguard Worker
77*d83cc019SAndroid Build Coastguard WorkerSystem environment:
78*d83cc019SAndroid Build Coastguard Worker-- chipset:
79*d83cc019SAndroid Build Coastguard Worker-- system architecture: `uname -m`
80*d83cc019SAndroid Build Coastguard Worker-- xf86-video-intel:
81*d83cc019SAndroid Build Coastguard Worker-- xserver: `grep "X.Org X Server" /var/log/Xorg.0.log | awk '{print $NF}'`
82*d83cc019SAndroid Build Coastguard Worker-- mesa:
83*d83cc019SAndroid Build Coastguard Worker-- libdrm: `pkg-config --modversion libdrm`
84*d83cc019SAndroid Build Coastguard Worker-- kernel: `uname -r`
85*d83cc019SAndroid Build Coastguard Worker-- Linux distribution:
86*d83cc019SAndroid Build Coastguard Worker-- Machine or mobo model:
87*d83cc019SAndroid Build Coastguard Worker-- Display connector:
88*d83cc019SAndroid Build Coastguard Worker
89*d83cc019SAndroid Build Coastguard WorkerReproducing steps:
90*d83cc019SAndroid Build Coastguard Worker
91*d83cc019SAndroid Build Coastguard WorkerAdditional info:
92*d83cc019SAndroid Build Coastguard Worker
93*d83cc019SAndroid Build Coastguard WorkerEOF
94*d83cc019SAndroid Build Coastguard Workerexit 0
95*d83cc019SAndroid Build Coastguard Workerelse
96*d83cc019SAndroid Build Coastguard Workercat <<EOF
97*d83cc019SAndroid Build Coastguard WorkerError on tarball generation.
98*d83cc019SAndroid Build Coastguard WorkerFor bug report, please follow manual instructions available at:
99*d83cc019SAndroid Build Coastguard Workerhttps://01.org/linuxgraphics/documentation/how-report-bugs-0
100*d83cc019SAndroid Build Coastguard WorkerEOF
101*d83cc019SAndroid Build Coastguard Workerexit 1
102*d83cc019SAndroid Build Coastguard Workerfi
103