ソースを書き換える.orinocoドライバはカーネル 2.4.10 以降を仮定してい るが,arm-linux-kernel は2.4.9であるので,足りない関数を追加する.
/cerfcube/intrinsyc-linux/base/build/linux-2.4.9/linux/drivers/net/wireless/orinoco.h の中に,
/*
* min()/max() macros that also do
* strict type-checking.. See the
* "unnecessary" pointer comparison.
*/
#define min(x,y) ({ \
const typeof(x) _x = (x); \
const typeof(y) _y = (y); \
(void) (&_x == &_y); \
_x < _y ? _x : _y; })
#define max(x,y) ({ \
const typeof(x) _x = (x); \
const typeof(y) _y = (y); \
(void) (&_x == &_y); \
_x > _y ? _x : _y; })
/*
* ..and if you can't take the strict
* types, you can specify one yourself.
*
* Or not use min/max at all, of course.
*/
#define min_t(type,x,y) \
({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
#define max_t(type,x,y) \
({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
#endif /* __KERNEL__ */
\end{berbatim}
を,付けくわえる.
Makefileを書きかえる.
\begin{verbatim}
KERNEL_VERSION = 2.4.9-ac10-rmk2-np1-cerf1
KERNEL_SRC = /home/leus/cerfcube/intrinsyc-linux/base/build/linux-2.4.9/linux
README.orinocoにあるように,ARMでは ``-mstructure-size-boundary=8''のオ プションをつけないと動かなかった.
CFLAGS = -O2 -Wall -Wstrict-prototypes -pipe -mstructure-size-boundary=8
makeする.
% make CC=arm-linux-gcc