SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
無線LANデバイスに
関するいろいろ。
認識しない!動かない!で
はまらないためのはなし
13年9月10日火曜日
アジェンダ
無線LANに関わるモジュールについて
インストールのしかた。
kernel moduleにあるデバイスを動かした
いとき
kernel moduleにないデバイスを動かした
いとき
認識しない、動かないときに見るべきこと
13年9月10日火曜日
スピーカーについて
Yuki Uchikoba (内木場 夕紀)
1974年産、鹿児島出身東京経由福岡在住
無線LAN関係のお仕事をしてます
Debian歴は3年くらい??
http://sayama-yuki.net/
Facebook: yuki.uchikoba
    こんなアイコンです→
13年9月10日火曜日
無線LANに関する
モジュールについて
13年9月10日火曜日
cfg80211
mac80211
Driver for Device
PHY
UserSpace
Kernel
無線LANに関わるモジュール
13年9月10日火曜日
無線LANに関わるモジュール
cfg80211
mac80211
Drivers for Device
PHY
UserSpace
Kernel
nl80211
cfg80211_ops
ieee80211_ops
13年9月10日火曜日
cfg80211
wireless設定を共通化したAPI
ユーザースペースとは nl80211でやりとりを
する
古いドライバはこれに対応してない
see also
http://wireless.kernel.org/en/developers/
Documentation/cfg80211
13年9月10日火曜日
mac80211
デバイスドライバとのインタフェース
see also
http://wireless.kernel.org/en/developers/
Documentation/mac80211
13年9月10日火曜日
この表以外のもの
rfkill
読んで字のごとくです。
無線デバイスのOn/Off制御をします
無線LAN以外にも、
Bluetoothなどでも使います
13年9月10日火曜日
各設定有効方法
cfg80211,mac80211
Networking support
→Wireless
  cfg80211 - wireless configuration API
  Generic IEEE 802.11 Networking Stack (mac80211)
rfkill
Networking support
→RF switch subsystem support
 →Generic rfkill regulator driver
13年9月10日火曜日
別(従来)のタイプ
Drivers for Device
PHY
UserSpace
Kernel
Space
WE(Wireless Extentions)
13年9月10日火曜日
別(従来)のタイプ
mac80211/cfg80211を使わずにやっていま
す
Wireless Extentionを使っています
この場合、iwは使えません
設定コマンドはwireless-toolsを使います
http://www.hpl.hp.com/personal/
Jean_Tourrilhes/Linux/Tools.html
※パッケージにもなっております。
13年9月10日火曜日
別(従来)のタイプ
% lsmod | grep r8712
r8712u 142898 0
usbcore 128681 7 ehci_hcd,uhci_hcd,usbhid,btusb,usb_storage,r8712u
例)Realtek RT8192SU(r8712u)
/usr/src/linux-source-3.2/drivers/staging/rtl8712
お暇があればソースを眺めてみるの
もいいでしょう。
13年9月10日火曜日
ファームウェア
本体ドライバ以外に、デバイス内で動かすた
めのプログラム(ファームウェア)も
必要な場合があります
(最近は大体そう)
PC
Bus(PCI,USB,...)
Device
firmware
13年9月10日火曜日
インストールのしかた。
13年9月10日火曜日
デバイスを知る
製品名でぐぐる
大抵出てくる
または一覧載せてるサイトから辿る
http://wikidevi.com とか詳しい
13年9月10日火曜日
moduleにある場合
make menuconfigする
menuで以下の位置にある
Device Drivers
→Network Device Support
 →Wireless LAN
あとは
make modules → make modules_install
13年9月10日火曜日
moduleにある場合
ただしこれだけでは動かないものがある
モノによっては別途ファームウェアが必要
non-freeにあるものもあるから注意
→ /etc/apt/souces.list に追加しましょう
see also
http://wiki.debian.org/Firmware
13年9月10日火曜日
moduleにない場合
たとえば以下のケース
ベンダー公式配布のものを使う場合
Linux Wirelessにあるのを自分で入れたい
http://wireless.kernel.org/en/users/Download/stable/
13年9月10日火曜日
moduleにない場合
ドキュメントにしたがいmakeする
ファームウェアが必要な場合は忘れずに!
/lib/firmware に入れます
aptからも入れられますが
non-freeにあることが多いので注意です。
13年9月10日火曜日
認識しない、動かないとき
ここを見よう
13年9月10日火曜日
makeが通らない
よくあること
エラーに従って頑張ってなおす
または対応してるバージョンか確認!
cfg80211,mac80211が必要なら入れてある
か?
13年9月10日火曜日
認識しない?
Network managerが入ってたらすぐに見え
ます
見えなかったら?
lsusbまたはlspciしてハードウェアが見え
てる?
dmesgで差し込んだ直後のログを見てみよ
う
USBまたはPCIレベルで認識できてたら次
にいく
13年9月10日火曜日
認識してない!
dmesgでなにかエラー出してるはず
firmware入れてる?
[ 8361.258283] usb 1-2: new high-speed USB device number 9 using ehci_hcd
[ 8361.435068] usb 1-2: New USB device found, idVendor=2019, idProduct=ed18
[ 8361.435072] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8361.435074] usb 1-2: Product: GW-USH300N
[ 8361.435076] usb 1-2: Manufacturer: PLANEX COMMUNICATIONS INC.
[ 8361.435077] usb 1-2: SerialNumber: 00e04c000001
[ 8361.546794] r8712u: DriverVersion: v7_0.20100831
[ 8361.546989] r8712u: register rtl8712_netdev_ops to netdev_ops
[ 8361.546996] r8712u: USB_SPEED_HIGH with 4 endpoints
[ 8361.549432] r8712u: Boot from EFUSE: Autoload OK
[ 8366.268881] r8712u: CustomerID = 0x0000
[ 8366.268884] r8712u: MAC Address from efuse = 00:22:cf:46:26:b2
[ 8366.268887] r8712u: Loading firmware from "rtlwifi/rtl8712u.bin"
[ 8366.281171] usb 1-2: firmware: agent aborted loading rtlwifi/rtl8712u.bin (not found?)
13年9月10日火曜日
iwコマンドが使えない
「nl80211 not found」などと怒られる
→ Wireless Extentionだけ使ってる
  (以前型の)ドライバです
  → Wireless tools を使いましょう。
13年9月10日火曜日

Más contenido relacionado

La actualidad más candente

仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理Akari Asai
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxTomoki SHISHIKURA
 
DNS移転失敗体験談
DNS移転失敗体験談DNS移転失敗体験談
DNS移転失敗体験談oheso tori
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話Masataka Tsukamoto
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)VirtualTech Japan Inc.
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話nullnilaki
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutTaisuke Yamada
 
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化anubis_369
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501稔 小林
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルMasahito Zembutsu
 
一人でもNFC開発
一人でもNFC開発一人でもNFC開発
一人でもNFC開発Hirokuma Ueno
 
第二回CTF勉強会資料
第二回CTF勉強会資料第二回CTF勉強会資料
第二回CTF勉強会資料Asuka Nakajima
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?Mr. Vengineer
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)Yuki Tamura
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)Kuniyasu Suzaki
 
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいwata2ki
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2Preferred Networks
 

La actualidad más candente (20)

仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
 
DNS移転失敗体験談
DNS移転失敗体験談DNS移転失敗体験談
DNS移転失敗体験談
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
 
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
一人でもNFC開発
一人でもNFC開発一人でもNFC開発
一人でもNFC開発
 
第二回CTF勉強会資料
第二回CTF勉強会資料第二回CTF勉強会資料
第二回CTF勉強会資料
 
LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoyaLXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
 
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 

Destacado

企業ロゴに学ぶ 頭を使わないスライド作り 色で悩む時間を減らそう
企業ロゴに学ぶ 頭を使わないスライド作り 色で悩む時間を減らそう企業ロゴに学ぶ 頭を使わないスライド作り 色で悩む時間を減らそう
企業ロゴに学ぶ 頭を使わないスライド作り 色で悩む時間を減らそうSanae Yamashita
 
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたいRubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたいSanae Yamashita
 
第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」Takuya Mukohira
 
Kernel overview
Kernel overviewKernel overview
Kernel overviewKai Sasaki
 
自動並列化コンパイラをAndroidに適用してみた
自動並列化コンパイラをAndroidに適用してみた自動並列化コンパイラをAndroidに適用してみた
自動並列化コンパイラをAndroidに適用してみたmagoroku Yamamoto
 
Programming Embedded linux
Programming Embedded linuxProgramming Embedded linux
Programming Embedded linuxLiran Ben Haim
 
Linux device driver for dummies
Linux device driver for dummiesLinux device driver for dummies
Linux device driver for dummiesHirohito Kato
 
20150928楽しいlambda
20150928楽しいlambda20150928楽しいlambda
20150928楽しいlambdaNorifumi Homma
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival GuideKernel TLV
 
Innovation eggcloudnative
Innovation eggcloudnativeInnovation eggcloudnative
Innovation eggcloudnativeTakuro Sasaki
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowlerTakuro Sasaki
 
Crawler for Non engineer
Crawler for Non engineerCrawler for Non engineer
Crawler for Non engineerTakuro Sasaki
 
Lambda認証認可パターン
Lambda認証認可パターンLambda認証認可パターン
Lambda認証認可パターンTakuro Sasaki
 
English for programmers
English for programmersEnglish for programmers
English for programmersHirohito Kato
 
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafMasatoshi Tada
 
OSS についてあれこれ
OSS についてあれこれOSS についてあれこれ
OSS についてあれこれTakuto Wada
 

Destacado (20)

zsh とわたし
zsh とわたし zsh とわたし
zsh とわたし
 
企業ロゴに学ぶ 頭を使わないスライド作り 色で悩む時間を減らそう
企業ロゴに学ぶ 頭を使わないスライド作り 色で悩む時間を減らそう企業ロゴに学ぶ 頭を使わないスライド作り 色で悩む時間を減らそう
企業ロゴに学ぶ 頭を使わないスライド作り 色で悩む時間を減らそう
 
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたいRubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
Rubotyに名前をつけて可愛がってかしこく育てて一緒に暮らしたい
 
第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
第2回 Framgia × LOUPE 勉強会 「Chrome Extensionいじってみた話」
 
Kernel overview
Kernel overviewKernel overview
Kernel overview
 
自動並列化コンパイラをAndroidに適用してみた
自動並列化コンパイラをAndroidに適用してみた自動並列化コンパイラをAndroidに適用してみた
自動並列化コンパイラをAndroidに適用してみた
 
React native
React nativeReact native
React native
 
Programming Embedded linux
Programming Embedded linuxProgramming Embedded linux
Programming Embedded linux
 
Linux device driver for dummies
Linux device driver for dummiesLinux device driver for dummies
Linux device driver for dummies
 
Linux IO
Linux IOLinux IO
Linux IO
 
20150928楽しいlambda
20150928楽しいlambda20150928楽しいlambda
20150928楽しいlambda
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival Guide
 
Linux scheduler
Linux schedulerLinux scheduler
Linux scheduler
 
Innovation eggcloudnative
Innovation eggcloudnativeInnovation eggcloudnative
Innovation eggcloudnative
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowler
 
Crawler for Non engineer
Crawler for Non engineerCrawler for Non engineer
Crawler for Non engineer
 
Lambda認証認可パターン
Lambda認証認可パターンLambda認証認可パターン
Lambda認証認可パターン
 
English for programmers
English for programmersEnglish for programmers
English for programmers
 
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with Thymeleaf
 
OSS についてあれこれ
OSS についてあれこれOSS についてあれこれ
OSS についてあれこれ
 

無線LANデバイスについて(kernelレベル)