2011年11月23日水曜日

Linux で UQ WiMAX に接続する (不成功)

ThinkPad X220 に内蔵されている Intel WiMAX/WiFi Link 6250 は WiMAX に接続することができる.
普段は EMOBILE を使っているので使う機会はないのだが,ちょうど EMOBILE の契約の2年縛りが切れるタイミングなので使えないかどうか試してみた.

結論を先に書くと,WiMAX への接続は出来たが認証情報の書き込みとやらに成功しなかったため,インターネットへの接続は出来ていない.
Windows 上で先に認証情報を書き込んでおけばもしかしたら,いけたのかもしれない.

1. Kernel の設定


以下の項目をモジュールにしておきます.
CONFIG_WIMAX=m
CONFIG_WIMAX_I2400M=m
CONFIG_WIMAX_I2400M_USB=m
CONFIG_WIMAX_I2400M_SDIO=m

2. ファームウェアのインストール


Gentoo/Funtoo では sys-kernel/linux-firmware というパッケージに含まれている.
$ sudo emerge -av sys-kernel/linux-firmware


3. コマンドラインツールのインストール


Gentoo/Funtoo では net-wireless/wimax というパッケージに含まれている.
$ sudo emerge -av net-wireless/wimax

以上で事前準備はおしまい.

4. UQ WiMAX に接続してみる



無線LAN と併用はできないようなので,wlan0 の出力を落としておきます.

$ sudo iwconfig wlan0 tx off

つぎに wimaxd を起動し WiMAX を有効化します.
$ sudo eselect rc start wimaxd
$ wimaxcu ron

使用できる WiMAX ネットワークを検索します.
$ wimaxcu scan

Network found.
NSP : UQ WiMAX
        ID          : 20
        Signal      : Good
        RSSI        : -73 dBm
        CINR        : 15 dB
        Network Type: Home Network
        Activated

電波状態の良いところだと UQ WiMAX のネットワークが見えるはずです.
室内だと場所によって見つからなかったりします.
ID 20 というのが UQ WiMAX のネットワークIDなので,それに接続します.
$ wimaxcu connect network 20

接続できたら,DHCP で IPアドレスが取得できます.
$ sudo dhcpcd wmx0

これでブラウザで適当なサイトを開くと,UQ WiMAX 認証画面にリダイレクトされます.(シークレットウインドウとかで開くのがベストなんだろうなぁ)
自分は未契約だったので 1 Day pass に契約しました.
契約後,認証情報を書き込みで待たされますが,いつまで経っても終わりません.
ここが出来れば Linux で WiMAX 接続は出来ると思いますが,恐らくこの処理が Linux で出来るようになることはないんじゃないでしょうか.
自分は諦めて 1 Day Pass を捨てました.


参考文献

Intel WiMAX адаптер ロシア語だけど,コマンドだけ参考にした.

2011年11月19日土曜日

UEFIブート可能な SystemRescueCD (LiveUSB)を作る

先日 ThinkPad X220 を購入しました.新しいマシンは速くていいですね.
電池の保ちも良い感じです.

ThinkPad X220 に Funtoo Linux を入れる際に気づいたんですが,最近のマシンは UEFI も搭載しているようで通常の BIOS ブートの他に EFI ブートも選べるようになっていました.
せっかくなので UEFI Only で行ってみることにしてみました.

私は Gentoo や Funtoo をインストールする際に SystemRescue CD を使っています.
比較的頻繁に更新されているのと,ベースが Gentoo なので Kernel も新しいし各種ツールも入っていてとても便利です.

しかしながら,そのままでは EFI には対応していないようなので,使う方法をまとめてみました.

1. USBメモリの準備
まずは,USBメモリの準備をします.
UEFIでは BIOS パーティションではなく GPT を使用します.

パーティションを構成するツールとしては parted と gdisk があります.
今回は gdisk を使いました.

# emerge sys-apps/gptfdisk

さっそく gdisk でパーティションを作成します.
使い方は fdisk と同じです.

# gdisk /des/sdb

使い方は Funtoo Linuxのドキュメント GUID Booting Guide を眺めると良いと思います.
次にファイルシステムを作ります.FAT32 を使用しますので,sys-fs/dosfstools をいれましょう.
# emerge sys-fs/dosfstools
# mkfs.vfat -F32 /dev/sdb1

2. BootLoaderの設定

Boot Loader には GRUB2 を使用します.
EFIに対応している Boot Loader としては,他に elilo があるようです.

まずUSBメモリをマウントしておき,UEFI と GRUB で使用するディレクトリを作ります.

# mount /dev/sdb1 /mnt/usb
# mkdir -p /mnt/usb/efi/boot

次に GRUB をインストールします.
Funtoo の Portage に含まれている GRUB の ebuild では EFI に対応していないため,flow overlay のを使用します.

# layman -a flow
# echo 'GRUB_PLATFORMS="efi-64"' >> /etc/make.conf
# emerge --autounmask-write =sys-boot/grub-1.99::flow
# dispatch-conf
# emerge =sys-boot/grub-1.99::flow

GRUB のインストールができたら,ブートイメージを作ります.

# grub2-mkimage -d /lib/grub/x86_64-efi -O x86_64-efi -p "" -o /mnt/usb/efi/boot/bootx64.efi part_gpt btrfs fat ext2 normal chain boot configfile linux multiboot efi_gop linux

で,grub.cfg を作ります.
これは,SystemRescueCD 内にある isolinux/isolinux.cfg を参考に作りますが,メニュー全部つくるのはめんどくさいので,必要なモノだけにしました.

# vim /mnt/usb/efi/boot/grub.cfg
timeout=10 
default=0

insmod efi_gop
insmod efi_uga
insmod font

if loadfont efi/BOOT/unifont.pf2
then
  insmod gfxterm
  set gfxmode=auto
  set gfxpayload=keep
  terminal_output gfxterm
fi

menuentry "rescue64 cached" {
  linux /isolinux/rescue64 scandelay=1 docache
  initrd /isolinux/initram.igz
}

3. SystemRescueCD のコピー

難しく考えずに,そのままファイルをコピーするだけです.

 # mount -o loop,ro /path/to/systemrescuecd-x86-2.4.0.iso /mnt/cdrom
 # cp -a /mnt/cdrom/* /mnt/usb/


BIOS のようにマスターブートレコードに書き込むとかは必要ないようです.



続いて Funtoo Linux のインストール記事でも書こうかと思ってたんですが Thinkwiki に Gentoo インストール手順がまとまってました.
Installing Gentoo on a ThinkPad X220