[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:25120] Re: [Q] How to make eth0 ? because of no eth0.



柴田(あ)hです。

石川様、松田様、高橋様、ほか悩んでくださる皆様
ありがとうございます。
あれからすでにコンパイルを十数回行っておりますが依然
望む状態には至っておりません。
万策尽きたかというほど試してはいませんが、
ほかにモガくヒントをいただければと思っております。


PCMCIA についてはちょっと使おうと思った残骸がのこっていた
だけなので、今のところ使用予定はありません。


またご説明がすくなく申し訳ありませんでしたが、
悩んでいるのは内蔵 NIC で PC カードに逃げるのは
最後の手ということでもうすこしモガきたいと思っています。
すくなくとも Windows98SE でこうして使用できるのに
Linux で使用できないというのはちょっと悔しいものが
あります。

適材適所というのもありますし、私自身 Windows を
かなり気に入っている人間ですが、 Linux をデスクトップ
用途に使用したいとノートパソコン買ったのに
はじめの方で(一応 X は 3 日で使用できるようになった)
ケチがついてちょっと残念。

In message <20001108024121.318815DB6@xxxxxxxxxxxxxxxxx>
   "[debian-users:25063] Re: [Q] How to make eth0 ? because of no eth0."
   "Wed, 8 Nov 2000 11:41:28 +0900"
   ""TAKAHASHI,Hideaki" <htaka@xxxxxxxxxxx>" wrote:

> > 【ハードウェア】=====================
> > 東芝 DynaBook SS DS50C/1CA モデル
> >   http://www2.toshiba.co.jp/pc/catalog/dynabook/db65_50/ds_hard.htm
> > プレインストールの Windows98SE からは
> >   accton EN2242 と表示されます。
> > さらに追求してそのコントローラチップが ADMtek AN983AL という
> > ものであることを突き止めました。
> > http://www.tmc.co.jp/admtek/products.htm
> > http://www.internix.co.jp/products/admtek/an983_985.htm
> > によると DEC 21140/21143 互換のようで Linux でも使えるようです。
> 
> Planex FNW-9802-T(ADMtek AN983らしい)を問題なく使用しています。

web でこの NIC が tulip の 0.90q のドライバが付属している
らしいので、うまくいくかと思ったのでした。


> カーネルが 2.4.0-test10 ですが(^^;
> # どこのか分からない 21143-PC を搭載しているカードから交換しましたが、
> # 前のと比べると、とても安定しています。
> 
> dmesg では次のような行がありました。
> eth0: ADMtek Comet rev 17 at 0xd000, 00:90:CC:A5:AF:DC, IRQ 11.
> 
> /proc/pci には次のような行がありました。
>     Ethernet controller: PCI device 1317:0985 (Bridgecom, Inc) (rev 17).

しっかりイケてますね。

当方の /proc/pci だと
$ cat /proc/pci
PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Intel 440BX - 82443BX Host (rev 3).
      Medium devsel.  Master Capable.  Latency=64.  
      Prefetchable 32 bit memory at 0xe0000000 [0xe0000008].
-snip-
  Bus  0, device  16, function  0:
    Communication controller: Lucent (ex-AT&T) Microelectronics Unknown device (rev 0).
      Vendor id=11c1. Device id=450.
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  Latency=64.  Min Gnt=252.Max Lat=14.
      Non-prefetchable 32 bit memory at 0xfc004800 [0xfc004800].
      I/O at 0x1080 [0x1081].
      I/O at 0x1400 [0x1401].
  Bus  0, device  17, function  0:
    Ethernet controller: SMC Unknown device (rev 17).
      Vendor id=1113. Device id=1216.
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  Latency=64.  Min Gnt=255.Max Lat=255.
      I/O at 0x1800 [0x1801].
      Non-prefetchable 32 bit memory at 0xfc004c00 [0xfc004c00].
というようになっております。


> どのバージョンの tulip.c を使ってますか?
> もし、0.90q ならまだ対応していないだけかも知れません。
> # ソース中に ADMtek と言う文字が見あたらないし。

とりあえず、この道はあきらめました。


> 2.2.17 の tulip.c にも ADMtek AN981 しかテーブルにありません。
>   { "ADMtek AN981 Comet",
>         0x1317, 0x0981, 0xffff, PCI_ADDR0_IO, 256, 32, tulip_probe1 },
> 
> /proc/pci にあるように、AN983 は 0x1317, 0x985 なのでマッチしません。

ということで、 2.2.17 についてきた tulip.c を改造してみましたが、
どれも成功しませんでした。
一応ダメだった組み合わせを書いておきますので、これをよむ方は
同じ方法ではハマる可能性たかいです。
下記のように書き換えました。
■ダメな組み合わせ、その1 kernel 2.2.17 付属の tulip.c書き換え
   { "ADMtek AN985 Comet",
         0xNNNN, 0xMMMM, 0xffff, PCI_ADDR0_IO, 256, 32, tulip_probe1 },
 NNNN=1317, MMMM=0985
 NNNN=1216, MMMM=0985
 NNNN=0002, MMMM=0985
 NNNN=1113, MMMM=2242
 NNNN=1113, MMMM=1216

■ダメな組み合わせ、その2 kernel 2.2.17 付属の tulip.c を 0.90q に
置き換えてコンパイル

■ダメな組み合わせ、その3 kernel 2.2.17 付属の tulip.c を 0.92 に
置き換え、同じディレクトリに http://www.scyld.com/network/tulip.html から
もらってきた pci-scan.h と kern_compat.h をおいてコンパイルしました。
また、組み合わせ2まで松田様のご進言通りカーネル組み込みをしておりましたが、
ここからモジュールとしております。

■ダメな組み合わせ、その4 kernel 2.2.17 付属の tulip.c を 0.92 に
置き換えた状態から、 tulip.c を書き換えてみました。
        { "ADMtek Centaur-P", { 0xNNNNNNNN, 0xffffffff },
          TULIP_IOTYPE, 256, COMET },
 NNNNNNNN=09850002
 NNNNNNNN=09851317

なお上記の数字当てはめ根拠として、前回の投稿のときの調査結果(下記)の
数字をあてずっぽうでいれこんでみました。
-------------------------------------------------
$ sudo ./tulip-diag -ee -p 1800

tulip-diag.c:v2.04 9/26/2000 Donald Becker (becker@xxxxxxxxx)
 http://www.scyld.com/diag/index.html
Assuming a Digital Tulip series adapter at 0x1800.
 Port selection is 100mbps-SYM/PCS 100baseTx scrambler, half-duplex.
 Transmit stopped, Receive stopped, half-duplex.
  The Rx process state is 'Stopped'.
  The Tx process state is 'Stopped'.
  The transmit threshold is 128.
 Interrupt sources are pending!  CSR5 is fc00c810.
   Link passed indication.
   Timer expired indication.
   Early Rx indication.
EEPROM size is 8.
 A simplifed EEPROM data table was found.
 The EEPROM does not contain transceiver control information.
EEPROM contents:
  0985 0002 0000 0000 9000 0396 2d49 0000
  0000 0400 0001 0000 0000 0000 0000 0100
  1216 1113 2242 1113 ffff 0000 0000 a04c
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 e4dc
 ID block CRC 0xa2 (vs. 00).
  Full contents CRC 0xe4dc (read as 0xe4dc).
-------------------------------------------------

この過程で 9000 0396 2d49 0000 は恐らく Ethernet 
アドレスと推定するにいたりました。
最後の 4 桁は無視としてこのパソコンのアドレスが
00:90:96:03:49:2d ですので二桁づつ入れ替えれば
同じようになります。

また、 /proc/pci から
1216 がデバイス ID で 1113 がベンダ ID ということに
なりそうです。
2242 は Accton での型番 EN2242 の一部かもしれません。

ほかの NIC の同様の結果がわかるとさらに書き換えの
方向がわかるかもしれません。


> なお、2.4.0-test10 の tulip_core.c には次のようなエントリがあります。
>         { 0x1317, 0x0985, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET },

kernel2.4.0-test10 を拾ってきてためしてみようかという気に
なりつつあります。


> 新しいドライバを使ってみてはどうでしょうか?
> http://www.scyld.com/network/tulip.html にあるものだと、
> 次のようなエントリがありますから、認識は出来そうです。
> 
>         { "ADMtek Centaur-P", { 0x09851317, 0xffffffff },
>           TULIP_IOTYPE, 256, COMET },
> 
> もしかしたら、テーブルに AN983 のエントリを追加するだけでも
> 良いかも知れませんが。

ということでエントリを追加してみたと思うのですが、望むようには
なりませんでした。

なんせ c は新入社員研修のときに半日講習受けただけなので
c かどうかはわかりますが、どこがどういう風になっているかは
皆目わかりませんので、ほとんどサルがシェークスピアを
タイプするようなものかとも思っています。
(無謀という婉曲な表現)



下にほかの調査結果を載せます。

■モジュールとして組み込んでみようとしてみたとき。
$ sudo /sbin/modprobe tulip
/lib/modules/2.2.17/net/tulip.o: init_module: Device or resource busy
Hint: this error can be caused by incorrect module parameters, including invalid IO or IRQ parameters
/lib/modules/2.2.17/net/tulip.o: insmod /lib/modules/2.2.17/net/tulip.o failed
/lib/modules/2.2.17/net/tulip.o: insmod tulip failed
tulip のバージョンを 0.92 にしてコンパイル時モジュール指定して
みたら起動時のメッセージに上記が混ざるようになりました。
もちろん dmesg には記録されておりません。

■ lspci してみたとき
$ /sbin/lspci
00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 03)
00:04.0 CardBus bridge: Texas Instruments: Unknown device ac40
00:04.1 CardBus bridge: Texas Instruments: Unknown device ac40
00:04.2 FireWire (IEEE 1394): Texas Instruments: Unknown device 8011
00:07.0 Bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 03)
00:08.0 Multimedia audio controller: Cirrus Logic: Unknown device 6005 (rev 01)
00:10.0 Communication controller: Lucent Microelectronics: Unknown device 0450
00:11.0 Ethernet controller: Accton Technology Corporation: Unknown device 1216 (rev 11)
01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage P/M Mobility AGP 2x (rev 64)

■ダメな組み合わせその2の tulip のバージョンを 0.90q にして
make-kpkg --revision hoge 2> fuga してでたエラーまたはウォーニング
init/main.c: In function `start_kernel':
init/main.c:1423: warning: implicit declaration of function `bigphysarea_init'
floppy.c: In function `result':
floppy.c:1168: warning: `status' might be used uninitialized in this function
joliet.c: In function `uni16_to_x8':
joliet.c:23: warning: unused variable `uni_page'
joliet.c:22: warning: unused variable `cl'
joliet.c:22: warning: unused variable `ch'
{standard input}: Assembler messages:
{standard input}:1841: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:1841: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:1009: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:1009: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:333: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:334: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:335: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:336: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:337: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:592: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:592: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:1119: Warning: using `%edx' instead of `%dx' due to `l' suffix
{standard input}:1134: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccmtP3Tu.s: Assembler messages:
/tmp/ccmtP3Tu.s:607: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccmtP3Tu.s:607: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccmtP3Tu.s:644: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccmtP3Tu.s:644: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccmtP3Tu.s:740: Warning: using `%ecx' instead of `%cx' due to `l' suffix
/tmp/ccmtP3Tu.s:747: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccmtP3Tu.s:748: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccmtP3Tu.s:761: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccmtP3Tu.s:761: Warning: using `%edx' instead of `%dx' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:1413: Warning: using `%bx' instead of `%ebx' due to `w' suffix
{standard input}: Assembler messages:
{standard input}:943: Warning: using `%edx' instead of `%dx' due to `l' suffix
{standard input}:944: Warning: using `%edx' instead of `%dx' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:457: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:457: Warning: using `%eax' instead of `%ax' due to `l' suffix
setup.c: In function `transmeta_model':
setup.c:762: warning: unused variable `edx'
setup.c:762: warning: unused variable `ecx'
setup.c:762: warning: unused variable `n'
bios32.c: In function `pci_fixup_serverworks':
bios32.c:1058: warning: unused variable `bus'
bios32.c: In function `pci_fixup_compaq':
bios32.c:1073: warning: unused variable `bus'
{standard input}: Assembler messages:
{standard input}:1096: Warning: indirect lcall without `*'
{standard input}:1182: Warning: indirect lcall without `*'
{standard input}:1267: Warning: indirect lcall without `*'
{standard input}:1307: Warning: indirect lcall without `*'
{standard input}:1338: Warning: indirect lcall without `*'
{standard input}:1369: Warning: indirect lcall without `*'
{standard input}:1400: Warning: indirect lcall without `*'
{standard input}:1430: Warning: indirect lcall without `*'
{standard input}:1460: Warning: indirect lcall without `*'
/tmp/cc5Hy09z.s: Assembler messages:
/tmp/cc5Hy09z.s:666: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:667: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:668: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:669: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:828: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:829: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:830: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:831: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:911: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/cc5Hy09z.s:912: Warning: using `%eax' instead of `%ax' due to `l' suffix
drivers/net/net.a(tulip.o): In function `tulip_probe':
tulip.o(.text+0x520f): undefined reference to `pci_drv_register'
make[1]: *** [vmlinux] Error 1
make: *** [stamp-build] Error 2

■ダメな組み合わせその3以降の tulip のバージョンを 0.92 にして
make-kpkg --revision hoge 2> fuga してでたエラーまたはウォーニング
init/main.c: In function `start_kernel':
init/main.c:1423: warning: implicit declaration of function `bigphysarea_init'
floppy.c: In function `result':
floppy.c:1168: warning: `status' might be used uninitialized in this function
joliet.c: In function `uni16_to_x8':
joliet.c:23: warning: unused variable `uni_page'
joliet.c:22: warning: unused variable `cl'
joliet.c:22: warning: unused variable `ch'
{standard input}: Assembler messages:
{standard input}:1841: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:1841: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:1009: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:1009: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:333: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:334: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:335: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:336: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:337: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:592: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:592: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:1119: Warning: using `%edx' instead of `%dx' due to `l' suffix
{standard input}:1134: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccrVBjuS.s: Assembler messages:
/tmp/ccrVBjuS.s:609: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccrVBjuS.s:609: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccrVBjuS.s:646: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccrVBjuS.s:646: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccrVBjuS.s:742: Warning: using `%ecx' instead of `%cx' due to `l' suffix
/tmp/ccrVBjuS.s:749: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccrVBjuS.s:750: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccrVBjuS.s:763: Warning: using `%edx' instead of `%dx' due to `l' suffix
/tmp/ccrVBjuS.s:763: Warning: using `%edx' instead of `%dx' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:1413: Warning: using `%bx' instead of `%ebx' due to `w' suffix
{standard input}: Assembler messages:
{standard input}:943: Warning: using `%edx' instead of `%dx' due to `l' suffix
{standard input}:944: Warning: using `%edx' instead of `%dx' due to `l' suffix
{standard input}: Assembler messages:
{standard input}:457: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:457: Warning: using `%eax' instead of `%ax' due to `l' suffix
setup.c: In function `transmeta_model':
setup.c:762: warning: unused variable `edx'
setup.c:762: warning: unused variable `ecx'
setup.c:762: warning: unused variable `n'
bios32.c: In function `pci_fixup_serverworks':
bios32.c:1058: warning: unused variable `bus'
bios32.c: In function `pci_fixup_compaq':
bios32.c:1073: warning: unused variable `bus'
{standard input}: Assembler messages:
{standard input}:1096: Warning: indirect lcall without `*'
{standard input}:1182: Warning: indirect lcall without `*'
{standard input}:1267: Warning: indirect lcall without `*'
{standard input}:1307: Warning: indirect lcall without `*'
{standard input}:1338: Warning: indirect lcall without `*'
{standard input}:1369: Warning: indirect lcall without `*'
{standard input}:1400: Warning: indirect lcall without `*'
{standard input}:1430: Warning: indirect lcall without `*'
{standard input}:1460: Warning: indirect lcall without `*'
/tmp/ccYJC8xT.s: Assembler messages:
/tmp/ccYJC8xT.s:668: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:669: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:670: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:671: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:830: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:831: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:832: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:833: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:913: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccYJC8xT.s:914: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccSooIoO.s: Assembler messages:
/tmp/ccSooIoO.s:109: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccSooIoO.s:110: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccSooIoO.s:111: Warning: using `%eax' instead of `%ax' due to `l' suffix
/tmp/ccSooIoO.s:112: Warning: using `%eax' instead of `%ax' due to `l' suffix
Root device is (3, 8)
Boot sector 512 bytes.
Setup is 1284 bytes.
System is 418 kB
dir.c: In function `uni16_to_x8':
dir.c:72: warning: unused variable `uni_page'
dir.c:71: warning: unused variable `cl'
dir.c:71: warning: unused variable `ch'
namei.c: In function `xlate_to_uni':
namei.c:679: warning: passing arg 1 of pointer to function discards qualifiers from pointer target type



# 11/18 に期待すべきという神のお告げか・・・
--
あまねく生命に、あまねく知性に、最大の幸福を願う
E-mail:help@xxxxxxxxx