next up previous
Next: 動作確認 Up: CerfBoardでCF無線LANカードを使う Previous: ドライバのダウンロード


ドライバのコンパイル

ソースを書き換える.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
  



このページに関する感想/ご質問はk-okada.t.u-tokyo.ac.jpまでお送りください.

ホームページへ戻る