Обновление системы и ядра делаю в первый раз.
Исходные данные таковы: Установлено FreeBSD 8.0-RELEASE и измененное ядро (не GENERIC). Нужно получить в итоге FreeBSD 8.3-RELEASE и ядро с теми же настройками что были раньше (не GENERIC)
Делал все по описанию http://vds-admin.ru/freebsd/obnovlenie-yadra-i-mira-freebsd
а также handbook.
И в общем все у меня получилось, за исключением одного. После полного обновления команда uname -a выдает:
FreeBSD myhost.ru 8.3-RELEASE-p5 FreeBSD 8.3-RELEASE-p5 #0: Fri Dec 14 11:36:56 MSK 2012 root@myhost.ru:/usr/obj/usr/src/sys/GENERIC i386
То-есть ядро установлено GENERIC а я делал все чтобы ядро было не GENERIC
При построении и установке ядра использовал
make buildkernel KERNCONF=MYKERNEL
make installkernel KERNCONF=MYKERNEL
Почему установилось ядро GENERIC? Куда смотреть? Где может быть ошибка?
> Делал все по описанию http://vds-admin.ru/freebsd/obnovlenie-yadra-i-mira-freebsdтак каким именно образом из описанных?
>> Делал все по описанию http://vds-admin.ru/freebsd/obnovlenie-yadra-i-mira-freebsd
> так каким именно образом из описанных?Делал вторым способом, из исходных текстов (не freebsd-update)
>>> Делал все по описанию http://vds-admin.ru/freebsd/obnovlenie-yadra-i-mira-freebsd
>> так каким именно образом из описанных?
> Делал вторым способом, из исходных текстов (не freebsd-update)а куда Вы положили конфиг ядра? а то что-то инструкция об этом умалчивает
Ядро не GENERIC, которое установлено на исходной системе получено следующим образом:
создал каталог /data/kernels скопировал туда файл /usr/src/sys/i386/conf/GENERIC
Переименовал его в MYKERNEL, внес правки, сделал симлинк в каталоге /usr/src/sys/i386/conf/ на файл /data/kernels/MYKERNEL
Далее собрал ядро, установил его, ядро работает уже длительное время все нормально.
Теперь мне нужно обновиться:
Я скачал исходные тексты для новой версии 8.3. Затем:
cd /usr/src
make -sj4 buildkernel KERNCONF=MYKERNEL
make -s installkernel KERNCONF=MYKERNEL
То есть ядро не GENERIC ,как я полагаю, лежит в /data/kernels. И после скачивания исходников новой версии 8.3 я в файле /data/kernels/MYKERNEL ничего не менял.
>[оверквотинг удален]
> на файл /data/kernels/MYKERNEL
> Далее собрал ядро, установил его, ядро работает уже длительное время все нормально.
> Теперь мне нужно обновиться:
> Я скачал исходные тексты для новой версии 8.3. Затем:
> cd /usr/src
> make -sj4 buildkernel KERNCONF=MYKERNEL
> make -s installkernel KERNCONF=MYKERNEL
> То есть ядро не GENERIC ,как я полагаю, лежит в /data/kernels. И
> после скачивания исходников новой версии 8.3 я в файле /data/kernels/MYKERNEL ничего
> не менял.Волшебное слово ident в конфиге ядра... А каталог, где он лежит, вы можете переименовывать как угодно и лежать он может где угодно..., тут главное ручки шаловливые....
> Волшебное слово ident в конфиге ядра... А каталог, где он лежит,
> вы можете переименовывать как угодно и лежать он может где угодно...,
> тут главное ручки шаловливые....Вы не правы - KERNCONF работает с именем файла, а не с параметром ident внутри конфига
у меня ident не совпадает с именем файла конфигурации - тем не менее собирается именно моё ядро :)
>> Волшебное слово ident в конфиге ядра... А каталог, где он лежит,
>> вы можете переименовывать как угодно и лежать он может где угодно...,
>> тут главное ручки шаловливые....Параметр ident у меня изменен, правда он несколько отличается от MYKERNEL. Но я согласен с arachnid , ядро при этом соберется и установится.
>[оверквотинг удален]
> на файл /data/kernels/MYKERNEL
> Далее собрал ядро, установил его, ядро работает уже длительное время все нормально.
> Теперь мне нужно обновиться:
> Я скачал исходные тексты для новой версии 8.3. Затем:
> cd /usr/src
> make -sj4 buildkernel KERNCONF=MYKERNEL
> make -s installkernel KERNCONF=MYKERNEL
> То есть ядро не GENERIC ,как я полагаю, лежит в /data/kernels. И
> после скачивания исходников новой версии 8.3 я в файле /data/kernels/MYKERNEL ничего
> не менял.а линк остался в каталоге с исходными текстами? просто странно, что всё собралось, но ядро generic - так обычно бывает, когда ошибешься в имени переменной, а не в имени ядра. тогда ругани нет, но соберется generic
ps. вроде как не рекомендуется ядро собирать в несколько потоков - только для мира в целом
> а линк остался в каталоге с исходными текстами?Линк остался
> просто странно, что всё
> собралось, но ядро generic - так обычно бывает, когда ошибешься в
> имени переменной, а не в имени ядра. тогда ругани нет, но
> соберется genericО какой переменной идет речь?
>> а линк остался в каталоге с исходными текстами?
> Линк остался
>> просто странно, что всё
>> собралось, но ядро generic - так обычно бывает, когда ошибешься в
>> имени переменной, а не в имени ядра. тогда ругани нет, но
>> соберется generic
> О какой переменной идет речь?о KERNCONF конечно. то есть если написать CERNCONF=MY_KERNEL то соберется стандартный дженерик
>>> а линк остался в каталоге с исходными текстами?
>> Линк остался
>>> просто странно, что всё
>>> собралось, но ядро generic - так обычно бывает, когда ошибешься в
>>> имени переменной, а не в имени ядра. тогда ругани нет, но
>>> соберется generic
>> О какой переменной идет речь?
> о KERNCONF конечно. то есть если написать CERNCONF=MY_KERNEL то соберется стандартный дженериктак скорей всего и было - прикол стандартный ))
> о KERNCONF конечно. то есть если написать CERNCONF=MY_KERNEL то соберется стандартный дженерикДа, вероятно в этом причина. Я посмотрел историю команд и обнаружил что я давал команду
make -sj4 buildkernel KERNELCONF=MYKERNEL
make -s installkernel KERNELCONF=MYKERNEL
а надо было KERNCONF
>> о KERNCONF конечно. то есть если написать CERNCONF=MY_KERNEL то соберется стандартный дженерик
> Да, вероятно в этом причина. Я посмотрел историю команд и обнаружил что
> я давал команду
> make -sj4 buildkernel KERNELCONF=MYKERNEL
> make -s installkernel KERNELCONF=MYKERNEL
> а надо было KERNCONFпропишите нужное значение в файле /etc/make.conf - тогда подобных ошибок больше не будет
прописывается так же
KERNCONF=MY_KERNEL_NAME
>>> о KERNCONF конечно. то есть если написать CERNCONF=MY_KERNEL то соберется стандартный дженерик
>> Да, вероятно в этом причина. Я посмотрел историю команд и обнаружил что
>> я давал команду
>> make -sj4 buildkernel KERNELCONF=MYKERNEL
>> make -s installkernel KERNELCONF=MYKERNEL
>> а надо было KERNCONF
> пропишите нужное значение в файле /etc/make.conf - тогда подобных ошибок больше не
> будет
> прописывается так же
> KERNCONF=MY_KERNEL_NAMEчерез год будет "помогите! собираю дженерик но собирается другое ядро!"
> через год будет "помогите! собираю дженерик но собирается другое ядро!":)
>> а линк остался в каталоге с исходными текстами?
> Линк остался
>> просто странно, что всё
>> собралось, но ядро generic - так обычно бывает, когда ошибешься в
>> имени переменной, а не в имени ядра. тогда ругани нет, но
>> соберется generic
> О какой переменной идет речь?покажите:
# ls -la /usr/obj/usr/src/sys/
и вывод от ваших ликов с файлом ядра
# ls -la /sys/i386/conf
ну и
# uname -a