[FreeBSD] Глюки после компиляции ядра

badik56

КОроче было ядро GENERIC. Я перекомпилил свое, поставил. После этого при выполнении mount_smbfs комп перегружается. Шо делать?

hoha32

cd /usr/src
make buildworld
make installworld
но можно обойтись и одним mount_smbfs

badik56

Нахрена это? Ты не понял. Как только я загружаю ядро GENERIC, то все маунтится нормально. Как только XYZ(которое у меня всю жизнь стояло, до того как я Бсдю переставил то начинаются глюки

hoha32

Я всё прекрасно понял. У тебя с новым ядром окружение не синхронизовано. Сильнее всех при этом ругается mount_smbfs. Загрузись под новым ядром и перекомпиль mount_smbfs..

sergey_m

Давай ты скажешь какой у тебя релиз стоит и из каких исходников ты собираешь новое ядро, а потом я тебе скажу что надо делать.
Могу сразу указать на твою ошибку: 'версия' твоего нового ядра не та же, что инсталлированной системы.

badik56

Короче сделал make buildworld и все такое. Теперь все работает нормально.

sergey_m

Не расстраивайся, ты не первый кто совершает эту ошибку. Практически каждый пришедший из linuxworld так делает.

badik56

А ты считаешь, что рано или поздно, человек, который работал в Линукс, перейдет на FreeBSD? Я вот щас подумываю Дебиан поставить. Уж больно хорошая команда apt_get install....

sergey_m

Если бы вся работа сводилась к этой команде, то я бы обязательно поставил Debian.

KAPUSTA

Не расстраивайся, ты не первый кто совершает эту ошибку.
Практически каждый пришедший из linuxworld так делает.

Вероятно по этой самой причине у меня в свое время отказывались монтироваться CD и дискеты
полсе пересборки ядра на 4.6... А каков глубинный смысл пересборки userland приложений
после сборки нового ядра? Что почитать по этому поводу (man <что>?)?

germafrodita

Вот мне тоже интересен смысл такой зависимости. Но я боялся первым спрашивать у Глеба.

Marinavo_0507

Разработчики FreeBSD чаще могут позволить себе забивать на обратную совместимость.

eee1

проблемы совместимости CURRENT и STABLE, это да. А в одной ветки я еще не видел, вот только у кого-то руки типа кривые...

hoha32

Скажу тебе по-секрету: если проапгрейдить ядро с x.x до x.x+1, с большой долей вероятности отвалится mount_smbfs. Скорее всего, отвалится не только он, но этой программой я часто пользуюсь...

eee1

ага, я с 4.9 до 4.10-PRE(cvs 18-05) сделал и ничего. Чтобы точно определить проблемы нужно копаться в сурсах mount_smbfs

hoha32

Флаг тебе в руки

germafrodita

У них ядра меняются реже? Я просто совсем не в курсе, как там что с freebsd.

sergey_m

Вероятно по этой самой причине у меня в свое время отказывались монтироваться CD и дискеты
полсе пересборки ядра на 4.6... А каков глубинный смысл пересборки userland приложений
после сборки нового ядра? Что почитать по этому поводу (man <что>?)?
Не гарантий, что интерфейс ядра не изменился. Понимаешь, ядро и userland это разные части одного проекта. Добавляя новый аргумент в функцию разработчик редактирует foo.h и foo.c. После этого не будет компилироваться старый foo.h с новым foo.c. Аналогично, добавляется аргумент в какой-то системный вызов. При этом меняется как в ядре обработчик вызова, так и в userland вызывающий код.
Ситуация точно такая же, как если ты делаешь:


ln -s libхуё-моё.so.4 libхуё-моё.so.3


(это обсуждалось пару недель назад). Скорее всего ты не поимеешь проблем, но никто тебе этого не гарантирует. Ты действуешь на свой страх и риск.

KAPUSTA

Не гарантий, что интерфейс ядра не изменился.

Такая ситуация может доставить очень много хлопот стороннему разработчику.
Получается, что если я пишу что-то, пользуюшееся системными вызовами..., то
нужно иметь кучу версий. Есть ли способы избежать подобной ситуации?
PS Что есть такое compat-X.X.X?

sergey_m

Такая ситуация может доставить очень много хлопот стороннему разработчику.
Получается, что если я пишу что-то, пользуюшееся системными вызовами..., то
нужно иметь кучу версий. Есть ли способы избежать подобной ситуации?
Меняются те интерфейсы, в которые стороннему разработчику не нужно лезть, e.g. интерфейс ipfw, netgraph, mount_xxx, geom, и.тп.
Системные вызовы POSIX и прочие кроссплатформенные интерфейсы не меняются.
Если же ты разрабатываешь что-то FreeBSD специфичное (e.g. ядреный модуль то тебе придется либо разрабатывать под конкретный релиз, либо подписаться на списки рассылки и следить за тем, что происходит.
PS Что есть такое compat-X.X.X?
Набор библиотек для того, что бы запускать бинарники скомпиленные под предыдущие версии FreeBSD.
Оставить комментарий
Имя или ник:
Комментарий: