1
00:00:00,240 --> 00:00:02,040
In this lesson, you're going to learn

2
00:00:02,040 --> 00:00:05,370
how to troubleshoot hardware issues in a Linux system.

3
00:00:05,370 --> 00:00:07,710
Now it can take some time to troubleshoot and solve

4
00:00:07,710 --> 00:00:10,110
hardware-related issues on Linux.

5
00:00:10,110 --> 00:00:12,390
Even highly experienced system administrators

6
00:00:12,390 --> 00:00:13,710
will sometimes spend hours

7
00:00:13,710 --> 00:00:15,420
working to solve some kind of mysterious

8
00:00:15,420 --> 00:00:17,850
hardware or software discrepancy.

9
00:00:17,850 --> 00:00:20,610
So in this lesson, my goal is not to make you

10
00:00:20,610 --> 00:00:23,820
an absolute expert, but instead I want to help you

11
00:00:23,820 --> 00:00:25,920
identify things quicker and easier

12
00:00:25,920 --> 00:00:28,290
when you're troubleshooting hardware in Linux.

13
00:00:28,290 --> 00:00:29,520
You're going to learn what's causing

14
00:00:29,520 --> 00:00:31,230
your Linux hardware to malfunction

15
00:00:31,230 --> 00:00:33,000
so that way you can get it back up and running

16
00:00:33,000 --> 00:00:34,530
much more quickly.

17
00:00:34,530 --> 00:00:36,450
Now many different things can cause problems

18
00:00:36,450 --> 00:00:37,620
with Linux hardware,

19
00:00:37,620 --> 00:00:39,870
but before you start trying to diagnose them,

20
00:00:39,870 --> 00:00:42,510
it's really smart to learn about the most common issues

21
00:00:42,510 --> 00:00:44,670
and where you're most likely to find them.

22
00:00:44,670 --> 00:00:46,800
Now some of the most common hardware issues

23
00:00:46,800 --> 00:00:50,070
are keyboard mapping issues, communication port issues,

24
00:00:50,070 --> 00:00:53,250
printer issues, memory issues, video issues

25
00:00:53,250 --> 00:00:54,870
and storage adapter issues.

26
00:00:54,870 --> 00:00:57,630
So we'll take a look at those throughout this lesson.

27
00:00:57,630 --> 00:01:00,660
First, let's talk about keyboard mapping issues.

28
00:01:00,660 --> 00:01:03,060
Now certain keyboard keys when they're pressed

29
00:01:03,060 --> 00:01:05,580
may produce an unexpected character on the screen

30
00:01:05,580 --> 00:01:07,650
or no character at all.

31
00:01:07,650 --> 00:01:10,140
This is the most common and overt system

32
00:01:10,140 --> 00:01:12,120
of keyboard mapping issues.

33
00:01:12,120 --> 00:01:13,980
The most likely cause of these issues

34
00:01:13,980 --> 00:01:16,530
is that the system has configured the wrong keyboard layout

35
00:01:16,530 --> 00:01:18,510
or the wrong language to use.

36
00:01:18,510 --> 00:01:21,420
To fix this problem, make sure you can correctly identify

37
00:01:21,420 --> 00:01:23,220
the layout of the physical keyboard.

38
00:01:23,220 --> 00:01:25,170
Not just its overall design type,

39
00:01:25,170 --> 00:01:27,840
but its actual specific regional layout.

40
00:01:27,840 --> 00:01:30,570
Once you've identified the physical layout of your keyboard,

41
00:01:30,570 --> 00:01:35,100
use the command localectl and the word status

42
00:01:35,100 --> 00:01:37,620
to verify the layout that the system is using.

43
00:01:37,620 --> 00:01:39,810
If it's not the same as what you expect,

44
00:01:39,810 --> 00:01:41,910
you want to list the available key maps,

45
00:01:41,910 --> 00:01:45,510
identify the correct one and then set it on your system.

46
00:01:45,510 --> 00:01:47,880
If you're accessing a Linux system remotely,

47
00:01:47,880 --> 00:01:50,520
your remote terminal client may have some options

48
00:01:50,520 --> 00:01:53,220
for addressing keyboard mapping issues too.

49
00:01:53,220 --> 00:01:55,680
SSH clients like PuTTY will enable you

50
00:01:55,680 --> 00:01:56,640
to change the effects

51
00:01:56,640 --> 00:01:59,340
that certain keystrokes have on the environment.

52
00:01:59,340 --> 00:02:02,310
For example, you can configure the backspace character

53
00:02:02,310 --> 00:02:03,960
to move one character to the left

54
00:02:03,960 --> 00:02:05,730
without deleting the character.

55
00:02:05,730 --> 00:02:07,710
This can be helpful in certain applications

56
00:02:07,710 --> 00:02:10,919
that don't handle the default behavior particularly well.

57
00:02:10,919 --> 00:02:12,240
Now another thing we want to talk about

58
00:02:12,240 --> 00:02:14,520
is communication ports like USB

59
00:02:14,520 --> 00:02:17,400
because these can fail to recognize an attached device

60
00:02:17,400 --> 00:02:21,240
or that connection to that device may become unreliable.

61
00:02:21,240 --> 00:02:23,310
Your first step should always be to ensure

62
00:02:23,310 --> 00:02:25,860
the device is correctly slotted into the port

63
00:02:25,860 --> 00:02:28,260
by making sure it has a good physical connection

64
00:02:28,260 --> 00:02:31,290
and the physical cables are not loose or damaged.

65
00:02:31,290 --> 00:02:33,600
Also, make sure the power's being supplied

66
00:02:33,600 --> 00:02:35,040
to the bus adapter.

67
00:02:35,040 --> 00:02:37,320
If these two things don't fix your issue,

68
00:02:37,320 --> 00:02:38,250
then you need to ensure

69
00:02:38,250 --> 00:02:39,810
that any necessary drivers

70
00:02:39,810 --> 00:02:42,270
have been installed and loaded into the kernel,

71
00:02:42,270 --> 00:02:44,940
depending on the type of interface you're going to be using.

72
00:02:44,940 --> 00:02:46,290
Now certain devices,

73
00:02:46,290 --> 00:02:48,660
when they're connected to a serial port, for instance,

74
00:02:48,660 --> 00:02:50,220
will request a consult interface

75
00:02:50,220 --> 00:02:52,350
with the Linux operating system.

76
00:02:52,350 --> 00:02:54,420
Linux will then typically assign a port

77
00:02:54,420 --> 00:02:59,420
to that interface at /dev/ttyS and a number

78
00:02:59,640 --> 00:03:01,830
where the number is the number of the console

79
00:03:01,830 --> 00:03:03,150
and these start out at zero

80
00:03:03,150 --> 00:03:05,730
and then increment by one each time.

81
00:03:05,730 --> 00:03:08,070
Another area we need to consider is printers

82
00:03:08,070 --> 00:03:10,170
and they are a common source of issues.

83
00:03:10,170 --> 00:03:13,200
In many cases, the printer itself will be at fault.

84
00:03:13,200 --> 00:03:15,600
For example, your printer may be out of ink

85
00:03:15,600 --> 00:03:16,920
or may be out of paper.

86
00:03:16,920 --> 00:03:18,360
It may have a paper jam.

87
00:03:18,360 --> 00:03:20,130
It may be misaligned or damaged

88
00:03:20,130 --> 00:03:21,840
or have some kind of broken component.

89
00:03:21,840 --> 00:03:23,190
There's lots of different issues

90
00:03:23,190 --> 00:03:25,080
you can experience with a printer.

91
00:03:25,080 --> 00:03:27,060
For these issues, you want to consult

92
00:03:27,060 --> 00:03:30,450
the printer's help manual and the manufacturer's website.

93
00:03:30,450 --> 00:03:31,830
In other cases though,

94
00:03:31,830 --> 00:03:33,690
you may be able to troubleshoot the issues

95
00:03:33,690 --> 00:03:35,880
from your Linux client or server.

96
00:03:35,880 --> 00:03:38,100
As always, ensure your specific printer

97
00:03:38,100 --> 00:03:40,620
is supported by Linux compatible drivers

98
00:03:40,620 --> 00:03:43,890
and that those drivers have been loaded by the kernel.

99
00:03:43,890 --> 00:03:45,870
If you're trying to connect to your printer over a network,

100
00:03:45,870 --> 00:03:48,600
but you can't, it may be a networking issue

101
00:03:48,600 --> 00:03:51,360
so use network diagnostic tools like ping

102
00:03:51,360 --> 00:03:53,820
to ensure your printer is identifiable on the network

103
00:03:53,820 --> 00:03:56,430
and then it can actually be reached over the network.

104
00:03:56,430 --> 00:03:58,200
If your printer becomes sluggish,

105
00:03:58,200 --> 00:04:01,350
use lpq to check the status of its print jobs

106
00:04:01,350 --> 00:04:02,700
and look at the queue.

107
00:04:02,700 --> 00:04:05,970
If any jobs are too large or there's too many in the queue,

108
00:04:05,970 --> 00:04:08,400
you can use lprm as a command

109
00:04:08,400 --> 00:04:11,580
to stop a job with the job number that you provide.

110
00:04:11,580 --> 00:04:13,140
For example, if I want to remove

111
00:04:13,140 --> 00:04:14,760
job four from the print queue,

112
00:04:14,760 --> 00:04:19,760
I can enter lprm4 and hit enter at the command prompt.

113
00:04:19,860 --> 00:04:21,300
This will help clear up the queue

114
00:04:21,300 --> 00:04:23,940
and then lighten the load on that particular printer.

115
00:04:23,940 --> 00:04:25,800
Now from a software perspective,

116
00:04:25,800 --> 00:04:28,290
we can also have issues with memory leaks.

117
00:04:28,290 --> 00:04:29,820
Now memory can actually leak

118
00:04:29,820 --> 00:04:32,610
when a process fails to free up the allocated memory

119
00:04:32,610 --> 00:04:34,140
when it's no longer needed.

120
00:04:34,140 --> 00:04:36,210
The total available memory in your system then

121
00:04:36,210 --> 00:04:39,240
becomes quickly exhausted as these leaks happen.

122
00:04:39,240 --> 00:04:41,730
This can lead to general performance degradation

123
00:04:41,730 --> 00:04:44,730
or system instability because other software

124
00:04:44,730 --> 00:04:47,040
can no longer access memory that it needs

125
00:04:47,040 --> 00:04:49,140
because we've leaked out this memory.

126
00:04:49,140 --> 00:04:51,690
In these cases, you can use memory monitoring tools

127
00:04:51,690 --> 00:04:54,630
like free to identify where those leaks are happening

128
00:04:54,630 --> 00:04:58,230
and identify the process and then go to something like top

129
00:04:58,230 --> 00:05:01,320
to monitor the process and identify the true problem.

130
00:05:01,320 --> 00:05:04,290
Once you've identified that process, you can then kill it,

131
00:05:04,290 --> 00:05:06,540
freeing up that memory for good.

132
00:05:06,540 --> 00:05:07,860
Now Linux also has ways

133
00:05:07,860 --> 00:05:10,290
of detecting faults during operations.

134
00:05:10,290 --> 00:05:12,540
For example, system logs will record

135
00:05:12,540 --> 00:05:14,760
a machine check exception error message

136
00:05:14,760 --> 00:05:16,830
anytime there's an issue with RAM.

137
00:05:16,830 --> 00:05:18,690
Now if you look through your logs,

138
00:05:18,690 --> 00:05:20,640
you might be able to look for these error messages

139
00:05:20,640 --> 00:05:23,370
by using a command like mcelog.

140
00:05:23,370 --> 00:05:25,470
This will retrieve and print these error messages

141
00:05:25,470 --> 00:05:27,090
for easier analysis.

142
00:05:27,090 --> 00:05:29,610
If the messages contain error-correcting codes

143
00:05:29,610 --> 00:05:31,290
or ECC errors,

144
00:05:31,290 --> 00:05:32,880
this is one of the memory modules

145
00:05:32,880 --> 00:05:35,310
that has probably failed and causing these errors

146
00:05:35,310 --> 00:05:37,410
so you're going to be looking at it as a hardware issue

147
00:05:37,410 --> 00:05:40,530
and not a software issue in this particular case.

148
00:05:40,530 --> 00:05:43,260
Now another thing we want to talk about is video errors.

149
00:05:43,260 --> 00:05:45,630
Common video-related issues include things

150
00:05:45,630 --> 00:05:48,240
like consistent or intermittent black screens,

151
00:05:48,240 --> 00:05:49,920
incorrectly display colors,

152
00:05:49,920 --> 00:05:52,080
multiple monitors not being detected,

153
00:05:52,080 --> 00:05:54,810
sluggish performance in video intensive applications

154
00:05:54,810 --> 00:05:56,520
and other things like this.

155
00:05:56,520 --> 00:05:58,620
Now some these issues can be addressed

156
00:05:58,620 --> 00:06:01,290
by ensuring that monitors and other display devices

157
00:06:01,290 --> 00:06:03,300
are properly connected and compatible

158
00:06:03,300 --> 00:06:05,580
with the system and user software.

159
00:06:05,580 --> 00:06:06,720
When it comes to performance

160
00:06:06,720 --> 00:06:08,640
of video intensive applications though,

161
00:06:08,640 --> 00:06:11,850
you want to make sure you have good graphic card support

162
00:06:11,850 --> 00:06:15,960
and that includes a GPU driver inside of the Linux kernel.

163
00:06:15,960 --> 00:06:18,990
This is often one of the biggest hurdles inside of Linux

164
00:06:18,990 --> 00:06:21,390
and so it's crucial to have the latest drivers

165
00:06:21,390 --> 00:06:24,660
that will work to give you optimal video performance.

166
00:06:24,660 --> 00:06:26,970
Now another hardware problem you might come across

167
00:06:26,970 --> 00:06:29,460
is actually a faulty bus adapter.

168
00:06:29,460 --> 00:06:31,350
If you have a faulty bus adapter,

169
00:06:31,350 --> 00:06:33,390
you might see some possible indications

170
00:06:33,390 --> 00:06:35,400
like poor data transfer speeds,

171
00:06:35,400 --> 00:06:37,710
less total space available than expected,

172
00:06:37,710 --> 00:06:39,720
excessive read or write errors,

173
00:06:39,720 --> 00:06:41,730
inability to read or write at all,

174
00:06:41,730 --> 00:06:43,830
the system can't detect devices anymore

175
00:06:43,830 --> 00:06:45,300
and things like that.

176
00:06:45,300 --> 00:06:48,450
Now the problem here might be the physical HBA itself

177
00:06:48,450 --> 00:06:50,100
or host bust adapter.

178
00:06:50,100 --> 00:06:51,810
Or it might be with the interface

179
00:06:51,810 --> 00:06:53,910
that the HBA is actually connecting to

180
00:06:53,910 --> 00:06:56,190
like a SCSI or SATA device.

181
00:06:56,190 --> 00:06:58,920
The first step is to ensure the host bus adapter

182
00:06:58,920 --> 00:07:00,540
is actually powered on.

183
00:07:00,540 --> 00:07:02,940
Then you need to ensure that the storage device

184
00:07:02,940 --> 00:07:04,770
you're connecting to that HBA

185
00:07:04,770 --> 00:07:06,810
is using the appropriate interface.

186
00:07:06,810 --> 00:07:09,210
And of course you want to ensure that all the devices

187
00:07:09,210 --> 00:07:11,700
are properly slotted and cabled together

188
00:07:11,700 --> 00:07:13,890
and making sure that they're all damage free

189
00:07:13,890 --> 00:07:15,930
and working properly.

190
00:07:15,930 --> 00:07:18,690
Another thing we want to talk about is RAID arrays.

191
00:07:18,690 --> 00:07:22,320
Now we've talked before about mdadm as a command

192
00:07:22,320 --> 00:07:25,470
and this is a command that's used to manage our RAID arrays.

193
00:07:25,470 --> 00:07:27,540
If you use the -F option,

194
00:07:27,540 --> 00:07:29,400
this will activate monitor mode

195
00:07:29,400 --> 00:07:31,980
which enables you to identify missing or failed drives

196
00:07:31,980 --> 00:07:33,780
inside that RAID array.

197
00:07:33,780 --> 00:07:35,940
You can then use some of the command's other modes

198
00:07:35,940 --> 00:07:37,080
to rebuild the array

199
00:07:37,080 --> 00:07:38,790
after you've removed the faulty drive

200
00:07:38,790 --> 00:07:40,380
and put a new one in.

201
00:07:40,380 --> 00:07:42,990
Some other useful options for troubleshooting RAID issues

202
00:07:42,990 --> 00:07:45,390
include using the -f

203
00:07:45,390 --> 00:07:48,300
which is used to mark a specified device as faulty

204
00:07:48,300 --> 00:07:50,760
and prepare it for removal from that array.

205
00:07:50,760 --> 00:07:52,860
You can also use the -r option

206
00:07:52,860 --> 00:07:56,160
which is used to remove the specified device from the array.

207
00:07:56,160 --> 00:07:57,960
If you use the keyword failed,

208
00:07:57,960 --> 00:08:00,840
this will specify that all the devices marked as faulty

209
00:08:00,840 --> 00:08:02,340
should be removed.

210
00:08:02,340 --> 00:08:04,380
If you use --re-add,

211
00:08:04,380 --> 00:08:07,110
this is an option that's used to add a removed device

212
00:08:07,110 --> 00:08:10,080
back into the array for the purposes of recovering data

213
00:08:10,080 --> 00:08:11,820
that's stored on that device.

214
00:08:11,820 --> 00:08:13,650
If you use the -a option,

215
00:08:13,650 --> 00:08:15,180
this is going to be used to add a device

216
00:08:15,180 --> 00:08:17,460
to the array as a hot spare.

217
00:08:17,460 --> 00:08:18,990
If the array is degraded,

218
00:08:18,990 --> 00:08:21,750
it's going to rebuild data on that spare for you.

219
00:08:21,750 --> 00:08:23,940
This behavior only applies to devices

220
00:08:23,940 --> 00:08:25,560
that are unable to be re-added

221
00:08:25,560 --> 00:08:28,380
or were never part of the array to begin with.

222
00:08:28,380 --> 00:08:31,710
Another helpful command we have is lshw.

223
00:08:31,710 --> 00:08:35,850
Now the lshw command is basically the list hardware command.

224
00:08:35,850 --> 00:08:38,309
It's going to list out each detected hardware component

225
00:08:38,309 --> 00:08:41,850
on the system and provide details about each device.

226
00:08:41,850 --> 00:08:44,970
This command pulls information from many different files

227
00:08:44,970 --> 00:08:46,590
in many different locations

228
00:08:46,590 --> 00:08:49,530
for those different device files on the system.

229
00:08:49,530 --> 00:08:52,230
For example, it can pull data from /proc

230
00:08:52,230 --> 00:08:54,630
and then output it in a hierarchical format.

231
00:08:54,630 --> 00:08:57,150
The information that lshw outputs

232
00:08:57,150 --> 00:08:59,820
will include things like your vendors, your product names,

233
00:08:59,820 --> 00:09:01,740
your capacity, your speed

234
00:09:01,740 --> 00:09:03,660
and other attributes of the motherboard

235
00:09:03,660 --> 00:09:07,170
including the CPU, RAM modules, peripheral devices,

236
00:09:07,170 --> 00:09:09,630
storage devices and much more.

237
00:09:09,630 --> 00:09:12,450
You can use lshw or list hardware

238
00:09:12,450 --> 00:09:13,980
to identify whether or not a device

239
00:09:13,980 --> 00:09:15,720
is recognized by the kernel

240
00:09:15,720 --> 00:09:16,980
as well as to review a device's

241
00:09:16,980 --> 00:09:19,290
capabilities and characteristics.

242
00:09:19,290 --> 00:09:20,430
To run this command,

243
00:09:20,430 --> 00:09:23,640
type in lshw and then the options you want

244
00:09:23,640 --> 00:09:25,200
at the command prompt.

245
00:09:25,200 --> 00:09:28,440
The output of the lshw is going to group the devices

246
00:09:28,440 --> 00:09:30,630
into one of several classes.

247
00:09:30,630 --> 00:09:32,580
You can then filter the total result

248
00:09:32,580 --> 00:09:35,820
by specifying a class with a -c option.

249
00:09:35,820 --> 00:09:40,820
For example, if I typed in lshw -c and then network,

250
00:09:41,340 --> 00:09:44,580
I'm only going to see details about network class devices

251
00:09:44,580 --> 00:09:48,150
like network interface cards or a wifi adapter.

252
00:09:48,150 --> 00:09:50,940
To see a list of classes currently in use in your system,

253
00:09:50,940 --> 00:09:55,940
you can enter the command lshw -short, pipe sort-k2

254
00:09:57,180 --> 00:09:59,970
and this will generate a non-detail list of devices

255
00:09:59,970 --> 00:10:04,530
sorted based on the second column which is the class column.

256
00:10:04,530 --> 00:10:06,240
The next command we're going to talk about

257
00:10:06,240 --> 00:10:08,880
is the dmidecode command.

258
00:10:08,880 --> 00:10:10,230
Now this command is going to dump

259
00:10:10,230 --> 00:10:13,650
the system's Desktop Management Interface or DMI

260
00:10:13,650 --> 00:10:14,550
and take that table

261
00:10:14,550 --> 00:10:17,190
and present it in a human readable format.

262
00:10:17,190 --> 00:10:19,620
The DMI table is an industry standard

263
00:10:19,620 --> 00:10:22,740
for tracking information about hardware components.

264
00:10:22,740 --> 00:10:26,310
However, the authors of the dmidecode command

265
00:10:26,310 --> 00:10:28,950
caution us that the information in the DMI tables

266
00:10:28,950 --> 00:10:31,050
is more often than not

267
00:10:31,050 --> 00:10:34,500
inaccurate, incomplete or simply wrong.

268
00:10:34,500 --> 00:10:37,410
Therefore, you don't want to rely on the DMI table

269
00:10:37,410 --> 00:10:39,840
as your sole source of hardware information,

270
00:10:39,840 --> 00:10:42,030
but it can be a useful tool

271
00:10:42,030 --> 00:10:44,190
to act as a second or third source

272
00:10:44,190 --> 00:10:45,900
when you're correlating with others.

273
00:10:45,900 --> 00:10:49,170
To run this command, simply type in dmidecode

274
00:10:49,170 --> 00:10:51,480
and the options at the command prompt.

275
00:10:51,480 --> 00:10:52,920
Another tool we can use

276
00:10:52,920 --> 00:10:56,850
is the Automatic Bug Reporting Tool or ABRT.

277
00:10:56,850 --> 00:10:58,860
This is a utility that's typically used

278
00:10:58,860 --> 00:11:01,380
on Fedora and Red Hat-based systems

279
00:11:01,380 --> 00:11:02,700
and it analyzes and reports

280
00:11:02,700 --> 00:11:05,640
on problems detected during system runtime.

281
00:11:05,640 --> 00:11:07,830
ABRT will be used to collect data

282
00:11:07,830 --> 00:11:10,170
like memory dumps from crashed applications

283
00:11:10,170 --> 00:11:11,790
that'll help system administrators

284
00:11:11,790 --> 00:11:13,980
diagnose and troubleshoot issues.

285
00:11:13,980 --> 00:11:16,710
It can also report on problems of various devices

286
00:11:16,710 --> 00:11:20,580
such as MCE's that typically indicate hardware failures.

287
00:11:20,580 --> 00:11:24,480
ABRT will run as the abrtd daemon

288
00:11:24,480 --> 00:11:27,960
and can be configured using abrt-cli

289
00:11:27,960 --> 00:11:29,490
if you're using the command line

290
00:11:29,490 --> 00:11:33,960
or abrt-gui if you're using the graphical user interface,

291
00:11:33,960 --> 00:11:36,720
depending on your system and your own preferences.

292
00:11:36,720 --> 00:11:38,640
Now you can use both of these utilities

293
00:11:38,640 --> 00:11:42,150
to list problem data, view details about that problem data,

294
00:11:42,150 --> 00:11:43,980
analyze and report on that problem data

295
00:11:43,980 --> 00:11:46,560
and remove unnecessary reports.

296
00:11:46,560 --> 00:11:48,600
Remember, when troubleshooting hardware issues,

297
00:11:48,600 --> 00:11:50,520
the first step is to ensure the hardware devices

298
00:11:50,520 --> 00:11:52,770
are supported by robust drivers

299
00:11:52,770 --> 00:11:54,720
Then ensure the necessary drivers

300
00:11:54,720 --> 00:11:57,360
are installed and loaded into your kernel.

301
00:11:57,360 --> 00:11:58,860
Always ensure the hardware devices

302
00:11:58,860 --> 00:12:00,360
are compatible with the Linux software

303
00:12:00,360 --> 00:12:03,660
that controls it, manages it and interfaces with it.

304
00:12:03,660 --> 00:12:06,180
Verify that the system has the correct keyboard layout

305
00:12:06,180 --> 00:12:07,050
and language set

306
00:12:07,050 --> 00:12:09,570
because this will solve a lot of your problems.

307
00:12:09,570 --> 00:12:12,210
Also, when you're working with network-enabled printers,

308
00:12:12,210 --> 00:12:14,850
make sure it's identifiable on your network.

309
00:12:14,850 --> 00:12:16,410
If you're having a problem with the printer,

310
00:12:16,410 --> 00:12:19,170
you can use the lprm command to be able to stop

311
00:12:19,170 --> 00:12:22,320
large or numerous print jobs from that system.

312
00:12:22,320 --> 00:12:23,790
If you have memory issues,

313
00:12:23,790 --> 00:12:25,920
you can check the mcelog

314
00:12:25,920 --> 00:12:28,680
and that way you can see what errors might exist.

315
00:12:28,680 --> 00:12:30,000
Anytime you're trying to figure out

316
00:12:30,000 --> 00:12:32,070
if your RAM modules are bad or not,

317
00:12:32,070 --> 00:12:35,370
you can use the command line utility memtester.

318
00:12:35,370 --> 00:12:38,250
Also, if you're having problems with your graphics card,

319
00:12:38,250 --> 00:12:39,150
you should check to make sure

320
00:12:39,150 --> 00:12:43,020
you have the latest GPU drivers from your vendor's website.

321
00:12:43,020 --> 00:12:45,540
Always ensure that your storage and peripheral devices

322
00:12:45,540 --> 00:12:47,880
are properly slotted into the correct buses

323
00:12:47,880 --> 00:12:50,160
to make sure they're being recognized by your system

324
00:12:50,160 --> 00:12:52,350
and ensure that the cables are connected properly

325
00:12:52,350 --> 00:12:54,480
and that they're not loose or damaged.

326
00:12:54,480 --> 00:12:56,580
If you want to identify connected hardware,

327
00:12:56,580 --> 00:12:59,340
you can always use the lshw command

328
00:12:59,340 --> 00:13:01,620
which means list hardware.

329
00:13:01,620 --> 00:13:04,440
Also, if you're using dmidecode,

330
00:13:04,440 --> 00:13:07,140
remember, it may produce inaccurate results.

331
00:13:07,140 --> 00:13:09,990
We're even told this by the manufacturers of that tool,

332
00:13:09,990 --> 00:13:12,930
but it still does provide some useful information.

333
00:13:12,930 --> 00:13:15,660
Finally, if you have programs that are crashing a lot,

334
00:13:15,660 --> 00:13:17,280
you should always review your crash data

335
00:13:17,280 --> 00:13:19,920
that's compiled by the ABRT utility

336
00:13:19,920 --> 00:13:22,620
inside of your Linux operating system.

337
00:13:22,620 --> 00:13:25,020
All right, I know we just covered a lot of information

338
00:13:25,020 --> 00:13:27,390
so let me provide a little bit of a summary here.

339
00:13:27,390 --> 00:13:29,610
Remember, Linux hardware troubleshooting

340
00:13:29,610 --> 00:13:31,320
requires a good amount of knowledge

341
00:13:31,320 --> 00:13:35,100
and familiarity with the command line and system messages.

342
00:13:35,100 --> 00:13:36,990
You have learned how to use a wide variety

343
00:13:36,990 --> 00:13:39,270
of tools and utilities in this lesson,

344
00:13:39,270 --> 00:13:42,690
but most importantly, you need to work methodically.

345
00:13:42,690 --> 00:13:44,850
As you understand the different types of hardware issues

346
00:13:44,850 --> 00:13:46,530
and how to address those issues,

347
00:13:46,530 --> 00:13:48,420
always have a standardized process

348
00:13:48,420 --> 00:13:50,040
during your troubleshooting.

349
00:13:50,040 --> 00:13:51,000
Once you've done that

350
00:13:51,000 --> 00:13:52,680
and you've learned the Linux utilities,

351
00:13:52,680 --> 00:13:55,470
you can start troubleshooting much more efficiently.

352
00:13:55,470 --> 00:13:57,210
Hopefully, next time you have something

353
00:13:57,210 --> 00:13:58,980
go wrong with one of your pieces of hardware,

354
00:13:58,980 --> 00:14:00,540
it'll be easier for you to fix

355
00:14:00,540 --> 00:14:02,550
now that you know some of the common tools you can use

356
00:14:02,550 --> 00:14:03,510
to do that.

357
00:14:03,510 --> 00:14:06,720
However, never forget that despite your best efforts,

358
00:14:06,720 --> 00:14:08,700
sometimes you'll never be able to figure out

359
00:14:08,700 --> 00:14:10,530
exactly what that problem is

360
00:14:10,530 --> 00:14:11,580
and you may have to replace

361
00:14:11,580 --> 00:14:13,620
parts or components in the system.

362
00:14:13,620 --> 00:14:15,690
Sometimes it can just be bad hardware

363
00:14:15,690 --> 00:14:17,250
and it's as simple as that

364
00:14:17,250 --> 00:14:18,990
so keep that in mind the next time

365
00:14:18,990 --> 00:14:21,440
you're working on troubleshooting a Linux system.

