8.3-PRERELEASE and ATA_CAM
Marius Strobl
marius at alchemy.franken.de
Sat Apr 7 11:52:37 UTC 2012
On Sat, Apr 07, 2012 at 10:53:39AM +0300, Daniel Braniss wrote:
> > On Fri, Apr 06, 2012 at 10:48:13AM +0300, Daniel Braniss wrote:
> > > with the latest svn, I can't compile kernel with options ATA_CAM:
> > >
> > > ...
> > > linking kernel.debug
> > > ata-disk.o(.text+0x93): In function `ad_init':
> > > /r+d/stable/8.3/sys/dev/ata/ata-disk.c:389: undefined reference to
> > > `ata_setmode'
> > > ata-disk.o(.text+0xaa):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:397: undefined
> > > reference to `ata_wc'
> > > ata-disk.o(.text+0xc5):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:398: undefined
> > > reference to `ata_controlcmd'
> > > ata-disk.o(.text+0x113):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:400: undefined
> > > reference to `ata_controlcmd'
> > > ata-disk.o(.text+0x133):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:393: undefined
> > > reference to `ata_controlcmd'
> > > ata-disk.o(.text+0x16d):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:407: undefined
> > > reference to `ata_controlcmd'
> > > ata-disk.o(.text+0x21a): In function `ad_shutdown':
> > > /r+d/stable/8.3/sys/dev/ata/ata-disk.c:196: undefined reference to
> > > `ata_controlcmd'
> > > ata-disk.o(.text+0x45c): In function `ad_detach':
> > > /r+d/stable/8.3/sys/dev/ata/ata-disk.c:182: undefined reference to
> > > `ata_fail_requests'
> > > ...
> > >
> >
> > You seem to be using a mutually exclusive set of ata(4) options and
> > devices (previously, this erroneously wasn't a bug). When including
> > options ATA_CAM you do _not_ want to also include any of the following
> > devices:
> > device atapicam
> > device atadisk
> > device ataraid
> > device atapicd
> > device atapifd
> > device atapist
> >
> > Instead you need the corresponding driver from the following set:
> > device scbus
> > device ch
> > device da
> > device sa
> > device cd
> > device pass
> >
> > Marius
> >
> they are included by GENERIC, which i include, bummer.
It should work to include GENERIC but disable the "old" devices via
"nodevice atadisk" etc. in your custom kernel configuration file.
> what about ATA_STATIC_ID, I guess that is also a nono?
No, ATA_STATIC_ID is still available with ATA_CAM, in this case it's
purpose is a bit different though; when present, it provides /dev/adX
symbolic links to the /dev/adaY device nodes, trying to mimic the
non-ATA_CAM numbering for /dev/adX. If you've already updated your
/etc/fstab etc. to use /dev/adaY instead, you don't need ATA_STATIC_ID
though.
Marius
More information about the freebsd-stable
mailing list