summaryrefslogtreecommitdiff
path: root/Documentation/translations/zh_CN/admin-guide/reporting-issues.rst
blob: 6b4988da2c5a8cc50a81d88956dbb340e2fc7a97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
.. SPDX-License-Identifier: (GPL-2.0+ OR CC-BY-4.0)
..
   If you want to distribute this text under CC-BY-4.0 only, please use 'The
   Linux kernel developers' for author attribution and link this as source:
   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/admin-guide/reporting-issues.rst
..
   Note: Only the content of this RST file as found in the Linux kernel sources
   is available under CC-BY-4.0, as versions of this text that were processed
   (for example by the kernel's build system) might contain content taken from
   files which use a more restrictive license.

.. include:: ../disclaimer-zh_CN.rst

:Original: Documentation/admin-guide/reporting-issues.rst

:译者:

 å´æƒ³æˆ Wu XiangCheng <bobwxc@email.cn>


报告问题
+++++++++


简明指å—ï¼ˆäº¦å³ å¤ªé•¿ä¸çœ‹ï¼‰
==========================

您é¢ä¸´çš„是å¦ä¸ºåŒç³»åˆ—稳定版或长期支æŒå†…核的普通内核的回归?是å¦ä»ç„¶å—支æŒï¼Ÿ
请æœç´¢ `LKML内核邮件列表 <https://lore.kernel.org/lkml/>`_ å’Œ
`Linux稳定版邮件列表 <https://lore.kernel.org/stable/>`_ 存档中匹é…的报告并
加入讨论。如果找ä¸åˆ°åŒ¹é…的报告,请安装该系列的最新版本。如果它ä»ç„¶å‡ºçŽ°é—®é¢˜ï¼Œ
报告给稳定版邮件列表(stable@vger.kernel.org)。

在所有其他情况下,请尽å¯èƒ½çŒœæµ‹æ˜¯å“ªä¸ªå†…核部分导致了问题。查看MAINTAINERS文件,
了解开å‘人员希望如何得知问题,大多数情况下,报告问题都是通过电å­é‚®ä»¶å’ŒæŠ„é€
相关邮件列表进行的。检查报告目的地的存档中是å¦å·²æœ‰åŒ¹é…的报告;也请æœç´¢
`LKML <https://lore.kernel.org/lkml/>`_ 和网络。如果找ä¸åˆ°å¯åŠ å…¥çš„讨论,请
安装 `最新的主线内核 <https://kernel.org/>`_ 。如果ä»å­˜åœ¨é—®é¢˜ï¼Œè¯·å‘é€æŠ¥å‘Šã€‚

问题已ç»è§£å†³äº†ï¼Œä½†æ˜¯æ‚¨å¸Œæœ›çœ‹åˆ°å®ƒåœ¨ä¸€ä¸ªä»ç„¶æ”¯æŒçš„稳定版或长期支æŒç³»åˆ—中得到
解决?请安装其最新版本。如果它出现了问题,那么在主线中æœç´¢ä¿®å¤å®ƒçš„更改,并
检查是å¦æ­£åœ¨å›žä¼ ï¼ˆbackporting)或者已放弃;如果两者都没有,那么å¯è¯¢é—®å¤„ç†
更改的人员。

**通用æ醒** :当安装和测试上述内核时,请确ä¿å®ƒæ˜¯æ™®é€šçš„(å³ï¼šæ²¡æœ‰è¡¥ä¸ï¼Œä¹Ÿæ²¡
有使用附加模å—)。还è¦ç¡®ä¿å®ƒæ˜¯åœ¨ä¸€ä¸ªæ­£å¸¸çš„环境中构建和è¿è¡Œï¼Œå¹¶ä¸”在问题å‘生
之å‰æ²¡æœ‰è¢«æ±¡æŸ“(tainted)。

在编写报告时,è¦æ¶µç›–与问题相关的所有信æ¯ï¼Œå¦‚使用的内核和å‘行版。在碰è§å›žå½’时,
å°è¯•ç»™å‡ºå¼•å…¥å®ƒçš„更改的æ交ID,二分å¯ä»¥æ‰¾åˆ°å®ƒã€‚如果您åŒæ—¶é¢ä¸´Linux内核的多个
问题,请分别报告æ¯ä¸ªé—®é¢˜ã€‚

一旦报告å‘出,请回答任何出现的问题,并尽å¯èƒ½åœ°æ供帮助。这包括通过ä¸æ—¶é‡æ–°
测试新版本并å‘é€çŠ¶æ€æ›´æ–°æ¥æŽ¨åŠ¨è¿›å±•ã€‚


如何å‘内核维护人员报告问题的é€æ­¥æŒ‡å—
=====================================

上é¢çš„简明指å—概述了如何å‘Linux内核开å‘人员报告问题。对于已ç»ç†Ÿæ‚‰å‘自由和开
æºè½¯ä»¶ï¼ˆFLOSS)项目报告问题的人æ¥è¯´ï¼Œè¿™å¯èƒ½æ˜¯ä»–们所需è¦çš„全部内容。对于其他
人,本部分更为详细,并一步一步地æ述。为了便于阅读,它ä»ç„¶å°½é‡ç®€æ´ï¼Œå¹¶çœç•¥
了许多细节;这些在é€æ­¥æŒ‡å—åŽçš„å‚考章节中进行了æ述,该章节更详细地解释了æ¯
个步骤。

注æ„:本节涉åŠçš„æ–¹é¢æ¯”简明指å—多,顺åºä¹Ÿç¨æœ‰ä¸åŒã€‚这符åˆä½ çš„利益,以确ä¿æ‚¨
尽早æ„识到看起æ¥åƒLinux内核毛病的问题å¯èƒ½å®žé™…上是由其他原因引起的。这些步骤
å¯ä»¥ç¡®ä¿ä½ æœ€ç»ˆä¸ä¼šè§‰å¾—在这一过程中投入的时间是浪费:

 * 您是å¦é¢ä¸´ç¡¬ä»¶æˆ–软件供应商æ供的Linux内核的问题?那么基本上您最好åœæ­¢é˜…读
   本文档,转而å‘您的供应商报告问题,除éžæ‚¨æ„¿æ„自己安装最新的Linux版本。寻找
   和解决问题往往需è¦åŽè€…。

 * 使用您喜爱的网络æœç´¢å¼•æ“Žå¯¹çŽ°æœ‰æŠ¥å‘Šè¿›è¡Œç²—ç•¥æœç´¢ï¼›æ­¤å¤–,请检查
   `Linux内核邮件列表(LKML) <https://lore.kernel.org/lkml/>`_ 的存档。如果
   找到匹é…的报告,请加入讨论而ä¸æ˜¯å‘é€æ–°æŠ¥å‘Šã€‚

 * 看看你正在处ç†çš„问题是å¦ä¸ºå›žå½’问题ã€å®‰å…¨é—®é¢˜æˆ–éžå¸¸ä¸¥é‡çš„问题:这些都是需
   è¦åœ¨æŽ¥ä¸‹æ¥çš„一些步骤中特别处ç†çš„“高优先级问题â€ã€‚

 * ç¡®ä¿ä¸æ˜¯å†…核环境导致了您é¢ä¸´çš„问题。

 * 创建一个新的备份,并将系统修å¤å’Œæ¢å¤å·¥å…·æ”¾åœ¨æ‰‹è¾¹ã€‚

 * ç¡®ä¿æ‚¨çš„系统ä¸ä¼šé€šè¿‡åŠ¨æ€æž„建é¢å¤–的内核模å—æ¥å¢žå¼ºå…¶å†…核,åƒDKMS这样的解决
   方案å¯èƒ½åœ¨æ‚¨ä¸çŸ¥æƒ…的情况下就在本地进行了这样的工作。

 * 当问题å‘生时,检查您的内核是å¦è¢«â€œæ±¡æŸ“â€ï¼Œå› ä¸ºä½¿å†…核设置这个标志的事件å¯èƒ½
   会导致您é¢ä¸´çš„问题。

 * 粗略地写下如何é‡çŽ°è¿™ä¸ªé—®é¢˜ã€‚如果您åŒæ—¶å¤„ç†å¤šä¸ªé—®é¢˜ï¼Œè¯·ä¸ºæ¯ä¸ªé—®é¢˜å•ç‹¬å†™æ³¨
   释,并确ä¿å®ƒä»¬åœ¨æ–°å¯åŠ¨çš„系统上独立出现。这是必è¦çš„,因为æ¯ä¸ªé—®é¢˜éƒ½éœ€è¦åˆ†
   别报告给内核开å‘人员,除éžå®ƒä»¬ä¸¥é‡çº ç¼ åœ¨ä¸€èµ·ã€‚

 * 如果您正é¢ä¸´ç¨³å®šç‰ˆæˆ–长期支æŒç‰ˆæœ¬çº¿çš„回归(例如从5.10.4更新到5.10.5时出现
   故障),请查看åŽæ–‡â€œæŠ¥å‘Šç¨³å®šç‰ˆå’Œé•¿æœŸæ”¯æŒå†…核线的回归â€å°èŠ‚。

 * 定ä½å¯èƒ½å¼•èµ·é—®é¢˜çš„驱动程åºæˆ–内核å­ç³»ç»Ÿã€‚找出其开å‘人员期望的报告的方å¼å’Œ
   ä½ç½®ã€‚注æ„:大多数情况下ä¸ä¼šæ˜¯ bugzilla.kernel.org,因为问题通常需è¦é€š
   过邮件å‘é€ç»™ç»´æŠ¤äººå‘˜å’Œå…¬å…±é‚®ä»¶åˆ—表。

 * 在缺陷追踪器或问题相关邮件列表的存档中彻底æœç´¢å¯èƒ½ä¸Žæ‚¨çš„问题匹é…的报告。
   如果你å‘现了一些相关讨论,请加入讨论而ä¸æ˜¯å‘é€æ–°çš„报告。

在完æˆè¿™äº›å‡†å¤‡ä¹‹åŽï¼Œä½ å°†è¿›å…¥ä¸»è¦éƒ¨åˆ†ï¼š

 * 除éžæ‚¨å·²ç»åœ¨è¿è¡Œæœ€æ–°çš„“主线â€Linux内核,å¦åˆ™æœ€å¥½åœ¨æŠ¥å‘Šæµç¨‹å‰å®‰è£…它。在æŸäº›
   情况下,使用最新的“稳定版â€Linux进行测试和报告也是å¯ä»¥æŽ¥å—的替代方案;在
   åˆå¹¶çª—å£æœŸé—´ï¼Œè¿™å®žé™…上å¯èƒ½æ˜¯æœ€å¥½çš„方法,但在开å‘阶段最好还是暂åœå‡ å¤©ã€‚无论
   你选择什么版本,最好使用“普通â€æž„建。忽略这些建议会大大增加您的报告被拒ç»
   或忽略的风险。

 * ç¡®ä¿æ‚¨åˆšåˆšå®‰è£…的内核在è¿è¡Œæ—¶ä¸ä¼šâ€œæ±¡æŸ“â€è‡ªå·±ã€‚

 * 在您刚刚安装的内核中å¤çŽ°è¿™ä¸ªé—®é¢˜ã€‚如果它没有出现,请查看下方åªå‘生在
   稳定版和长期支æŒå†…核的问题的说明。

 * 优化你的笔记:试ç€æ‰¾åˆ°å¹¶å†™å‡ºæœ€ç›´æŽ¥çš„å¤çŽ°é—®é¢˜çš„方法。确ä¿æœ€ç»ˆç»“果包å«æ‰€æœ‰
   é‡è¦çš„细节,åŒæ—¶è®©ç¬¬ä¸€æ¬¡å¬è¯´çš„人容易阅读和ç†è§£ã€‚如果您在此过程中学到了一
   些东西,请考虑å†æ¬¡æœç´¢å…³äºŽè¯¥é—®é¢˜çš„现有报告。

 * 如果失败涉åŠâ€œpanicâ€ã€â€œOopsâ€ã€â€œwarningâ€æˆ–“BUGâ€ï¼Œè¯·è€ƒè™‘解ç å†…核日志以查找触
   å‘错误的代ç è¡Œã€‚

 * 如果您的问题是回归问题,请尽å¯èƒ½ç¼©å°å¼•å…¥é—®é¢˜æ—¶çš„范围。

 * 通过详细æ述问题æ¥å¼€å§‹ç¼–写报告。记得包括以下æ¡ç›®ï¼šæ‚¨ä¸ºå¤çŽ°è€Œå®‰è£…的最新内
   核版本ã€ä½¿ç”¨çš„Linuxå‘行版以åŠå…³äºŽå¦‚何å¤çŽ°è¯¥é—®é¢˜çš„说明。如果å¯èƒ½ï¼Œå°†å†…æ ¸
   构建é…置(.config)和 ``dmesg`` 的输出放在网上的æŸä¸ªåœ°æ–¹ï¼Œå¹¶é“¾æŽ¥åˆ°å®ƒã€‚包
   å«æˆ–上传所有其他å¯èƒ½ç›¸å…³çš„ä¿¡æ¯ï¼Œå¦‚Oops的输出/截图或æ¥è‡ª ``lspci`` 的输出
   。一旦你写完了这个主è¦éƒ¨åˆ†ï¼Œè¯·åœ¨ä¸Šæ–¹æ’入一个正常长度的段è½å¿«é€Ÿæ¦‚述问题和
   å½±å“。å†åœ¨æ­¤ä¹‹ä¸Šæ·»åŠ ä¸€ä¸ªç®€å•æ述问题的å¥å­ï¼Œä»¥å¾—到人们的阅读。现在给出一
   个更短的æ述性标题或主题。然åŽå°±å¯ä»¥åƒMAINTAINERS文件告诉你的那样å‘é€æˆ–
   æ交报告了,除éžä½ åœ¨å¤„ç†ä¸€ä¸ªâ€œé«˜ä¼˜å…ˆçº§é—®é¢˜â€ï¼šå®ƒä»¬éœ€è¦æŒ‰ç…§ä¸‹é¢â€œé«˜ä¼˜å…ˆçº§é—®
   题的特殊处ç†â€æ‰€è¿°ç‰¹åˆ«å…³ç…§ã€‚

 * 等待别人的å应,继续推进事情,直到你能够接å—这样或那样的结果。因此,请公
   开和åŠæ—¶åœ°å›žåº”任何询问。测试æ出的修å¤ã€‚积æžåœ°æµ‹è¯•ï¼šè‡³å°‘é‡æ–°æµ‹è¯•æ¯ä¸ªæ–°ä¸»
   线版本的首个候选版本(RC),并报告你的结果。如果出现拖延,就å‹å¥½åœ°æ醒一
   下。如果你没有得到任何帮助或者未能满æ„,请试ç€è‡ªå·±å¸®åŠ©è‡ªå·±ã€‚


报告稳定版和长期支æŒå†…核线的回归
----------------------------------

如果您å‘现了稳定版或长期支æŒå†…核版本线中的回归问题并按上述æµç¨‹è·³åˆ°è¿™é‡Œï¼Œé‚£ä¹ˆ
请阅读本å°èŠ‚。å³ä¾‹å¦‚您在从5.10.4更新到5.10.5时出现了问题(从5.9.15到5.10.5则
ä¸æ˜¯ï¼‰ã€‚å¼€å‘人员希望尽快修å¤æ­¤ç±»å›žå½’,因此有一个简化æµç¨‹æ¥æŠ¥å‘Šå®ƒä»¬ï¼š

 * 检查内核开å‘人员是å¦ä»ç„¶ç»´æŠ¤ä½ å…³å¿ƒçš„Linux内核版本线:去 `kernel.org 的首页
   <https://kernel.org/>`_ ,确ä¿æ­¤ç‰¹å®šç‰ˆæœ¬çº¿çš„最新版没有“[EOL]â€æ ‡è®°ã€‚

 * 检查 `Linux稳定版邮件列表 <https://lore.kernel.org/stable/>`_ 中的现有报告。

 * 从特定的版本线安装最新版本作为纯净内核。确ä¿è¿™ä¸ªå†…核没有被污染,并且ä»ç„¶
   存在问题,因为问题å¯èƒ½å·²ç»åœ¨é‚£é‡Œè¢«ä¿®å¤äº†ã€‚如果您第一次å‘现供应商内核的问题,
   请检查已知最新版本的普通构建是å¦å¯ä»¥æ­£å¸¸è¿è¡Œã€‚

 * å‘Linux稳定版邮件列表å‘é€ä¸€ä¸ªç®€çŸ­çš„问题报告(stable@vger.kernel.org)。大致
   æ述问题,并解释如何å¤çŽ°ã€‚讲清楚首个出现问题的版本和最åŽä¸€ä¸ªå·¥ä½œæ­£å¸¸çš„版本。
   然åŽç­‰å¾…进一步的指示。

下é¢çš„å‚考章节部分详细解释了这些步骤中的æ¯ä¸€æ­¥ã€‚


报告åªå‘生在较旧内核版本线的问题
----------------------------------

若您å°è¯•äº†ä¸Šè¿°çš„最新主线内核,但未能在那里å¤çŽ°é—®é¢˜ï¼Œé‚£ä¹ˆæœ¬å°èŠ‚适用于您;以下
æµç¨‹æœ‰åŠ©äºŽä½¿é—®é¢˜åœ¨ä»ç„¶æ”¯æŒçš„稳定版或长期支æŒç‰ˆæœ¬çº¿ï¼Œæˆ–者定期基于最新稳定版或
长期支æŒå†…核的供应商内核中得到修å¤ã€‚如果是这ç§æƒ…况,请执行以下步骤:

 * 请åšå¥½å‡†å¤‡ï¼ŒæŽ¥ä¸‹æ¥çš„几个步骤å¯èƒ½æ— æ³•åœ¨æ—§ç‰ˆæœ¬ä¸­è§£å†³é—®é¢˜ï¼šä¿®å¤å¯èƒ½å¤ªå¤§æˆ–太
   冒险,无法移æ¤åˆ°é‚£é‡Œã€‚

 * 执行å‰èŠ‚“报告稳定版和长期支æŒå†…核线的回归â€ä¸­çš„å‰ä¸‰ä¸ªæ­¥éª¤ã€‚

 * 在Linux内核版本控制系统中æœç´¢ä¿®å¤ä¸»çº¿é—®é¢˜çš„更改,因为它的æ交消æ¯å¯èƒ½ä¼š
   告诉你修å¤æ˜¯å¦å·²ç»è®¡åˆ’好了支æŒã€‚如果你没有找到,æœç´¢é€‚当的邮件列表,寻找
   讨论此类问题或åŒè¡Œè¯„è®®å¯èƒ½ä¿®å¤çš„帖å­ï¼›ç„¶åŽæ£€æŸ¥è®¨è®ºæ˜¯å¦è®¤ä¸ºä¿®å¤ä¸é€‚åˆæ”¯æŒã€‚
   如果支æŒæ ¹æœ¬ä¸è¢«è€ƒè™‘,加入最新的讨论,询问是å¦æœ‰å¯èƒ½ã€‚

 * å‰é¢çš„步骤之一应该会给出一个解决方案。如果ä»æœªèƒ½æˆåŠŸï¼Œè¯·å‘å¯èƒ½å¼•èµ·é—®é¢˜çš„
   å­ç³»ç»Ÿçš„维护人员询问建议;抄é€ç‰¹å®šå­ç³»ç»Ÿçš„邮件列表以åŠç¨³å®šç‰ˆé‚®ä»¶åˆ—表

下é¢çš„å‚考章节部分详细解释了这些步骤中的æ¯ä¸€æ­¥ã€‚


å‚考章节:å‘内核维护者报告问题
===============================

上é¢çš„详细指å—简è¦åœ°åˆ—出了所有主è¦æ­¥éª¤ï¼Œè¿™å¯¹å¤§å¤šæ•°äººæ¥è¯´åº”该足够了。但有时,
å³ä½¿æ˜¯æœ‰ç»éªŒçš„用户也å¯èƒ½æƒ³çŸ¥é“如何实际执行这些步骤之一。这就是本节的目的,
因为它将æ供关于上述æ¯ä¸ªæ­¥éª¤çš„更多细节。请将此作为å‚考文档:å¯ä»¥ä»Žå¤´åˆ°å°¾
阅读它。但它主è¦æ˜¯ä¸ºäº†æµè§ˆå’ŒæŸ¥æ‰¾å¦‚何实际执行这些步骤的详细信æ¯ã€‚

在深入挖掘细节之å‰ï¼Œæˆ‘想先给你一些一般性建议:

 * Linux内核开å‘人员很清楚这个过程很å¤æ‚,比其他的FLOSS项目è¦æ±‚更多。我们很
   希望让它更简å•ã€‚但这需è¦åœ¨ä¸åŒçš„地方以åŠä¸€äº›åŸºç¡€è®¾æ–½ä¸Šä»˜è¯¸åŠªåŠ›ï¼Œè¿™äº›åŸºç¡€
   设施需è¦æŒç»­çš„维护;尚未有人站出æ¥åšè¿™äº›å·¥ä½œï¼Œæ‰€ä»¥ç›®å‰æƒ…况就是这样。

 * 与æŸäº›ä¾›åº”商签订的ä¿è¯æˆ–支æŒåˆåŒå¹¶ä¸èƒ½ä½¿æ‚¨æœ‰æƒè¦æ±‚上游Linux内核社区的开
   å‘人员进行修å¤ï¼šè¿™æ ·çš„åˆåŒå®Œå…¨åœ¨Linux内核ã€å…¶å¼€å‘社区和本文档的范围之外。
   这就是为什么在这ç§æƒ…况下,你ä¸èƒ½è¦æ±‚任何契约ä¿è¯ï¼Œå³ä½¿å¼€å‘人员处ç†çš„é—®
   题对供应商有效。如果您想主张您的æƒåˆ©ï¼Œä½¿ç”¨ä¾›åº”商的支æŒæ¸ é“代替。当这样åš
   的时候,你å¯èƒ½æƒ³æ出你希望看到这个问题在上游Linux内核中修å¤ï¼›å¯ä»¥è¿™æ˜¯ç¡®
   ä¿æœ€ç»ˆä¿®å¤å°†è¢«çº³å…¥æ‰€æœ‰Linuxå‘行版的唯一方法æ¥é¼“励他们。

 * 如果您从未å‘FLOSS项目报告过任何问题,那么您应该考虑阅读 `如何有效地报告
   缺陷 <https://www.chiark.greenend.org.uk/~sgtatham/bugs.html>`_ , `如何
   以明智的方å¼æé—® <http://www.catb.org/esr/faqs/smart-questions.html>`_ ,
   å’Œ `如何æ出好问题 <https://jvns.ca/blog/good-questions/>`_ 。

解决这些问题之åŽï¼Œå¯ä»¥åœ¨ä¸‹é¢æ‰¾åˆ°å¦‚何正确地å‘Linux内核报告问题的详细信æ¯ã€‚


ç¡®ä¿æ‚¨ä½¿ç”¨çš„是上游Linux内核
----------------------------

   *您是å¦é¢ä¸´ç¡¬ä»¶æˆ–软件供应商æ供的Linux内核的问题?那么基本上您最好åœæ­¢é˜…
   读本文档,转而å‘您的供应商报告问题,除éžæ‚¨æ„¿æ„自己安装最新的Linux版本。
   寻找和解决问题往往需è¦åŽè€…。*

与大多数程åºå‘˜ä¸€æ ·ï¼ŒLinux内核开å‘人员ä¸å–œæ¬¢èŠ±æ—¶é—´å¤„ç†ä»–们维护的æºä»£ç ä¸­æ ¹æœ¬
ä¸ä¼šå‘生的问题的报告。这åªä¼šæµªè´¹æ¯ä¸ªäººçš„时间,尤其是你的时间。ä¸å¹¸çš„是,当
涉åŠåˆ°å†…核时,这样的情况很容易å‘生,并且常常导致åŒæ–¹æ°”é¦ã€‚这是因为几乎所有预
装在设备(å°å¼æœºã€ç¬”记本电脑ã€æ™ºèƒ½æ‰‹æœºã€è·¯ç”±å™¨ç­‰ï¼‰ä¸Šçš„Linux内核,以åŠå¤§å¤šæ•°
ç”±Linuxå‘行商æ供的内核,都与由kernel.orgå‘行的官方Linux内核相è·ç”šè¿œï¼šä»ŽLinux
å¼€å‘的角度æ¥çœ‹ï¼Œè¿™äº›ä¾›åº”商æ供的内核通常是å¤è€çš„或者ç»è¿‡äº†å¤§é‡ä¿®æ”¹ï¼Œé€šå¸¸ä¸¤ç‚¹
兼具。

大多数供应商内核都ä¸é€‚åˆç”¨æ¥å‘Linux内核开å‘人员报告问题:您在其中é‡åˆ°çš„问题
å¯èƒ½å·²ç»ç”±Linux内核开å‘人员在数月或数年å‰ä¿®å¤ï¼›æ­¤å¤–,供应商的修改和增强å¯èƒ½
会导致您é¢ä¸´çš„问题,å³ä½¿å®ƒä»¬çœ‹èµ·æ¥å¾ˆå°æˆ–者完全ä¸ç›¸å…³ã€‚这就是为什么您应该å‘
供应商报告这些内核的问题。它的开å‘者应该查看报告,如果它是一个上游问题,直接
于上游修å¤æˆ–将报告转å‘到那里。在实践中,这有时行ä¸é€šã€‚因此,您å¯èƒ½éœ€è¦è€ƒè™‘
通过自己安装最新的Linux内核内核æ¥ç»•è¿‡ä¾›åº”商。如果如果您选择此方法,那么本指
å—åŽé¢çš„步骤将解释如何在排除了其他å¯èƒ½å¯¼è‡´æ‚¨çš„问题的原因åŽæ‰§è¡Œæ­¤æ“作。

注æ„å‰æ®µä½¿ç”¨çš„è¯è¯­æ˜¯â€œå¤§å¤šæ•°â€ï¼Œå› ä¸ºæœ‰æ—¶å€™å¼€å‘人员实际上愿æ„处ç†ä¾›åº”商内核出现
的问题报告。他们是å¦è¿™ä¹ˆåšå¾ˆå¤§ç¨‹åº¦ä¸Šå–决于开å‘人员和相关问题。如果å‘行版åª
æ ¹æ®æœ€è¿‘çš„Linux版本对内核进行了较å°ä¿®æ”¹ï¼Œé‚£ä¹ˆæœºä¼šå°±æ¯”较大;例如对于Debian
GNU/Linux Sid或Fedora Rawhide所æ供的主线内核。一些开å‘人员还将接å—基于最新
稳定内核的å‘行版内核问题报告,åªè¦å®ƒæ”¹åŠ¨ä¸å¤§ï¼›ä¾‹å¦‚Arch Linuxã€å¸¸è§„Fedora版本
å’ŒopenSUSE Turboweed。但是请记ä½ï¼Œæ‚¨æœ€å¥½ä½¿ç”¨ä¸»çº¿Linux,并é¿å…在此æµç¨‹ä¸­ä½¿ç”¨
稳定版内核,如“安装一个新的内核进行测试â€ä¸€èŠ‚中所详述。

当然,您å¯ä»¥å¿½ç•¥æ‰€æœ‰è¿™äº›å»ºè®®ï¼Œå¹¶å‘上游Linuxå¼€å‘人员报告旧的或ç»è¿‡å¤§é‡ä¿®æ”¹çš„
供应商内核的问题。但是注æ„,这样的报告ç»å¸¸è¢«æ‹’ç»æˆ–忽视,所以自行å°å¿ƒè€ƒè™‘一下。
ä¸è¿‡è¿™è¿˜æ˜¯æ¯”根本ä¸æŠ¥å‘Šé—®é¢˜è¦å¥½ï¼šæœ‰æ—¶å€™è¿™æ ·çš„报告会直接或间接地帮助解决之åŽçš„
问题。


æœç´¢çŽ°æœ‰æŠ¥å‘Šï¼ˆç¬¬ä¸€éƒ¨åˆ†ï¼‰
-------------------------

    *使用您喜爱的网络æœç´¢å¼•æ“Žå¯¹çŽ°æœ‰æŠ¥å‘Šè¿›è¡Œç²—ç•¥æœç´¢ï¼›æ­¤å¤–,请检查Linux内核
    邮件列表(LKML)的存档。如果找到匹é…的报告,请加入讨论而ä¸æ˜¯å‘é€æ–°æŠ¥å‘Šã€‚*

报告一个别人已ç»æ出的问题,对æ¯ä¸ªäººæ¥è¯´éƒ½æ˜¯æµªè´¹æ—¶é—´ï¼Œå°¤å…¶æ˜¯ä½œä¸ºæŠ¥å‘Šäººçš„你。
所以彻底检查是å¦æœ‰äººå·²ç»æŠ¥å‘Šäº†è¿™ä¸ªé—®é¢˜ï¼Œè¿™å¯¹ä½ è‡ªå·±æ˜¯æœ‰åˆ©çš„。在æµç¨‹ä¸­çš„这一步,
å¯ä»¥åªæ‰§è¡Œä¸€ä¸ªç²—略的æœç´¢ï¼šä¸€æ—¦æ‚¨çŸ¥é“您的问题需è¦æŠ¥å‘Šåˆ°å“ªé‡Œï¼Œç¨åŽçš„步骤将告诉
您如何详细æœç´¢ã€‚尽管如此,ä¸è¦ä»“促完æˆè¿™ä¸€æ­¥ï¼Œå®ƒå¯ä»¥èŠ‚çœæ‚¨çš„时间和å‡å°‘麻烦。

åªéœ€å…ˆç”¨ä½ æœ€å–œæ¬¢çš„æœç´¢å¼•æ“Žåœ¨äº’è”网上æœç´¢ã€‚然åŽå†æœç´¢Linux内核邮件列表(LKML)
存档。

如果æœç´¢ç»“果实在太多,å¯ä»¥è€ƒè™‘让你的æœç´¢å¼•æ“Žå°†æœç´¢æ—¶é—´èŒƒå›´é™åˆ¶åœ¨è¿‡åŽ»çš„一个
月或一年。而且无论你在哪里æœç´¢ï¼Œä¸€å®šè¦ç”¨æ°å½“çš„æœç´¢å…³é”®è¯ï¼›ä¹Ÿè¦å˜åŒ–几次关键
è¯ã€‚åŒæ—¶ï¼Œè¯•ç€ä»Žåˆ«äººçš„角度看问题:这将帮助你想出其他的关键è¯ã€‚å¦å¤–,一定ä¸
è¦åŒæ—¶ä½¿ç”¨è¿‡å¤šçš„关键è¯ã€‚è®°ä½æœç´¢æ—¶è¦åŒæ—¶å°è¯•åŒ…å«å’Œä¸åŒ…å«å†…核驱动程åºçš„å称
或å—å½±å“的硬件组件的å称等信æ¯ã€‚但其确切的å“牌å称(比如说“åŽç¡•çº¢é­” Radeon
RX 5700 XT Gaming OCâ€ï¼‰å¾€å¾€å¸®åŠ©ä¸å¤§ï¼Œå› ä¸ºå®ƒå¤ªå…·ä½“了。相å,å°è¯•æœç´¢æœ¯è¯­ï¼Œå¦‚
åž‹å·ï¼ˆRadeon 5700 或 Radeon 5000)和核心代å·ï¼ˆâ€œNaviâ€æˆ–“Navi10â€ï¼‰ï¼Œä»¥åŠåŒ…å«
å’Œä¸åŒ…å«å…¶åˆ¶é€ å•†ï¼ˆâ€œAMDâ€ï¼‰ã€‚

如果你å‘现了关于你的问题的现有报告,请加入讨论,因为你å¯èƒ½ä¼šæ供有价值的é¢
外信æ¯ã€‚这一点很é‡è¦ï¼Œå³ä½¿æ˜¯åœ¨ä¿®å¤ç¨‹åºå·²ç»å‡†å¤‡å¥½æˆ–处于最åŽé˜¶æ®µï¼Œå› ä¸ºå¼€å‘人
员å¯èƒ½ä¼šå¯»æ‰¾èƒ½å¤Ÿæä¾›é¢å¤–ä¿¡æ¯æˆ–测试建议修å¤ç¨‹åºçš„人。跳到“å‘布报告åŽçš„责任â€
一节,了解有关如何正确å‚与的细节。

注æ„,æœç´¢ `bugzilla.kernel.org <https://bugzilla.kernel.org/>`_ 网站å¯èƒ½
也是一个好主æ„,因为这å¯èƒ½ä¼šæ供有价值的è§è§£æˆ–找到匹é…的报告。如果您å‘现åŽè€…,
请记ä½ï¼šå¤§å¤šæ•°å­ç³»ç»Ÿéƒ½å¸Œæœ›åœ¨ä¸åŒçš„ä½ç½®æŠ¥å‘Šï¼Œå¦‚下é¢â€œä½ éœ€è¦å°†é—®é¢˜æŠ¥å‘Šåˆ°ä½•å¤„â€
一节中所述。因此本应处ç†è¿™ä¸ªé—®é¢˜çš„å¼€å‘人员甚至å¯èƒ½ä¸çŸ¥é“bugzillaçš„å·¥å•ã€‚所以
请检查工å•ä¸­çš„问题是å¦å·²ç»æŒ‰ç…§æœ¬æ–‡æ¡£æ‰€è¿°å¾—到报告,如果没有,请考虑这样åšã€‚

高优先级的问题?
-----------------

    *看看你正在处ç†çš„问题是å¦æ˜¯å›žå½’问题ã€å®‰å…¨é—®é¢˜æˆ–éžå¸¸ä¸¥é‡çš„问题:这些都是
    需è¦åœ¨æŽ¥ä¸‹æ¥çš„一些步骤中特别处ç†çš„“高优先级问题â€ã€‚*

Linus Torvalds和主è¦çš„Linux内核开å‘人员希望看到一些问题尽快得到解决,因此在
报告过程中有一些“高优先级问题â€çš„处ç†ç•¥æœ‰ä¸åŒã€‚有三ç§æƒ…况符åˆæ¡ä»¶:回归ã€å®‰å…¨
问题和éžå¸¸ä¸¥é‡çš„问题。

如果在旧版本的Linux内核中工作的东西ä¸èƒ½åœ¨æ–°ç‰ˆæœ¬çš„Linux内核中工作,或者æŸç§
程度上在新版本的Linux内核中工作得更差,那么你就需è¦å¤„ç†â€œå›žå½’â€ã€‚因此,当一个
在Linux 5.7中表现良好的WiFi驱动程åºåœ¨5.8中表现ä¸ä½³æˆ–根本ä¸èƒ½å·¥ä½œæ—¶ï¼Œè¿™æ˜¯ä¸€
ç§å›žå½’。如果应用程åºåœ¨æ–°çš„内核中出现ä¸ç¨³å®šçš„现象,这也是一ç§å›žå½’,这å¯èƒ½æ˜¯
由于内核和用户空间之间的接å£ï¼ˆå¦‚procfså’Œsysfs)å‘生ä¸å…¼å®¹çš„更改造æˆçš„。显著
的性能é™ä½Žæˆ–功耗增加也å¯ä»¥ç§°ä¸ºå›žå½’。但是请记ä½:新内核需è¦ä½¿ç”¨ä¸Žæ—§å†…核相似的
é…ç½®æ¥æž„建(å‚è§ä¸‹é¢å¦‚何实现这一点)。这是因为内核开å‘人员在实现新特性时有
时无法é¿å…ä¸å…¼å®¹æ€§ï¼›ä½†æ˜¯ä¸ºäº†é¿å…回归,这些特性必须在构建é…置期间显å¼åœ°å¯ç”¨ã€‚

什么是安全问题留给您自己判断。在继续之å‰ï¼Œè¯·è€ƒè™‘阅读
“Documentation/translations/zh_CN/admin-guide/security-bugs.rstâ€ï¼Œ
因为它æ供了如何最æ°å½“地处ç†å®‰å…¨é—®é¢˜çš„é¢å¤–细节。

当å‘生了完全无法接å—的糟糕事情时,此问题就是一个“éžå¸¸ä¸¥é‡çš„问题â€ã€‚例如,
Linux内核破å了它处ç†çš„æ•°æ®æˆ–æŸå了它è¿è¡Œçš„硬件。当内核çªç„¶æ˜¾ç¤ºé”™è¯¯æ¶ˆæ¯
(“kernel panicâ€ï¼‰å¹¶åœæ­¢å·¥ä½œï¼Œæˆ–者根本没有任何åœæ­¢ä¿¡æ¯æ—¶ï¼Œæ‚¨ä¹Ÿåœ¨å¤„ç†ä¸€ä¸ªä¸¥é‡
的问题。注æ„:ä¸è¦æ··æ·†â€œpanicâ€ï¼ˆå†…æ ¸åœæ­¢è‡ªèº«çš„致命错误)和“Oopsâ€ï¼ˆå¯æ¢å¤é”™è¯¯ï¼‰ï¼Œ
因为显示åŽè€…之åŽå†…æ ¸ä»ç„¶åœ¨è¿è¡Œã€‚


ç¡®ä¿çŽ¯å¢ƒå¥åº·
--------------

    *ç¡®ä¿ä¸æ˜¯å†…核所处环境导致了你所é¢ä¸´çš„问题。*

看起æ¥å¾ˆåƒå†…核问题的问题有时是由构建或è¿è¡Œæ—¶çŽ¯å¢ƒå¼•èµ·çš„。很难完全排除这ç§é—®
题,但你应该尽é‡å‡å°‘è¿™ç§é—®é¢˜ï¼š

 * 构建内核时,请使用ç»è¿‡éªŒè¯çš„工具,因为编译器或二进制文件中的错误å¯èƒ½ä¼šå¯¼
   致内核出现错误行为。

 * ç¡®ä¿æ‚¨çš„计算机组件在其设计规范内è¿è¡Œï¼›è¿™å¯¹å¤„ç†å™¨ã€å†…存和主æ¿å°¤ä¸ºé‡è¦ã€‚å› 
   此,当é¢ä¸´æ½œåœ¨çš„内核问题时,åœæ­¢ä½Žç”µåŽ‹æˆ–超频。

 * å°½é‡ç¡®ä¿ä¸æ˜¯ç¡¬ä»¶æ•…障导致了你的问题。例如,内存æŸå会导致大é‡çš„问题,这些
   问题会表现为看起æ¥åƒå†…核问题。

 * 如果你正在处ç†ä¸€ä¸ªæ–‡ä»¶ç³»ç»Ÿé—®é¢˜ï¼Œä½ å¯èƒ½éœ€è¦ç”¨ ``fsck`` 检查一下文件系统,
   因为它å¯èƒ½ä¼šä»¥æŸç§æ–¹å¼è¢«æŸå,从而导致无法预期的内核行为。

 * 在处ç†å›žå½’问题时,è¦ç¡®ä¿æ²¡æœ‰åœ¨æ›´æ–°å†…核的åŒæ—¶å‘生了其他å˜åŒ–。例如,这个问
   题å¯èƒ½æ˜¯ç”±åŒæ—¶æ›´æ–°çš„其他软件引起的。也有å¯èƒ½æ˜¯åœ¨ä½ ç¬¬ä¸€æ¬¡é‡å¯è¿›å…¥æ–°å†…核时,
   æŸä¸ªç¡¬ä»¶å·§åˆåœ°å了。更新系统 BIOS æˆ–æ”¹å˜ BIOS 设置中的æŸäº›å†…容也会导致
   一些看起æ¥å¾ˆåƒå†…核回归的问题。


为紧急情况åšå¥½å‡†å¤‡
-------------------

    *创建一个全新的备份,并将系统修å¤å’Œè¿˜åŽŸå·¥å…·æ”¾åœ¨æ‰‹è¾¹*

我得æ醒您,您正在和计算机打交é“,计算机有时会出现æ„想ä¸åˆ°çš„事情,尤其是当
您折腾其æ“作系统的内核等关键部件时。而这就是你在这个过程中è¦åšçš„事情。因此,
一定è¦åˆ›å»ºä¸€ä¸ªå…¨æ–°çš„备份;还è¦ç¡®ä¿ä½ æ‰‹å¤´æœ‰ä¿®å¤æˆ–é‡è£…æ“作系统的所有工具,
以åŠæ¢å¤å¤‡ä»½æ‰€éœ€çš„一切。


ç¡®ä¿ä½ çš„内核ä¸ä¼šè¢«å¢žå¼º
------------------------

    *ç¡®ä¿æ‚¨çš„系统ä¸ä¼šé€šè¿‡åŠ¨æ€æž„建é¢å¤–的内核模å—æ¥å¢žå¼ºå…¶å†…核,åƒDKMS这样的解
    决方案å¯èƒ½åœ¨æ‚¨ä¸çŸ¥æƒ…的情况下就在本地进行了这样的工作。*

如果内核以任何方å¼å¾—到增强,那么问题报告被忽略或拒ç»çš„风险就会急剧增加。这就
是为什么您应该删除或ç¦ç”¨åƒakmodså’ŒDKMS这样的机制:这些机制会自动构建é¢å¤–内核
模å—,例如当您安装新的Linux内核或第一次引导它时。也è¦è®°å¾—åŒæ—¶åˆ é™¤ä»–们å¯èƒ½å®‰è£…
的任何模å—。然åŽé‡æ–°å¯åŠ¨å†ç»§ç»­ã€‚

注æ„,你å¯èƒ½ä¸çŸ¥é“你的系统正在使用这些解决方案之一:当你安装 Nvidia 专有图
形驱动程åºã€VirtualBox æˆ–å…¶ä»–éœ€è¦ Linux 内核以外的模å—支æŒçš„软件时,它们通
常会é™é»˜è®¾ç½®ã€‚这就是为什么你å¯èƒ½éœ€è¦å¸è½½è¿™äº›è½¯ä»¶çš„软件包,以摆脱任何第三方
内核模å—。


检查“污染â€æ ‡å¿—
----------------

    *当问题å‘生时,检查您的内核是å¦è¢«â€œæ±¡æŸ“â€ï¼Œå› ä¸ºä½¿å†…核设置这个标志的事件å¯
    能会导致您é¢ä¸´çš„问题。*

当æŸäº›å¯èƒ½ä¼šå¯¼è‡´çœ‹èµ·æ¥å®Œå…¨ä¸ç›¸å…³çš„åŽç»­é”™è¯¯çš„事情å‘生时,内核会用“污染
(taint)â€æ ‡å¿—标记自己。如果您的内核å—到污染,那么您é¢ä¸´çš„å¯èƒ½æ˜¯è¿™æ ·çš„错误。
因此在投入更多时间到这个过程中之å‰ï¼Œå°½æ—©æŽ’除此情况å¯èƒ½å¯¹ä½ æœ‰å¥½å¤„。这是这个
步骤出现在这里的唯一原因,因为这个过程ç¨åŽä¼šå‘Šè¯‰æ‚¨å®‰è£…最新的主线内核;然åŽ
您将需è¦å†æ¬¡æ£€æŸ¥æ±¡æŸ“标志,因为当它出问题的时候内核报告会关注它。

在正在è¿è¡Œçš„系统上检查内核是å¦æ±¡æŸ“éžå¸¸å®¹æ˜“:如果 ``cat /proc/sys/kernel/tainted``
返回“0â€ï¼Œé‚£ä¹ˆå†…核没有被污染,一切正常。在æŸäº›æƒ…况下无法检查该文件;这就是
为什么当内核报告内部问题(“kernel bugâ€ï¼‰ã€å¯æ¢å¤é”™è¯¯ï¼ˆâ€œkernel Oopsâ€ï¼‰æˆ–åœæ­¢
æ“作å‰ä¸å¯æ¢å¤çš„错误(“kernel panicâ€ï¼‰æ—¶ï¼Œå®ƒä¹Ÿä¼šæ到污染状æ€ã€‚当其中一个错
误å‘生时,查看打å°çš„错误消æ¯çš„顶部,æœç´¢ä»¥â€œCPU:â€å¼€å¤´çš„行。如果å‘现问题时内
核未被污染,那么它应该以“Not infectedâ€ç»“æŸï¼›å¦‚果你看到“Tainted:â€ä¸”åŽè·Ÿä¸€äº›
空格和字æ¯ï¼Œé‚£å°±è¢«æ±¡æŸ“了。

如果你的内核被污染了,请阅读“Documentation/translations/zh_CN/admin-guide/tainted-kernels.rstâ€
以找出原因。设法消除污染因素。通常是由以下三ç§å› ç´ ä¹‹ä¸€å¼•èµ·çš„:

 1. å‘生了一个å¯æ¢å¤çš„错误(“kernel Oopsâ€ï¼‰ï¼Œå†…核污染了自己,因为内核知é“在
    此之åŽå®ƒå¯èƒ½ä¼šå‡ºçŽ°å¥‡æ€ªçš„行为错乱。在这ç§æƒ…况下,检查您的内核或系统日志,
    并寻找以下列文字开头的部分::

       Oops: 0000 [#1] SMP

    如方括å·ä¸­çš„“#1â€æ‰€ç¤ºï¼Œè¿™æ˜¯è‡ªå¯åŠ¨ä»¥æ¥çš„第一次Oops。æ¯ä¸ªOops和此åŽå‘生的
    任何其他问题都å¯èƒ½æ˜¯é¦–个Oopsçš„åŽç»­é—®é¢˜ï¼Œå³ä½¿è¿™ä¸¤ä¸ªé—®é¢˜çœ‹èµ·æ¥å®Œå…¨ä¸ç›¸å…³ã€‚
    通过消除首个Oops的原因并在之åŽå¤çŽ°è¯¥é—®é¢˜ï¼Œå¯ä»¥æŽ’除这ç§æƒ…况。有时仅仅
    é‡æ–°å¯åŠ¨å°±è¶³å¤Ÿäº†ï¼Œæœ‰æ—¶æ›´æ”¹é…ç½®åŽé‡æ–°å¯åŠ¨å¯ä»¥æ¶ˆé™¤Oops。但是在这个æµç¨‹ä¸­
    ä¸è¦èŠ±è´¹å¤ªå¤šæ—¶é—´åœ¨è¿™ä¸€ç‚¹ä¸Šï¼Œå› ä¸ºå¼•èµ·Oops的原因å¯èƒ½å·²ç»åœ¨æ‚¨ç¨åŽå°†æŒ‰æµç¨‹
    安装的新Linux内核版本中修å¤äº†ã€‚

 2. 您的系统使用的软件安装了自己的内核模å—,例如Nvidia的专有图形驱动程åºæˆ–
    VirtualBox。当内核从外部æºï¼ˆå³ä½¿å®ƒä»¬æ˜¯å¼€æºçš„)加载此类模å—时,它会污染
    自己:它们有时会在ä¸ç›¸å…³çš„内核区域导致错误,从而å¯èƒ½å¯¼è‡´æ‚¨é¢ä¸´çš„问题。
    因此,当您想è¦å‘Linux内核开å‘人员报告问题时,您必须阻止这些模å—加载。
    大多数情况下最简å•çš„方法是:临时å¸è½½è¿™äº›è½¯ä»¶ï¼ŒåŒ…括它们å¯èƒ½å·²ç»å®‰è£…çš„ä»»
    何模å—。之åŽé‡æ–°å¯åŠ¨ã€‚

 3. 当内核加载驻留在Linux内核æºä»£ç staging树中的模å—时,它也会污染自身。这
    是一个特殊的区域,代ç ï¼ˆä¸»è¦æ˜¯é©±åŠ¨ç¨‹åºï¼‰è¿˜æ²¡æœ‰è¾¾åˆ°æ­£å¸¸Linux内核的质é‡
    标准。当您报告此ç§æ¨¡å—的问题时,内核å—到污染显然是没有问题的;åªéœ€ç¡®ä¿
    问题模å—是造æˆæ±¡æŸ“的唯一原因。如果问题å‘生在一个ä¸ç›¸å…³çš„区域,é‡æ–°å¯åŠ¨
    并通过指定 ``foo.blacklist=1`` 作为内核å‚数临时阻止该模å—被加载(用有
    问题的模å—å替æ¢â€œfooâ€ï¼‰ã€‚


记录如何é‡çŽ°é—®é¢˜
------------------

    *粗略地写下如何é‡çŽ°è¿™ä¸ªé—®é¢˜ã€‚如果您åŒæ—¶å¤„ç†å¤šä¸ªé—®é¢˜ï¼Œè¯·ä¸ºæ¯ä¸ªé—®é¢˜å•ç‹¬å†™
    注释,并确ä¿å®ƒä»¬åœ¨æ–°å¯åŠ¨çš„系统上独立出现。这是必è¦çš„,因为æ¯ä¸ªé—®é¢˜éƒ½éœ€
    è¦åˆ†åˆ«æŠ¥å‘Šç»™å†…核开å‘人员,除éžå®ƒä»¬ä¸¥é‡çº ç¼ åœ¨ä¸€èµ·ã€‚*

如果你åŒæ—¶å¤„ç†å¤šä¸ªé—®é¢˜ï¼Œå¿…须分别报告æ¯ä¸ªé—®é¢˜ï¼Œå› ä¸ºå®ƒä»¬å¯èƒ½ç”±ä¸åŒçš„å¼€å‘人员
处ç†ã€‚在一份报告中æ述多ç§é—®é¢˜ï¼Œä¹Ÿä¼šè®©å…¶ä»–人难以将其分开。因此åªæœ‰åœ¨é—®é¢˜ä¸¥
é‡çº ç¼ çš„情况下,æ‰èƒ½å°†é—®é¢˜åˆå¹¶åœ¨ä¸€ä»½æŠ¥å‘Šä¸­ã€‚

此外,在报告过程中,你必须测试该问题是å¦å‘生在其他内核版本上。因此,如果您
知é“如何在一个新å¯åŠ¨çš„系统上快速é‡çŽ°é—®é¢˜ï¼Œå°†ä½¿æ‚¨çš„工作更加轻æ¾ã€‚

注æ„:报告åªå‘生过一次的问题往往是没有结果的,因为它们å¯èƒ½æ˜¯ç”±äºŽå®‡å®™è¾å°„导
致的ä½ç¿»è½¬ã€‚所以你应该å°è¯•é€šè¿‡é‡çŽ°é—®é¢˜æ¥æŽ’除这ç§æƒ…况,然åŽå†ç»§ç»­ã€‚如果你有
足够的ç»éªŒæ¥åŒºåˆ†ç”±äºŽç¡¬ä»¶æ•…障引起的一次性错误和难以é‡çŽ°çš„罕è§å†…核问题,å¯ä»¥
忽略这个建议。


稳定版或长期支æŒå†…核的回归?
-----------------------------

    *如果您正é¢ä¸´ç¨³å®šç‰ˆæˆ–长期支æŒç‰ˆæœ¬çº¿çš„回归(例如从5.10.4更新到5.10.5时出现
    故障),请查看åŽæ–‡â€œæŠ¥å‘Šç¨³å®šç‰ˆå’Œé•¿æœŸæ”¯æŒå†…核线的回归â€å°èŠ‚。*

稳定版和长期支æŒå†…核版本线中的回归是Linuxå¼€å‘人员éžå¸¸å¸Œæœ›è§£å†³çš„问题,这样的
问题甚至比主线开å‘分支中的回归更ä¸åº”出现,因为它们会很快影å“到很多人。开å‘人员
希望尽快了解此类问题,因此有一个简化æµç¨‹æ¥æŠ¥å‘Šè¿™äº›é—®é¢˜ã€‚注æ„,使用更新内核版
本线的回归(比如从5.9.15切æ¢åˆ°5.10.5时出现故障)ä¸ç¬¦åˆæ¡ä»¶ã€‚


你需è¦å°†é—®é¢˜æŠ¥å‘Šåˆ°ä½•å¤„
------------------------

    *定ä½å¯èƒ½å¼•èµ·é—®é¢˜çš„驱动程åºæˆ–内核å­ç³»ç»Ÿã€‚找出其开å‘人员期望的报告的方å¼
    å’Œä½ç½®ã€‚注æ„:大多数情况下ä¸ä¼šæ˜¯bugzilla.kernel.org,因为问题通常需è¦é€š
    过邮件å‘é€ç»™ç»´æŠ¤äººå‘˜å’Œå…¬å…±é‚®ä»¶åˆ—表。*

将报告å‘é€ç»™åˆé€‚的人是至关é‡è¦çš„,因为Linux内核是一个大项目,大多数开å‘人员
åªç†Ÿæ‚‰å…¶ä¸­çš„一å°éƒ¨åˆ†ã€‚例如,相当多的程åºå‘˜åªå…³å¿ƒä¸€ä¸ªé©±åŠ¨ç¨‹åºï¼Œæ¯”如一个WiFi
芯片驱动程åºï¼›å®ƒçš„å¼€å‘人员å¯èƒ½å¯¹ç–远的或ä¸ç›¸å…³çš„“å­ç³»ç»Ÿâ€ï¼ˆå¦‚TCP堆栈ã€
PCIe/PCIå­ç³»ç»Ÿã€å†…存管ç†æˆ–文件系统)的内部知识了解很少或完全ä¸äº†è§£ã€‚

问题在于:Linux内核缺少一个,å¯ä»¥ç®€å•åœ°å°†é—®é¢˜å½’档并让需è¦äº†è§£å®ƒçš„å¼€å‘人员了
解它的,中心化缺陷跟踪器。这就是为什么你必须找到正确的途径æ¥è‡ªå·±æŠ¥å‘Šé—®é¢˜ã€‚
您å¯ä»¥åœ¨è„šæœ¬çš„帮助下åšåˆ°è¿™ä¸€ç‚¹ï¼ˆè§ä¸‹æ–‡ï¼‰ï¼Œä½†å®ƒä¸»è¦é’ˆå¯¹çš„是内核开å‘人员和专
家。对于其他人æ¥è¯´ï¼ŒMAINTAINERS(维护人员)文件是更好的选择。

如何阅读MAINTAINERS维护者文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

为了说明如何使用 :ref:`MAINTAINERS <maintainers>` 文件,让我们å‡è®¾æ‚¨çš„笔记
本电脑中的WiFi在更新内核åŽçªç„¶å‡ºçŽ°äº†é”™è¯¯è¡Œä¸ºã€‚è¿™ç§æƒ…况下å¯èƒ½æ˜¯WiFi驱动的问
题。显然,它也å¯èƒ½ç”±äºŽé©±åŠ¨åŸºäºŽçš„æŸäº›ä»£ç ï¼Œä½†é™¤éžä½ æ€€ç–‘有这样的东西会附ç€åœ¨
驱动程åºä¸Šã€‚如果真的是其他的问题,驱动程åºçš„å¼€å‘人员会让åˆé€‚的人å‚与进æ¥ã€‚

é—憾的是,没有通用且简å•çš„办法æ¥æ£€æŸ¥å“ªä¸ªä»£ç é©±åŠ¨äº†ç‰¹å®šç¡¬ä»¶ç»„件。

在WiFi驱动出现问题的情况下,你å¯èƒ½æƒ³æŸ¥çœ‹ ``lspci -k`` 的输出,因为它列出了
PCI/PCIe总线上的设备和驱动它的内核模å—::

       [user@something ~]$ lspci -k
       [...]
       3a:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
         Subsystem: Bigfoot Networks, Inc. Device 1535
         Kernel driver in use: ath10k_pci
         Kernel modules: ath10k_pci
       [...]

但如果你的WiFi芯片通过USB或其他内部总线连接,这ç§æ–¹æ³•å°±è¡Œä¸é€šäº†ã€‚在这ç§æƒ…况
下,您å¯èƒ½éœ€è¦æ£€æŸ¥æ‚¨çš„WiFi管ç†å™¨æˆ– ``ip link`` 的输出。寻找有问题的网络接å£
çš„å称,它å¯èƒ½ç±»ä¼¼äºŽâ€œwlp58s0â€ã€‚æ­¤å称å¯ä»¥ç”¨æ¥æ‰¾åˆ°é©±åŠ¨å®ƒçš„模å—::

       [user@something ~]$ realpath --relative-to=/sys/module//sys/class/net/wlp58s0/device/driver/module
       ath10k_pci

如果这些技巧ä¸èƒ½è¿›ä¸€æ­¥å¸®åŠ©æ‚¨ï¼Œè¯·å°è¯•åœ¨ç½‘上æœç´¢å¦‚何缩å°ç›¸å…³é©±åŠ¨ç¨‹åºæˆ–å­ç³»ç»Ÿ
的范围。如果你ä¸ç¡®å®šæ˜¯å“ªä¸€ä¸ªï¼šè¯•ç€çŒœä¸€ä¸‹ï¼Œå³ä½¿ä½ çŒœå¾—ä¸å¥½ï¼Œä¹Ÿä¼šæœ‰äººä¼šå¸®åŠ©ä½ 
的。

一旦您知é“了相应的驱动程åºæˆ–å­ç³»ç»Ÿï¼Œæ‚¨å°±å¸Œæœ›åœ¨MAINTAINERS文件中æœç´¢å®ƒã€‚如果
是“ath10k_pciâ€ï¼Œæ‚¨ä¸ä¼šæ‰¾åˆ°ä»»ä½•ä¸œè¥¿ï¼Œå› ä¸ºå称太具体了。有时你需è¦åœ¨ç½‘上寻找
帮助;但在此之å‰ï¼Œè¯·å°è¯•ä½¿ç”¨ä¸€ä¸ªç¨çŸ­æˆ–修改过的å称æ¥æœç´¢MAINTAINERS文件,因
为这样你å¯èƒ½ä¼šå‘现类似这样的东西::

       QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
       Mail:          A. Some Human <shuman@example.com>
       Mailing list:  ath10k@lists.infradead.org
       Status:        Supported
       Web-page:      https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
       SCM:           git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
       Files:         drivers/net/wireless/ath/ath10k/

注æ„:如果您阅读在Linuxæºä»£ç æ ‘的根目录中找到的原始维护者文件,则行æ述将是
缩写。例如,“Mail:(邮件)â€å°†æ˜¯â€œM:â€ï¼Œâ€œMailing list:(邮件列表)â€å°†æ˜¯â€œLâ€ï¼Œ
“Status:(状æ€ï¼‰â€å°†æ˜¯â€œS:â€ã€‚此文件顶部有一段解释了这些和其他缩写。

首先查看“Statusâ€çŠ¶æ€è¡Œã€‚ç†æƒ³æƒ…况下,它应该得到“Supported(支æŒï¼‰â€æˆ–
“Maintained(维护)â€ã€‚如果状æ€ä¸ºâ€œObsolete(过时的)â€ï¼Œé‚£ä¹ˆä½ åœ¨ä½¿ç”¨ä¸€äº›è¿‡æ—¶çš„
方法,需è¦è½¬æ¢åˆ°æ–°çš„解决方案上。有时候,åªæœ‰åœ¨æ„Ÿåˆ°æœ‰åŠ¨åŠ›æ—¶ï¼Œæ‰ä¼šæœ‰äººä¸ºä»£ç 
æ供“Odd Fixesâ€ã€‚如果碰è§â€œOrphanâ€ï¼Œä½ å°±å®Œå…¨ä¸èµ°è¿äº†ï¼Œå› ä¸ºå†ä¹Ÿæ²¡æœ‰äººå…³å¿ƒä»£ç 
了,åªå‰©ä¸‹è¿™äº›é€‰é¡¹:准备好与问题共存,自己修å¤å®ƒï¼Œæˆ–者找一个愿æ„ä¿®å¤å®ƒçš„程åºå‘˜ã€‚

检查状æ€åŽï¼Œå¯»æ‰¾ä»¥â€œbug:â€å¼€å¤´çš„一行:它将告诉你在哪里å¯ä»¥æ‰¾åˆ°å­ç³»ç»Ÿç‰¹å®šçš„缺
陷跟踪器æ¥æ交你的问题。上é¢çš„例å­æ²¡æœ‰æ­¤è¡Œã€‚大多数部分都是这样,因为 Linux
内核的开å‘完全是由邮件驱动的。很少有å­ç³»ç»Ÿä½¿ç”¨ç¼ºé™·è·Ÿè¸ªå™¨ï¼Œä¸”其中åªæœ‰ä¸€éƒ¨åˆ†
ä¾èµ–于 bugzilla.kernel.org。

在这ç§ä»¥åŠå…¶ä»–很多情况下,你必须寻找以“Mail:â€å¼€å¤´çš„行。这些行æ到了特定代ç 
的维护者的å字和电å­é‚®ä»¶åœ°å€ã€‚也å¯ä»¥æŸ¥æ‰¾ä»¥â€œMailing list:â€å¼€å¤´çš„行,它告诉你
å¼€å‘代ç çš„公共邮件列表。你的报告之åŽéœ€è¦é€šè¿‡é‚®ä»¶å‘到这些地å€ã€‚å¦å¤–,对于所有
通过电å­é‚®ä»¶å‘é€çš„问题报告,一定è¦æŠ„é€ Linux Kernel Mailing List(LKML)
<linux-kernel@vger.kernel.org>。在以åŽé€šè¿‡é‚®ä»¶å‘é€é—®é¢˜æŠ¥å‘Šæ—¶ï¼Œä¸è¦é—æ¼ä»»ä½•
一个邮件列表!维护者都是大忙人,å¯èƒ½ä¼šæŠŠä¸€äº›å·¥ä½œç•™ç»™å­ç³»ç»Ÿç‰¹å®šåˆ—表上的其他开
å‘者;而 LKML 很é‡è¦ï¼Œå› ä¸ºéœ€è¦ä¸€ä¸ªå¯ä»¥æ‰¾åˆ°æ‰€æœ‰é—®é¢˜æŠ¥å‘Šçš„地方。


借助脚本找到维护者
~~~~~~~~~~~~~~~~~~~~

对于手头有Linuxæºç çš„人æ¥è¯´ï¼Œæœ‰ç¬¬äºŒä¸ªå¯ä»¥æ‰¾åˆ°åˆé€‚的报告地点的选择:脚本
“scripts/get_maintainer.plâ€ï¼Œå®ƒå°è¯•æ‰¾åˆ°æ‰€æœ‰è¦è”系的人。它会查询MAINTAINERS
文件,并需è¦ç”¨ç›¸å…³æºä»£ç çš„路径æ¥è°ƒç”¨ã€‚对于编译æˆæ¨¡å—的驱动程åºï¼Œç»å¸¸å¯ä»¥ç”¨
这样的命令找到::

       $ modinfo ath10k_pci | grep filename | sed 's!/lib/modules/.*/kernel/!!; s!filename:!!; s!\.ko\(\|\.xz\)!!'
       drivers/net/wireless/ath/ath10k/ath10k_pci.ko

将其中的部分内容传递给脚本::

       $ ./scripts/get_maintainer.pl -f drivers/net/wireless/ath/ath10k*
       Some Human <shuman@example.com> (supporter:QUALCOMM ATHEROS ATH10K WIRELESS DRIVER)
       Another S. Human <asomehuman@example.com> (maintainer:NETWORKING DRIVERS)
       ath10k@lists.infradead.org (open list:QUALCOMM ATHEROS ATH10K WIRELESS DRIVER)
       linux-wireless@vger.kernel.org (open list:NETWORKING DRIVERS (WIRELESS))
       netdev@vger.kernel.org (open list:NETWORKING DRIVERS)
       linux-kernel@vger.kernel.org (open list)

ä¸è¦æŠŠä½ çš„报告å‘给所有的人。å‘é€ç»™ç»´æŠ¤è€…,脚本称之为“supporter:â€ï¼›å¦å¤–抄é€
代ç æœ€ç›¸å…³çš„é‚®ä»¶åˆ—è¡¨ï¼Œä»¥åŠ Linux 内核邮件列表(LKML)。在此例中,你需è¦å°†æŠ¥
å‘Šå‘é€ç»™ “Some Human <shuman@example.com>†,并抄é€
“ath10k@lists.infradead.orgâ€å’Œâ€œlinux-kernel@vger.kernel.orgâ€ã€‚

注æ„:如果你用 git 克隆了 Linux æºä»£ç ï¼Œä½ å¯èƒ½éœ€è¦ç”¨--git å†æ¬¡è°ƒç”¨
get_maintainer.pl。脚本会查看æ交历å²ï¼Œä»¥æ‰¾åˆ°æœ€è¿‘哪些人å‚与了相关代ç çš„编写,
因为他们å¯èƒ½ä¼šæ供帮助。但è¦å°å¿ƒä½¿ç”¨è¿™äº›ç»“果,因为它很容易让你误入歧途。
例如,这ç§æƒ…况常常会å‘生在很少被修改的地方(比如è€æ—§çš„或未维护的驱动程åºï¼‰ï¼š
有时这样的代ç ä¼šåœ¨æ ‘级清ç†æœŸé—´è¢«æ ¹æœ¬ä¸å…³å¿ƒæ­¤é©±åŠ¨ç¨‹åºçš„å¼€å‘者修改。


æœç´¢çŽ°æœ‰æŠ¥å‘Šï¼ˆç¬¬äºŒéƒ¨åˆ†ï¼‰
--------------------------

    *在缺陷追踪器或问题相关邮件列表的存档中彻底æœç´¢å¯èƒ½ä¸Žæ‚¨çš„问题匹é…的报告。
    如果找到匹é…的报告,请加入讨论而ä¸æ˜¯å‘é€æ–°æŠ¥å‘Šã€‚*

如å‰æ‰€è¿°ï¼šæŠ¥å‘Šä¸€ä¸ªåˆ«äººå·²ç»æ出的问题,对æ¯ä¸ªäººæ¥è¯´éƒ½æ˜¯æµªè´¹æ—¶é—´ï¼Œå°¤å…¶æ˜¯ä½œä¸ºæŠ¥å‘Š
人的你。这就是为什么你应该å†æ¬¡æœç´¢çŽ°æœ‰çš„报告。现在你已ç»çŸ¥é“问题需è¦æŠ¥å‘Šåˆ°å“ªé‡Œã€‚
如果是邮件列表,那么一般在 `lore.kernel.org <https://lore.kernel.org/>`_ å¯ä»¥
找到相应存档。

但有些列表è¿è¡Œåœ¨å…¶ä»–地方。例如å‰é¢æ­¥éª¤ä¸­å½“例å­çš„ath10k WiFi驱动程åºå°±æ˜¯è¿™ç§
情况。但是你通常å¯ä»¥åœ¨ç½‘上很容易地找到这些列表的档案。例如æœç´¢â€œarchive
ath10k@lists.infradead.orgâ€ï¼Œå°†å¼•å¯¼æ‚¨åˆ°ath10k邮件列表的信æ¯é¡µï¼Œè¯¥é¡µé¢é¡¶éƒ¨é“¾æŽ¥
到其 `列表存档 <https://lists.infradead.org/pipermail/ath10k/>`_ 。é—憾的是,
这个列表和其他一些列表缺ä¹æœç´¢å…¶å­˜æ¡£çš„功能。在这ç§æƒ…况下å¯ä»¥ä½¿ç”¨å¸¸è§„的互è”网
æœç´¢å¼•æ“Žï¼Œå¹¶æ·»åŠ ç±»ä¼¼â€œsite:lists.infadead.org/pipermail/ath10k/â€è¿™
æ ·çš„æœç´¢æ¡ä»¶ï¼Œè¿™ä¼šæŠŠç»“æžœé™åˆ¶åœ¨è¯¥é“¾æŽ¥ä¸­çš„档案。

也请进一步æœç´¢ç½‘络ã€LKMLå’Œbugzilla.kernel.org网站。

有关如何æœç´¢ä»¥åŠåœ¨æ‰¾åˆ°åŒ¹é…报告时如何æ“作的详细信æ¯ï¼Œè¯·å‚阅上é¢çš„“æœç´¢çŽ°æœ‰æŠ¥å‘Š
(第一部分)â€ã€‚

ä¸è¦æ€¥ç€å®ŒæˆæŠ¥å‘Šè¿‡ç¨‹çš„这一步:花30到60分钟甚至更多的时间å¯ä»¥ä¸ºä½ å’Œå…¶ä»–äººèŠ‚çœ /
å‡å°‘相当多的时间和麻烦。


安装一个新的内核进行测试
--------------------------

    *除éžæ‚¨å·²ç»åœ¨è¿è¡Œæœ€æ–°çš„“主线â€Linux内核,å¦åˆ™æœ€å¥½åœ¨æŠ¥å‘Šæµç¨‹å‰å®‰è£…它。在
    æŸäº›æƒ…况下,使用最新的“稳定版â€Linux进行测试和报告也是å¯ä»¥æŽ¥å—的替代方案;
    在åˆå¹¶çª—å£æœŸé—´ï¼Œè¿™å®žé™…上å¯èƒ½æ˜¯æœ€å¥½çš„方法,但在开å‘阶段最好还是暂åœå‡ å¤©ã€‚
    无论你选择什么版本,最好使用“普通â€æž„建。忽略这些建议会大大增加您的报告
    被拒ç»æˆ–忽略的风险。*

正如第一步的详细解释中所æ到的:与大多数程åºå‘˜ä¸€æ ·ï¼Œä¸Žå¤§å¤šæ•°ç¨‹åºå‘˜ä¸€æ ·ï¼ŒLinux
内核开å‘人员ä¸å–œæ¬¢èŠ±æ—¶é—´å¤„ç†ä»–们维护的æºä»£ç ä¸­æ ¹æœ¬ä¸ä¼šå‘生的问题的报告。这åª
会浪费æ¯ä¸ªäººçš„时间,尤其是你的时间。这就是为什么在报告问题之å‰ï¼Œæ‚¨å¿…须先确认
问题ä»ç„¶å­˜åœ¨äºŽæœ€æ–°çš„上游代ç ä¸­ï¼Œè¿™ç¬¦åˆæ¯ä¸ªäººçš„利益。您å¯ä»¥å¿½ç•¥æ­¤å»ºè®®ï¼Œä½†å¦‚å‰
所述:这样åšä¼šæžå¤§åœ°å¢žåŠ é—®é¢˜æŠ¥å‘Šè¢«æ‹’ç»æˆ–被忽略的风险。

内核“最新上游â€çš„范围通常指:

 * 安装一个主线内核;最新的稳定版内核也å¯ä»¥æ˜¯ä¸€ä¸ªé€‰æ‹©ï¼Œä½†å¤§å¤šæ•°æ—¶å€™éƒ½æœ€å¥½é¿å…。
   长期支æŒå†…核(有时称为“LTS内核â€ï¼‰ä¸é€‚åˆæ­¤æµç¨‹ã€‚下一å°èŠ‚将更详细地解释所有
   这些。

 * 下一å°èŠ‚æ述获å–和安装这样一个内核的方法。它还指出了使用预编译内核是å¯ä»¥çš„,
   但普通的内核更好,这æ„味ç€ï¼šå®ƒæ˜¯ç›´æŽ¥ä½¿ç”¨ä»Ž `kernel.org <https://kernel.org/>`_
   获得的Linuxæºä»£ç æž„建并且没有任何方å¼ä¿®æ”¹æˆ–增强。


选择适åˆæµ‹è¯•çš„版本
~~~~~~~~~~~~~~~~~~~~

å‰å¾€ `kernel.org <https://kernel.org/>`_ æ¥å†³å®šä½¿ç”¨å“ªä¸ªç‰ˆæœ¬ã€‚忽略那个写ç€
“Latest release最新版本â€çš„巨大黄色按钮,往下看有一个表格。在表格的顶部,你会
看到一行以“mainlineâ€å¼€å¤´çš„字样,大多数情况下它会指å‘一个版本å·ç±»ä¼¼â€œ5.8-rc2â€
的预å‘布版本。如果是这样的è¯ï¼Œä½ å°†éœ€è¦ä½¿ç”¨è¿™ä¸ªä¸»çº¿å†…核进行测试。ä¸è¦è®©â€œrcâ€
å“到你,这些“开å‘版内核â€å®žé™…上éžå¸¸å¯é â€”—而且你已ç»æŒ‰ç…§ä¸Šé¢çš„指示åšäº†å¤‡ä»½ï¼Œ
ä¸æ˜¯å—?

大概æ¯ä¹åˆ°å周,“mainlineâ€å¯èƒ½ä¼šç»™ä½ æŒ‡å‡ºä¸€ä¸ªç‰ˆæœ¬å·ç±»ä¼¼â€œ5.7â€çš„æ­£å¼ç‰ˆæœ¬ã€‚如果
碰è§è¿™ç§æƒ…况,请考虑暂åœæŠ¥å‘Šè¿‡ç¨‹ï¼Œç›´åˆ°ä¸‹ä¸€ä¸ªç‰ˆæœ¬çš„第一个预å‘布(5.8-rc1)出
现在 `kernel.org <https://kernel.org/>`_ 上。这是因为 Linux çš„å¼€å‘周期正在
两周的“åˆå¹¶çª—å£â€å†…。大部分的改动和所有干扰性的改动都会在这段时间内被åˆå¹¶åˆ°
下一个版本中。在此期间使用主线是比较å±é™©çš„。内核开å‘者通常也很忙,å¯èƒ½æ²¡æœ‰
多余的时间æ¥å¤„ç†é—®é¢˜æŠ¥å‘Šã€‚这也是很有å¯èƒ½åœ¨åˆå¹¶çª—å£ä¸­åº”用了许多修改æ¥ä¿®å¤ä½ 
所é¢ä¸´çš„问题;这就是为什么你很快就得用一个新的内核版本é‡æ–°æµ‹è¯•ï¼Œå°±åƒä¸‹é¢â€œå‘
布报告åŽçš„责任â€ä¸€èŠ‚中所述的那样。

这就是为什么è¦ç­‰åˆ°åˆå¹¶çª—å£ç»“æŸåŽæ‰åŽ»åšã€‚但是如果你处ç†çš„是一些ä¸åº”该等待的
东西,则无需这样åšã€‚在这ç§æƒ…况下,å¯ä»¥è€ƒè™‘通过 git 获å–最新的主线内核(è§ä¸‹
文),或者使用 kernel.org 上æ供的最新稳定版本。如果 mainline 因为æŸäº›åŽŸå› 
ä¸æ— æ³•æ­£å¸¸å·¥ä½œï¼Œé‚£ä¹ˆä½¿ç”¨å®ƒä¹Ÿæ˜¯å¯ä»¥æŽ¥å—的。总的æ¥è¯´ï¼šç”¨å®ƒæ¥é‡çŽ°é—®é¢˜ä¹Ÿæ¯”完全
ä¸æŠ¥å‘Šé—®é¢˜è¦å¥½ã€‚

最好é¿å…在åˆå¹¶çª—å£å¤–使用最新的稳定版内核,因为所有修å¤éƒ½å¿…须首先应用于主线。
这就是为什么检查最新的主线内核是如此é‡è¦ï¼šä½ å¸Œæœ›çœ‹åˆ°åœ¨æ—§ç‰ˆæœ¬çº¿ä¿®å¤çš„任何问题
需è¦å…ˆåœ¨ä¸»çº¿ä¿®å¤ï¼Œç„¶åŽæ‰èƒ½å¾—到回传,这å¯èƒ½éœ€è¦å‡ å¤©æˆ–几周。å¦ä¸€ä¸ªåŽŸå› æ˜¯ï¼šæ‚¨
希望的修å¤å¯¹äºŽå›žä¼ æ¥è¯´å¯èƒ½å¤ªéš¾æˆ–太冒险;因此å†æ¬¡æŠ¥å‘Šé—®é¢˜ä¸å¤ªå¯èƒ½æ”¹å˜ä»»ä½•äº‹æƒ…。

这些方é¢ä¹Ÿéƒ¨åˆ†è¡¨æ˜Žäº†ä¸ºä»€ä¹ˆé•¿æœŸæ”¯æŒå†…核(有时称为“LTS内核â€ï¼‰ä¸é€‚åˆæŠ¥å‘Šæµç¨‹ï¼š
它们与当å‰ä»£ç çš„è·ç¦»å¤ªè¿œã€‚因此,先去测试主线,然åŽå†æŒ‰æµç¨‹èµ°ï¼šå¦‚果主线没有
出现问题,æµç¨‹å°†æŒ‡å¯¼æ‚¨å¦‚何在旧版本线中修å¤å®ƒã€‚

如何获得新的 Linux 内核
~~~~~~~~~~~~~~~~~~~~~~~~~

ä½ å¯ä»¥ä½¿ç”¨é¢„编译或自编译的内核进行测试;如果你选择åŽè€…,å¯ä»¥ä½¿ç”¨ git 获å–æº
代ç ï¼Œæˆ–者下载其 tar 存档包。

**使用预编译的内核** :这往往是最快速ã€æœ€ç®€å•ã€æœ€å®‰å…¨çš„方法——尤其是在你ä¸ç†Ÿ
悉 Linux 内核的情况下。问题是:å‘行商或附加存储库æ供的大多数版本都是从修改
过的Linuxæºä»£ç æž„建的。因此它们ä¸æ˜¯æ™®é€šçš„,通常ä¸é€‚åˆäºŽæµ‹è¯•å’Œé—®é¢˜æŠ¥å‘Šï¼šè¿™äº›
更改å¯èƒ½ä¼šå¯¼è‡´æ‚¨é¢ä¸´çš„问题或以æŸç§æ–¹å¼å½±å“问题。

但是如果您使用的是æµè¡Œçš„Linuxå‘行版,那么您就很幸è¿äº†ï¼šå¯¹äºŽå¤§éƒ¨åˆ†çš„å‘行版,
您å¯ä»¥åœ¨ç½‘上找到包å«æœ€æ–°ä¸»çº¿æˆ–稳定版本Linux内核包的存储库。使用这些是完全å¯
以的,åªè¦ä»Žå­˜å‚¨åº“çš„æ述中确认它们是普通的或者至少接近普通。此外,请确ä¿è½¯ä»¶
包包å«kernel.org上æ供的最新版本内核。如果这些软件包的时间超过一周,那么它们
å¯èƒ½å°±ä¸åˆé€‚了,因为新的主线和稳定版内核通常至少æ¯å‘¨å‘布一次。

请注æ„,您以åŽå¯èƒ½éœ€è¦æ‰‹åŠ¨æž„建自己的内核:有时这是调试或测试修å¤ç¨‹åºæ‰€å¿…需的,
如åŽæ–‡æ‰€è¿°ã€‚还è¦æ³¨æ„,预编译的内核å¯èƒ½ç¼ºå°‘在出现panicã€Oopsã€warning或BUGæ—¶
解ç å†…核打å°çš„消æ¯æ‰€éœ€çš„调试符å·ï¼›å¦‚果您计划解ç è¿™äº›æ¶ˆæ¯ï¼Œæœ€å¥½è‡ªå·±ç¼–译内核
(有关详细信æ¯ï¼Œè¯·å‚阅本å°èŠ‚结尾和“解ç å¤±è´¥ä¿¡æ¯â€å°èŠ‚)。

**使用git** :熟悉 git çš„å¼€å‘者和有ç»éªŒçš„ Linux 用户通常最好直接从
`kernel.org 上的官方开å‘仓库
<https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/>`_
中获å–最新的 Linux 内核æºä»£ç ã€‚这些很å¯èƒ½æ¯”最新的主线预å‘布版本更新一些。ä¸
用担心:它们和正å¼çš„预å‘布版本一样å¯é ï¼Œé™¤éžå†…核的开å‘周期目å‰æ­£å¤„于åˆå¹¶çª—
å£ä¸­ã€‚ä¸è¿‡å³ä¾¿å¦‚此,它们也是相当å¯é çš„。

**常规方法** :ä¸ç†Ÿæ‚‰ git 的人通常最好从 `kernel.org <https://kernel.org/>`_
下载æºç çš„tar 存档包。

如何实际构建一个内核并ä¸åœ¨è¿™é‡Œæ述,因为许多网站已ç»è§£é‡Šäº†å¿…è¦çš„步骤。如果
你是新手,å¯ä»¥è€ƒè™‘按照那些建议使用 ``make localmodconfig`` æ¥åšï¼Œå®ƒå°†å°è¯•èŽ·
å–你当å‰å†…核的é…置,然åŽæ ¹æ®ä½ çš„系统进行一些调整。这样åšå¹¶ä¸èƒ½ä½¿ç¼–译出æ¥çš„
内核更好,但å¯ä»¥æ›´å¿«åœ°ç¼–译。

注æ„:如果您正在处ç†æ¥è‡ªå†…核的panncã€Oopsã€warning或BUG,请在é…置内核时å°è¯•
å¯ç”¨ CONFIG_KALLSYMS 选项。此外,还å¯ä»¥å¯ç”¨ CONFIG_DEBUG_KERNEL å’Œ
CONFIG_DEBUG_INFOï¼›åŽè€…是相关选项,但åªæœ‰å¯ç”¨å‰è€…æ‰èƒ½å¼€å¯ã€‚请注æ„,
CONFIG_DEBUG_INFO 会需è¦æ›´å¤šå‚¨å­˜ç©ºé—´æ¥æž„建内核。但这是值得的,因为这些选项将
å…许您ç¨åŽç²¾ç¡®å®šä½è§¦å‘问题的确切代ç è¡Œã€‚下é¢çš„“解ç å¤±è´¥ä¿¡æ¯â€ä¸€èŠ‚对此进行了更
详细的解释。

但请记ä½ï¼šå§‹ç»ˆè®°å½•é‡åˆ°çš„问题,以防难以é‡çŽ°ã€‚å‘é€æœªè§£ç çš„报告总比ä¸æŠ¥å‘Šè¦å¥½ã€‚


检查“污染â€æ ‡å¿—
----------------

    *ç¡®ä¿æ‚¨åˆšåˆšå®‰è£…的内核在è¿è¡Œæ—¶ä¸ä¼šâ€œæ±¡æŸ“â€è‡ªå·±ã€‚*

正如上é¢å·²ç»è¯¦ç»†ä»‹ç»è¿‡çš„:当å‘生一些å¯èƒ½ä¼šå¯¼è‡´ä¸€äº›çœ‹èµ·æ¥å®Œå…¨ä¸ç›¸å…³çš„åŽç»­é”™
误的事情时,内核会设置一个“污染â€æ ‡å¿—。这就是为什么你需è¦æ£€æŸ¥ä½ åˆšåˆšå®‰è£…的内
核是å¦æœ‰è®¾ç½®æ­¤æ ‡å¿—。如果有的è¯ï¼Œå‡ ä¹Žåœ¨ä»»ä½•æƒ…况下你都需è¦åœ¨æŠ¥å‘Šé—®é¢˜ä¹‹å‰å…ˆæ¶ˆ
除它。详细的æ“作方法请看上é¢çš„章节。


用新内核é‡çŽ°é—®é¢˜
------------------

    *在您刚刚安装的内核中å¤çŽ°è¿™ä¸ªé—®é¢˜ã€‚如果它没有出现,请查看下方åªå‘生在
    稳定版和长期支æŒå†…核的问题的说明。*

检查这个问题是å¦å‘生在你刚刚安装的新 Linux 内核版本上。如果新内核已ç»ä¿®å¤äº†ï¼Œ
å¯ä»¥è€ƒè™‘使用此版本线,放弃报告问题。但是请记ä½ï¼Œåªè¦å®ƒæ²¡æœ‰åœ¨ `kernel.org
<https://kernel.org/>`_ 的稳定版和长期版(以åŠç”±è¿™äº›ç‰ˆæœ¬è¡ç”Ÿå‡ºæ¥çš„厂商内核)
中得到修å¤ï¼Œå…¶ä»–用户å¯èƒ½ä»ç„¶ä¼šå—到它的困扰。如果你喜欢使用其中的一个,或
者åªæ˜¯æƒ³å¸®åŠ©å®ƒä»¬çš„用户,请å‰å¾€ä¸‹é¢çš„“报告åªå‘生在较旧内核版本线的问题â€ä¸€èŠ‚。


优化å¤çŽ°é—®é¢˜çš„æè¿°
--------------------

    *优化你的笔记:试ç€æ‰¾åˆ°å¹¶å†™å‡ºæœ€ç›´æŽ¥çš„å¤çŽ°é—®é¢˜çš„方法。确ä¿æœ€ç»ˆç»“果包å«æ‰€
    有é‡è¦çš„细节,åŒæ—¶è®©ç¬¬ä¸€æ¬¡å¬è¯´çš„人容易阅读和ç†è§£ã€‚如果您在此过程中学到
    了一些东西,请考虑å†æ¬¡æœç´¢å…³äºŽè¯¥é—®é¢˜çš„现有报告。*

过于å¤æ‚的报告会让别人很难ç†è§£ã€‚因此请尽é‡æ‰¾åˆ°ä¸€ä¸ªå¯ä»¥ç›´æŽ¥æè¿°ã€æ˜“于以书é¢
å½¢å¼ç†è§£çš„å†çŽ°æ–¹æ³•ã€‚包å«æ‰€æœ‰é‡è¦çš„细节,但åŒæ—¶ä¹Ÿè¦å°½é‡ä¿æŒç®€çŸ­ã€‚

在这在å‰é¢çš„步骤中,你很å¯èƒ½å·²ç»äº†è§£äº†ä¸€äº›å…³äºŽä½ æ‰€é¢ä¸´çš„问题的点。利用这些
知识,å†æ¬¡æœç´¢å¯ä»¥è½¬è€ŒåŠ å…¥çš„现有报告。


解ç å¤±è´¥ä¿¡æ¯
-------------

    *如果失败涉åŠâ€œpanicâ€ã€â€œOopsâ€ã€â€œwarningâ€æˆ–“BUGâ€ï¼Œè¯·è€ƒè™‘解ç å†…核日志以查找
    触å‘错误的代ç è¡Œã€‚*

当内核检测到内部问题时,它会记录一些有关已执行代ç çš„ä¿¡æ¯ã€‚这使得在æºä»£ç ä¸­ç²¾
确定ä½è§¦å‘问题的行并显示如何调用它æˆä¸ºå¯èƒ½ã€‚但åªæœ‰åœ¨é…置内核时å¯ç”¨äº†
CONFIG_DEBUG_INFO å’Œ CONFIG_KALLSYMS选项时,这ç§æ–¹æ³•æ‰èµ·æ•ˆã€‚如果已å¯ç”¨æ­¤é€‰é¡¹ï¼Œ
请考虑解ç å†…核日志中的信æ¯ã€‚这将使我们更容易ç†è§£æ˜¯ä»€ä¹ˆå¯¼è‡´äº†â€œpanicâ€ã€â€œOopsâ€ã€
“warningâ€æˆ–“BUGâ€ï¼Œä»Žè€Œå¢žåŠ äº†æœ‰äººæ供修å¤çš„几率。

解ç å¯ä»¥é€šè¿‡Linuxæºä»£ç æ ‘中的脚本æ¥å®Œæˆã€‚如果您è¿è¡Œçš„内核是之å‰è‡ªå·±ç¼–译的,
这样这样调用它::

	[user@something ~]$ sudo dmesg | ./linux-5.10.5/scripts/decode_stacktrace.sh ./linux-5.10.5/vmlinux
	/usr/lib/debug/lib/modules/5.10.10-4.1.x86_64/vmlinux /usr/src/kernels/5.10.10-4.1.x86_64/

如果您è¿è¡Œçš„是打包好的普通内核,则å¯èƒ½éœ€è¦å®‰è£…带有调试符å·çš„相应包。然åŽæŒ‰ä»¥ä¸‹
æ–¹å¼è°ƒç”¨è„šæœ¬ï¼ˆå¦‚æžœå‘行版未打包,则å¯èƒ½éœ€è¦ä»ŽLinuxæºä»£ç èŽ·å–)::

	[user@something ~]$ sudo dmesg | ./linux-5.10.5/scripts/decode_stacktrace.sh \
	/usr/lib/debug/lib/modules/5.10.10-4.1.x86_64/vmlinux /usr/src/kernels/5.10.10-4.1.x86_64/

脚本将解ç å¦‚下的日志行,这些日志行显示内核在å‘生错误时正在执行的代ç çš„地å€::

	[   68.387301] RIP: 0010:test_module_init+0x5/0xffa [test_module]

解ç ä¹‹åŽï¼Œè¿™äº›è¡Œå°†å˜æˆè¿™æ ·::

	[   68.387301] RIP: 0010:test_module_init (/home/username/linux-5.10.5/test-module/test-module.c:16) test_module

在本例中,执行的代ç æ˜¯ä»Žæ–‡ä»¶â€œ~/linux-5.10.5/test-module/test-module.câ€æž„建的,
错误出现在第16行的指令中。

该脚本也会如此解ç ä»¥â€œCall traceâ€å¼€å¤´çš„部分中æ到的地å€ï¼Œè¯¥éƒ¨åˆ†æ˜¾ç¤ºå‡ºçŽ°é—®é¢˜çš„
函数的路径。此外,脚本还会显示内核正在执行的代ç éƒ¨åˆ†çš„汇编输出。

注æ„,如果你没法åšåˆ°è¿™ä¸€ç‚¹ï¼Œåªéœ€è·³è¿‡è¿™ä¸€æ­¥ï¼Œå¹¶åœ¨æŠ¥å‘Šä¸­è¯´æ˜ŽåŽŸå› ã€‚如果你幸è¿çš„
è¯ï¼Œå¯èƒ½æ— éœ€è§£ç ã€‚如果需è¦çš„è¯ï¼Œä¹Ÿè®¸æœ‰äººä¼šå¸®ä½ åšè¿™ä»¶äº‹æƒ…。还è¦æ³¨æ„,这åªæ˜¯è§£
ç å†…核堆栈跟踪的几ç§æ–¹æ³•ä¹‹ä¸€ã€‚有时需è¦é‡‡å–ä¸åŒçš„步骤æ¥æ£€ç´¢ç›¸å…³çš„详细信æ¯ã€‚
别担心,如果您碰到的情况需è¦è¿™æ ·åšï¼Œå¼€å‘人员会告诉您该怎么åšã€‚


对回归的特别关照
-----------------

    *如果您的问题是回归问题,请尽å¯èƒ½ç¼©å°å¼•å…¥é—®é¢˜æ—¶çš„范围。*

Linux 首席开å‘者 Linus Torvalds 认为 Linux 内核永远ä¸åº”æ¶åŒ–,这就是为什么他
认为回归是ä¸å¯æŽ¥å—的,并希望看到它们被迅速修å¤ã€‚这就是为什么引入了回归的改
动导致的问题若无法通过其他方å¼å¿«é€Ÿè§£å†³ï¼Œé€šå¸¸ä¼šè¢«è¿…速撤销。因此,报告回归有
点åƒâ€œçŽ‹ç‚¸â€ï¼Œä¼šè¿…速得到修å¤ã€‚但è¦åšåˆ°è¿™ä¸€ç‚¹ï¼Œéœ€è¦çŸ¥é“导致回归的å˜åŒ–。通常情
况下,è¦ç”±æŠ¥å‘Šè€…æ¥è¿½æŸ¥ç½ªé­ç¥¸é¦–,因为维护者往往没有时间或手头设置ä¸ä¾¿æ¥è‡ªè¡Œ
é‡çŽ°å®ƒã€‚

有一个å«åšâ€œäºŒåˆ†â€çš„过程å¯ä»¥æ¥å¯»æ‰¾å˜åŒ–,这在
“Documentation/translations/zh_CN/admin-guide/bug-bisect.rstâ€æ–‡æ¡£ä¸­è¿›è¡Œäº†è¯¦ç»†
çš„æ述,这个过程通常需è¦ä½ æž„建å到二å个内核镜åƒï¼Œæ¯æ¬¡éƒ½å°è¯•åœ¨æž„建下一个镜åƒ
之å‰é‡çŽ°é—®é¢˜ã€‚是的,这需è¦èŠ±è´¹ä¸€äº›æ—¶é—´ï¼Œä½†ä¸ç”¨æ‹…心,它比大多数人想象的è¦å¿«å¾—多。
多äºäº†â€œbinary search二进制æœç´¢â€ï¼Œè¿™å°†å¼•å¯¼ä½ åœ¨æºä»£ç ç®¡ç†ç³»ç»Ÿä¸­æ‰¾åˆ°å¯¼è‡´å›žå½’çš„æ交。
一旦你找到它,就在网上æœç´¢å…¶ä¸»é¢˜ã€æ交ID和缩短的æ交ID(æ交IDçš„å‰12个字符)。
如果有的è¯ï¼Œè¿™å°†å¼•å¯¼æ‚¨æ‰¾åˆ°å…³äºŽå®ƒçš„现有报告。

需è¦æ³¨æ„的是,二分法需è¦ä¸€ç‚¹çªé—¨ï¼Œä¸æ˜¯æ¯ä¸ªäººéƒ½æ‡‚得诀çªï¼Œä¹Ÿéœ€è¦ç›¸å½“多的努力,
ä¸æ˜¯æ¯ä¸ªäººéƒ½æ„¿æ„投入。尽管如此,还是强烈建议自己进行一次二分。如果你真的
ä¸èƒ½æˆ–者ä¸æƒ³èµ°è¿™æ¡è·¯ï¼Œè‡³å°‘è¦æ‰¾å‡ºæ˜¯å“ªä¸ªä¸»çº¿å†…核引入的回归。比如说从 5.5.15
切æ¢åˆ° 5.8.4 的时候出现了一些问题,那么至少å¯ä»¥å°è¯•ä¸€ä¸‹ç›¸è¿‘的所有的主线版本
(5.6ã€5.7 å’Œ 5.8)æ¥æ£€æŸ¥å®ƒæ˜¯ä»€ä¹ˆæ—¶å€™å‡ºçŽ°çš„。除éžä½ æƒ³åœ¨ä¸€ä¸ªç¨³å®šç‰ˆæˆ–长期支æŒ
内核中找到一个回归,å¦åˆ™è¦é¿å…测试那些编å·æœ‰ä¸‰æ®µçš„版本(5.6.12ã€5.7.8),因
为那会使结果难以解释,å¯èƒ½ä¼šè®©ä½ çš„测试å˜å¾—无用。一旦你找到了引入回归的主è¦
版本,就å¯ä»¥æ”¾å¿ƒåœ°ç»§ç»­æŠ¥å‘Šäº†ã€‚但请记ä½ï¼šåœ¨ä¸çŸ¥é“罪é­ç¥¸é¦–的情况下,开å‘人员
是å¦èƒ½å¤Ÿæ供帮助å–决于手头的问题。有时他们å¯èƒ½ä¼šä»ŽæŠ¥å‘Šä¸­ç¡®è®¤æ˜¯ä»€ä¹ˆå‡ºçŽ°äº†é—®
题,并能修å¤å®ƒï¼›æœ‰æ—¶ä»–们å¯èƒ½æ— æ³•æ供帮助,除éžä½ è¿›è¡ŒäºŒåˆ†ã€‚

当处ç†å›žå½’问题时,请确ä¿ä½ æ‰€é¢ä¸´çš„问题真的是由内核引起的,而ä¸æ˜¯ç”±å…¶ä»–东西
引起的,如上文所述。

在整个过程中,请记ä½ï¼šåªæœ‰å½“旧内核和新内核的é…置相似时,问题æ‰ç®—回归。最好
的方法是:把é…置文件(``.config``)从旧的工作内核直接å¤åˆ¶åˆ°ä½ å°è¯•çš„æ¯ä¸ªæ–°å†…
核版本。之åŽè¿è¡Œ ``make oldnoconfig`` æ¥è°ƒæ•´å®ƒä»¥é€‚应新版本的需è¦ï¼Œè€Œä¸å¯ç”¨
任何新的功能,因为那些功能也å¯èƒ½å¯¼è‡´å›žå½’。


撰写并å‘é€æŠ¥å‘Š
---------------

    *通过详细æ述问题æ¥å¼€å§‹ç¼–写报告。记得包括以下æ¡ç›®ï¼šæ‚¨ä¸ºå¤çŽ°è€Œå®‰è£…的最新
    内核版本ã€ä½¿ç”¨çš„Linuxå‘行版以åŠå…³äºŽå¦‚何å¤çŽ°è¯¥é—®é¢˜çš„说明。如果å¯èƒ½ï¼Œå°†å†…
    核构建é…置(.config)和 ``dmesg`` 的输出放在网上的æŸä¸ªåœ°æ–¹ï¼Œå¹¶é“¾æŽ¥åˆ°å®ƒã€‚
    包å«æˆ–上传所有其他å¯èƒ½ç›¸å…³çš„ä¿¡æ¯ï¼Œå¦‚Oops的输出/截图或æ¥è‡ª ``lspci``
    的输出。一旦你写完了这个主è¦éƒ¨åˆ†ï¼Œè¯·åœ¨ä¸Šæ–¹æ’入一个正常长度的段è½å¿«é€Ÿæ¦‚
    述问题和影å“。å†åœ¨æ­¤ä¹‹ä¸Šæ·»åŠ ä¸€ä¸ªç®€å•æ述问题的å¥å­ï¼Œä»¥å¾—到人们的阅读。
    现在给出一个更短的æ述性标题或主题。然åŽå°±å¯ä»¥åƒMAINTAINERS文件告诉你的
    那样å‘é€æˆ–æ交报告了,除éžä½ åœ¨å¤„ç†ä¸€ä¸ªâ€œé«˜ä¼˜å…ˆçº§é—®é¢˜â€ï¼šå®ƒä»¬éœ€è¦æŒ‰ç…§ä¸‹é¢
    “高优先级问题的特殊处ç†â€æ‰€è¿°ç‰¹åˆ«å…³ç…§ã€‚*

现在你已ç»å‡†å¤‡å¥½äº†ä¸€åˆ‡ï¼Œæ˜¯æ—¶å€™å†™ä½ çš„报告了。上文å‰è¨€ä¸­é“¾æŽ¥çš„三篇文档对如何
写报告åšäº†éƒ¨åˆ†è§£é‡Šã€‚这就是为什么本文将åªæåˆ°ä¸€äº›åŸºæœ¬çš„å†…å®¹ä»¥åŠ Linux 内核特
有的东西。

有一点是符åˆè¿™ä¸¤ç±»çš„:你的报告中最关键的部分是标题/主题ã€ç¬¬ä¸€å¥è¯å’Œç¬¬ä¸€æ®µã€‚
å¼€å‘者ç»å¸¸ä¼šæ”¶åˆ°è®¸å¤šé‚®ä»¶ã€‚因此,他们往往åªæ˜¯èŠ±å‡ ç§’钟的时间æµè§ˆä¸€ä¸‹é‚®ä»¶ï¼Œç„¶
åŽå†å†³å®šç»§ç»­ä¸‹ä¸€å°æˆ–仔细查看。因此,你报告的开头越好,有人研究并帮助你的机
会就越大。这就是为什么你应该暂时忽略他们,先写出详细的报告。;-)

æ¯ä»½æŠ¥å‘Šéƒ½åº”æåŠçš„事项
~~~~~~~~~~~~~~~~~~~~~~~~

详细æ述你的问题是如何å‘生在你安装的新纯净内核上的。试ç€åŒ…å«ä½ ä¹‹å‰å†™çš„和优
化过的分步说明,概述你和其他人如何é‡çŽ°è¿™ä¸ªé—®é¢˜ï¼›åœ¨æžå°‘数无法é‡çŽ°çš„情况下,
å°½é‡æè¿°ä½ åšäº†ä»€ä¹ˆæ¥è§¦å‘它。

还应包括其他人为了解该问题åŠå…¶çŽ¯å¢ƒè€Œå¯èƒ½éœ€è¦çš„所有相关信æ¯ã€‚实际需è¦çš„东西
在很大程度上å–决于具体问题,但有些事项你总是应该包括在内:

 * ``cat /proc/version`` çš„è¾“å‡ºï¼Œå…¶ä¸­åŒ…å« Linux 内核版本å·å’Œæž„建时的编译器。

 * 机器正在è¿è¡Œçš„ Linux å‘行版( ``hostnamectl | grep “Operating System“`` )

 * CPU å’Œæ“作系统的架构( ``uname -mi`` )

 * 如果您正在处ç†å›žå½’,并进行了二分,请æåŠå¯¼è‡´å›žå½’çš„å˜æ›´çš„主题和æ交ID。

许多情况下,让读你报告的人多了解两件事也是明智之举:

 * 用于构建 Linux 内核的é…置(“.configâ€æ–‡ä»¶ï¼‰

 * 内核的信æ¯ï¼Œä½ ä»Ž ``dmesg`` 得到的信æ¯å†™åˆ°ä¸€ä¸ªæ–‡ä»¶é‡Œã€‚ç¡®ä¿å®ƒä»¥åƒâ€œLinux
   version 5.8-1 (foobar@example.com) (gcc (GCC) 10.2.1, GNU ld version
   2.34) #1 SMP Mon Aug 3 14:54:37 UTC 2020â€è¿™æ ·çš„行开始,如果没有,那么第
   一次å¯åŠ¨é˜¶æ®µçš„é‡è¦ä¿¡æ¯å·²ç»è¢«ä¸¢å¼ƒäº†ã€‚在这ç§æƒ…况下,å¯ä»¥è€ƒè™‘使用
   ``journalctl -b 0 -k`` ;或者你也å¯ä»¥é‡å¯ï¼Œé‡çŽ°è¿™ä¸ªé—®é¢˜ï¼Œç„¶åŽè°ƒç”¨
   ``dmesg`` 。

这两个文件很大,所以直接把它们放到你的报告中是个å主æ„。如果你是在缺陷跟踪
器中æ交问题,那么将它们附加到工å•ä¸­ã€‚如果你通过邮件报告问题,ä¸è¦ç”¨é™„件附
上它们,因为那会使邮件å˜å¾—太大,å¯ä»¥æŒ‰ä¸‹åˆ—之一åšï¼š

 * 将文件上传到æŸä¸ªå…¬å¼€çš„地方(你的网站,公共文件粘贴æœåŠ¡ï¼Œåœ¨
   `bugzilla.kernel.org <https://bugzilla.kernel.org/>`_ 上创建的工å•â€¦â€¦ï¼‰ï¼Œ
   并在你的报告中放上链接。ç†æƒ³æƒ…况下请使用å…许这些文件ä¿å­˜å¾ˆå¤šå¹´çš„地方,因
   为它们å¯èƒ½åœ¨å¾ˆå¤šå¹´åŽå¯¹åˆ«äººæœ‰ç”¨ï¼›ä¾‹å¦‚ 5 年或 10 å¹´åŽï¼Œä¸€ä¸ªå¼€å‘者正在修改
   一些代ç ï¼Œè€Œè¿™äº›ä»£ç æ­£æ˜¯ä¸ºäº†ä¿®å¤ä½ çš„问题。

 * 把文件放在一边,然åŽè¯´æ˜Žä½ ä¼šåœ¨ä»–人回å¤æ—¶å†å•ç‹¬å‘é€ã€‚åªè¦è®°å¾—报告å‘出去åŽï¼Œ
   真正åšåˆ°è¿™ä¸€ç‚¹å°±å¯ä»¥äº†ã€‚;-)

æ供这些东西å¯èƒ½æ˜¯æ˜Žæ™ºçš„
~~~~~~~~~~~~~~~~~~~~~~~~~~

æ ¹æ®é—®é¢˜çš„ä¸åŒï¼Œä½ å¯èƒ½éœ€è¦æ供更多的背景数æ®ã€‚这里有一些关于æ供什么比较好
的建议:

 * 如果你处ç†çš„是内核的“warningâ€ã€â€œOOPSâ€æˆ–“panicâ€ï¼Œè¯·åŒ…å«å®ƒã€‚如果你ä¸èƒ½å¤åˆ¶
   粘贴它,试ç€ç”¨netconsole网络终端远程跟踪或者至少æ‹ä¸€å¼ å±å¹•çš„照片。

 * 如果问题å¯èƒ½ä¸Žä½ çš„电脑硬件有关,请说明你使用的是什么系统。例如,如果你的
   显å¡æœ‰é—®é¢˜ï¼Œè¯·æåŠå®ƒçš„制造商,显å¡çš„åž‹å·ï¼Œä»¥åŠä½¿ç”¨çš„芯片。如果是笔记本电
   脑,请æåŠå®ƒçš„åž‹å·å称,但尽é‡ç¡®ä¿æ„义明确。例如“戴尔 XPS 13â€å°±ä¸å¾ˆæ˜Žç¡®ï¼Œ
   因为它å¯èƒ½æ˜¯ 2012 年的那款,那款除了看起æ¥å’ŒçŽ°åœ¨é”€å”®çš„没有什么ä¸åŒä¹‹å¤–,
   两者没有任何共åŒä¹‹å¤„。因此,在这ç§æƒ…况下,è¦åŠ ä¸Šå‡†ç¡®çš„åž‹å·ï¼Œä¾‹å¦‚ 2019
   年内推出的 XPS 13 åž‹å·ä¸ºâ€œ9380â€æˆ–“7390â€ã€‚åƒâ€œè”想 Thinkpad T590â€è¿™æ ·çš„åå­—
   也有些å«ç³Šä¸æ¸…:这款笔记本有带独立显å¡å’Œä¸å¸¦çš„å­åž‹å·ï¼Œæ‰€ä»¥è¦å°½é‡æ‰¾åˆ°å‡†ç¡®
   çš„åž‹å·å称或注明主è¦éƒ¨ä»¶ã€‚

 * 说明正在使用的相关软件。如果你在加载模å—æ—¶é‡åˆ°äº†é—®é¢˜ï¼Œä½ è¦è¯´æ˜Žæ­£åœ¨ä½¿ç”¨çš„
   kmodã€systemd å’Œ udev 的版本。如果其中一个 DRM 驱动出现问题,你è¦è¯´æ˜Ž
   libdrm å’Œ Mesa 的版本;还è¦è¯´æ˜Žä½ çš„ Wayland åˆæˆå™¨æˆ– X-Server åŠå…¶é©±åŠ¨ã€‚
   如果你有文件系统问题,请注明相应的文件系统实用程åºçš„版本(e2fsprogs,
   btrfs-progs, xfsprogs……)。

 * 从内核中收集å¯èƒ½æœ‰ç”¨çš„é¢å¤–ä¿¡æ¯ã€‚例如, ``lspci -nn`` 的输出å¯ä»¥å¸®åŠ©åˆ«äºº
   识别你使用的硬件。如果你的硬件有问题,你甚至å¯ä»¥ç»™å‡º ``sudo lspci -vvv``
   的结果,因为它æ供了组件是如何é…置的信æ¯ã€‚对于一些问题,å¯èƒ½æœ€å¥½åŒ…å«
   ``/proc/cpuinfo`` , ``/proc/ioports`` , ``/proc/iomem`` ,
   ``/proc/modules`` 或 ``/proc/scsi/scsi`` 等文件的内容。一些å­ç³»ç»Ÿè¿˜æ
   供了收集相关信æ¯çš„工具。 ``alsa-info.sh`` `就是这样一个工具,它是音频/声
   音å­ç³»ç»Ÿå¼€å‘者æ供的  <https://www.alsa-project.org/wiki/AlsaInfo>`_ 。

这些例å­åº”该会给你一些知识点,让你知é“附上什么数æ®å¯èƒ½æ˜¯æ˜Žæ™ºçš„,但你自己也
è¦æƒ³ä¸€æƒ³ï¼Œå“ªäº›æ•°æ®å¯¹åˆ«äººä¼šæœ‰å¸®åŠ©ã€‚ä¸è¦å¤ªæ‹…心忘记一些东西,因为开å‘人员会è¦
求æ供他们需è¦çš„é¢å¤–细节。但从一开始就把所有é‡è¦çš„东西都æ供出æ¥ï¼Œä¼šå¢žåŠ åˆ«
人仔细查看的机会。


é‡è¦éƒ¨åˆ†ï¼šæŠ¥å‘Šçš„开头
~~~~~~~~~~~~~~~~~~~~~~

现在你已ç»å‡†å¤‡å¥½äº†æŠ¥å‘Šçš„详细部分,让我们进入最é‡è¦çš„部分:开头几å¥ã€‚现在到
报告的最å‰é¢ï¼Œåœ¨ä½ åˆšæ‰å†™çš„部分之å‰åŠ ä¸Šç±»ä¼¼â€œThe detailed description:â€ï¼ˆè¯¦ç»†
æ述)这样的内容,并在最å‰é¢æ’入两个新行。现在写一个正常长度的段è½ï¼Œå¤§è‡´æ¦‚
述这个问题。去掉所有枯燥的细节,把é‡ç‚¹æ”¾åœ¨è¯»è€…需è¦çŸ¥é“的关键部分,以让人了
解这是怎么回事;如果你认为这个缺陷影å“了很多用户,就æ一下这点æ¥å¸å¼•å¤§å®¶å…³
注。

åšå¥½è¿™ä¸€ç‚¹åŽï¼Œåœ¨é¡¶éƒ¨å†æ’入两行,写一å¥è¯çš„摘è¦ï¼Œå¿«é€Ÿè§£é‡ŠæŠ¥å‘Šçš„内容。之åŽä½ 
è¦æ›´åŠ æŠ½è±¡ï¼Œä¸ºæŠ¥å‘Šå†™ä¸€ä¸ªæ›´çŸ­çš„主题/标题。

现在你已ç»å†™å¥½äº†è¿™éƒ¨åˆ†ï¼Œè¯·èŠ±ç‚¹æ—¶é—´æ¥ä¼˜åŒ–它,因为它是你的报告中最é‡è¦çš„部分:
很多人会先读这部分,然åŽæ‰ä¼šå†³å®šæ˜¯å¦å€¼å¾—花时间阅读其他部分。

çŽ°åœ¨å°±åƒ :ref:`MAINTAINERS <maintainers>` 维护者文件告诉你的那样å‘é€æˆ–æ交
报告,除éžå®ƒæ˜¯å‰é¢æ¦‚述的那些“高优先级问题â€ä¹‹ä¸€ï¼šåœ¨è¿™ç§æƒ…况下,请先阅读下一
å°èŠ‚,然åŽå†å‘é€æŠ¥å‘Šã€‚

高优先级问题的特殊处ç†
~~~~~~~~~~~~~~~~~~~~~~~~

高优先级问题的报告需è¦ç‰¹æ®Šå¤„ç†ã€‚

**éžå¸¸ä¸¥é‡çš„缺陷** :确ä¿åœ¨ä¸»é¢˜æˆ–å·¥å•æ ‡é¢˜ä»¥åŠç¬¬ä¸€æ®µä¸­æ˜Žæ˜¾æ ‡å‡º severeness
(éžå¸¸ä¸¥é‡çš„)。

**回归** :如果问题是一个回归,请在邮件的主题或缺陷跟踪器的标题中添加
[REGRESSION]。如果您没有进行二分,请至少注明您测试的最新主线版本(比如 5.7)
和出现问题的最新版本(比如 5.8)。如果您æˆåŠŸåœ°è¿›è¡Œäº†äºŒåˆ†ï¼Œè¯·æ³¨æ˜Žå¯¼è‡´å›žå½’
çš„æ交ID和主题。也请添加该å˜æ›´çš„作者到你的报告中;如果您需è¦å°†æ‚¨çš„缺陷æ交
到缺陷跟踪器中,请将报告以ç§äººé‚®ä»¶çš„å½¢å¼è½¬å‘给他,并注明报告æ交地点。

**安全问题** :对于这ç§é—®é¢˜ï¼Œä½ å°†å¿…须评估:如果细节被公开披露,是å¦ä¼šå¯¹å…¶ä»–
用户产生短期风险。如果ä¸ä¼šï¼Œåªéœ€æŒ‰ç…§æ‰€è¿°ç»§ç»­æŠ¥å‘Šé—®é¢˜ã€‚如果有此风险,你需è¦
ç¨å¾®è°ƒæ•´ä¸€ä¸‹æŠ¥å‘Šæµç¨‹ã€‚

 * 如果 MAINTAINERS 文件指示您通过邮件报告问题,请ä¸è¦æŠ„é€ä»»ä½•å…¬å…±é‚®ä»¶åˆ—表。

 * 如果你应该在缺陷跟踪器中æ交问题,请确ä¿å°†å·¥å•æ ‡è®°ä¸ºâ€œç§æœ‰â€æˆ–“安全问题â€ã€‚
   如果缺陷跟踪器没有æä¾›ä¿æŒæŠ¥å‘Šç§å¯†æ€§çš„方法,那就别想了,把你的报告以ç§äºº
   邮件的形å¼å‘é€ç»™ç»´æŠ¤è€…å§ã€‚

在这两ç§æƒ…况下,都一定è¦å°†æŠ¥å‘Šå‘到 MAINTAINERS 文件中“安全è”络â€éƒ¨åˆ†åˆ—出的
地å€ã€‚ç†æƒ³çš„情况是在å‘é€æŠ¥å‘Šçš„时候直接抄é€ä»–们。如果您在缺陷跟踪器中æ交了
报告,请将报告的文本转å‘到这些地å€ï¼›ä½†è¯·åœ¨æŠ¥å‘Šçš„顶部加上注释,表明您æ交了
报告,并附上工å•é“¾æŽ¥ã€‚

更多信æ¯è¯·å‚è§â€œDocumentation/translations/zh_CN/admin-guide/security-bugs.rstâ€ã€‚


å‘布报告åŽçš„责任
------------------

    *等待别人的å应,继续推进事情,直到你能够接å—这样或那样的结果。因此,请
    公开和åŠæ—¶åœ°å›žåº”任何询问。测试æ出的修å¤ã€‚积æžåœ°æµ‹è¯•ï¼šè‡³å°‘é‡æ–°æµ‹è¯•æ¯ä¸ª
    新主线版本的首个候选版本(RC),并报告你的结果。如果出现拖延,就å‹å¥½åœ°
    æ醒一下。如果你没有得到任何帮助或者未能满æ„,请试ç€è‡ªå·±å¸®åŠ©è‡ªå·±ã€‚*

如果你的报告éžå¸¸ä¼˜ç§€ï¼Œè€Œä¸”你真的很幸è¿ï¼Œé‚£ä¹ˆæŸä¸ªå¼€å‘者å¯èƒ½ä¼šç«‹å³å‘现导致问
题的原因;然åŽä»–们å¯èƒ½ä¼šå†™ä¸€ä¸ªè¡¥ä¸æ¥ä¿®å¤ã€æµ‹è¯•å®ƒï¼Œå¹¶ç›´æŽ¥å‘é€ç»™ä¸»çº¿é›†æˆï¼ŒåŒ
时标记它以便以åŽå›žæº¯åˆ°éœ€è¦å®ƒçš„稳定版和长期支æŒå†…核。那么你需è¦åšçš„就是回å¤
一å¥â€œThank you very muchâ€ï¼ˆéžå¸¸æ„Ÿè°¢ï¼‰ï¼Œç„¶åŽåœ¨å‘布åŽæ¢ä¸Šä¿®å¤å¥½çš„版本。

但这ç§ç†æƒ³çŠ¶å†µå¾ˆå°‘å‘生。这就是为什么你把报告拿出æ¥ä¹‹åŽå·¥ä½œæ‰å¼€å§‹ã€‚ä½ è¦åšçš„
事情è¦è§†æƒ…况而定,但通常会是下é¢åˆ—出的事情。但在深入研究细节之å‰ï¼Œè¿™é‡Œæœ‰å‡ 
件é‡è¦çš„事情,你需è¦è®°ä½è¿™éƒ¨åˆ†çš„过程。


关于进一步互动的一般建议
~~~~~~~~~~~~~~~~~~~~~~~~~~

**总是公开回å¤** :当你在缺陷跟踪器中æ交问题时,一定è¦åœ¨é‚£é‡Œå›žå¤ï¼Œä¸è¦ç§ä¸‹
è”系任何开å‘者。对于邮件报告,在回å¤æ‚¨æ”¶åˆ°çš„任何邮件时,总是使用“全部回å¤â€
功能。这包括带有任何你å¯èƒ½æƒ³è¦æ·»åŠ åˆ°ä½ çš„报告中的é¢å¤–æ•°æ®çš„邮件:进入邮件应
用程åºâ€œå·²å‘é€â€æ–‡ä»¶å¤¹ï¼Œå¹¶åœ¨é‚®ä»¶ä¸Šä½¿ç”¨â€œå…¨éƒ¨å›žå¤â€æ¥å›žå¤æŠ¥å‘Šã€‚è¿™ç§æ–¹æ³•å¯ä»¥ç¡®ä¿
公共邮件列表和其他所有å‚与者都能åŠæ—¶äº†è§£æƒ…况;它还能ä¿æŒé‚®ä»¶çº¿ç¨‹çš„完整性,
这对于邮件列表将所有相关邮件归为一类是éžå¸¸é‡è¦çš„。

åªæœ‰ä¸¤ç§æƒ…况ä¸é€‚åˆåœ¨ç¼ºé™·è·Ÿè¸ªå™¨æˆ–“全部回å¤â€ä¸­å‘表评论:

 * 有人让你ç§ä¸‹å‘东西。

 * 你被告知è¦å‘é€ä¸€äº›ä¸œè¥¿ï¼Œä½†æ³¨æ„到其中包å«éœ€è¦ä¿å¯†çš„æ•æ„Ÿä¿¡æ¯ã€‚在这ç§æƒ…况下,
   å¯ä»¥ç§ä¸‹å‘é€ç»™è¦æ±‚å‘é€çš„å¼€å‘者。但è¦åœ¨å·¥å•æˆ–邮件中注明你是这么åšçš„,这
   样其他人就知é“ä½ å°Šé‡äº†è¿™ä¸ªè¦æ±‚。

**在请求解释或帮助之å‰å…ˆç ”究一下** :在这部分过程中,有人å¯èƒ½ä¼šå‘Šè¯‰ä½ ç”¨å°šæœª
掌æ¡çš„技能åšä¸€äº›äº‹æƒ…。例如你å¯èƒ½ä¼šè¢«è¦æ±‚使用一些你从未å¬è¯´è¿‡çš„测试工具;或
者你å¯èƒ½ä¼šè¢«è¦æ±‚在 Linux 内核æºä»£ç ä¸Šåº”用一个补ä¸æ¥æµ‹è¯•å®ƒæ˜¯å¦æœ‰å¸®åŠ©ã€‚在æŸäº›
情况下,å‘个回å¤è¯¢é—®å¦‚何åšå°±å¯ä»¥äº†ã€‚但在走这æ¡è·¯ä¹‹å‰ï¼Œå°½é‡é€šè¿‡åœ¨äº’è”网上æœ
索自行找到答案;或者考虑在其他地方询问建议。比如询问朋å‹ï¼Œæˆ–者到你平时常去
çš„èŠå¤©å®¤æˆ–论å›å‘帖咨询。

**è¦æœ‰è€å¿ƒ** :如果你真的很幸è¿ï¼Œä½ å¯èƒ½ä¼šåœ¨å‡ ä¸ªå°æ—¶å†…收到对你的报告的答å¤ã€‚
但大多数情况下会花费更多的时间,因为维护者分散在全çƒå„地,因此å¯èƒ½åœ¨ä¸åŒçš„
时区——在那里他们已ç»äº«å—ç€è¿œç¦»é”®ç›˜çš„夜晚。

一般æ¥è¯´ï¼Œå†…核开å‘者需è¦ä¸€åˆ°äº”个工作日æ¥å›žå¤æŠ¥å‘Šã€‚有时会花费更长的时间,因
为他们å¯èƒ½æ­£å¿™äºŽåˆå¹¶çª—å£ã€å…¶ä»–工作ã€å‚加开å‘者会议,或者åªæ˜¯åœ¨äº«å—一个漫长
çš„æš‘å‡ã€‚

“高优先级的问题â€ï¼ˆè§ä¸Šé¢çš„解释)例外:维护者应该尽快解决这些问题;这就是为
什么你应该最多等待一个星期(如果是紧急的事情,则åªéœ€ä¸¤å¤©ï¼‰ï¼Œç„¶åŽå†å‘é€å‹å¥½
çš„æ醒。

有时维护者å¯èƒ½æ²¡æœ‰åŠæ—¶å›žå¤ï¼›æœ‰æ—¶å€™å¯èƒ½ä¼šå‡ºçŽ°åˆ†æ­§ï¼Œä¾‹å¦‚一个问题是å¦ç¬¦åˆå›žå½’
çš„æ¡ä»¶ã€‚在这ç§æƒ…况下,在邮件列表上æ出你的顾虑,并请求其他人公开或ç§ä¸‹å›žå¤
如何继续推进。如果失败了,å¯èƒ½åº”该让更高级别的维护者介入。如果是 WiFi 驱动,
那就是无线维护者;如果没有更高级别的维护者,或者其他一切努力都失败了,那
è¿™å¯èƒ½æ˜¯ä¸€ç§ç½•è§çš„ã€å¯ä»¥è®© Linus Torvalds å‚与进æ¥çš„情况。

**主动测试** :æ¯å½“一个新的主线内核版本的第一个预å‘布版本(rc1)å‘布的时候,
去检查一下这个问题是å¦å¾—到了解决,或者是å¦æœ‰ä»€ä¹ˆé‡è¦çš„å˜åŒ–。在工å•ä¸­æˆ–在
回å¤æŠ¥å‘Šçš„邮件中æåŠç»“果(确ä¿æ‰€æœ‰å‚与讨论的人都被抄é€ï¼‰ã€‚这将表明你的承诺
和你愿æ„帮忙。如果问题æŒç»­å­˜åœ¨ï¼Œå®ƒä¹Ÿä¼šæ醒开å‘者确ä¿ä»–们ä¸ä¼šå¿˜è®°å®ƒã€‚其他一
些ä¸å®šæœŸçš„é‡æ–°æµ‹è¯•ï¼ˆä¾‹å¦‚用rc3ã€rc5 和最终版本)也是一个好主æ„,但åªæœ‰åœ¨ç›¸å…³
的东西å‘生å˜åŒ–或者你正在写什么东西的时候æ‰æŠ¥å‘Šä½ çš„结果。

这些些常规的事情就ä¸è¯´äº†ï¼Œæˆ‘们æ¥è°ˆè°ˆæŠ¥å‘ŠåŽå¦‚何帮助解决问题的细节。

查询和测试请求
~~~~~~~~~~~~~~~

如果你的报告得到了回å¤åˆ™éœ€å±¥è¡Œä»¥ä¸‹è´£ä»»ï¼š

**检查与你打交é“的人** :大多数情况下,会是维护者或特定代ç åŒºåŸŸçš„å¼€å‘人员对
你的报告åšå‡ºå›žåº”。但由于问题通常是公开报告的,所以回å¤çš„å¯èƒ½æ˜¯ä»»ä½•äººâ€”—包括
那些想è¦å¸®å¿™çš„人,但最åŽå¯èƒ½ä¼šç”¨ä»–们的问题或请求引导你完全å离轨é“。这很少
å‘生,但这是快速上网æœæœçœ‹ä½ æ­£åœ¨ä¸Žè°äº’动是明智之举的许多原因之一。通过这样
åšï¼Œä½ ä¹Ÿå¯ä»¥çŸ¥é“你的报告是å¦è¢«æ­£ç¡®çš„人å¬åˆ°ï¼Œå› ä¸ºå¦‚果讨论没有导致满æ„的问题
解决方案而淡出,之åŽå¯èƒ½éœ€è¦æ醒维护者(è§ä¸‹æ–‡ï¼‰ã€‚

**查询数æ®** :通常你会被è¦æ±‚测试一些东西或æ供更多细节。尽快æ供所è¦æ±‚çš„ä¿¡
æ¯ï¼Œå› ä¸ºä½ å·²ç»å¾—到了å¯èƒ½ä¼šå¸®åŠ©ä½ çš„人的注æ„,你等待的时间越长就有越å¯èƒ½å¤±åŽ»
关注;如果你ä¸åœ¨æ•°ä¸ªå·¥ä½œæ—¥å†…æ供信æ¯ï¼Œç”šè‡³å¯èƒ½å‡ºçŽ°è¿™ç§ç»“果。

**测试请求** :当你被è¦æ±‚测试一个诊断补ä¸æˆ–å¯èƒ½çš„ä¿®å¤æ—¶ï¼Œä¹Ÿè¦å°½é‡åŠæ—¶æµ‹è¯•ã€‚
但è¦åšå¾—æ°å½“,一定ä¸è¦æ€¥äºŽæ±‚æˆï¼šæ··æ·†äº‹æƒ…很容易å‘生,这会给所有人带æ¥è®¸å¤šå›°
惑。例如一个常è§çš„错误是以为应用了一个带修å¤çš„建议补ä¸ï¼Œä½†äº‹å®žä¸Šå¹¶æ²¡æœ‰ã€‚å³
使是有ç»éªŒçš„测试人员也会å¶å°”å‘生这样的事情,但当有修å¤çš„内核和没有修å¤çš„内
核表现得一样时,他们大多时候会注æ„到。

当没有任何实质性进展时该怎么办
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

有些报告ä¸ä¼šå¾—到负有相关责任的 Linux 内核开å‘者的任何å应;或者围绕这个问题
的讨论有所å‘展,但æ¸æ¸æ·¡å‡ºï¼Œæ²¡æœ‰ä»»ä½•å®žè´¨å†…容产出。

在这ç§æƒ…况下,è¦ç­‰ä¸¤ä¸ªæ˜ŸæœŸï¼ˆæœ€å¥½æ˜¯ä¸‰ä¸ªæ˜ŸæœŸï¼‰åŽå†å‘出å‹å¥½çš„æ醒:也许当你的
报告到达时,维护者刚刚离开键盘一段时间,或者有更é‡è¦çš„事情è¦å¤„ç†ã€‚在写æ醒
信的时候,è¦å–„æ„地问一下,是å¦è¿˜éœ€è¦ä½ è¿™è¾¹æ供什么æ¥è®©äº‹æƒ…推进下去。如果报
告是通过邮件å‘出æ¥çš„,那就在邮件的第一行回å¤ä½ çš„åˆå§‹é‚®ä»¶ï¼ˆè§ä¸Šæ–‡ï¼‰ï¼Œå…¶ä¸­åŒ…
括下方的原始报告的完整引用:这是少数几ç§æƒ…况下,这样的“TOFUâ€ï¼ˆText Over,
Fullquote Under文字在上,完整引用在下)是正确的åšæ³•ï¼Œå› ä¸ºè¿™æ ·æ‰€æœ‰çš„收件人都
会以适当的顺åºç«‹å³è®©ç»†èŠ‚到手头上æ¥ã€‚

在æ醒之åŽï¼Œå†ç­‰ä¸‰å‘¨çš„回å¤ã€‚如果你ä»ç„¶æ²¡æœ‰å¾—到适当的å馈,你首先应该é‡æ–°è€ƒ
虑你的方法。你是å¦å¯èƒ½å°è¯•æŽ¥è§¦äº†é”™è¯¯çš„人?是ä¸æ˜¯æŠ¥å‘Šä¹Ÿè®¸ä»¤äººå感或者太混乱,
以至于人们决定完全远离它?排除这些因素的最好方法是:把报告给一两个熟悉
FLOSS 问题报告的人看,询问他们的æ„è§ã€‚åŒæ—¶å¾æ±‚他们关于如何继续推进的建议。
è¿™å¯èƒ½æ„味ç€ï¼šå‡†å¤‡ä¸€ä»½æ›´å¥½çš„报告,让这些人在你å‘出去之å‰å¯¹å®ƒè¿›è¡Œå®¡æŸ¥ã€‚这样
的方法完全å¯ä»¥ï¼›åªéœ€è¯´æ˜Žè¿™æ˜¯å…³äºŽè¿™ä¸ªé—®é¢˜çš„第二份改进的报告,并附上第一份报
告的链接。

如果报告是æ°å½“的,你å¯ä»¥å‘é€ç¬¬äºŒå°æ醒信;在其中询问为什么报告没有得到任何
回å¤ã€‚第二å°æ醒邮件的好时机是在新 Linux 内核版本的首个预å‘布版本('rc1')
å‘布åŽä¸ä¹…,因为无论如何你都应该在那个时候é‡æ–°æµ‹è¯•å¹¶æ供状æ€æ›´æ–°ï¼ˆè§ä¸Šæ–‡ï¼‰ã€‚

如果第二次æ醒的结果åˆåœ¨ä¸€å‘¨å†…没有任何å应,å¯ä»¥å°è¯•è”系上级维护者询问æ„è§ï¼š
å³ä½¿å†å¿™çš„维护者在这时候也至少应该å‘过æŸç§ç¡®è®¤ã€‚

è®°ä½è¦åšå¥½å¤±æœ›çš„准备:ç†æƒ³çŠ¶å†µä¸‹ç»´æŠ¤è€…最好对æ¯ä¸€ä¸ªé—®é¢˜æŠ¥å‘Šåšå‡ºå›žåº”,但他们
åªæœ‰ä¹‰åŠ¡è§£å†³ä¹‹å‰åˆ—出的“高优先级问题â€ã€‚所以,如果你得到的回å¤æ˜¯â€œè°¢è°¢ä½ çš„报告,
我目å‰æœ‰æ›´é‡è¦çš„问题è¦å¤„ç†ï¼Œåœ¨å¯é¢„è§çš„未æ¥æ²¡æœ‰æ—¶é—´åŽ»ç ”究这个问题â€ï¼Œé‚£è¯·ä¸
è¦å¤ªæ²®ä¸§ã€‚

也有å¯èƒ½åœ¨ç¼ºé™·è·Ÿè¸ªå™¨æˆ–列表中进行了一些讨论之åŽï¼Œä»€ä¹ˆéƒ½æ²¡æœ‰å‘生,æ醒也无助
于激励大家进行修å¤ã€‚è¿™ç§æƒ…况å¯èƒ½æ˜¯æ¯ç­æ€§çš„,但在 Linux 内核开å‘中确实会å‘生。
这些和其他得ä¸åˆ°å¸®åŠ©çš„原因在本文结尾处的“为什么有些问题在被报告åŽæ²¡æœ‰å¾—到
任何回应或者ä»ç„¶æ²¡æœ‰ä¿®å¤â€ä¸­è¿›è¡Œäº†è§£é‡Šã€‚

如果你没有得到任何帮助或问题最终没有得到解决,ä¸è¦æ²®ä¸§ï¼šLinux 内核是 FLOSS,
因此你ä»ç„¶å¯ä»¥è‡ªå·±å¸®åŠ©è‡ªå·±ã€‚例如,你å¯ä»¥è¯•ç€æ‰¾åˆ°å…¶ä»–å—å½±å“的人,和他们一
èµ·åˆä½œæ¥è§£å†³è¿™ä¸ªé—®é¢˜ã€‚这样的团队å¯ä»¥ä¸€èµ·å‡†å¤‡ä¸€ä»½æ–°çš„报告,æ到团队有多少人,
为什么你们认为这是应该得到解决的事情。也许你们还å¯ä»¥ä¸€èµ·ç¼©å°ç¡®åˆ‡åŽŸå› æˆ–引
入回归的å˜åŒ–,这往往会使修å¤æ›´å®¹æ˜“。而且如果è¿æ°”好的è¯ï¼Œå›¢é˜Ÿä¸­å¯èƒ½ä¼šæœ‰æ‡‚点
编程的人,也许能写出一个修å¤æ–¹æ¡ˆã€‚



“报告稳定版和长期支æŒå†…核线的回归â€çš„å‚考
------------------------------------------

本å°èŠ‚æ供了在稳定版和长期支æŒå†…核线中é¢å¯¹å›žå½’时需è¦æ‰§è¡Œçš„步骤的详细信æ¯ã€‚

ç¡®ä¿ç‰¹å®šç‰ˆæœ¬çº¿ä»ç„¶å—支æŒ
~~~~~~~~~~~~~~~~~~~~~~~~~

    *检查内核开å‘人员是å¦ä»ç„¶ç»´æŠ¤ä½ å…³å¿ƒçš„Linux内核版本线:去 kernel.org çš„
    首页,确ä¿æ­¤ç‰¹å®šç‰ˆæœ¬çº¿çš„最新版没有“[EOL]â€æ ‡è®°ã€‚*

大多数内核版本线åªæ”¯æŒä¸‰ä¸ªæœˆå·¦å³ï¼Œå› ä¸ºå»¶é•¿ç»´æŠ¤æ—¶é—´ä¼šå¸¦æ¥ç›¸å½“多的工作。因此,
æ¯å¹´åªä¼šé€‰æ‹©ä¸€ä¸ªç‰ˆæœ¬æ¥æ”¯æŒè‡³å°‘两年(通常是六年)。这就是为什么你需è¦æ£€æŸ¥
内核开å‘者是å¦è¿˜æ”¯æŒä½ å…³å¿ƒçš„版本线。

注æ„,如果 `kernel.org <https://kernel.org/>`_ 在首页上列出了两个“稳定â€ç‰ˆæœ¬ï¼Œ
你应该考虑切æ¢åˆ°è¾ƒæ–°çš„版本,而忘掉较旧的版本:对它的支æŒå¯èƒ½å¾ˆå¿«å°±ä¼šç»“æŸã€‚
然åŽï¼Œå®ƒå°†è¢«æ ‡è®°ä¸ºâ€œç”Ÿå‘½å‘¨æœŸç»“æŸâ€ï¼ˆEOL)。达到这个程度的版本线ä»ç„¶ä¼šåœ¨
`kernel.org <https://kernel.org/>`_ 首页上被显示一两周,但ä¸é€‚åˆç”¨äºŽæµ‹è¯•å’Œ
报告。

æœç´¢ç¨³å®šç‰ˆé‚®ä»¶åˆ—表
~~~~~~~~~~~~~~~~~~~

    *检查Linux稳定版邮件列表中的现有报告。*

也许你所é¢ä¸´çš„问题已ç»è¢«å‘现,并且已ç»æˆ–å³å°†è¢«ä¿®å¤ã€‚因此,请在 `Linux 稳定
版邮件列表的档案 <https://lore.kernel.org/stable/>`_ 中æœç´¢ç±»ä¼¼é—®é¢˜çš„报告。
如果你找到任何匹é…的问题,å¯ä»¥è€ƒè™‘加入讨论,除éžä¿®å¤å·¥ä½œå·²ç»å®Œæˆå¹¶è®¡åˆ’很快
得到应用。

用最新版本å¤çŽ°é—®é¢˜
~~~~~~~~~~~~~~~~~~~

    *从特定的版本线安装最新版本作为纯净内核。确ä¿è¿™ä¸ªå†…核没有被污染,并且ä»
    然存在问题,因为问题å¯èƒ½å·²ç»åœ¨é‚£é‡Œè¢«ä¿®å¤äº†ã€‚*

在投入更多时间到这个过程中之å‰ï¼Œä½ è¦æ£€æŸ¥è¿™ä¸ªé—®é¢˜æ˜¯å¦åœ¨ä½ å…³æ³¨çš„版本线的最新
版本中已ç»å¾—到了修å¤ã€‚这个内核需è¦æ˜¯çº¯å‡€çš„,在问题å‘生之å‰ä¸åº”该被污染,正
如上é¢å·²ç»åœ¨æµ‹è¯•ä¸»çº¿çš„过程中详细介ç»è¿‡çš„一样。

您是å¦æ˜¯ç¬¬ä¸€æ¬¡æ³¨æ„到供应商内核的回归?供应商的更改å¯èƒ½ä¼šå‘生å˜åŒ–。你需è¦é‡æ–°
检查排除æ¥è¿™ä¸ªé—®é¢˜ã€‚当您从5.10.4-vendor.42更新到5.10.5-vendor.43时,记录æŸå
çš„ä¿¡æ¯ã€‚然åŽåœ¨æµ‹è¯•äº†å‰ä¸€æ®µä¸­æ‰€è¿°çš„最新5.10版本之åŽï¼Œæ£€æŸ¥Linux 5.10.4的普通版本
是å¦ä¹Ÿå¯ä»¥æ­£å¸¸å·¥ä½œã€‚如果问题在那里出现,那就ä¸ç¬¦åˆä¸Šæ¸¸å›žå½’çš„æ¡ä»¶ï¼Œæ‚¨éœ€è¦åˆ‡æ¢
回主é€æ­¥æŒ‡å—æ¥æŠ¥å‘Šé—®é¢˜ã€‚

报告回归
~~~~~~~~~~

    *å‘Linux稳定版邮件列表å‘é€ä¸€ä¸ªç®€çŸ­çš„问题报告(stable@vger.kernel.org)。
    大致æ述问题,并解释如何å¤çŽ°ã€‚讲清楚首个出现问题的版本和最åŽä¸€ä¸ªå·¥ä½œæ­£å¸¸
    的版本。然åŽç­‰å¾…进一步的指示。*

当报告在稳定版或长期支æŒå†…核线内å‘生的回归(例如在从5.10.4更新到5.10.5时),
一份简短的报告足以快速报告问题。因此åªéœ€è¦ç²—略的æ述。

但是请注æ„,如果您能够指明引入问题的确切版本,这将对开å‘人员有很大帮助。因此
如果有时间的è¯ï¼Œè¯·å°è¯•ä½¿ç”¨æ™®é€šå†…核找到该版本。让我们å‡è®¾å‘行版å‘布Linux内核
5.10.5到5.10.8çš„æ›´æ–°æ—¶å‘生了故障。那么按照上é¢çš„指示,去检查该版本线中的最新
内核,比如5.10.9。如果问题出现,请å°è¯•æ™®é€š5.10.5,以确ä¿ä¾›åº”商应用的补ä¸ä¸ä¼š
干扰。如果问题没有出现,那么å°è¯•5.10.7,然åŽç›´åˆ°5.10.8或5.10.6(å–决于结果)
找到第一个引入问题的版本。在报告中写明这一点,并指出5.10.9ä»ç„¶å­˜åœ¨æ•…障。

å‰ä¸€æ®µåŸºæœ¬ç²—略地概述了“二分â€æ–¹æ³•ã€‚一旦报告出æ¥ï¼Œæ‚¨å¯èƒ½ä¼šè¢«è¦æ±‚åšä¸€ä¸ªæ­£ç¡®çš„
报告,因为它å…许精确地定ä½å¯¼è‡´é—®é¢˜çš„确切更改(然åŽå¾ˆå®¹æ˜“被æ¢å¤ä»¥å¿«é€Ÿä¿®å¤é—®é¢˜ï¼‰ã€‚
因此如果时间å…许,考虑立å³è¿›è¡Œé€‚当的二分。有关如何详细信æ¯ï¼Œè¯·å‚阅“对回归的
特别关照â€éƒ¨åˆ†å’Œæ–‡æ¡£â€œDocumentation/translations/zh_CN/admin-guide/bug-bisect.rstâ€ã€‚


“报告仅在旧内核版本线中å‘生的问题â€çš„å‚考
----------------------------------------

本节详细介ç»äº†å¦‚果无法用主线内核é‡çŽ°é—®é¢˜ï¼Œä½†å¸Œæœ›åœ¨æ—§ç‰ˆæœ¬çº¿ï¼ˆåˆç§°ç¨³å®šç‰ˆå†…核和
长期支æŒå†…核)中修å¤é—®é¢˜æ—¶éœ€è¦é‡‡å–的步骤。

有些修å¤å¤ªå¤æ‚
~~~~~~~~~~~~~~~

    *请åšå¥½å‡†å¤‡ï¼ŒæŽ¥ä¸‹æ¥çš„几个步骤å¯èƒ½æ— æ³•åœ¨æ—§ç‰ˆæœ¬ä¸­è§£å†³é—®é¢˜ï¼šä¿®å¤å¯èƒ½å¤ªå¤§æˆ–
    太冒险,无法移æ¤åˆ°é‚£é‡Œã€‚*

å³ä½¿æ˜¯å¾®å°çš„ã€çœ‹ä¼¼æ˜Žæ˜¾çš„代ç å˜åŒ–,有时也会带æ¥æ–°çš„ã€å®Œå…¨æ„想ä¸åˆ°çš„问题。稳
定版和长期支æŒå†…核的维护者éžå¸¸æ¸…楚这一点,因此他们åªå¯¹è¿™äº›å†…核进行符åˆ
“Documentation/translations/zh_CN/process/stable-kernel-rules.rstâ€ä¸­æ‰€åˆ—出的
规则的修改。

å¤æ‚或有风险的修改ä¸ç¬¦åˆæ¡ä»¶ï¼Œå› æ­¤åªèƒ½åº”用于主线。其他的修å¤å¾ˆå®¹æ˜“被回溯到
最新的稳定版和长期支æŒå†…核,但是风险太大,无法集æˆåˆ°æ—§ç‰ˆå†…核中。所以è¦æ³¨æ„
你所希望的修å¤å¯èƒ½æ˜¯é‚£äº›ä¸ä¼šè¢«å›žæº¯åˆ°ä½ æ‰€å…³å¿ƒçš„版本线的修å¤ä¹‹ä¸€ã€‚在这ç§æƒ…况
下,你将别无选择,è¦ä¹ˆå¿å—这个问题,è¦ä¹ˆåˆ‡æ¢åˆ°ä¸€ä¸ªè¾ƒæ–°çš„ Linux 版本,除éžä½ 
想自己把修å¤è¡¥ä¸åº”用到你的内核中。

通用准备
~~~~~~~~~~

    *执行上é¢â€œæŠ¥å‘Šä»…在旧内核版本线中å‘生的问题â€ä¸€èŠ‚中的å‰ä¸‰ä¸ªæ­¥éª¤ã€‚*

您需è¦æ‰§è¡Œæœ¬æŒ‡å—å¦ä¸€èŠ‚中已ç»æ述的几个步骤。这些步骤将让您:

 * 检查内核开å‘人员是å¦ä»ç„¶ç»´æŠ¤æ‚¨å…³å¿ƒçš„Linux内核版本行。

 * 在Linux稳定邮件列表中æœç´¢é€€å‡ºçš„报告。

 * 检查最新版本。


检查代ç åŽ†å²å’Œæœç´¢çŽ°æœ‰çš„讨论
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    *在Linux内核版本控制系统中æœç´¢ä¿®å¤ä¸»çº¿é—®é¢˜çš„更改,因为它的æ交消æ¯å¯èƒ½
    会告诉你修å¤æ˜¯å¦å·²ç»è®¡åˆ’好了支æŒã€‚如果你没有找到,æœç´¢é€‚当的邮件列表,
    寻找讨论此类问题或åŒè¡Œè¯„è®®å¯èƒ½ä¿®å¤çš„帖å­ï¼›ç„¶åŽæ£€æŸ¥è®¨è®ºæ˜¯å¦è®¤ä¸ºä¿®å¤ä¸é€‚
    åˆæ”¯æŒã€‚如果支æŒæ ¹æœ¬ä¸è¢«è€ƒè™‘,加入最新的讨论,询问是å¦æœ‰å¯èƒ½ã€‚*

在许多情况下,你所处ç†çš„问题会å‘生在主线上,但已在主线上得到了解决。修正它
çš„æ交也需è¦è¢«å›žæº¯æ‰èƒ½è§£å†³è¿™ä¸ªé—®é¢˜ã€‚这就是为什么你è¦æœç´¢å®ƒæˆ–任何相关讨论。

 * 首先å°è¯•åœ¨å­˜æ”¾ Linux 内核æºä»£ç çš„ Git 仓库中找到修å¤ã€‚ä½ å¯ä»¥é€šè¿‡
   `kernel.org 上的网页
   <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/>`_
   或 `GitHub ä¸Šçš„é•œåƒ <https://github.com/torvalds/linux>`_ æ¥å®žçŽ°ï¼›å¦‚果你
   有一个本地克隆,你也å¯ä»¥åœ¨å‘½ä»¤è¡Œç”¨ ``git log --grep=<pattern>`` æ¥æœç´¢ã€‚

   如果你找到了修å¤ï¼Œè¯·æŸ¥çœ‹æ交消æ¯çš„尾部是å¦åŒ…å«äº†ç±»ä¼¼è¿™æ ·çš„“稳定版标签â€ï¼š

          Cc: <stable@vger.kernel.org> # 5.4+

   åƒä¸Šé¢è¿™è¡Œï¼Œå¼€å‘者标记了安全修å¤å¯ä»¥å›žä¼ åˆ° 5.4 åŠä»¥åŽçš„版本。大多数情况
   下,它会在两周内被应用到那里,但有时需è¦æ›´é•¿çš„时间。

 * 如果æ交没有告诉你任何东西,或者你找ä¸åˆ°ä¿®å¤ï¼Œè¯·å†æ‰¾æ‰¾å…³äºŽè¿™ä¸ªé—®é¢˜çš„讨论。
   用你最喜欢的æœç´¢å¼•æ“Žæœç´¢ç½‘ç»œï¼Œä»¥åŠ `Linux kernel developers mailing
   list 内核开å‘者邮件列表 <https://lore.kernel.org/lkml/>`_ 的档案。也å¯ä»¥
   阅读上é¢çš„ `定ä½å¯¼è‡´é—®é¢˜çš„内核区域` 一节,然åŽæŒ‰ç…§è¯´æ˜Žæ‰¾åˆ°å¯¼è‡´é—®é¢˜çš„å­ç³»
   统:它的缺陷跟踪器或邮件列表存档中å¯èƒ½æœ‰ä½ è¦æ‰¾çš„答案。

 * 如果你看到了一个计划的修å¤ï¼Œè¯·æŒ‰ä¸Šæ‰€è¿°åœ¨ç‰ˆæœ¬æŽ§åˆ¶ç³»ç»Ÿä¸­æœç´¢å®ƒï¼Œå› ä¸ºæ交å¯
   能会告诉你是å¦å¯ä»¥è¿›è¡Œå›žæº¯ã€‚

   * 检查讨论中是å¦æœ‰ä»»ä½•è¿¹è±¡è¡¨æ˜Žï¼Œè¯¥ä¿®å¤ç¨‹åºå¯èƒ½é£Žé™©å¤ªå¤§ï¼Œæ— æ³•å›žæº¯åˆ°ä½ å…³å¿ƒ
     的版本线。如果是这样的è¯ï¼Œä½ å¿…é¡»å¿å—这个问题,或者切æ¢åˆ°åº”用了修å¤çš„内
     核版本线。

   * 如果修å¤çš„问题未包å«ç¨³å®šç‰ˆæ ‡ç­¾ï¼Œå¹¶ä¸”没有讨论过回溯问题,请加入讨论:如
     æžœåˆé€‚çš„è¯ï¼Œè¯·æåŠä½ æ‰€é¢å¯¹çš„问题的版本,以åŠä½ å¸Œæœ›çœ‹åˆ°å®ƒè¢«ä¿®å¤ã€‚


请求建议
~~~~~~~~~

    *å‰é¢çš„步骤之一应该会给出一个解决方案。如果ä»æœªèƒ½æˆåŠŸï¼Œè¯·å‘å¯èƒ½å¼•èµ·é—®é¢˜
    çš„å­ç³»ç»Ÿçš„维护人员询问建议;抄é€ç‰¹å®šå­ç³»ç»Ÿçš„邮件列表以åŠç¨³å®šç‰ˆé‚®ä»¶åˆ—表。*

如果å‰é¢çš„三个步骤都没有让你更接近解决方案,那么åªå‰©ä¸‹ä¸€ä¸ªé€‰æ‹©ï¼šè¯·æ±‚建议。
在你å‘ç»™å¯èƒ½æ˜¯é—®é¢˜æ ¹æºçš„å­ç³»ç»Ÿçš„维护者的邮件中这样åšï¼›æŠ„é€å­ç³»ç»Ÿçš„邮件列表
以åŠç¨³å®šç‰ˆé‚®ä»¶åˆ—表(stable@vger.kernel.org)。


为什么有些问题在报告åŽæ²¡æœ‰ä»»ä½•å›žåº”或ä»æœªè§£å†³ï¼Ÿ
===============================================

å½“å‘ Linux å¼€å‘者报告问题时,è¦æ³¨æ„åªæœ‰â€œé«˜ä¼˜å…ˆçº§çš„问题â€ï¼ˆå›žå½’ã€å®‰å…¨é—®é¢˜ã€ä¸¥
é‡é—®é¢˜ï¼‰æ‰ä¸€å®šä¼šå¾—到解决。如果维护者或其他人都失败了,Linus Torvalds 他自己
会确ä¿è¿™ä¸€ç‚¹ã€‚他们和其他内核开å‘者也会解决很多其他问题。但是è¦çŸ¥é“,有时他
们也会ä¸èƒ½æˆ–ä¸æ„¿å¸®å¿™ï¼›æœ‰æ—¶ç”šè‡³æ²¡æœ‰äººå‘报告给他们。

最好的解释就是那些内核开å‘者常常是在业余时间为 Linux 内核åšå‡ºè´¡çŒ®ã€‚内核中的
ä¸å°‘驱动程åºéƒ½æ˜¯ç”±è¿™æ ·çš„程åºå‘˜ç¼–写的,往往åªæ˜¯å› ä¸ºä»–们想让自己的硬件å¯ä»¥åœ¨
自己喜欢的æ“作系统上使用。

这些程åºå‘˜å¤§å¤šæ•°æ—¶å€™ä¼šå¾ˆä¹æ„ä¿®å¤åˆ«äººæŠ¥å‘Šçš„问题。但是没有人å¯ä»¥å¼ºè¿«ä»–们这样
åšï¼Œå› ä¸ºä»–们是自愿贡献的。

还有一些情况下,这些开å‘者真的很想解决一个问题,但å´ä¸èƒ½è§£å†³ï¼šæœ‰æ—¶ä»–们缺ä¹
硬件编程文档æ¥è§£å†³é—®é¢˜ã€‚è¿™ç§æƒ…况往往由于公开的文档太简陋,或者驱动程åºæ˜¯é€š
过逆å‘工程编写的。

业余开å‘者迟早也会ä¸å†å…³å¿ƒæŸé©±åŠ¨ã€‚也许他们的测试硬件å了,被更高级的玩æ„å–
代了,或者是太è€äº†ä»¥è‡³äºŽåªèƒ½åœ¨è®¡ç®—机åšç‰©é¦†é‡Œæ‰¾åˆ°ã€‚有时开å‘者根本就ä¸å…³å¿ƒä»–
们的代ç å’Œ Linux 了,因为在他们的生活中一些ä¸åŒçš„东西å˜å¾—æ›´é‡è¦äº†ã€‚在æŸäº›æƒ…
况下,没有人愿æ„接手维护者的工作——也没有人å¯ä»¥è¢«å¼ºè¿«ï¼Œå› ä¸ºå¯¹ Linux 内核的贡
献是自愿的。然而被é—弃的驱动程åºä»ç„¶å­˜åœ¨äºŽå†…核中:它们对人们ä»ç„¶æœ‰ç”¨ï¼Œåˆ é™¤
它们å¯èƒ½å¯¼è‡´å›žå½’。

对于那些为 Linux 内核工作而获得报酬的开å‘者æ¥è¯´ï¼Œæƒ…况并没有什么ä¸åŒã€‚这些人
现在贡献了大部分的å˜æ›´ã€‚但是他们的雇主迟早也会åœæ­¢å…³æ³¨ä»–们的代ç æˆ–者让程åº
员专注于其他事情。例如,硬件厂商主è¦é€šè¿‡é”€å”®æ–°ç¡¬ä»¶æ¥èµšé’±ï¼›å› æ­¤ï¼Œä»–们中的ä¸
少人并没有投入太多时间和精力æ¥ç»´æŠ¤ä»–们多年å‰å°±åœæ­¢é”€å”®çš„东西的 Linux 内核驱
动。ä¼ä¸šçº§ Linux å‘行商往往æŒç»­ç»´æŠ¤çš„时间比较长,但在新版本中往往会把对è€æ—§
和稀有硬件的支æŒæ”¾åœ¨ä¸€è¾¹ï¼Œä»¥é™åˆ¶èŒƒå›´ã€‚一旦公å¸æŠ›å¼ƒäº†ä¸€äº›ä»£ç ï¼Œå¾€å¾€ç”±ä¸šä½™è´¡
献者接手,但正如上é¢æ到的:他们迟早也会放下代ç ã€‚

优先级是一些问题没有被修å¤çš„å¦ä¸€ä¸ªåŽŸå› ï¼Œå› ä¸ºç»´æŠ¤è€…相当多的时候是被迫设置这
些优先级的,因为在 Linux 上工作的时间是有é™çš„。对于业余时间或者雇主给予他们
çš„å¼€å‘人员用于上游内核维护工作的时间也是如此。有时维护人员也会被报告淹没,
å³ä½¿ä¸€ä¸ªé©±åŠ¨ç¨‹åºå‡ ä¹Žå®Œç¾Žåœ°å·¥ä½œã€‚为了ä¸è¢«å®Œå…¨ç¼ ä½ï¼Œç¨‹åºå‘˜å¯èƒ½åˆ«æ— é€‰æ‹©ï¼Œåªèƒ½
对问题报告进行优先级排åºè€Œæ‹’ç»å…¶ä¸­çš„一些报告。

ä¸è¿‡è¿™äº›éƒ½ä¸ç”¨å¤ªè¿‡æ‹…心,很多驱动都有积æžçš„维护者,他们对尽å¯èƒ½å¤šçš„解决问题
相当感兴趣。


结æŸè¯­
=======

与其他å…è´¹/自由&å¼€æºè½¯ä»¶ï¼ˆFree/Libre & Open Source Software,FLOSS)相比,
å‘ Linux 内核开å‘者报告问题是很难的:这个文档的长度和å¤æ‚性以åŠå­—里行间的内
涵都说明了这一点。但目å‰å°±æ˜¯è¿™æ ·äº†ã€‚这篇文字的主è¦ä½œè€…希望通过记录现状æ¥ä¸º
以åŽæ”¹å–„è¿™ç§çŠ¶å†µæ‰“下一些基础。