Hatena::ブログ(Diary)

nyaxtのPC作業ログ

nyaxtstep.com

2012-02-03

[][] Userspace RCU 22:50

http://lttng.org/urcu

UserspaceのRCUアルゴリズム実装。

半日ぐらいコード眺めてたけど、synchronize_rcu()でparityをなぜ2回パリティフリップ/同期してるのかわからん。

Preemptive2-staged RCUの実装ぽいのでLWNの記事をもっとよみこむ。

http://lwn.net/Articles/253651/

現在の理解だと、rcu_read_lock()はメモリバリアを含まないので、同期->MB強制->同期するので2回必要という理由。しかしあってるのか自信ない。

トラックバック - http://d.hatena.ne.jp/nyaxt/20120203

2012-02-02

[] OSX上で「インターネット共有」を使わずにNAT環境を構築する 16:47

OSXの「インターネット共有」機能はDHCPサーバを含むので、DHCPが別サーバにより提供されてる環境上では使うのが面倒。

単純にIP forwarding + NATOSXさんに提供させる。

IP forwarding有効に:

# sysctl -w net.inet.ip.forwarding = 1

natd設定(en3にWAN回線):

# natd -p 8668 -n en3 -s yes -m yes
# ipfw add 1000 divert 8668 ip from any to any via en3
トラックバック - http://d.hatena.ne.jp/nyaxt/20120202

2012-01-14

[] Arch Linuxを入れてみる 13:42

DebianをX環境でつかうのがいやになってきたので、Arch Linuxを試してみる。

debianなれててとても使いやすいんだけど、gnomeなりなんなりを入れたとたん使わないろくに使わないパッケージが大量にはいってげんなり。

Arch Linuxだと最小限パッケージセットで使うのがdebianより徹底できそう。x86/x86_64以外の環境がサポートされてないのがちょっと気にかかるけど...

とりあえずbootableに

https://wiki.archlinux.org/index.php/Beginners%27_Guide#Select_an_installation_source

isousbメモリddするだけなので楽。pppとかwpa_supplicantとかいらなさげなので勝手に選択をはずす。ファイルシステムはxfsにしてみる。

設定

再起動するとすんなり起動する、がroot以外ユーザがないことに気づく。

adduser/passwd

pacman遊び

pacman -Syu # repos sync+dist-upg相当らしい
pacman -Qdt # query deps unneeded (apt-get autoremoveリスト相当)

pacman -S sudo # とりあえずsudoいれてみる

https://wiki.archlinux.org/index.php/Pacman_Rosetta

apt-file相当

pacman -S pkgfile
pkgfile --update

pkgfile lsmod # -> module-init-tools

xorg xfceをいれてみる

pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils
pacman -S nvidia nvidia-utils

reboot

pacman -S xfce4 # group全選択
cp /mnt/oldroot/etc/X11/xorg.conf /etc/X11/xorg.conf
startxfce4

pacman -S ttf-dejavu

適当にpanelなど設定。

AUR

mozcとかそういうのはユーザレポジトリにはいってるらしい。

yaourtインストールpacman経由でいれる。http://archlinux.fr/yaourt-en#get_it

locale

sudo vim /etc/locale.gen
sudo locale-gen

/etc/rc.conf:

LOCALE="en_US.UTF-8"

日本語Font

mv *.ttf /usr/share/fonts/TTF
sudo -s
cd /usr/share/fonts/TTF
mkfontscale && mkfontdir && fc-cache

mozc

yaourt -S mozc

.xinitrc:

export XIM=ibus
export XIM_PROGRAM=/usr/bin/ibus-daemon
export XIM_ARGS="--xim"
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
ibus-daemon -x -d

slim: login manager

yaourt -S slim

/etc/rc.confのDAEMONSにslim追加

cp /etc/skel/.xinitrc .

kupfer

yaourt -S kupfer

chromium

yaourt -S chromium flashplugin

# libvdpauはうまく動かない(ニコニコ動画が再生できない)ので無効化

sshd

pacman -S openssh
vi /etc/ssh/sshd_config

vmware

https://wiki.archlinux.org/index.php/VMware

を参照。pacmonにはなく、vmware公式からいれる。

Linux 3.1.9-1-ARCHではばぐってるぽいのでLinux 3.1.8におとしてみる。downgradeというツールがあるらしい。

# Linux 3.1パッチ適用

yaourt -S downgrade
downgrade linux
# Linux 3.1.8(core)選択

reboot

sudo vmware-modconfig --console --install-all

synergyc

yaourt -S synergy

echo "synergyc persian-win" >> .xinitrc #実際にはexec startxfce4の前に

サウンド(paoip)

yaourt -S alsa-utils
sudo modprobe snd_aloop # /etc/rc.confにも追加

DAEMONSにalsa追加 (mixerのsave/restore)

groupにvideo/audio追加

kouhei@bengal:~$ aplay -l
カード 2: Loopback [Loopback], デバイス 0: Loopback PCM [Loopback PCM]
  サブデバイス: 8/8
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
(...snip...)
カード 2: Loopback [Loopback], デバイス 1: Loopback PCM [Loopback PCM]
  サブデバイス: 8/8
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
(...snip...)
kouhei@bengal:~$ cat .asoundrc 
pcm.!default {
  type hw
  card 2
}
nohup ./paoip -d XX -t

compiz

yaourt -S compiz-fusion
# ccsm emerald emerald-themes compiz compiz-core compiz-fusion-plugins-main fusion-icon

emerald-themes-managerで適当にテーマ設定

自動起動にfusion-iconを追加

ccsmで設定。なんか<Control>を含むキー設定はうまく行かないので、~/.config/compiz/compizconfig/Default.iniを適宜編集。

余計なパッケージ削除

pacman -Qdt # apt-get autoremove 相当
pacman -D --asexplicit gtest ruby # explicitly installed扱いにする


[][] ArchLinux感想 20:03

debian testingの不満点だった:

  • stable release直後にsidが降りてきて不安定になる
  • デスクトップ環境(gnome/xfce/kde他)を部分的にインストールすることができない
  • 設定ファイルまわりの謎カスタマイズ。ファイル細分化とか
  • distribution独自のpatchがはいる (いやstableでは必要なのわかるけど...)

は解決してる。

その他の利点として:

  • debian base systemよりさらにminimal
  • /etc/rc.confによる起動デーモン設定 (sysvめんどい)
  • PKGBUILDのシンプルさ(独自パッケージをつくりやすい)

ただ、不満点としては:

  • hoge-devがない。ヘッダが確実に入るのは利点ではあるけど、qtインストールするといらないqt-designerついてくる。うええ
  • testingじゃない方も十分不安定...
  • testingではfixされてるよ!っていわれてもapt-pinning相当がないのでシステム全体をtestingにするか、downgradeするかの2択。
  • AURにあるパッケージだとコンパイル必要で、いれるまでに時間がかかる。どうせ毎回コンパイルするぐらいならいっそのことgentooでもいいよな…

cf. http://unix.stackexchange.com/questions/10103/differences-in-package-management-between-debian-and-arch

長期的に使うかは不明だけど、デスクトップ環境としてしばらく使ってみる予定。サーバは当分debianかなぁ…

トラックバック - http://d.hatena.ne.jp/nyaxt/20120114