お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2012-11-06 20:04:45

keijinn
メンバ
登録日: 2012-11-06

THINKPAD E135の無線LAN

始めて投稿致します。よろしくお願いします。

Ubuntu12.04LTSをUSBインストールで使用しています。

他のPCで正常に使えている上記USBを今回購入したTHINKPAD E135でも運用したところ、無線LANを認識しません。
つまり、右上のインジケータで無線の候補がでてこない状態です。ウインドウズ7では無線LANが機能しているので、ハード面の故障とは考えにくいかと。
無線LANのスイッチの切り替え等も何度も確認しております。

lspciコマンドで、デバイスとカーネルモジュールを表示する所まではこぎつけたのですが、ismod コマンドでの活用がよくわからないのです。

そもそも、むしろ、ウィンドウズでのドライバーを当て直すのがよいのでしょうか?E130については、そのような記述を読みました。


以上とりとめないのですが、よろしくお願い致します。

オフライン

 

#2 2012-11-06 21:00:54

katsu07
ゲスト

Re: THINKPAD E135の無線LAN

lspciコマンドで、デバイスとカーネルモジュールを表示する所まではこぎつけたのですが、

この部分の情報を提示された方が回答が付きやすいと思いますよ。

 

#3 2012-11-06 23:34:08

keijinn
メンバ
登録日: 2012-11-06

Re: THINKPAD E135の無線LAN

やはりlinux用のドライバが欠けているようです。

システム設定→追加のドライバー、で、broadcom STA ドライバーが有効になっていないとのメッセージが出ました。

で、「有効にする」を押すと、ネットから拾おうとするのですが、有線LANにつながっていないのでNGとなります。

そこで、他のPCから、上記のドライバーをダウンロードしたのですが、このファイル tar.gz を、どうしたものか、途方に暮れています。

ファイルをどこに放り込んで展開すればいいのでしょう?

オフライン

 

#4 2012-11-07 07:57:45

keijinn
メンバ
登録日: 2012-11-06

Re: THINKPAD E135の無線LAN

これまで自分で考えたことを書きます。

これまで、いくつかのPCを使ってきてWINDOWSで使えている無線LANがUbuntuで使えないという事態はなかったため、新規に購入したPC:E135の初期不良
を疑ったのですが、そうではない、linuxに対応したドライバーが欠けてる、ということかと。

有線LANにつなげる環境なら、おそらく、システム→ドライバーの追加で、GUIでできそうかと。ただこれは今は試せません。

ドライバーのファイルをダウンロードする場合については、メーカーのreadme.txtに詳しく書いてあります。ただ、それがよくわからないのです。
英語の読解力の問題じゃないかとお叱りを受けそうですが、以下に該当個所と思われる部分を引用します。

REQUIREMENTS
------------
Building this driver requires that your machine have the proper tools,
packages, header files and libraries to build a standard a kernel module. 
This usually is done by installing the kernel developer or kernel source
package and varies from distro to distro. Consult the documentation for
your specific OS.

If you cannot successfully build a module that comes with your distro's
kernel developer or kernel source package, you will not be able to build
this module either.

If you try to build this module but get an error message that looks like
this:

make: *** /lib/modules/"release"/build: No such file or directory. Stop.

Then you do not have the proper packages installed, since installing the
proper packages will create /lib/modules/"release"/build on your system.

On Fedora install 'kernel-devel' (Development Package for building kernel
modules to match the kernel) from the Package Manager (System->
Administration-> Add/Remove Software).

On Ubuntu, you will need headers and tools.  Try these commands:
# apt-get install build-essential linux-headers-generic
# apt-get build-dep linux

To check to see if you have this directory do this:

# ls /lib/modules/`uname -r`/build

BUILD INSTRUCTIONS
------------------
1. Setup the directory by untarring the proper tarball:

For 32 bit:     hybrid-portsrc.tar.gz
For 64 bit:     hybrid-portsrc-x86_64.tar.gz

Example:
# mkdir hybrid_wl
# cd hybrid_wl
# tar xzf <path>/hybrid-portsrc.tar or <path>/hybrid-portsrc-x86_64.tar.gz

2. Build the driver as a Linux loadable kernel module (LKM):

# make clean   (optional)
# make

When the build completes, it will produce a wl.ko file in the top level
directory.

If your driver does not build, check to make sure you have installed the
kernel package described in the requirements above.

This driver now supports the new linux cfg80211 wireless configuration API in
addition to the older Wireless Extensions (Wext).  The makefile will
automaticly build the right version for your system but it can be
overridden if needed:

# make API=WEXT
or
# make API=CFG80211

INSTALL INSTRUCTIONS
--------------------

Upgrading from a previous version:
---------------------------------

If you were already running a previous version of wl, you'll want to provide
a clean transition from the older driver. (The path to previous driver is
usually /lib/modules/<kernel-version>/kernel/net/wireless)

# rmmod wl
# mv <path-to-prev-driver>/wl.ko <path-to-prev-driver>/wl.ko.orig
# cp wl.ko <path-to-prev-driver>/wl.ko
# depmod
# modprobe wl

The new wl driver should now be operational and your all done.

Fresh installation:
------------------
1: Remove any other drivers for the Broadcom wireless device.

There are several other drivers (besides this one) that can drive
Broadcom 802.11 chips such as b43, bcma and ssb. They will conflict with
this driver and need to be uninstalled before this driver can be installed.
Any previous revisions of the wl driver also need to be removed.

Note: On some systems such as Ubuntu 9.10, the ssb module may load during
boot even though it is blacklisted (see note under Common Issues on how to
resolve this. Nevertheless, ssb still must be removed
(by hand or script) before wl is loaded. The wl driver will not function
properly if ssb the module is loaded.

# lsmod  | grep "b43\|ssb\|bcma\|wl"

If any of these are installed, remove them:
# rmmod b43
# rmmod ssb
# rmmod bcma
# rmmod wl

To blacklist these drivers and prevent them from loading in the future:
# echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf

2: Insmod the driver.

Otherwise, if you have not previously installed a wl driver, you'll need
to add a security module before using the wl module.  Most newer systems
use lib80211 while others use ieee80211_crypt_tkip. See which one works for
your system.

# modprobe lib80211
  or
# modprobe ieee80211_crypt_tkip

If your using the cfg80211 version of the driver, then cfg80211 needs to be
loaded:

# modprobe cfg80211

Then:
# insmod wl.ko

wl.ko is now operational.  It may take several seconds for the Network
Manager to notice a new network driver has been installed and show the
surrounding wireless networks.

If there was an error, see Common issues below.

Common issues:
----------------
* After the insmod you may see this message:
  WARNING: modpost: missing MODULE_LICENSE()
  It is expected, not harmful and can be ignored.

* If you see this message:

  "insmod: error inserting 'wl.ko': -1 Unknown symbol in module"

  Usually this means that one of the required modules (as mentioned above) is
  not loaded. Try this:
  # modprobe lib80211 or ieee80211_crypt_tkip (depending on your os)
  # modprobe cfg80211
   
  Now re-try to insmod the wl driver:
  # insmod wl.ko
 
* If the wl driver loads but doesn't seem to do anything:
  the ssb module may be the cause.  Sometimes blacklisting ssb may not
  be enough to prevent it from loading and it loads anyway. (This is mostly
  seen on Ubuntu/Debian systems).

  Check to see if ssb, bcma, wl or b43 is loaded:
  # lsmod | grep "ssb\|wl\|b43\|bcma"

  If any of these are installed, remove them:
  # rmmod ssb
  # rmmod bcma
  # rmmod wl
  # insmod wl

  Back up the current boot ramfs and generate a new one:
  # cp /boot/initrd.img-`uname -r` somewheresafe
  # update-initramfs -u
  # reboot

3: Setup to always load at boot time.

The procedure to make a module load at boot time varies from distro to
distro.  Consult the docs for your specific distro to see how.  The
following seems to work for my setup on Fedora and Ubuntu.  Check your
docs to see the procedure for your distro.

Follow these steps to have the driver load as part of the boot process:

# load driver as described above
# cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
# depmod -a

# echo modeprobe wl >> /etc/rc.local  (Fedora/SUSE)

Ubuntu ships a version of wl.ko, so those need to be disabled.  On my
system the were several versions, so I searched and renamed the .ko's
like this:

# sh: for i in `find /lib /var -name wl\.ko`; do mv $i ${i}.orig; done


TX POWER EXPLAINED
------------------
'iwconfig eth1 txpower' & 'iwlist eth1 txpower' set and get the drivers
user-requested transmit power level. This can go up to 32 dbm and allows
the user to lower the tx power to levels below the regulatory limit.
Internally, the actual tx power is always kept within regulatory limits
no matter what the user request is set to.


ISSUES FIXED AND WHAT'S NEW IN THIS RELEASE
-------------------------------------------
+ Added cfg80211 API support. The choice of API is done at compile time. If
kernel version >= 2.6.32, cfg80211 is used, otherwise wireless extension
is used. (End users should notice little difference.)
+ Supports Linux kernel 2.6.38
+ Fix for problem with rebooting while wireless disabled via airline switch.
+ Fixed a kernel panic observed on some 64-bit systems

HOW TO USE MONITOR MODE
-----------------------
To enable monitor mode:
$ echo 1 > /proc/brcm_monitor0

Enabling monitor mode will create a 'prism0' network interface. Wireshark and
other netwokk tools can use this new prism0 interface.

To disable monitor mode:
$ echo 0 > /proc/brcm_monitor0




以上で引用を終わります。

以下質問です。

(1)

1. Setup the directory by untarring the proper tarball:

For 32 bit:     hybrid-portsrc.tar.gz
For 64 bit:     hybrid-portsrc-x86_64.tar.gz

Example:
# mkdir hybrid_wl
# cd hybrid_wl
# tar xzf <path>/hybrid-portsrc.tar or <path>/hybrid-portsrc-x86_64.tar.gz

2. Build the driver as a Linux loadable kernel module (LKM):

# make clean   (optional)
# make

のところで、これは、ダウンロードしたファイルを、hybrid_wl なるディレクトリに移しておく必要があるのでしょうか?
それとも、「ダウンロード」ディレクトリに入ったままでも(いれたままのほうが)いいのでしょうか?

ちなみに一度ダウンロードしたファイルがダウンロードディレクトリに入っている状態で、ダブルクリックして展開したところ、
いったいどこにその展開ファイルがいってしまったのがわからない状態にあります(笑)

makeコマンドは、このままパラメーターも指定せずに、これでいいのでしょうか?
オプションとされる make clean  の意味が分かりません。


(2)

# load driver as described above
# cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
# depmod -a

この場合の、`uname -r`の、「`」は、引用符なのでしょうか?それともスイッチなのでしょうか?
もしスイッチなら、この符号をタイプする方法がコピペ以外に考えつきません。USキーボードだと該当キーがないからです。

-rもスイッチなのでしょうか?
そうだとしたらその意味は?


(3)

MONITOR MODE の意味が分かりません。


以上なのですが…

オフライン

 

#5 2012-11-07 08:01:58

keijinn
メンバ
登録日: 2012-11-06

Re: THINKPAD E135の無線LAN

uname が、ユーザーネーム、すなわち自分の名前を入れろという意味であることは分かっております、

オフライン

 

#6 2012-11-07 12:52:32

arucat
メンバ
登録日: 2009-02-03

Re: THINKPAD E135の無線LAN

keijinn による投稿:

uname が、ユーザーネーム、すなわち自分の名前を入れろという意味であることは分かっております、

これは違います。uname -r を端末でコマンド入力してください。
使用しているLinuxのバージョンが出力されるかと思います。

一度、有線LANでインターネットに接続し、
On Ubuntu, you will need headers and tools.  Try these commands: 以下のコマンドを順次実行してください。

あ、そうそう、コマンドが # のあとで始まっているのでroot権限じゃないとダメかも。
sudoで行ってください。

なお、途中Fedora/SUSE向けのコマンドも混じっておりますので、お気をつけください。

で、質問についてですが、

ダウンロードフォルダにいれっぱで大丈夫です。
理由は、tar.gzを展開するときに、path指定が入っています。
どこのフォルダにhybrid_wlフォルダを作るかによりますが、ダウンロードフォルダに作る場合は、cdしてカレントディレクトリの
移動をしています。
そこで、path指定でtar.gzの展開を行っていますので、/home/ユーザ名/ダウンロード/hybrid_wlフォルダの中に展開されることになります。
(なくなった展開済みファイルは、フォルダになってダウンロードにありませんかね?)

私は、あんまりbuildとかしないので以下のリンクを参照してください。
make cleanについて書かれています。

yahoo知恵袋

`の入力ができないようなら、ブラウザから端末へコピペすればいいのではないでしょうか?
たぶん、入力できると思うのですが、英語キーボードではないので検証のしようがありません。
いずれにしても、`uname -r`は正式なコマンドで、実際に実行されるときは、こんな形になっているはずです。
(少なくともうちの環境では)

cp wl.ko /lib/modules/3.2.0-32-generic-pae/kernel/drivers/net/wireless

MONITOR MODEの部分は $ から始まってるので、一般ユーザーで大丈夫です。
いずれにしても、無線LANデバイスが有効にならないとMONITOR MODEのコマンド打っても何もならないんじゃないかな。

オフライン

 

#7 2012-11-07 13:44:31

keijinn
メンバ
登録日: 2012-11-06

Re: THINKPAD E135の無線LAN

arcut さま

ありがとうございます。

とんだ思い込みでした。非常にわかりやすいご説明、感謝いたします。

Ubuntu以外のOSの部分、充分に気をつけます。引用に際して、省略せずに貼り付けてしまいました。
root権限で行います。それも注意します。
ちなみに、単に展開したファイルは、ダウンロードの中には見当たりません。隠しファイルを表示、にしても同じで、空っぽです(笑)

make と make cleanについては、大体理解しました。makeがパラメーターなしでよいことも確認しました。

以上いろいろと有難うございました。

これでやってみようかと思います。

CUIはほとんどやったことないので、またいろいろとうまくいかないことが予想されます。というか、全然意味がわからぬまま、
単にreadmeの文書の指示にしたがってやるしかないので。

今後ともよろしくお願い致します。

オフライン

 

#8 2012-11-07 16:33:27

keijinn
メンバ
登録日: 2012-11-06

Re: THINKPAD E135の無線LAN

arcutさま

# apt-get install build-essential linux-headers-generic
# apt-get build-dep linux

To check to see if you have this directory do this

# ls /lib/modules/`uname -r`/build

は確かにLANでつながってないとダメですね。
で念のために、現状でこのlsコマンドを使ってみたら、

ls: /lib/modules//build にアクセスできません: そのようなファイルやディレクトリはありません


と出てきました。ということは、いうところの、ヘッダとツール(それが何かはさっぱり分からないですが…)
がないんで、そのPCだけで設定するならやはり一度は有線LANからやらないとだめってことかと。
もし有線LANにつなげるぐらいなら、システム設定でGUIでやればいいってことになりそうです。


他のところで、E130の無線LAN、さらにASUS社のeeePCの無線LANの不調を訴えてる方々のも、もしかすると、linux用の
ドライバに入れ替えれば解決するのかもしれません。

一般的に、無線LANが使える人には、有線LANも使える状態であることが多いことから、GUIで何とかなるということでしょうか?

USBインストールである自分の場合は、無線LANがつかえるPCでまず、上記ヘッダとツールをインストールして、その後で、
目的のPCに差し替えて、やってみる、という形をとることになろうかと思います。

※「`」はUSキーボードにもありました。「1」のさらに左側のキー、シフトだとチルダを入れるキーでした。

オフライン

 

#9 2012-11-07 16:48:33

arucat
メンバ
登録日: 2009-02-03

Re: THINKPAD E135の無線LAN

keijinn による投稿:

# apt-get install build-essential linux-headers-generic
# apt-get build-dep linux

自前でデバイスドライバをビルドすることになるので、

build-essential と linux-headers-generic が必要になります。
すみません、有線LANにつなげない環境でしたね。失念しておりました。

別のPCでダウンロードできるなら、debパッケージをダウンロードしておいて目的のPCにコピー。
Ubuntuソフトウェアセンターで追加する。

その後、readmeに従って作業という方法もありますよ。

オフライン

 

#10 2012-11-08 02:17:32

keijinn
メンバ
登録日: 2012-11-06

Re: THINKPAD E135の無線LAN

root@comp:/home/name/hybrid_wl# make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: ディレクトリ `/usr/src/linux-headers-3.2.0-32-generic-pae' に入ります
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
  LD      /home/name/hybrid_wl/built-in.o
  CC [M]  /home/name/hybrid_wl/src/shared/linux_osl.o
  CC [M]  /home/name/hybrid_wl/src/wl/sys/wl_linux.o
/home/name/hybrid_wl/src/wl/sys/wl_linux.c:388:2: エラー: 初期化子内で不明なフィールド ‘ndo_set_multicast_list’ が指定されています
/home/name/hybrid_wl/src/wl/sys/wl_linux.c:388:2: 警告: 互換性のないポインタ型からの初期化です [デフォルトで有効]
/home/name/hybrid_wl/src/wl/sys/wl_linux.c:388:2: 警告: (‘wl_netdev_ops.ndo_validate_addr’ 用の初期化付近) [デフォルトで有効]
make[2]: *** [/home/name/hybrid_wl/src/wl/sys/wl_linux.o] エラー 1
make[1]: *** [_module_/home/name/hybrid_wl] エラー 2
make[1]: ディレクトリ `/usr/src/linux-headers-3.2.0-32-generic-pae' から出ます
make: *** [all] エラー 2

デバイスの実装されていないPCからmake command を打ってしまいました。
まったくもってうかつでした。
このような失敗のままのOSをE135にそのままつけ直して、再度、tar command からやり直しても大丈夫でしょうか?
それとも、一旦、何かを消去しないとダメでしょうか?

オフライン

 

#11 2012-11-08 02:38:59

keijinn
メンバ
登録日: 2012-11-06

Re: THINKPAD E135の無線LAN

読み苦しくて申し訳ないです

E135につけかえて、やってみました。

やはり、make command で同じようなエラーメッセージが出ました。

何か根本的にやり方が間違っているのかもしれません…

オフライン

 

#12 2012-11-08 10:26:17

jackalope
メンバ
登録日: 2009-01-01

Re: THINKPAD E135の無線LAN

ソースが問題でやり方は間違っていないと思います。

ソースファイル、src/wl/sys/wl_linux.cの388行の、.ndo_set_multicast_list = wl_set_multicast_listを、.ndo_set_rx_mode = wl_set_multicast_listに変更すればエラーはなくなります。

オフライン

 

#13 2012-11-08 16:27:33

arucat
メンバ
登録日: 2009-02-03

Re: THINKPAD E135の無線LAN

jackalope様 フォローありがとうございます。
Cのソースコードまでいってしまうと、私のスキルではどうしようもありませんでした。
この場を借りてお礼申し上げます。

オフライン

 

#14 2012-11-09 01:42:08

keijinn
メンバ
登録日: 2012-11-06

Re: THINKPAD E135の無線LAN

jackalope さま

ありがとうございます。ソースの変更となると、初心者には歯が立ちません。ましてやその書き換えとなると、どうすればよかったのかっていうレベルです。
これは一種のバグとかんがえてよろしいのでしょうか? 

arucat さま

いろいろと親身にご指導いただいて有難うございました。ただ、たいへんにかってながら、本日有線LANに当該機器を接続しGUIにてドライバーをダウンロードしました。5分もかからずに、単にマウスクリックで終了しました。いずれにせよ、親身にご指導いただき、有難うございました。

有線KANによらない場合のドライバーインストールについてはさらに検討して、ここに記載します。

オフライン

 

#15 2012-11-19 13:36:06

udooon
メンバ
登録日: 2012-01-24

Re: THINKPAD E135の無線LAN

https://wiki.ubuntulinux.jp/UbuntuTips/Hardware/HowToSetupBcm43xx
こちらを参考に、インストールメディアから、ドライバをインストールしてみてはどうでしょうか。

オフライン

 

Board footer

Powered by FluxBB