&size(24){&color(darkgreen){''PCMCIA''};}; #navi(Linux) ''CONTENTS'' #contents ---- ''REFERENCES'' -[[Linux PCMCIA Information>http://pcmcia-cs.sourceforge.net/]] --[[Card Service>https://sourceforge.net/projects/pcmcia-cs/]] --[[HOWTO>http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO.html]] --[[Programmer's Guide>http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html]] --[[HOWTO 日本語訳(古い)>http://www.linux.or.jp/JF/JFdocs/PCMCIA-HOWTO.html]] --[[Pgrammer's Guide 日本語訳(古い)>http://www.linux.or.jp/JF/JFdocs/PCMCIA-PROG.html]] ---- ** はじめに [#y4ef4bb9] ~PCMCIAは、Personal Computer Memory Card International Association の略。現在は規格として、「PC Card Standard」となったので、"16-bit PC Card" というほうが正しい表現。 -PC Card 分類 |PC Card|16Bit PC Card|メモリカード|SRAMカード|| |~|~|~|リニアフラッシュメモリカード|~| |~|~|~|マスクROMカード|~| |~|~|I/Oカード|ATAフラッシュ|このカテゴリが多い| |~|~|~|ATAHDDカード|~| |~|~|~|モデムカード|~| |~|~|~|SCSIカード|~| |~|~|~|LANカード|~| |~|~|~|その他|~| |~|CardBusカード||高速SCSIカード|| |~|~|~|高速ATAカード|~| |~|~|~|高速LANカード|~| |~|~|~|高速シリアル(USB/1394)カード|~| |~|その他||ZVポート用ビデオカード|| -[[pcmcia-cs>http://pcmcia-cs.sourceforge.net/]] ~LinuxでPCカードを使う為の、カーネルサービス、ドライバ及び、ユーザーレベルユーティリティのパッケージ。最新の安定版は、3.2.8(2004-07-16 release) もうstable?。ドライバは、kernel2.4からカーネルソースに取り込まれている。 **Beta 05 Release ?? [#ve25fc95] -また来てしまった…。とりあえずreleaseは保留しとこ。またきても困るし… -要望の追加&不具合修正 --iwconfig ethXX essid any 設定時の表示修正 --private commandに"GetDetach"追加。(0:disabled 1:enabled) --infra 接続時に、channelの変数(driver内部変数)をAPのもの合わせていたのを設定値から変更しないようにした。 --MIBのLOCAL_LINK_AP_STATUSの取得 --scanの表示でchannelが1つずれて表示されるのを修正 --rate=auto設定時のiwconfigのrate表示について --- rateの構造体(iw_param)のfixedメンバでautoかどうか判定 --- iwconfig では、fixed が trueの場合"Bit Rate=xxMb/s" falseの場合 "Bit Rate:xxMb/s"と表示 --- rateの表示をautoの場合は、追従して表示するように変更。 --rateの表示5.5M設定時、5Mと表示されていたのを修正。 --rateの設定所定の値以外の値を設定すると、errorを返すように修正。(いままではAUTO設定としていた) -とりあえずPreRelease(2005-06-09)ちゃんとPowerSave動作してるかどうか確認を頼んだ。ひとまずPowerSave動作するけど、俺だけじゃ判断が難しい (^^; --(金子)おぉ。早いじゃないですか。。正式Releaseは返事待ちかな?反応あったら教えてね。 --PowerSave状態になる条件として、”一定時間通信がない”という条件がもらった資料に書いてあったから実装したのに… 待ち時間なしでPowerSave状態にするように変更してくれとの要望がきた。&sad; :( Windowsのソースはそーなってたらしいけど、あれとっても読みにくい… --ks29xx_set_encode (ks29xx_net.c)に不具合ありの報告が来た。(ま、今回にリリースには、含まないということで…) -KS2970不具合?? --PowerSaveモードに設定し、しばらく(数分)ほーっておくと、deviceが反応しなくなる?(詳細はよくわからない…)。 ---SDKボードだと大丈夫 ---cheeky,dasher,bluffで確認。angerだと大丈夫。 ---(金子)ハード的な原因のようですね。多少でも詳細が分かれば教えてください。回覧メール出します。 --CF-cardの部品のバラつきが原因で、firmのタイミングがシビアで、許容範囲を超える部分があるのが原因らしい。ま、ドライバには、関係ない :) ---(金子)お疲れさまでした。KSCには「はやく言え〜」と言いたいね。リリースする? **Beta 04 Release !! (2005-05-26) [#dcd364e0] -[[ks2101-linux.beta04>http://wiki.wivicom.co.jp/cgi-bin/viewcvs.cgi/ks2101-linux/?only_with_tag=beta04]] -要望の追加 --BeaconLostCountの設定&取得の追加 --要望はもう聞きたくないな〜。一度に出してくれればいいのに…。次に要望がきたら、POWER_SAVE releaseと一緒ってことにしようかな? :) 結構、release 作業めんどい… (^^; **ks2101-linux power-save 開発メモ [#s67800d3] -in_interrupt()はCPUが割り込みモードで実行されている場合、0以外を返す。 -hard_start_xmit methodは割り込みモード(in_interrupt()=1) -taskletの実行は、割り込みモード(in_interrupt()=1) -割り込みモードでは、スリープしちゃダメ -POWER SAVE statemachine |~state |~host state |~device state|~mode state|~description| |STATE0 |HIF_POWER_NO_SET |POWER_ACTIVE |MODE未設定 || |STATE1 |HIF_POWER_NO_SET |POWER_ACTIVE |INFRA未接続|| |STATE2 |HIF_POWER_NO_SET |POWER_ACTIVE |ADHOC接続 || |STATE3 |HIF_POWER_ACTIVE_SET |POWER_ACTIVE |INFRA未接続|| |STATE4 |HIF_POWER_ACTIVE_SET |POWER_ACTIVE |ADHOC接続 || |STATE5 |HIF_POWER_NO_SET |POWER_ACTIVE |INFRA接続 || |STATE6 |HIF_POWER_ACTIVE_SET |POWER_ACTIVE |INFRA接続 || |STATE7 |HIF_POWER_SAVE_SET_REQ |POWER_ACTIVE |INFRA接続 || |STATE8 |HIF_POWER_SAVE_SET_DONE |POWER_SAVE |INFRA接続 || |STATE9 |HIF_POWER_SAVE_WAKEUP_REQ |POWER_SAVE |INFRA接続 || |STATE10|HIF_POWER_SAVE_WAKEUP_DONE|POWER_ACTIVE |INFRA接続 || |STATE11|HIF_POWER_SAVE_WAIT |POWER_ACTIVE |INFRA接続 || |STATE12|HIF_POWER_SAVE_??? |POWER_ACTIVE |ADHOC接続 || |~method |~description | |HIF_POWER_ACTIVE_SET|host<->device| |HIF_POWER_SAVE_SET |host<->device| |HIF_MODE_SET |host<->device| |HIF_DATA_REQ |host->device | |HIF_XXX_REQ(CONF) |host<->device| |HIF_DARA_IND(CONF) |host<-device | |SNOOSE_SET |host->device | |MAC_WAKEUP_REQUEST |host->device | |MAC_WAKEUP_ACK |host<-device | #graphviz(define, @page@, rankdir=TB; ) #graphviz(dot,small){{ digraph G { node [shape = "circle",style=filled]; subgraph cluster_0 { // ordering=out; "STATE0" [shape = "doublecircle"]; "STATE0" -> "STATE2" [label="HIF_MODE_SET"]; "STATE0" -> "STATE1" [label="HIF_MODE_SET"]; "STATE0" -> "STATE5" [label="HIF_MODE_SET"]; label = "power none"; } subgraph cluster_1 { // ordering=in; "STATE4" [shape = "doublecircle"]; "STATE6" [shape = "doublecircle"]; "STATE3" -> "STATE6" [label="CONNECT"]; "STATE6" -> "STATE3" [label="DISCONNECT"]; "STATE4" -> "STATE3" [label="HIF_MODE_SET"]; "STATE4" -> "STATE6" [label="HIF_MODE_SET"]; "STATE3" -> "STATE4" [label="HIF_MODE_SET"]; {rank=sink; "STATE4";} label = "power active"; color=red; } subgraph cluster_2 { // ordering=out; "STATE8" [shape = "doublecircle"]; "STATE8" -> "STATE9" [label="hoge"]; "STATE9" -> "STATE10" [label="MAC_WAKEUP_ACK"]; "STATE10" -> "STATE11" [label="HIF_hoge_REQ"]; "STATE11" -> "STATE8" [label="WAIT_TIMEOUT"]; {rank=source; "STATE8";} {rank=sink; "STATE11";} label = "power save"; color=blue; } "STATE10" -> "STATE12" [label="HIF_MODE_SET"]; "STATE11" -> "STATE12" [label="HIF_MODE_SET"]; "STATE6" -> "STATE7" [label="HIF_POWER_SAVE_SET"]; "STATE5" -> "STATE7" [label="HIF_POWER_SAVE_SET"]; "STATE7" -> "STATE8" [label="SNOOSE_SET"]; "STATE1" -> "STATE3" [label="HIF_POWER_ACTIVE_SET"]; "STATE5" -> "STATE6" [label="HIF_POWER_ACTIVE_SET"]; "STATE2" -> "STATE4" [label="HIF_POWER_ACTIVE_SET"]; // "STATE10" -> "STATE6" [label="HIF_POWER_ACTIVE_SET"]; // "STATE11" -> "STATE6" [label="HIF_POWER_ACTIVE_SET"]; // "STATE12" -> "STATE4" [label="HIF_POWER_ACTIVE_SET"]; {rank=source; subgraph cluster_0;} {rank=same; subgraph cluster_1; "STATE7";} {rank=sink; subgraph cluster_2;} } }} //#graphviz(showmacro) **Beta 03 Release !! (2005-05-23) [#d087b7f4] -[[ks2101-linux.beta03>http://wiki.wivicom.co.jp/cgi-bin/viewcvs.cgi/ks2101-linux/?only_with_tag=beta03]] -不具合の修正&要望の追加 --不具合 ---WEPの設定 indexのみの変更可能に。 ---essid any の時のsize=0の指定。 ---Bssidの表示の不具合。 --要望 ---MAC未対応の機能を無効化(retry,power,txpower,sens) ---WEPの設定データを表示するようにする。 ---private commandのSetConnectの名前変更。(SetDetachに変更) ---private commandにWEP keyのASCII表示の機能を追加 ---private commandにscan typeの取得&設定を追加 ---iwlistのtxpowerの表示を-256dBmにする。 **Beta 02 Release !! (2005-05-17) [#y81b2d03] -[[ks2101-linux.beta02>http://wiki.wivicom.co.jp/cgi-bin/viewcvs.cgi/ks2101-linux/?only_with_tag=beta02]] -新しいMAC firmware version 1.03に対応。古いfirmware(ver0.26)とは互換がないので注意!! -- 変更点 mail from 浦澤@KSC &ref(host_if.txt); いつもお世話になっております。 KSC 浦澤です。 CFカードとSDK(PCMCIA)の最新ファームをお送りします。 ks2916pc.rom --> SDK(PCMCIA) ks2970cf.rom --> CF 今回お送りするものはver1.03です。ver0.26からのバージョンアップによる HOSTif関連の変更は以下のとおりです。 (以前ご質問のノイズレベルの件です。) ・ホストi/fの変更(PHY_INFO、AP_LISTのNoiseエリア追加) - HIF_PHY_INFO_CONF_PRIに noiseエリア追加(BYTE) Tx_rate(LinkSpeed)をWORDからBYTEに変更 -->windowsDriverではすでにこうなっていたかもしれません。 - BssDscr(BSSList)に noise(BYTE)、pad_0(BYTE)を追加 -->重要! 詳しい構造体の情報は添付のhost_if.txtをご覧ください。 また、CFとSDK(PCMCIA)の違いは以下のとおりです。 LEDのON/OFFが逆 - GPIOのLow/Highの扱いがCFとSDK(PCMCIA)で逆になります。 PowerSaveでの起き上がり時間 - ビーコン周期よりどれだけ早く起動するかがCFとSDK(PCMCIA)で異なります。 -[[KS2970 CF card を追加>http://wiki.wivicom.co.jp/cgi-bin/viewcvs.cgi/ks2101-linux/ks29xx.conf.diff?r1=1.2&r2=1.3&diff_format=h]] **Beta 01 Release !! (2005-05-13) [#d0133045] -[[ks2101-linux.beta01>http://wiki.wivicom.co.jp/cgi-bin/viewcvs.cgi/ks2101-linux/?only_with_tag=beta01]] -[[Wireless-tools>Linux/Wireless-tools]]ページ参照 --(金子)やったね。次の作業順としては、1)パワーセーブ、2)暗号、だそうです。 --(金子)KS2101は、組込み用途を狙って低消費電力だから、パワーセーブは先に欲しいらしいです。 **KS2970 (CF card) CIS 情報 [#ecdef70e] manfid が前とちがっているじゃないか!ks29xx.confに追加しなければ… # dump_cis Socket 0: no CIS present Socket 1: dev_info NULL 0ns, 512b vers_1 5.0, "KeyStream Corp.", "KS2970", "", "" manfid 0x005b, 0xf002 funcid network_adapter lan_technology wireless lan_speed 1 mb/sec lan_speed 2 mb/sec lan_speed 5 mb/sec lan_speed 11 mb/sec lan_media 2.4_GHz config base 0x0200 mask 0x027f last_index 0x05 cftable_entry 0x05 [default] Vcc Vmin 3130mV Vmax 3470mV Iavg 300mA Ipeak 300mA Idown 10mA io 0x0000-0x003f [lines=6] [16bit] irq mask 0xffff [level] [pulse] 追加したら、うごいた :) +card "KeyStream KS2970 Wireless LAN PC Card" + manfid 0x005b, 0xf002 + bind "ks29xx_cs" cardmgr[1902]: socket 1: KeyStream KS2970 Wireless LAN PC Card kernel: cs: memory probe 0xa0000000-0xa0ffffff: clean. cardmgr[1902]: executing: 'modprobe ks29xx_cs' kernel: eth1: KeyStream KS2101 wireless. kernel: eth1: index 0x05: Vcc 3.3, irq 11, io 0x0100-0x013f cardmgr[1902]: executing: './network start eth1' kernel: ks29xx: MAC ADDRESS = 12:34:56:29:70:01 kernel: ks29xx: firmware ver. = 2970-PCMCIA-0.26 [Feb 09 2005 14:35:09] /etc/hotplug/net.agent: invoke ifup eth1 **Beta 00 Release !! (2005-04-12) [#n7a9bbcd] ~一応できた?cheekyのkernel2.6だとOopsが出てるが…。他のマシン&kernel2.4は大丈夫みたい。 -[[ks2101-linux.beta00>http://wiki.wivicom.co.jp/cgi-bin/viewcvs.cgi/ks2101-linux/?only_with_tag=beta00]] ~kernel2.6でモジュールをインストールすると、no version for "struct_module" found: kernel tainted. とか言われる。大丈夫か?動くから… -cheeky-kernel2.6 Oops message (driver load 直後) ちなみに毎回でます。大体メッセージはいつも同じ(多分) (^^; ks29xx: MAC ADDRESS = 00:0b:e3:00:00:00 ks29xx: firmware ver. = 2970-PCMCIA-0.26 [Feb 09 2005 14:35:09] Unable to handle kernel NULL pointer dereference at virtual address 00000058 printing eip: c0221cf3 *pde = 00000000 Oops: 0000 [#3] PREEMPT Modules linked in: ks29xx_cs ks29xx ipv6 ds nfsd exportfs lockd su nrpc tsdev mousedev joydev psmouse parport_pc parport evdev pcspkr eth1394 ohci1394 ieee1394 yenta_socket pcmcia_core snd_intel8x0m snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd_page_alloc gameport snd_mpu401_uart snd_rawmidi snd_seq_device snd shpchp pciehp pci_hotplug pl2303 usbserial intel_agp agpgart ehci_hcd uhci_hcd usbcore i810_audio ac97_codec soundcore nls_iso8859_1 nls_cp437 ide_cd cdrom b44 mii genrtc vfat fat ext3 jbd mbcache ide_generic piix ide_disk ide_core unix CPU: 0 EIP: 0060:[dev_seq_printf_stats+35/240] Not tainted EFLAGS: 00010246 (2.6.8) EIP is at dev_seq_printf_stats+0x23/0xf0 eax: 00000000 ebx: d7ec0000 ecx: d7e17f4c edx: dcc94280 esi: dcc94280 edi: d7ec0000 ebp: 000002b4 esp: d7e17ed4 ds: 007b es: 007b ss: 0068 Process ifconfig (pid: 4077, threadinfo=d7e16000 task=de8e9220) Stack: d7ec0000 c02aa2a0 de395800 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dcc94280 c0221ddc dcc94280 d7ec0000 Call Trace: [dev_seq_show+28/64] dev_seq_show+0x1c/0x40 [seq_read+443/688] seq_read+0x1bb/0x2b0 [vfs_read+237/352] vfs_read+0xed/0x160 [sys_read+81/128] sys_read+0x51/0x80 [syscall_call+7/11] syscall_call+0x7/0xb Code: 8b 50 58 89 54 24 48 8b 48 44 8b 50 40 01 ca 8b 48 50 01 ca <6>note: ifconfig[4077] exited with preempt_count 1 bad: scheduling while atomic! [schedule+1221/1232] schedule+0x4c5/0x4d0 [unmap_page_range+83/128] unmap_page_range+0x53/0x80 [unmap_vmas+438/464] unmap_vmas+0x1b6/0x1d0 [exit_mmap+133/368] exit_mmap+0x85/0x170 [mmput+101/144] mmput+0x65/0x90 [do_exit+348/1056] do_exit+0x15c/0x420 [do_page_fault+0/1389] do_page_fault+0x0/0x56d [die+249/256] die+0xf9/0x100 [do_page_fault+478/1389] do_page_fault+0x1de/0x56d [proc_read_inode+23/64] proc_read_inode+0x17/0x40 [buffered_rmqueue+245/464] buffered_rmqueue+0xf5/0x1d0 [buffered_rmqueue+245/464] buffered_rmqueue+0xf5/0x1d0 [find_get_page+45/96] find_get_page+0x2d/0x60 [__alloc_pages+784/880] __alloc_pages+0x310/0x370 [vsnprintf+598/1232] vsnprintf+0x256/0x4d0 [do_page_fault+0/1389] do_page_fault+0x0/0x56d [error_code+45/56] error_code+0x2d/0x38 [dev_seq_printf_stats+35/240] dev_seq_printf_stats+0x23/0xf0 [dev_seq_show+28/64] dev_seq_show+0x1c/0x40 [seq_read+443/688] seq_read+0x1bb/0x2b0 [vfs_read+237/352] vfs_read+0xed/0x160 [sys_read+81/128] sys_read+0x51/0x80 [syscall_call+7/11] syscall_call+0x7/0xb ~まーとりあえず<Kernel panic>ってのは出てないので、いきなり止まることはない。普通に操作できる。これがでても、ドライバは動く。 ~なんか出なくなった?みたい…。spinlock初期化してない奴があったので、初期化するようにした(当たり前!)。NULL pointer渡してるじゃん… XD **Firmware Debug Command [#k055c8e0] -KSCのファームウェアに実装されてるデバッグコマンド。どのファームも機能は、だいたい同じ。結構なんでもできちゃいます。隠しコマンドもたくさんあるらしい… KS2970 11b MAC 2970-PCMCIA-0.26 [Feb 09 2005 14:35:09] 2970PC>? ? help D(B/W/D) (start), (end) memory dump W(B/W/D) addr, data memory write R(B/W/D) addr memory read BB[R/W/D/I] Baseband access CH (number) RF ch(1..14) E[R/W/D/CL] (addr), (data) eeprom access HOST Host i/f MAC MAC inf MACADDR mac address MPL pool PHY PHY inf RATE (1/2/5/11) Tx rate SM staion inf TIM timer TX frame tx debug VER version -よく使うコマンド --host : MAC-HOST I/F 部分の情報がみれる --hostt : MAC-HOST 間でやり取りしたデータの履歴がみれる(一部) --sm : station management の情報がみれる -シリアルポート設定 38400 8N1 flow-control none **Linux Network Device [#h57dd48b] -今こんなです。MACアドレスこのままで大丈夫かな? # ifconfig eth1 eth1 Link encap:Ethernet HWaddr 12:FF:FF:FF:FF:FF BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:11 Base address:0x100 **Linux Driver 設計 [#s101ca70] ~せっかく新規で書くので、きちんと設計したい。(時間ないけど…) やっぱ設計は大事ですよ。アホな設計のクサレcodeは、読みにくいし修正もしにくい。後々の自分自身の為にもキチンと設計したいね。KSCのドライバの場合、モジュールとして分けるなら、デバイス依存部分(MAC CHIPのI/F)、MAC-HOST I/F Protocol 部分、あと、network_device I/F 部分ってとこかな。愚痴なんですけど、いつもWindowsのNDISドライバとか提供してもらってるのだが、もうちょっと他のOSにポーティングすること、考えて書いてほしいよな…。あんまり参考になんないんだよね。そういう俺も思いっきりCPU依存なCODEを書いていますけど…。少なくともBigEndianなCPUじゃ絶対動かない…。 -Device I/F module ~今回は、KS2101というMACチップを仕様する。I/FはPCMCIA、デバイスとのI/F部分はもちろん、pcmcia-cs のI/Fもこのモジュールに含む。レイヤ的に言えば、最下層 ks2101.h (KS2101のレジスタ定義、チップ固有の定数、マクロ等を定義) ks2101.c (基本的に、デバイスとのデータのやり取りを行う) ks29xx_cs.c (pcmcia-cs 関連のサービス処理) -MAC-HOST I/F module ~MACとHOSTの通信仕様部分。デバイスに依存するわけではないので、できるだけ汎用性を持たせて作りたい。11a、11bでも基本的には、あまり変わらない。MACからのデータを解析し、上位にあげたり、MACへ送るデータを作成したりする。レイヤ的には、真ん中。 ks_hostif.h ks_hostif.c -Network I/F module ~ネットワークデバイスとしての処理を担当。socketからのデータを処理したり、ネットワークデバイスのUP/DOWN、ユーザーアプリケーションI/Fのioctlなんかの処理。レイヤ的には、最上位。 ks29xx_net.c ks29xx_ioctl.h -その他 ks_debug.h (デバッグモジュール) ks_debug.c (デバッグモジュール) ks29xx.h (デバイスに依存しない部分の全体的な定義) -make target(↓な感じで、2つとする。PCMCIAサービス部分とその他。なぜって他のdriver見るとこんな感じになってるので…) TARGET = ks29xx_cs.o ks29xx.o ks29xx.o: ks2101.o ks29xx_net.o ks29xx_ioctl.o ks_hostif.o ks_debug.o $(LD) -r $^ -o $@ **Linux Driver Loading [#b47fe128] ~PC card service(cardmgr) にドライバをロードしてもらいたい場合、PCMCIA Card Configuration DataBase file の "/etc/pcmcia/config"に記述しておく。このファイルはadd-on driver用に"/etc/pcmcia/*.conf"も読み込むようになっているので、"/etc/pcmcia/hoge.conf"を作成し設定を記述しておいてもOK。DataBase fileを読み込ませるには、PC card serviceの再起動が必要。 -とりあえず実験 --ks29xx.conf # # PCMCIA Card Configuration Database # for ks29xx_cs # ks29xx.conf # # # Device driver definitions # device "ks29xx_cs" class "network" module "ks29xx_cs" # # Wireless network adapters # card "KeyStream KS2916 Wireless LAN PC Card" manfid 0x005b, 0xf000 bind "ks29xx_cs" --before log (なにも設定してない) cardmgr[544]: unsupported card in socket 1 cardmgr[544]: product info: "KeyStream Corp.", "KS2101", "", "" cardmgr[544]: manfid: 0x005b, 0xf000 function: 6 (network) --after log(/etc/pcmcia/ks29xx.conf作成&サービス再起動) cardmgr[1348]: socket 1: KeyStream KS2916 Wireless LAN PC Card cardmgr[1348]: executing: 'modprobe ks29xx_cs' cardmgr[1348]: + modprobe: Can't locate module ks29xx_cs cardmgr[1348]: modprobe exited with status 255 cardmgr[1348]: module /lib/modules/2.4.20-31.9/pcmcia/ks29xx_cs.o not available cardmgr[1348]: get dev info on socket 1 failed: Resource temporarily unavailable cardmgr[1348]: executing: 'modprobe -r ks29xx_cs' moduleをloadしようとして失敗して止まっている。成功!!。 ちゃんとDataBase file の内容が反映されてます。 **Linux Driver 検討項目 [#f872e1fb] +"Hotplug firmware loading support (EXPERIMRNTAL)"のカーネルオプションでMAC firmwareのロードはできる? Hotplugは、USB,1394,PCI(CardBus)関係の機能なので、PCMCIAじゃ無理? このオプションがカーネルのコードに入ったのは、2.4.23以降。 include/linux/firmware.h lib/firmware_class.c +wireless-toolsについて wireless-toolsは、現在一部の機能しかサポートしていない。(iwconfig) iwconfig iwevent iwgetid iwlist iwpriv iwspy +WPA(Wi-Fi Protected Access)について なんか仕様書読むと、この機能がはいっているみたいだなー。 やっぱサポートしなきゃいけない?よね〜。 +サポートするカーネルバージョンについて CardBusのときは、CardBusデバイスのサポートが2.4以降だったから、 あまり考えなかったが、PCMCIAの場合どうなのでしょ? PCカードのサポートが入ったのはいつ? 2.4からだっけ?じゃ、2.4系と2.6系ってことでいいのかな? いまどき2.2系使ってますとかいう奴は、いないだろ… -なんか急ぎ(3/20? 3末?)らしいので、基本的には現状維持!とする。 っていうかある程度でも動くものができるかも怪しい…。 -結論(時間がないし、β版でいいらしい) --とりあえずfirmware&設定ファイル(hoge.cfg)は、いままで通りとする --WPAは常に無効(サポートしない)。のちにサポートをすることを考えて書く。いつサポートするかわからんけど… --ioctl関係の修正(wireless-tools関係)は、時間があったらやりたい。最低iwconfigでパラメータを変えれるようにする。特殊な、ioctlの実装は、後回しとする。(だってβ版だし…) --カーネルは、2.4ベースで開発し、2.6でも動作の検証はする。 --もちろん通信ができることが前提。あと、無線パラメータを変えることができること。これで、十分でしょ! ** KS2916 [#b78590eb] -KS2101を使ったIEEE802.11b無線LANシステム開発キット --たくさんI/Fが付いてる。 ボードインターフェース ・ KS2821/22/30RF モジュール用コネクタ ・ PC カード (34 ピン×4/Sycard 社PCC extend 120 対応)(16bit Slave 接続共用) ・ SD カード(16 ピン/Sycard 社SD extend 300 対応) ・ USB (Type-A コネクタ(メス)) (*2) ・ RS232-C (D-sub 9 ピン/オス)(高速UART) ・ PCM Codec/Stereo Codec インターフェース(I2S インターフェース共用) ・ I2C インターフェース ・ 機能拡張設計用コネクタ(AMP 5-179009-8/160 ピン) (*2) ・ JTAG(20 ピン) ・ 8bit-GPIO ・ KS2101 動作確認用テストピンパッド ・ 電源ON/OFF 確認用LED×3 ・ 各部動作確認用LED×24 ・ 各種設定用スイッチ その他 ・ 5V AC アダプタ電源 (ジャンパ設定によりPC カード、SD カードからの電源供給も可能。(*3)) ・ Flash ROM(4Mbit)搭載 ・ SRAM(4Mbit)搭載 ・ EEPROM(I2S)搭載 ・ USB ドライバIC(OKI ML60842)搭載 (*2) (*2) オプション。詳細はお問い合わせ下さい。 (*3) ホスト側の電源容量にご注意下さい。 -CIS 情報 # dump_cis Socket 0: no CIS present Socket 1: dev_info NULL 0ns, 512b vers_1 5.0, "KeyStream Corp.", "KS2101", "", "" manfid 0x005b, 0xf000 funcid network_adapter lan_technology wireless lan_speed 1 mb/sec lan_speed 2 mb/sec lan_speed 5 mb/sec lan_speed 11 mb/sec lan_media 2.4_GHz config base 0x0200 mask 0x027f last_index 0x05 cftable_entry 0x05 [default] Vcc Vmin 3130mV Vmax 3470mV Iavg 300mA Ipeak 300mA Idown 10mA io 0x0000-0x003f [lines=6] [16bit] irq mask 0xffff [level] [pulse] ** KS2101 [#ka28de73] -KS2101 ~IEEE802.11b対応の BaseBand&MAC チップ。16Bit PC Card I/F のほかに、SDIO I/F も持っている。ARM7内臓。低消費電力。 ・ KS2101 BB/MAC (Base Band / Media Access Controller) ARM7TDMITM 搭載 低消費電力 44MHz/22MHz/5.5MHz/1.375MHz/32.768kHz クロック動的切り替え IEEE802.11b 準拠1/2/5.5/11Mbps 対応 IEEE802.11b DSSS 準拠 64bit/128bitWEP、TKIP、AES 対応 Short プリアンブル対応 アンテナダイバーシチ PC カードインターフェース搭載(16bit Slave 接続共用) SD カードインターフェース搭載 高速UART インターフェース搭載 PCM Codec/Stereo Codec インターフェース搭載(I2S インターフェース共用) I2C インターフェース搭載 JTAG インターフェース搭載 8bit-GPIO 搭載 内蔵マスクROM (32kByte) 内蔵SRAM (96kByte) -KS2100 ~IEEE802.11b対応の BaseBand&MAC チップ。KS2101と互換はないらしい。これにはSDIOはない。ARM7内臓。低消費電力。 -ついでにRFチップ情報 ・ KS2022/23/30 RF (2.4GHz RF コンバータ/シンセサイザ) シングルチップ・トランシーバ 高リニアリティー 低雑音指数 低消費電力 リニアゲイン制御スロープ パワーマネージメント/スタンバイモード 2.7〜3.3V 単一電源 パワーアンプ用プリドライバ内蔵 (KS2023) RF VCO 内蔵 (KS2023/30) パワーアンプ内蔵 (KS2030) ダイレクト・ダウンコンバージョン方式 (KS2030)