Google Code Prettify

ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示

2010年5月7日

Emacs23 の フォント設定

新し目の Emacs ではフォントエンジンの改良が進んでおり、 antialiasing が効いた奇麗な表示が出来る。また、沢山の種類のフォントを扱えるようになっている。

プログラムの編集等をしてると等幅フォントが必要である。 特に、日本人としてはASCII文字と日本語文字の幅が 1:2 である事が強く望ましい

まぁ、いくつか設定方法が流れてるので、コピペして使えば良いのだが。。。 みんなどうやって見やすい設定を探してるのだろうか?

疑問に思ったので、次のような機能のelispを書いてみた

my-sample-ascii.el
my-sample-ascii
既定のフェース default/bold/italic/bold-italic それぞれで同じメッセージを 同一のバッファに出力する
my-sample-face-size
defaultのフェースを継承し(書体を引き継ぎ)、高さが 6〜20ptのフェースを作成し、同じメッセージを 同一のバッファに出力する

適当にdefaultフェースを設定した後だが、CocoaEmacs/NTEmacs/Emacs(onUbuntu)での、 my-sample-face-sizeの結果は次のようになる

ss-20100507-cocoaemacsss-20100507-ntemacs23 ss-20100507-ubuntu10.04

いくつか設定してみたが、全ての pt で、1:2 に揃うフォントの組み合わせはほんとに稀で、日常的に使うサイズに合わせて、サイズの微調節が必要のようである。 やはり、IPAフォントの恩恵は結構でかいなぁ。

今現在、いい感じに設定できたのは次の通り。

まとめ

なんか Emacs をガンガン使い倒したくなってきた!!

追加 (2010/11/03)

VMware 上の X で画面サイズの変化で dpi が変化し pt 単位でフォント指定すると、実際のフォントの大きさがまちまちになるので、 明示的にpixel単位?で指定する方法に切り替えてみた。

2008年7月28日

libvirt on MacOSX を試してみる

あまり意味は無いが、libvirt は Windows 上でも動いているので、UNIXを名乗ってる MacOSX でも動かないことは無いと思うので試してみた。

依存するライブラリやパッケージをインストールするために MacPorts を使う。。。取り敢えず適当に入れとく。

次に、gnutls/pkgconfigを入れる。

$ sudo port install gnutls
$ sudo port install pkgconfig

libvirtのサイトから、ソースを取ってくる。4カ所修正を行い、configure & make を行う。

$ tar xfz libvirt-0.4.4.tar.gz
$ cd libvirt-0.4.4
$ sed -i .bak 's/test -z "\$PKG_CONFIG/test -n \"$PKG_CONFIG/' configure
$ sed -i .bak 's#-Wl,--version-script=\$(srcdir)/libvirt_sym.version##' src/Makefile.in
$ sed -i .bak 's/xdr_quad_t/xdr_int64_t/;s/xdr_u_quad_t/xdr_u_int64_t/' qemud/remote_protocol.c
$ sed -i .bak 's/rl_completion_matches/completion_matches/' src/virsh.c
$ ./configure --without-xen --without-qemu --without-libvirtd --without-storage-fs
$ make
$ make install

実際使えるのは、virsh のみだが、リモート対向の libvirtd の設定に応じてURIを指定する必要がある。 ssh経由のトランスポートを指定する場合、socket オプションを明示する必要がある。 あと、お互いのシステムで nc コマンドが動く必要がある。

$ virsh -c qemu+ssh://remote-machine/system?socket=/var/run/libvirt/libvirt-sock


普通に動く。。。

ただ、virt-managerを入れようとしてるが macports の gtk2 が上手く入らんので、試せん。。。意味無いなぁ。 gtk2が入らないのは #15816が原因で、port sync で問題なくインストールで来た。でも、virt-managerが依存する virtinst とかは libxen ? が必要なのでイマイチ動かん。。。

2008年7月22日

Ubuntuだと Bridge設定すると WakeOnLan 出来ないの何故?

仮想化のため bridge の設定を行ったあと、WOL (Wake-On-Lan) の機能が動かなくなってしまった。

はて、どうしたもんだか?

現状

  1. M2NPV-VM の nForce 430 組込みのGigabit のNIC
  2. BIOSでWOLの設定(Power Up On By PCI/PCIE Devices)済み
  3. forcedeth (ver 0.61)
  4. 起動毎に、WOLの設定を有効化するために、/etc/rc.localの中に記述する。
    ...
    /usr/sbin/ethtool -s eth0 wol g
    ...

これで、Bridgeの設定を行わなければ、癖があるがWakeOnLanが有効に機能する。

不具合の現象に関しては類似の報告があり、シャットダウン時にブリッジの設定を無効にすれば良いらしい。。。

よくよく調べると、Ubuntu 特有の問題で、「netbase 4.25ubuntu2 (source) in ubuntu edgy」の変更で、 シャットダウン時にネットワークを落とす処理を削除したためのようである。つまり、Debian etch/lennyには影響しない。。。

何を思って変更したのだろ?dhcdbd/NetManager側で対処してるので、冗長として切ったのだろうか。。。

対応

単に、削除した処理を手動で実行すれば良い。

# update-rc.d -f networking remove
# update-rc.d -f networking start 40 S . start 35 0 6 .

まとめ

がんばれ Ubuntu!

libvirt 経由で日本語キーボードを扱う

libvirt の管理下の仮想化ドメインから、virt-manager を使って、仮想グラフィック画面をVNC経由でアクセスすると、正しくキー入力ができない場合がある。

kvm/qemu のエミュレータに対してキーボードのレイアウトを指定するオプションを付ければ、対応が可能であるが、、、libvirt のドメイン設定ファイル 「libvirt: Domain XML format」にはどうも関連する設定項目が無いようである。(追記2009/04/14 記事の最後の方を参照)

まぁ、日本語キーボードの keycodes の問題なんで、英字キーボードを用意すれば済むのだが、 日本にいる以上、日本語配列には慣れていかないといけないわけで、、、

はて、どうしたもんだか?

まぁ、スクリプトを挿めばいい

実行バイナリを別名に変更し

# mv /usr/bin/kvm /usr/bin/kvm.bin
# mv /usr/bin/qemu-system-x86_64 /usr/bin/qemu-system-x86_64.bin

/usr/bin/kvmと/usr/bin/qemu-system-x86_64の中身を次のラッパースクリプトに変更する。

#!/bin/sh

exec $0.bin -k ja $*

これにより、日本語キーボードでも正しく文字が入力できるようになる。

なんだろ?

VNCでkeycodes配列をネゴしないのが問題なのかなぁ、、、イマイチ分からん

追記 (2009/04/14)

ふと、気づいてみると XMLフォーマットの中で、VNCのキーマップの指定が出来るようになっている!

    <graphics type='vnc' port='-1' autoport='yes' listen='' keymap='ja'/>

開発サイトのデータを検索する 「libvirt.git/search: keymap」と、 どうもドキュメントに記載が無いだけで libvirt 0.4.1 位から使えてたようでした。 なので、このバッドノウハウは要らなくなりました。

2008年7月21日

Ubuntu + KVM + libvirt で仮想化

以前、Xenで完全仮想化ができるのでAthlon64x2 を購入したのだが、 ちょっとしか試していなかった。 変な結構制約があったりで比較的安定している VMware Server を使っていた。

時は経って、Linux KVM というのが活発に開発が行われており、前途有望である。 同時に、色々な仮想化技術を統一したAPIで扱えるlibvirtも整備されてきている。 特に、virt-managerは、 VMware Server Console を彷彿し、ローカルからリモートまで管理が可能になりつつある。

なので、Ubuntu+KVM+libvirt に移行してみようと思う。

インストール

KVM と virt-manager のパッケージをインストール。

# apt-get install kvm libvirt-bin virt-manager
# addgroup <自分> libvirtd

ついでに、QEMU/KQEMU も入れとくと何かと便利かも、、、仮想化命令をサポートしないCPUを使っている場合はこっちがメインになると思う。

# apt-get install qemu kqemu-source
# module-assistant prepare
# module-assistant build kqemu
# module-assistant install kqemu
# modprobe kqemu
# echo "kqemu" >> /etc/modules

あとは、virt-managerを使うと仮想化ドメインがGUIで簡単に作れるようになる。

20080721virt-manager

ブリッジの設定

何もしなければ、仮想化ドメインのネットワークは、専用のサブネットが割り当てられる。なので、NATで外に出るか、ルーティングをせっせと張ることになる。

外からサーバ用途としてアクセスしたければ、bridge が簡単でいい。 Ubuntu libvirt guide を参考にして。 そいつの設定をする

まず、現在のNetworkManager/dhcdbd等の自動ネットワーク設定機能切る。

# /etc/dbus-1/event.d/26NetworkManagerDispatcher stop
# /etc/dbus-1/event.d/25NetworkManager stop
# echo "exit" > /etc/default/NetworkManager
# echo "exit" > /etc/default/NetworkManagerDispatcher
# /etc/init.d/dhcdbd stop
# update-rc.d -f dhcdbd remove
# /etc/init.d/networking stop

固定IPアドレスと bridge の設定を行う。

/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
	address 192.168.1.123
	netmask 255.255.255.0
	network	192.168.1.0
	broadcast 192.168.1.255
	gateway 192.168.1.254
	bridge_ports eth0
	bridge_fd 9
	bridge_hello 2
	bridge_maxage 12
	bridge_stp off

ネットワークを有効化する。

# cat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
EOF
# sysctl -p /etc/sysctl.conf
# /etc/init.d/networking start

virt-manager を使って新規の仮想化ドメインを作成時に、ブリッジが選択できるようになる。

20080720virt-manager.png

まとめ

Linux KVM よ〜、賢くな〜れ

2008年7月16日

Ubuntu 8.04 LTS に乗り換える。

Debian 安定版の進捗はあまりにも遅く、testing や sid ではあまりにもパッケージの更新が頻繁すぎる。インストールするパッケージを選別すれば良いのだが、それも結構骨の折れる作業である。

世の中を見渡してみると、Ubuntu LTS のリリース方針が自分の要望に怖いほど合致している。

  1. 初期インストールで、日常作業に必要かつ最小限度のパッケージが使える状態になる。
  2. X の設定とかも、Debian だと鬼門だったのだが、Ubuntu では手厚いサポートがある。
  3. 近年 freedesktop.org で整理された部分が、普通に使えるようになってる。
  4. その他、沢山。

兎に角、最初に悩まなくて良いのが一番良い。上手くいかなくても、Debian 使いのバッドノウハウを使えば良いだけのことだし。

なので、Debian/etch から Ubuntu 8.04 LTS に乗り換えてみた。

あと認証系とかの赤帽の authconfig を移植すれば完璧な気がする。。。。

やべ本当だ。。。頼んだ > Ubuntu

久しぶりの投稿

かなり期間が空いてしまったが、ブログを再開してみようと思う。 2013年3月が直前の投稿だったが、頻繁に更新していた時期が 2011年11月までなので、8年間ぶりとなる。 8年間なにをしていたのかと言えば、2回転職して未だにIT技術者の職を得ている。 その...