Столкнулся с такой вещью - совсем не понятно, как отключать пищалку FreeBSD при появлении меню загрузчика FreeBSD. (F1, F2 и т.д.).Система: FreeBSD 4.x, 5.x, 6.x.
Железо: Ноутбук Iru Novia 3221WКак меню появляется, раздается громоподобный сигнал из Speaker-а.
Искал в форуме и по Интернету - ничего похожего.
Можно ли вообще это сделать?
>Столкнулся с такой вещью - совсем не понятно, как отключать пищалку FreeBSD
>при появлении меню загрузчика FreeBSD. (F1, F2 и т.д.).
>
>Система: FreeBSD 4.x, 5.x, 6.x.
>Железо: Ноутбук Iru Novia 3221W
>
>Как меню появляется, раздается громоподобный сигнал из Speaker-а.
>
>Искал в форуме и по Интернету - ничего похожего.
>
>Можно ли вообще это сделать?что ЭТО? оборви один контакт у динамика или приделай размыкатель on/off
ну или ищи в /sys/boot printf и mov в порт спикера
Ну у ноутбука контакт не больно-то оторвешь :)То есть такая возможность не предусмотрена.
>Ну у ноутбука контакт не больно-то оторвешь :)
>
>То есть такая возможность не предусмотрена.на этапе загрузки не предусмотрена и логика этого понятна.
как вариант, можно внимательно разобрать работу меню и как loader
его парсит, возможно там можно убрать beep:# ls -la /boot/*.4th
можно из /boot/loader.rc убрать запуск менюшки beastia и использовать
как раньше лишь loader.4th, а все необходимые ядреные переменные
прописать в /boot/loader.conf.local, возможно бипать не будет
Lavr - спасибо за толчок (без него не стал бы разбираться, так как я не программист).После часового ковыряния в носу проблему решил (оставляю для потомков и просто интересующихся) :)
Задача: Отключить Beep при появлении меню стандартного загрузчика FreeBSD
(который достал меня по самое не балуйся)...1. Заходим по следующему пути: /usr/src/sys/boot/i386/boot0
2. Правим файл: boot0.S
3. Находим строки:main.10: movb $ASCII_BEL,%al # Signal
callw putchr # beep!
xorb %ah,%ah # BIOS: Get
int $0x1a # system time
movw %dx,%di # Ticks when
addw _TICKS(%bp),%di # timeout4. Убираем первые 2, получаем:
main.10: xorb %ah,%ah # BIOS: Get
int $0x1a # system time
movw %dx,%di # Ticks when
addw _TICKS(%bp),%di # timeout5. Выполняем: make depend && make all && make install
6. Заходим в /boot, проверяем, что файл boot0 изменился: ls -l /boot/boot0
7. Если поменялся, то все ок - инсталлируем (далее по ману FreeBSD):8. fdisk -B -b /boot/boot0 /dev/ad0
Перезагружаемся...наслаждаемся тишиной (а то меня за эти Beep-ы чуть сегодня на работе не убили...) :)
Отдельное спасибо разработчикам FreeBSD (без строк Signal Beep черта с два у меня бы чего получилось) :) :) :)
>Lavr - спасибо за толчок (без него не стал бы разбираться, так
>как я не программист).
>
>После часового ковыряния в носу проблему решил (оставляю для потомков и просто
>интересующихся) :)
>
>Задача: Отключить Beep при появлении меню стандартного загрузчика FreeBSD
>(который достал меня по самое не балуйся)...
>
>1. Заходим по следующему пути: /usr/src/sys/boot/i386/boot0
>2. Правим файл: boot0.S
>3. Находим строки:
>
>main.10: movb $ASCII_BEL,%al # Signal
> callw putchr # beep!
> xorb %ah,%ah # BIOS: Get
> int $0x1a # system time
> movw %dx,%di # Ticks when
> addw _TICKS(%bp),%di # timeout
>
>4. Убираем первые 2, получаем:
>
>main.10: xorb %ah,%ah # BIOS: Get
> int $0x1a # system time
> movw %dx,%di # Ticks when
> addw _TICKS(%bp),%di # timeout
>
>5. Выполняем: make depend && make all && make install
>6. Заходим в /boot, проверяем, что файл boot0 изменился: ls -l /boot/boot0
>
>7. Если поменялся, то все ок - инсталлируем (далее по ману FreeBSD):
>
>
>8. fdisk -B -b /boot/boot0 /dev/ad0
>
>Перезагружаемся...наслаждаемся тишиной (а то меня за эти Beep-ы чуть сегодня на работе
>не убили...) :)
>
>Отдельное спасибо разработчикам FreeBSD (без строк Signal Beep черта с два у
>меня бы чего получилось) :) :) :)я побоялся про это написать, думалка у всех по разному заточена, еще
наворотят... У многих она на правильном месте и когда при чтении это
видишь - очень приятно.
>я побоялся про это написать, думалка у всех по разному заточена, еще
>наворотят... У многих она на правильном месте и когда при чтении это
>видишь - очень приятно.Если интересно, расскажу, как я дошел до такой потребности :)
На ноуте была следующая конфигурация: /dev/ad0
/dev/ad0s1 - Windows XP Home Edition (30 Гб)
/dev/ad0s2 - FreeBSD 5.4-Stable (5 Гб)
/dev/ad0s5 - партиция для разворачивания какой-либо ОС для тестирования ПО (в основном Windows и Linux)Вообще по жизни привык пользоваться загрузчиком от Windows XP, прописывая туда другие ОС (Free, Linux и т.д).
Если же кто-то перезаписывал MBR, то восстанавливал загрузочным CD с XP через fixmbr.
В выходные скачал нахаляву (что бывает редко) через cvs исходники RELENG_6, решил таки посмотреть, что там изменилось. Основную FreeBSD стало жалко (там и Xorg, и куча программ, все руссифицировано, SpeedStep и.т.д.) - решил FreeBSD поставить на 3-ю партицию.
Навернул FreeBSD 5.4, закачал новые исходники, make world - и т.д.
Все круто, все классно (наконец-то завелась моя WIFI, да и GEOM GELI впечатлила :) ).Но загрузчик (который тогда успешно грузил и Windows и обе Free) нещадно пищал.
Гружусь с CD XP, fixmbr...
reboot... и...Сразу грузится FreeBSD 5.4-Stable (которая у меня на /dev/ad0s2).
Далее свои действия подробно описывать не буду - признаюсь, немного растерялся и наделал ошибок (с кем не бывает) :) Короче сделал fixboot, которая (я потом вспомнил) записалась на disk E, якобы там FAT.
После чего кроме строк NTLDR is missing никого не наблюдалось :)
Гружусь с Frenzy (все живы, никто не умер)...
fixboot, fixmbr (уже с чтением help :) ). Не помогает.В конце концов взял из коробки XP Home Recovery CD, запустил установку, и после первого ребута все вернулось (загрузчик ожил).
Удалил папку windows.0, снес из boot.ini лишнее (про новую XP).
Обе мои Free не грузятся.
Гружусь с Frenzy, оказалось, что fixboot грохнул таблицу разделов /dev/ad0s2 (где у меня много чего нужного).
Ввожу help, читаю...читаю...Ага: scan_ffs.
1. fdisk /dev/ad0 (записываю стартовый блок, и конечный блок второй партиции).
2. scan_ffs -l -b xxx -e xxx /dev/ad0
3. Scan_ffs неоднозначного мнения о партициях /tmp и /usr.
4. bsdlabel -e /dev/ad0s2 - нифига, ее там вообще нет :)
5. bsdlabel -w /dev/ad0s2 - создал чистую, самое главное - c:
6. Начинаю записывать a:, b:, ...
7. Корень восстановил с первой попытки (и сразу скинул /etc, /root, /boot на флешку) :)
8. А вот со всем остальным плясал часа 3 - в конце концов все восстановил (калькулятор нашел, без него труба) - фря грузится через boot.ini - и функционирует как ни в чем не бывало.Возник баг: Через boot.ini не грузится FreeBSD 6.0-BETA5 (которая последней стоит) - вместо нее начинает грузится FreeBSD 5.4-STABLE.
Долго искал, читал ман. Плюнул, fdisk -B -b /boot/boot0 /dev/ad0 - из 3-й Free, делал из Frenzy.
Итог: Загрузчик FreeBSD (F1: Dos, F2: FreeBSD, F3: FreeBSD), 1-й и 3-й вариант работают, 2-й - нет.
Выбирая F1, появляется меню загрузчика XP, там выбираю FreeBSD-5.4 - все грузится :)А так как первый загрузчик сильно beep-ал (уже нет), то решил это дело отключить.
Вот такая история :)