Сделать свой мини kexec.

Модератор: Модераторы разделов

max100
Сообщения: 12

Сделать свой мини kexec.

Сообщение max100 »

kexec позволяет перезагрузить другое ядро без выхода в биос, но на моем ядре нет поддержки этой функции. Железка под арм, ядро не поменять, типа защита. Но мне нужно перезапустить ядро со своими параметрами командной строки. Тоже самое ядро что уже есть в памяти в нужном месте на рабочей системе. Это должно быть попроще, но я в ядре мало что понимаю, и в программировании не на много лучше. Так что нужна помощь более опытных. Что и как тут можно сделать?
Из того что я читал получается нужно:
1. остановить все процессы
2. sync и отмонтировать все фс
3. подготовить процессор
4. прыгнуть на стартовый адрес ядра

По всем пунктам вопросов больше чем ответов. Я только мелкие програмки делал, в ядро не лез и чужой код очень плохо понимаю. Так что исходники kexec пока не помогают. Любая информация по всем пунктам будет полезна.
1. как корректно остановить все процессы? что делать с init?
2. если фс busy и не отмонтируется, как быть чтоб не испортить фс?
3. как готовят проц и память к перезапуску ядра?
4. перед тем как рестартовать ядро нужно же закончить как-то работу старого?

p.s.
Все это под ARM, и перепрошить бут не получится. Но модули ядра можно загружать, так что можно сделать и подгрузить свой. Исходники ядра под платформу есть, но поддержку kexec & atags нельзя сделать модулем, только включить в ядро, но ядро нельзя поменять.
Спасибо сказали: