Задался я как–то таким вопросом, хотя до недавнего времени был твёрдо уверен, что таки работает.
Но началось всё не с вопроса, а с апгрейда домашнего сервачка. По плану в сервачке наличие видеокарты не предусматривалось, поэтому было решено её не покупать, а при выборе материнской платы, на наличие чипсетного видео не обращать внимания. Купленная плата имеет множество различных слотов и ни одного AGP. А ведь в прошлой версии сервачка имелась видеокарта для AGP–слота. И иногда этот слот и соответствующая видеокарта всё–таки надобилась для решения каких–нибудь фатальных проблем, к которым частенько приводили мои эксперименты с настройкой FreeBSD.
Итак, сервачок был успешно собран. И временно, на время настройки, в него переехала PCI–E–видеокарта с моего рабочего компа. Первым делом залез в биос, поотключал всё лишнее: USB, LPT, COM и прочие ненужные на моём сервачке навороты, потыцкал незнакомые настройки и получил весьма приятный сюрприз. Мой самый дешёвый самый медленный самый простой и самый примитивный, из доступных на рынке, одноядерный процессор AMD Sempron 140 чудесным образом превратился в довольно неплохой и не доступный в наших краях двухъядерный процессор AMD Athlon II x2 4400e.
Второй сюрприз был менее приятным, ведь нигде в биосе я не нашёл привычной галочки для отключения остановки загрузки при ошибках. Искал пункт Halt On
на вкладке Main
, где она обычно бывает в Award BIOS, а в результате через много времени поисков нашёл пункт Headless
где–то в дебрях. (Всё–таки не зря я всегда недолюбливал AMI BIOS.) После включения этого режима компьютер всё–таки запустился без видеокарты. Но история на этом не заканчивается.
Здесь началось самое интересное. FreeBSD ни в какую не захотела стартовать без воткнутой видеокарты. Загрузчик проверяет оборудование и всё… Что происходит с системой гадал много часов. Нагуглил массу интересных советов. Суть которых всегда сводилась к одной логике: 1) отключить проверку ошибок в биосе, 2) подключить нуль–модемный кабель, 3) у меня всё работает.
В биосе нужные настройки сделали, а вот нуль–модемного кабеля у меня и в помине не было, поэтому поспрашивал у друзей и таки нашёл! Принёс кабель домой, воткнул один конец в сервак, второй было собрался воткнуть в рабочую машину, но… Но тут меня ждал очередной сюрприз. Оказывается нету у меня на компьютере COM–порта! :) Кабель, к сожалению (а может и к счастью) оказался бесполезен.
Дальше пришла пора жёсткой расковырки конфигов и чтения манов. Во время чтения километров манов и томов книг, периодически приходило озарение. И было найдено и изучено куча способов повалить или по другому сделать систему не юзабельной. Но всё крутилось вокруг пресловутого нуль–модемного кабеля и его COM–порта. Как оказалось, вывод можно делать не только на видео, на COM–порт, что рекомендовали знающие люди, но и в NULL, прописав в конфиге загрузчика /boot/loader.conf:
- console="nullconsole"
Не знаю, чего ему ещё нужно было, но такая конструкция не заработала.
Было записано и
- console="comconsole"
Для вывода в COM–порт, но и это не помогло. В биосе включал COM–порт, ядро пересобирал с поддержкой этого же самого COM–порта, но ничего не работало. Маны перечитывались заново, варианты пробовались снова и снова…
И вот, когда я уже решил плюнуть на всё и купить видеокарту, напоследок захотелось снова сделать всё правильно. В который раз включил в биосе COM–порт, в который раз пересобрал ядро с поддержкой COM–порта, в который раз вписал в конфиг загрузчика вывод через COM–порт, в который раз загрузил комп, в который раз высунув предварительно видеокарту и… О чудо! Система загрузилась!
Короче говоря, проблема была в банальной несистематизированности и непоследовательности действий. Много раз пересобирал ядро, много раз пускал вывод куда надо, много раз включал в биосе COM–порт, и только один раз сделал это одновременно. :)
P.S. Кстати, никто не знает зачем я COM–порт каждый раз после очередной попытки отключал в биосе? :)