how to force 'device' sources to not compile?
Коньков Евгений
kes-kes at yandex.ru
Fri Jan 6 22:20:12 UTC 2012
Здравствуйте, Devin.
Вы писали 7 января 2012 г., 0:05:12:
>> -----Original Message-----
>> From: Коньков Евгений [mailto:kes-kes at yandex.ru]
>> Sent: Friday, January 06, 2012 1:46 PM
>> To: Devin Teske
>> Cc: freebsd-questions at freebsd.org
>> Subject: Re[2]: how to force 'device' sources to not compile?
>>
>> Здравствуйте, Devin.
>>
>> Вы писали 6 января 2012 г., 23:42:54:
>>
>>
>>
>> >> -----Original Message-----
>> >> From: owner-freebsd-questions at freebsd.org [mailto:owner-freebsd-
>> >> questions at freebsd.org] On Behalf Of ??????? ???????
>> >> Sent: Friday, January 06, 2012 1:40 PM
>> >> To: freebsd-questions at freebsd.org
>> >> Subject: how to force 'device' sources to not compile?
>> >>
>> >> I have errors while compile kernel
>> >>
>> >> ===> et (all)
>> >> cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc
>> -
>> >> DHAVE_KERNEL_OPTION_HEADERS -include
>> >> /usr/obj/usr/src/sys/KES_KERN_v9/opt_global.h -I. -I@
>> >> -I@/contrib/altq
>> DT> -finline-
>> >> limit=8000 --param inline-unit-growth=100 --param
>> >> large-function-growth=1000 - fno-common -g
>> >> -I/usr/obj/usr/src/sys/KES_KERN_v9 -mno-align-long-strings -
>> >> mpreferred-stack-boundary=2 -mno-sse -mno-mmx -msoft-float
>> >> -ffreestanding - fstack-protector -std=iso9899:1999 -fstack-protector
>> >> -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 -c
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c: In function 'et_dma_alloc':
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c:782: error: 'ET_RING_ALIGN'
>> >> undeclared (first use in this function)
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c:782: error: (Each
>> >> undeclared identifier is reported only once
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c:782: error: for each
>> >> function it appears in.)
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c:790: error: 'ET_STATUS_ALIGN'
>> >> undeclared (first use in this function)
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c:845: error: 'struct
>> >> et_softc' has
>> DT> no
>> >> member named 'sc_rx_mini_tag'
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c:854: error: 'struct
>> >> et_softc' has
>> DT> no
>> >> member named 'sc_rx_tag'
>> >> /usr/src/sys/modules/et/../../dev/et/if_et.c:864: error: 'struct
>> >> et_softc' has
>> DT> no
>> >> member named 'sc_tx_tag'
>> >>
>> >> how to disable 'et' from compiling?
>>
>> DT> Try adding:
>>
>> DT> nodevice et
>>
>> DT> To a custom kernel config.
>>
>> I have tryed to remove 'device et', 'nodevice et', 'device et' same results =(
>>
DT> Apologies, let me clarify...
DT> I would create a custom kernel config by executing (assumptions: your kernel
DT> source is stored at /usr/src/sys):
DT> cd /usr/src/sys/i386/conf
DT> NOTE: Replace "i386" with another architecture (such as "amd64") depending on
DT> your needs.
DT> touch MYGENERIC
DT> NOTE: Followint steps will overwrite "MYGENERIC" in the current working
DT> directory if it already exists. If this file exists already, move it aside
DT> before proceeding.
DT> echo "include GENERIC" > MYGENERIC
DT> echo "ident MYGENERIC" >> MYGENERIC
DT> echo "machine i386" >> MYGENERIC
DT> NOTE: Again, replace "i386" with your desired architecture if not "i386".
DT> echo "nodevice et" >> MYGENERIC
DT> Now, configure and compile your kernel by executing:
DT> config -g MYGENERIC
DT> cd ../compile/MYGENERIC
DT> make cleandepend && make depend && make
DT> Your new kernel is named "kernel" in the current working directory.
cd /usr/src/sys/i386/conf
cp GENERIC MYKERN
open MYKERN in editor, find 'device et' and change it with 'nodevice et'
or, Ithink, this must work also: echo 'nodevice et' >> /usr/src/sys/i386/conf/MYKERN
cd /usr/src
echo "bla-bla-bla" > /usr/src/sys/dev/et/if_et.c
make buildkernel KERNCONF=MYKERN
despite on there is 'nodevice et' system tryes to build 'et' and fail
--
С уважением,
Коньков mailto:kes-kes at yandex.ru
More information about the freebsd-questions
mailing list