ПредишенСледващото

В глава 2, ние ви препоръчваме да компилирате и инсталирате собствено ядро ​​и не е приложен, за да стартирате ядрото, която дойде с вашата дистрибуция. Една от основните причини да започват свое собствено ядро ​​е, че разработчиците на ядрото са изградили някои грешки в самата ядрото. Тези функции могат да създават допълнително продукция и намаляване на производителността, така че те често не са включени в ядрата, събрани от дистрибутори. Тъй като разработчик на ядрото, но имате други приоритети и с удоволствие приема (минимална) натоварването от допълнителна помощ при откриването и отстраняването на ядрото.

конфигурация опции са изброени тук, които трябва да бъдат включени за ядките, които се използват за развитие. Освен ако не е указано друго, всички тези опции в менюто "ядрото хакване" ( "ядро хакване") на всяка конфигурация на ядрото полезност. Имайте предвид, че някои от тези опции не се поддържат във всички архитектури.

Тази опция е налична само прави други опции за отстраняване на грешки; той трябва да бъде включен, но само по себе си не включва някои функции.

Този важен параметър включва няколко вида тестове в функции за разпределяне на ядрото на паметта; Когато тези тестове могат да открият преразходи памет и липсата на инициализация. Всеки байт на заделената памет е настроен да 0xa5 преди предаване на обаждащия се, и се установява на 0x6b. когато освободен. Ако някога видите тези повтарящи се "отрова" модели в извличането на драйвера (или често в разпечатки Oops), вие ще знаете точно какво да търсят грешки. Когато сърцевината за отстраняване на грешки и побира специални защитни стойности преди и след всяка от избрания обект памет; Ако се променят тези стойности, ядрото не знае, че някой се беше обадил на паметта, и тя се оплаква на висок глас. Това включва също и различни проверки на по-неизвестни грешки.

Когато тази опция е включена, ядрото хваща неподготвен за операции на spinlock и други различни грешки (като например двойно отключване).

Тази опция ви позволява да проверите за опити да заспиват по време на задържане на спин-ключалката. В действителност, тя се оплаква, ако ти се обадя функция, която има потенциала да заспя, дори и ако обаждането е в искането няма да спи.

Маркирана __init (или __initdata) се отстранява след инициализация на системата или модул за зареждане. Тази опция ви позволява да проверите кода, който се опитва да получите достъп до паметта се използва по време на инициализация, след инициализация е завършена.

Тази опция означава, че ядрото се изготвя пълна информация за отстраняване на грешки приложен. Вие ще трябва тази информация, ако искате да трасира ядрото с GDB. Можете също така да искате да включите CONFIG_FRAME_POINTER. Ако имате намерение да използвате GDB.

Позволява "система SysRq" ( "магия SysRq") бутон. Ние считаме, че този бутон, по-късно в тази глава в "Спиране система" на секцията.

Тези опции могат да ви помогнат да следите на стека на ядрото преливник. Ясен знак за преливане стека е Oops обява без никакви признаци на разумен обратно следа. Първата опция добавя изрични проверки преливниците на ядрото; Второто означава, че ядрото да следи използването на стека и да предостави някои достъпни чрез ключов SysRq система статистика.

Тази опция (в Settings "General Setup / Стандартното оборудване", "Общи настройки / Стандартното оборудване"), прави информацията за символ на ядрото, за да бъдат вградени в ядрото; тя е активирана по подразбиране. Информация за символите, използвани в контекста на отстраняване на грешки; без нея Oops списък може да ви даде обратно следа ядрото само в шестнадесетичен, което не е много полезно.

Тези параметри (намира се в менюто "General Setup", "Общи настройки") са принудени да бъде вградена в основата на цялостното състояние на конфигурацията на ядрото и да я направи достъпна чрез / Proc. Повечето разработчици на ядрото знаят коя конфигурация те се използват и не е необходимо тези опции (които правят ядрото повече). Докато те могат да бъдат полезни, ако се опитвате да намерите проблема в ядрото сглобени от някой друг.

Той се намира в "Управление на захранването / ACPI" ( "управление на захранването / ACPI"). Тази опция дава възможност за подробна информация за отстраняване на грешки ACPI (Advanced за енергийно потребление), което може да бъде полезно, ако подозирате, че има проблем с ACPI.

Намира се в "драйвери на устройства" ( "драйвери на устройства"). Тя включва информация за отстраняване на грешки в ядрото на шофьора, който може да бъде полезен за проследяване на проблеми в кода за подкрепа на ниско ниво. Ние считаме, че ядрото на драйвери в глава 14.

Тази опция се намира в "Драйверите за устройствата / подкрепата SCSI устройство" на ( "Драйвери за устройства / SCSI за поддръжката на устройства"), е вградена в информацията за подробности относно SCSI грешки. Ако работите на драйвера на SCSI, вероятно искате да активирате тази опция.

Тази опция (под "подкрепа Драйверите за устройствата / Устройство за въвеждане", "драйвери за устройства / поддръжка на входно устройство") включва подробен сеч на входящи събития. Ако работите на драйвер за входно устройство, тази опция може да бъде полезен. Въпреки това, да са наясно с последиците за сигурността: се записва всичко, което е вписано, включително паролите си.

Тази опция се намира в раздел "Профилиране подкрепа" ( "Подкрепа профилиране"). Профилирането по принцип се използва за регулиране на производителността на системата, но тя може да бъде полезен и за проследяване на някои ядрото увисва и свързаните с тях проблеми.

Ще се върнем към някои от по-горните варианти да разгледа различни начини на проблеми за проследяване с ядрото. Но първо ще разгледаме техниката класически отстраняване на грешки: докладите за печат.

Подкрепете проекта - споделете линка, благодаря!