Страница 1 из 1

Сборка ядра = epic fail!

Добавлено: 2012-05-07 23:16:39
GhOsT_MZ
Доброго времени суток!
На данный момент имеется:

Код: Выделить всё

#uname -a
FreeBSD fsbsd1 8.2-RELEASE FreeBSD 8.2-RELEASE #8: Tue May 31 10:00:11 SAMST 2011     root@fsbsd1:/usr/obj/usr/src/sys/MYKERN  i386
Собственно из этой радости хотел получить RELENG_8. Мои действия:

Код: Выделить всё

#rm -rf /usr/obj/*; rm -rf /usr/src/*; cd ~; cvsup -g -L 2 stable-supfile; cd /usr/src; make buildworld; make buildkernel
В принципе все шаги, кроме последнего, проходят вполне успешно. Сборка ядра прерывается ошибкой:

Код: Выделить всё

linking kernel
ata-disk.o(.text+0x9f): In function `ad_init':
: undefined reference to `ata_setmode'
ata-disk.o(.text+0xb7): In function `ad_init':
: undefined reference to `ata_wc'
ata-disk.o(.text+0xeb): In function `ad_init':
: undefined reference to `ata_controlcmd'
ata-disk.o(.text+0x142): In function `ad_init':
: undefined reference to `ata_controlcmd'
ata-disk.o(.text+0x193): In function `ad_init':
: undefined reference to `ata_controlcmd'
ata-disk.o(.text+0x1dc): In function `ad_init':
: undefined reference to `ata_controlcmd'
ata-disk.o(.text+0x2b7): In function `ad_shutdown':
: undefined reference to `ata_controlcmd'
ata-disk.o(.text+0x54e): In function `ad_detach':
: undefined reference to `ata_fail_requests'
ata-disk.o(.text+0x9a2): In function `ad_dump':
: undefined reference to `ata_drop_requests'
ata-disk.o(.text+0xa8c): In function `ad_dump':
: undefined reference to `ata_controlcmd'
ata-disk.o(.text+0xb5e): In function `ad_attach':
: undefined reference to `ata_setmax'
ata-disk.o(.text+0xc80): In function `ad_attach':
: undefined reference to `ata_satarev2str'
ata-disk.o(.text+0xcc4): In function `ad_attach':
: undefined reference to `ata_unit2str'
ata-disk.o(.text+0x10ac): In function `ad_attach':
: undefined reference to `ata_queue_request'
ata-disk.o(.text+0x11e2): In function `ad_attach':
: undefined reference to `ata_queue_request'
ata-disk.o(.text+0x1204): In function `ad_attach':
: undefined reference to `ata_getparam'
ata-disk.o(.text+0x62d): In function `ad_spindown':
: undefined reference to `ata_queue_request'
ata-disk.o(.text+0x6b1): In function `ad_ioctl':
: undefined reference to `ata_device_ioctl'
ata-disk.o(.text+0x7e2): In function `ad_strategy':
: undefined reference to `ata_queue_request'
ata-raid.o(.text+0x1287): In function `ata_raid_rw':
: undefined reference to `ata_queue_request'
ata-raid.o(.text+0x1366): In function `ata_raid_send_request':
: undefined reference to `ata_queue_request'
ata-raid.o(.text+0xa133): In function `ata_raid_strategy':
: undefined reference to `ata_queue_request'
ata-raid.o(.text+0xb138): In function `ata_raid_dump':
: undefined reference to `ata_controlcmd'
atapi-cd.o(.text+0x104): In function `acd_reinit':
: undefined reference to `ata_setmode'
atapi-cd.o(.text+0x167): In function `acd_shutdown':
: undefined reference to `ata_controlcmd'
atapi-cd.o(.text+0x243): In function `acd_geom_detach':
: undefined reference to `ata_fail_requests'
atapi-cd.o(.text+0x2c8): In function `acd_test_ready':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x35d): In function `acd_get_cap':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x485): In function `acd_set_speed':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x528): In function `acd_mode_select':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x5cb): In function `acd_mode_sense':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x73f): more undefined references to `ata_atapicmd' follow
atapi-cd.o(.text+0xdc4): In function `acd_get_progress':
: undefined reference to `ata_queue_request'
atapi-cd.o(.text+0x1102): In function `acd_strategy':
: undefined reference to `ata_queue_request'
atapi-cd.o(.text+0x1471): In function `acd_geom_access':
: undefined reference to `ata_queue_request'
atapi-cd.o(.text+0x1a5b): In function `acd_geom_ioctl':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x1ade): In function `acd_geom_ioctl':
: undefined reference to `ata_device_ioctl'
atapi-cd.o(.text+0x1e0f): In function `acd_geom_ioctl':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x1e7e): In function `acd_geom_ioctl':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x1eb2): In function `acd_geom_ioctl':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x2011): In function `acd_geom_ioctl':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x21c5): In function `acd_geom_ioctl':
: undefined reference to `ata_atapicmd'
atapi-cd.o(.text+0x231a): more undefined references to `ata_atapicmd' follow
atapi-cd.o(.text+0x3660): In function `acd_attach':
: undefined reference to `ata_setmode'
atapi-cd.o(.text+0x3690): In function `acd_attach':
: undefined reference to `ata_controlcmd'
atapi-cd.o(.text+0x378e): In function `acd_attach':
: undefined reference to `ata_satarev2str'
atapi-cd.o(.text+0x37a9): In function `acd_attach':
: undefined reference to `ata_unit2str'
atapi-cd.o(.text+0x3826): In function `acd_attach':
: undefined reference to `ata_unit2str'
atapi-cd.o(.text+0x3965): In function `acd_attach':
: undefined reference to `ata_satarev2str'
atapi-cam.o(.text+0x103f): In function `atapi_action':
: undefined reference to `ata_controlcmd'
atapi-cam.o(.text+0x1851): In function `atapi_action':
: undefined reference to `ata_queue_request'
*** Error code 1

Stop in /usr/obj/usr/src/sys/MYKERN.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
Другие настройки:

Код: Выделить всё

#m /etc/make.conf
# added by use.perl 2011-04-27 13:34:17
PERL_VERSION=5.10.1
KERNCONF=MYKERN

Код: Выделить всё

#cat /root/stable-supfile
*default host=cvsup.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_8
*default delete use-rel-suffix
*default compress
src-all
Исходники пытался получить с разных серверов, в том числе cvsup*.ru.freebsd.org, результат тот же.
Может кто подскажет, куда копать?

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-07 23:32:10
GhOsT_MZ
Еще один момент. Принципиально компилировать ядро после мира или можно сначала ядро, а потом мир, ибо этот пост натолкнул на мысль?

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 0:43:28
rayder
А что написано в /usr/src/UPDATING? возможно что-то изменилось с опциями ядра.
ЗЫ. вопрос на засыпку: А что такого критичного, что не обновляетесь сразу до 9-ки? :)

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 7:30:04
GhOsT_MZ
В апдейтинг ничего интересного не написано, в том то и дело. Порядок обновления системы в этом файле такой же, как я и делал.

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 8:58:35
rayder
покажи конфиг ядра, чего-то в нем не хватает

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 9:01:39
шёл_мимо
make buildworld
Сколько уже пишут везде, что GENERIC юзать надо

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 9:38:20
rayder
это конечно да, но потом он все-равно на грабли наступит при сборке.
ЗЫ. Вот что нашел в UPDATE на девятке, возможно поможет

Код: Выделить всё

20110424:
        The GENERIC kernels for all architectures now default to the new
        CAM-based ATA stack. It means that all legacy ATA drivers were
        removed and replaced by respective CAM drivers. If you are using
        ATA device names in /etc/fstab or other places, make sure to update
        them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY,
        where 'Y's are the sequential numbers starting from zero for each type
        in order of detection, unless configured otherwise with tunables,
        see cam(4)). There will be symbolic links created in /dev/ to map
        old adX devices to the respective adaY. They should provide basic
        compatibility for file systems mounting in most cases, but they do
        not support old user-level APIs and do not have respective providers
        in GEOM. Consider using updated management tools with new device names.

        It is possible to load devices ahci, ata, siis and mvs as modules,
        but option ATA_CAM should remain in kernel configuration to make ata
        module work as CAM driver supporting legacy ATA controllers. Device ata
        still can be used in modular fashion (atacore + ...). Modules atadisk
        and atapi* are not used and won't affect operation in ATA_CAM mode.
        Note that to use CAM-based ATA kernel should include CAM devices
        scbus, pass, da (or explicitly ada), cd and optionally others. All of
        them are parts of the cam module.

        ataraid(4) functionality is now supported by the RAID GEOM class.
        To use it you can load geom_raid kernel module and use graid(8) tool
        for management. Instead of /dev/arX device names, use /dev/raid/rX.

        No kernel config options or code have been removed, so if a problem
        arises, please report it and optionally revert to the old ATA stack.
        In order to do it you can remove from the kernel config:
            options        ATA_CAM
            device         ahci
            device         mvs
            device         siis
        , and instead add back:
            device         atadisk         # ATA disk drives
            device         ataraid         # ATA RAID drives
            device         atapicd         # ATAPI CDROM drives
            device         atapifd         # ATAPI floppy drives
            device         atapist         # ATAPI tape drives

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 9:58:49
GhOsT_MZ
шёл_мимо писал(а):
make buildworld
Сколько уже пишут везде, что GENERIC юзать надо
Получается, что "свое" ядро компилировать отдельно, после установки всего?

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 10:01:42
rayder
имено так

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 10:09:22
GhOsT_MZ
rayder, попробую дженерик. Кстати, а принципиально сначала мир собирать, а потом ядро или порядок не важен?
Насчет UPDATING, в 8-STABLE он поменьше будет (хотя, многих вещей тут нету, видимо в этом файлике не полный ченджлог):

Код: Выделить всё

20120411:
        8.3-RELEASE.

20120106:
        A new VOP_ADVISE() was added to support posix_fadvise(2).  All
        filesystem modules must be recompiled.

20111116:
        A new VOP_ALLOCATE() was added to support posix_fallocate(2).  All
        filesystem modules must be recompiled.

20111101:
        The broken amd(4) driver has been replaced with esp(4) in the amd64,
        i386 and pc98 GENERIC kernel configuration files.

20110606:
        A new version of ZFS (version 28) has been merged.
        This version does not depend on a python library and the
        sysutils/py-zfs port is not used anymore.
        For upgrading your boot pool, please read "ZFS notes"
        in the COMMON ITEMS: section later in this file.

20110428:
        IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868
        compliant, and will now use half of hash for authentication.
        This will break interoperability with all stacks (including all
        older FreeBSD versions) who implement
        draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for
        authentication).
        The only workaround with such peers is to use another HMAC
        algorithm for IPsec ("phase 2") authentication.

20110221:
        8.2-RELEASE.

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 14:03:46
BirdGovorun
GhOsT_MZ писал(а): Кстати, а принципиально сначала мир собирать, а потом ядро или порядок не важен?
Не принципиально, но лучше следовать рекомендациям.
Попробуйте freebsd-update , быстрее гораздо , хотя то-же можно нарваться и ядро только GENERIC.

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-08 15:37:04
rayder
ну freebsd-update по умолчанию заисналит генерик, а дальше уже ручками инсталить свое ядро

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-14 12:38:30
GhOsT_MZ
Все таки собралось ядро, но после того, как убрал опцию ATA_CAM. Определить бы с чем она конфликтовала, так как вроде еще актуальная, ибо ее ввели лишь в 8.1.

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-22 22:25:10
Гость

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-23 0:30:23
rayder
как бы в том UPDATES что я дал, говориться практически о том же.
ЗЫ. а еще авторизация занимает не более минуты

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-23 7:03:06
GhOsT_MZ
rayder, ага, только странно, что в UPDATES 8.3-STABLE подобную инфу не добавили...

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-23 14:33:34
rayder
ну это не ко мне :)

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-23 18:24:07
ioj
что бы не плодить темы, тем более что у меня происходит что то похожее
поставил фри

Код: Выделить всё

FreeBSD nom 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:15:25 UTC 2012     root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
пытаюсь собрать ядро со стандартным GENERIC, честно пытаюсь делать по хендбуку то бишь

Код: Выделить всё

#config GENERIC; make depend;
при попытке сделать дальнейший make вываливается стена текста

Код: Выделить всё

-I../../../dev/ath
cc -c -O -pipe  -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I. -I../../.. -I../../../contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000  -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float -ffreestanding -fstack-protector -Werror  ../../../dev/bce/if_bce.c
и далее в таком же духе
пытался обновлять src, ничего не меняется
не поможете разобраться?((

Re: Сборка ядра = epic fail!

Добавлено: 2012-05-23 19:52:43
ioj
упс.... работает оказывается