FreeBSD 8.0でBuffalo WLI-UC-G

PCには標準で無線LANIntel WiFi 5300が載ってるんだけど、8.0-RELEASEのiwnでは未対応みたい(currentでは対応してるっぽい)なので、代わりにお店で一番安かったバッファローのUSB無線LAN WLI-UC-Gを買ってきた。WLI-UC-GはRalinkのチップが載っているとの情報があったのでuralかrumのどちらかのドライバで動くだろうと。
結果は、rumにプロダクトIDを追加するだけど動きました。
せっかくなので修正パッチをsend-prしてみた。
141777 – [usb8] [usbdevs] [rum] [patch] Support usbdevs / rum(4) for Buffalo WLI-UC-G

ちょっと注意なのが8.0から(?)インターフェイス名をwlanとして操作する必要があるようで rc.conf に

wlans_rum0="wlan0"

と書いておいて

# ifconfig wlan0 up scan

のように操作する必要があるようです。(rum0を直接操作したら動かなかった)

FreeBSD 8.0でZFS

ZFSを使ってみたいのでFreeBSD 8.0をインストールしてみる。
現在のインストーラだとZFSに対応していないので
RootOnZFS/GPTZFSBoot - FreeBSD Wiki
を、参考にして FreeBSD Root on ZFS using GPT を構築する。

準備

8.0-RELEASE-amd64-memstick.imgだと Live FS とインストールデータ両方入っているので、これを使う。
http://ftp.jaist.ac.jp/pub/FreeBSD/ISO-IMAGES-amd64/8.0/
DDでUSBメモリに書き込む(Ubuntuを使った)

$ sudo dd if=8.0-RELEASE-amd64-memstick.img of=/dev/sdb bs=10240 conv=sync

sysinstall

USBから起動してsysinstallからfixitを。(/dev/da0 になるように 1番ポートにつけること)

Country Selection -> 110 Japan
System Console Keymap -> USA CapsLock->Ctrl
Fixit -> 3 USB

Fixit

SSDがつながってる ad4 にインストール
GPT作成

Fixit# gpart create -s gpt ad4

パーティション作成(SSDなのでSwapは無しにした)

Fixit# gpart add -s 64K -t freebsd-boot ad4
Fixit# gpart add -t freebsd-zfs -l disk0 ad4

ブートコードをインストール

Fixit# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad4

ZFSモジュールロード

Fixit# kldload /mnt2/boot/kernel/opensolaris.ko
Fixit# kldload /mnt2/boot/kernel/zfs.ko

ZFSプール作成

Fixit# mkdir /boot/zfs
Fixit# zpool create zroot /dev/gpt/disk0
Fixit# zpool set bootfs=zroot zroot 

ZFSファイルシステム構造作成
(追記) HDDに余裕があれば、こんなに細かくやらなくてもいいと思う。あとはどの単位でスナップショットを取りたいかとか

Fixit# zfs set checksum=fletcher4 zroot
Fixit# zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
Fixit# chmod 1777 /zroot/tmp
Fixit# zfs create zroot/usr
Fixit# zfs create zroot/usr/home
Fixit# cd zroot ; ln -s /usr/home home
Fixit# zfs create -o compression=lzjb -o setuid=off zroot/usr/ports
Fixit# zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
Fixit# zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
Fixit# zfs create zroot/var
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
Fixit# zfs create -o exec=off -o setuid=off zroot/var/db
Fixit# zfs create -o compression=lzjb  -o exec=on -o setuid=off zroot/var/db/pkg
Fixit# zfs create -o exec=off -o setuid=off zroot/var/empty
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log
Fixit# zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
Fixit# zfs create -o exec=off -o setuid=off zroot/var/run
Fixit# zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/tmp
Fixit# chmod 1777 /zroot/var/tmp
(追記 2010.3.5 細かく分割しない場合)
Fixit# zfs set checksum=fletcher4 zroot
Fixit# mkdir zroot/tmp
Fixit# mkdir zroot/usr
Fixit# mkdir zroot/usr/home
Fixit# mkdir zroot/var
Fixit# mkdir zroot/var/tmp
Fixit# chmod 1777 /zroot/tmp
Fixit# chmod 1777 /zroot/var/tmp
Fixit# cd zroot ; ln -s /usr/home home

FreeBSDインストール

Fixit# cd /dist/8.0-RELEASE
Fixit# export DESTDIR=/zroot
Fixit# for dir in base catpages dict doc games info lib32 manpages ports; do (cd $dir ; ./install.sh) ; done
Fixit# cd src ; ./install.sh all
Fixit# cd ../kernels ; ./install.sh generic
Fixit# cd /zroot/boot ; cp -Rlp GENERIC/* /zroot/boot/kernel/

/var/empty readonly

Fixit# zfs set readonly=on zroot/var/empty
(追記 2010.3.5 細かく分割しなかった場合は無し)

chroot

Fixit# chroot /zroot

/etc/rc.conf作成

Fixit# echo 'zfs_enable="YES"' > /etc/rc.conf

/boot/loader.conf作成

Fixit# echo 'zfs_load="YES"' > /boot/loader.conf
Fixit# echo 'vfs.root.mountfrom="zfs:zroot"' >> /boot/loader.conf

ZFSインストール

Fixit# echo 'LOADER_ZFS_SUPPORT=YES' > /etc/src.conf
Fixit# mount -t devfs devfs /dev
Fixit# export DESTDIR=""
Fixit# cd /usr/src/sys/boot/
Fixit# make obj
Fixit# make depend
Fixit# make
Fixit# cd i386/loader
Fixit# make install

rootパスワード設定

Fixit# passwd

タイムゾーン設定

Fixit# tzsetup

/etc/mail/aliases.db作成

Fixit# cd /etc/mail
Fixit# make aliases

chroot抜ける

Fixit# umount /dev
Fixit# exit

zpool.cacheインストール

Fixit# cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache

/etc/fstab作成

Fixit# touch /zroot/etc/fstab

ライブラリパス

Fixit# export LD_LIBRARY_PATH=/mnt2/lib

アンマウントZFS

Fixit# cd /
Fixit# zfs unmount -a

マウントポイント設定

Fixit# zfs set mountpoint=legacy zroot
Fixit# zfs set mountpoint=/tmp zroot/tmp
Fixit# zfs set mountpoint=/usr zroot/usr
Fixit# zfs set mountpoint=/var zroot/var
(追記 2010.3.5 細かく分割しなかった場合)
Fixit# zfs set mountpoint=legacy zroot

Fixit終了

Fixit# exit

sysinstall終了

Please choose a fixit option -> X Exit
sysinstall Main Menu -> X Exit Install

これでインストール終了。あとはUSBメモリを抜いてSSDから起動させ普通に環境構築すればOK

Goの最新ドキュメント

毎日、最新のリポジトリを追いかけて

$ hg pull
$ hg update
$ cd src
$ ./all.bash

してると、まだまだ変更が盛んなので公式サイトの更新が追いつかずにドキュメントが古いまま。
パッケージのドキュメントはソースから生成するし、実はリポジトリには公式サイトのコンテンツも全部入っているみたいなので godoc でローカルリポジトリを参照するのがいいよ。

コンソールでパッケージドキュメントを見る

$ godoc パッケージ名

httpサーバとして起動させて見る

$ godoc -http:8000

これでブラウザから http://localhost:8000/ にアクセスすれば公式サイトと同じように見れる

Ubuntu 9.10 で D02HW

やはりNetwork Managerから使えなったので、以前と同じように
EMOBILE D02HW - m92oの技術系日記
pppconfig を使って設定。デバイスファイルは /dev/ttyUSB0

pppconfigで設定

$ sudo pppconfig
・Create Create a connection を選択
・Provider Name : emobile
・Configure Nameservers (DNS) : Dynamic
・Authentication Method : PAP
・User Name : em
・Password : em
・Speed : 460800
・Pulse or Tone : Tone
・Phone Number : *99***1#
・Manually Select Modem Port : /dev/ttyUSB0
・Finished Wrote files and return to main menu. を選択

dialoutグループにユーザを登録

$ sudo adduser USERNAME dialout

接続

$ pon emobile

切断

$ poff emobile

Ubuntu 9.10 で KVM

Ubuntu 8.10の時に書いたのを見ながら試してみる
Ubuntu 8.10 x64 で KVM - m92oの技術系日記
今回はXubuntu 9.10 x86_64を使用

必要なパッケージ

Synaptic または apt-get を使って以下のパッケージをインストール

KVMモジュールの組み込み

$ sudo modprobe kvm-intel

/etc/modules に書いておくと立ち上げ時に自動ロードされる

$ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
 途中省略
kvm-intel

ユーザが KVM にアクセス出来るようにグループに登録

$ sudo adduser ユーザ名 kvm

以上で準備完了
あとは「メニュー」->「システム」->「仮想マシンマネージャー」を使って操作
今回は仮想マシンWindows XP をインストールしてみる

仮想マシンを作成し Windows XP をインストール

  • 仮想マシンマネージャー」で「localhost(User)」を選択し右クリック「接続」しStatusをActive
  • 同じく「localhost(User)」を選択し右クリック「Details」
    • 「Storage」タブの「New Volume」でイメージファイルを作成
      • 「Name」を「windowsxp」、「Format」を「raw」、「Max Capacity」を「5000」で「Create Volume」
  • localhost(User)」を選択し右クリック「新規」
  • 「Name」は適当に(今回は WindowsXP にした)「Local install media」を選択
  • 「Use CDROM or DVD」を選択し「OS Type」を「Windows」、「Version」を「Microsoft Windows XP (x86)」
  • 「Memory」を「512」、「CPUs」を「1」
  • 「Select managed or other existing storage」「Browse...」で、先ほど作ったイメージファイル「windowsxp.img」を選択
  • 「Advanced options」の「Virt Type」を「kvm」、「Architecture」を「i686

あとは普通にWIndowsをインストールすればOK
8.10の時はvirt-managerでのWindowsインストールは失敗してたけど、今回はちゃんとインストール出来て動きました。

Xubuntu 9.10入れた

パーティション構成を決められないのでLVMを使うことにした。これで後からサイズ変更できる。サイズはこの辺を参考に
https://help.ubuntu.com/9.10/installation-guide/i386/partitioning.html
DesktopのGUIインストーラはLVMに対応してないので、Xubuntu 9.10 Alternateのイメージを落としてきたんだけど、何故かパッケージのインストールでエラーになってしまう。仕方なくminimalイメージを落としてきてインストール。minimalでもインストールパッケージでxubuntu-desktopを選んでしまうと同じくエラーになるので要注意。最小でインストールして、後からxubuntu-desktopを入れた。

CTRLとCAPSキーを入れ替える

GnomeだとGUIから変更できるけど、Xubuntuだとそのツールが入ってないのでコマンドラインから。忘れないようにメモ

setxkbmap -option ctrl:swapcaps


(追記) setxkbmapは一時的な設定なのでスクリプト(swapctrlcaps)にして自動起動アプリケーションとして登録した。
swapctrlcaps

#!/bin/sh
setxkbmap -option ctrl:swapcaps

「メニュー」->「設定」->「セッションと起動」->「自動開始アプリケーション」タブの「追加」で登録