Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Valentin Davydov                     2:5020/400     06 Sep 2007  21:21:02
 To : Eugene Grosbein
 Subject : Re: boot forth
 -------------------------------------------------------------------------------- 
 
 >   From: Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org>
 >   Date: Thu, 06 Sep 2007 23:36:32 +0400
 >
 > EG> Кто-нибудь знает, что за фигня творится с boot forth в шестерке?
 > EG> loader с винта ядро грузит нормально, при загрузке с USB Flash,
 > EG> который эмулируется BIOS-ом как дополнительный HDD, BTX ведет себя
 > EG> очень странно, в зависимости от добавления отладочных printf в разные
 > EG> его места бывает то бесконечный цикл трапов, то единичный трап
 > EG> с мгновенной перезагрузкой, то самопроизвольный рестарт loader-а
 > EG> с потерей bootinfo от boot2 и, как следствие невозможность загрузить
 > EG> ядро, то паника внутри загрузчика по поводу плохого free на guard1...
 >
 >Основной сценарий (непатченный загрузчит от 6.2-RELEASE) такой:
 >
 >1. boot2 загружает loader, передавая ему инфомацию, с какого BIOS disk
 >идет загрузка, какую консоль использовать (vidconsole/comconsole/обе/никакую)
 >etc., вся эта информация называется bootinfo.
 >
 >2. loader одним из первых вещей в main() вызывает функцию cons_probe(),
 >которая выдаёт первый printf от loader-а. Если в boot2 нажать -D
 >(выдавать и на экран, и в com-порт), это сообщение будет такое:
 >
 >Consoles: internal video/keyboard  serial port
 >
 >Если -h, то будет только serial port, если ничего не вводить, только
 >internal.
 >
 >3. Потом loader делает много разных вещей, включая чтение и выполнение
 >фортовых скриптов, вплоть до /boot/loader.rc всё идет гладко.
 >loader.rc читает include /boot/loader.4th, затем запускает команду start
 >из этого loader.4th. start первым делом читает /boot/defaults/loader.conf
 >(прочитывает до конца успешно, это я проверил добавкой отладочного
 >вывода в конец этого loader.conf), потом, видимо, начинает грузить ядро -
 >появляется вращаюшийся слеш, и тут происходит странное - loader начинает
 >выполняться с нуля, с main(), вызвает cons_probe() (см. пункт 2 выше)
 >и так далее.
 >
 >Hо теперь уже bootinfo пуст, информации о консоли тоже нет - если вначал
 >в bootinfo было указание использовать serial console и loader писал
 >вывод именно туда, то теперь cons_probe пишет "internal video/keyboard".
 >Потом loader, не именя bootinfo, жалуется:
 >Can't work out which disk we are booting from
 >
 >Пытается загрузиться с disk0, но тут форт обнаруживает порушенную память,
 >free: guard1 fail, паникует и на этом загрузка останавливается.
 >
 >Каким образом loader может стартовать повторно? Где-то рушится стек
 >и подменяется адрес возврата? Как такое отлаживать? Есть serial console
 >для машины, на которой это 100% воспроизводимо (и я бы хотел знать,
 >как это HЕ воспроизвести :-(
 >
 >При восстановлении этой картины пихал в C-код загрузчика printf-ы,
 >иногда получал трап BTX, добавлял ешё один printf, трап исчезал.
 
 Стало быть, проблема в BTX. Он ведь, когда слэш крутит, всё время его
 функции дёргает. А проблемы в BTX есть, у меня на одной тачке USB-клавиатура
 отсыхает после загрузки BTX.
 
 Вал. Дав.
 
 --- ifmail v.2.15dev5.4
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 boot forth   Eugene Grosbein   06 Sep 2007 17:38:16 
 Re: boot forth   Yuri Kurenkov   06 Sep 2007 16:57:51 
 Re: boot forth   Eugene Grosbein   06 Sep 2007 23:36:32 
 Re: boot forth   Valentin Davydov   06 Sep 2007 21:21:02 
Архивное /ru.unix.bsd/258357c9af8d6.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional