くれすのFreeBSD日記 このページをアンテナに追加 RSSフィード

只今建設中。。。

CressUnix.org

2008年01月20日(日)復習C言語

[][] 6.3Rでwpiが動かない問題 13:00  6.3Rでwpiが動かない問題 - くれすのFreeBSD日記 を含むブックマーク はてなブックマーク -  6.3Rでwpiが動かない問題 - くれすのFreeBSD日記

たびたび登場するコレ。

wpi - ClearChain


3945ABGとかいう今時の無線LANらしいのだが、FreeBSD 6.xでは対応していない。↑のサイトから20070131のものを落としてインストールしてやれば良いのだが、どうも6.3-PRERELEASEあたりからコンパイルが通らなくなってしまった。

こんな感じのエラー。

/home/cress/work/wpi/sys/modules/wpi/../../dev/wpi/if_wpi.c: In function `wpi_firmware_get':
/home/cress/work/wpi/sys/modules/wpi/../../dev/wpi/if_wpi.c:233: warning: assignment discards qualifiers from pointer target type
*** Error code 1

Stop in /home/cress/work/wpi/sys/modules/wpi.

C言語久しく触ってなくてアレだったけど、ソース見直したら簡単なエラーでした。一行直すだけですが、一応パッチ作りましたので欲しい方はどうぞ。

使い方は、まず↓をif_wpi.c.patchというファイル名で保存。

*** if_wpi.c.orig	2007-01-27 23:36:15.000000000 +0900
--- if_wpi.c	2008-01-20 12:48:22.000000000 +0900
***************
*** 225,231 ****
  static int
  wpi_firmware_get(struct wpi_softc *sc)
  {
! 	struct firmware *fp;
  	const struct wpi_firmware_hdr *hdr;
  	const uint8_t *boot, *text, *data;
  	int error;
--- 225,231 ----
  static int
  wpi_firmware_get(struct wpi_softc *sc)
  {
! 	const struct firmware *fp;
  	const struct wpi_firmware_hdr *hdr;
  	const uint8_t *boot, *text, *data;
  	int error;

ファイル1個だったので↓のような感じにしました。手抜きです。

$ cd sys/dev/wpi
$ patch < if_wpi.c.patch

まあ、まだ動くかどうか試してないんだけど。

トラックバック - http://freebsd.g.hatena.ne.jp/Cress/20080120

2007年06月19日(火)ようやく謎が解けた

[] /dev/agpgart が見つからない問題が解決 04:34  /dev/agpgart が見つからない問題が解決 - くれすのFreeBSD日記 を含むブックマーク はてなブックマーク -  /dev/agpgart が見つからない問題が解決 - くれすのFreeBSD日記

おはようございます。

朝起きは三文の徳です。ようやく謎が解けました。凡ミスってレベルじゃなかったです。もう笑うしかない。

cress2#	kldunload acpi_video
acpi_video0: detached

で、そのあとに

cress2#	kldload i915
agp0: <Intel 82945GM (945GM GMCH) SVGA controller> port 0x1800-0x1807 mem 0xdc100000-0xdc17ffff,0xc0000000-0xcfffffff,0xdc200000-0xdc23ffff irq 16 at device 2.0 on pci0
agp0: detected 7932k stolen memory
agp0: aperture size is 256M
drmsub0: <Intel i945GM>: (child of agp_i810.c) on agp0
info: [drm] AGP at 0xdc100000 0MB
info: [drm] Initialized i915 1.4.0 20060119

つまり、acpi_videoとagpが競合していただけでした。

一体これだけで何ヶ月悩んでたんだ・・・。


追記

というわけで。

RELENG_6 でも同じことが言えるはずなので、 /boot/loader.conf を変えてやればOK。まあ、既に RELENG_6_2 に戻してしまったわけだが。

トラックバック - http://freebsd.g.hatena.ne.jp/Cress/20070619

2007年06月13日(水)ようやく発見

[] /dev/agpgart が見つからない点について 19:22  /dev/agpgart が見つからない点について - くれすのFreeBSD日記 を含むブックマーク はてなブックマーク -  /dev/agpgart が見つからない点について - くれすのFreeBSD日記

以前、パッチ当てたとき(id:Cress:20070203#1170516647)には確かに存在したんだけど。

http://people.freebsd.org/~mnag/agp_i810.c.patch

その当時当てたパッチはこれっぽい。

これと、現状のソースを比較して見るしかないのかな。

パッチを当てたときのソースバージョンを確認しておくべきだったな。

追記(2007-06-18)

どうも、以下の修正が抜けている模様。

@@ -177,6 +185,8 @@
 	case 0x25728086:
 	case 0x25828086:
 	case 0x25928086:
+	case 0x27728086:
+	case 0x27A28086:
 		devid -= 0x20000;
 		break;
 	};

これはなんかバグ臭いというか凡ミス臭いというか。

ソースコードバージョンは、v 1.32.23 と書いてある。

さらに追記

修正してみたが効果なし。これじゃないのかな。

まだ懲りずに追記

過去日記を見ると、6.2のソースで動いていたらしい。

RELENG_6でStableを追いかけるようにしていたからいけないのかな?RELENG_6_2に戻して、例のパッチを当ててみよう。

sys/pci/agp_i810.c 以外のコードに問題があると考えた方が良いな。まあ、自分はFreeBSD自体の修正をやる気はないので、ひとまず元に戻して暫定対応かなと。

いい加減、今日の日付(2007-06-18)で投稿します。はい。

トラックバック - http://freebsd.g.hatena.ne.jp/Cress/20070613