summaryrefslogtreecommitdiff
path: root/Documentation/translations/zh_TW/admin-guide/reporting-issues.rst
blob: ea51342879c025574ad8b4ee2d3aecfca0251d0f (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
1336
1337
.. 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_TW.rst

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

:譯者:

 å³æƒ³æˆ Wu XiangCheng <bobwxc@email.cn>
 胡皓文 Hu Haowen <src.res.211@gmail.com>


報告å•é¡Œ
+++++++++


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

您é¢è‡¨çš„是å¦çˆ²åŒç³»åˆ—穩定版或長期支æŒå…§æ ¸çš„普通內核的回歸?是å¦ä»ç„¶å—支æŒï¼Ÿ
è«‹æœç´¢ `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_TW/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_TW/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_TW/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_TW/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_TW/admin-guide/bug-bisect.rstã€ã€‚


「報告僅在舊內核版本線中發生的å•é¡Œã€çš„åƒè€ƒ
------------------------------------------

本節詳細介紹了如果無法用主線內核é‡ç¾å•é¡Œï¼Œä½†å¸Œæœ›åœ¨èˆŠç‰ˆæœ¬ç·šï¼ˆåˆç¨±ç©©å®šç‰ˆå…§æ ¸å’Œ
長期支æŒå…§æ ¸ï¼‰ä¸­ä¿®å¾©å•é¡Œæ™‚需è¦æŽ¡å–的步驟。

有些修復太複雜
~~~~~~~~~~~~~~~

    *è«‹åšå¥½æº–備,接下來的幾個步驟å¯èƒ½ç„¡æ³•åœ¨èˆŠç‰ˆæœ¬ä¸­è§£æ±ºå•é¡Œï¼šä¿®å¾©å¯èƒ½å¤ªå¤§æˆ–
    太冒險,無法移æ¤åˆ°é‚£è£¡ã€‚*

å³ä½¿æ˜¯å¾®å°çš„ã€çœ‹ä¼¼æ˜Žé¡¯çš„代碼變化,有時也會帶來新的ã€å®Œå…¨æ„想ä¸åˆ°çš„å•é¡Œã€‚ç©©
定版和長期支æŒå…§æ ¸çš„維護者éžå¸¸æ¸…楚這一點,因此他們åªå°é€™äº›å…§æ ¸é€²è¡Œç¬¦åˆ
「Documentation/translations/zh_TW/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 內核開發者報告å•é¡Œæ˜¯å¾ˆé›£çš„:這個文檔的長度和複雜性以åŠå­—裡行間的內
涵都說明了這一點。但目å‰å°±æ˜¯é€™æ¨£äº†ã€‚這篇文字的主è¦ä½œè€…希望通éŽè¨˜éŒ„ç¾ç‹€ä¾†çˆ²
以後改善這種狀æ³æ‰“下一些基礎。