Google Code Prettify

2007年11月7日

祝 Leopard Server げっと、、、10日後

10日くらい前に予約注文したでゲットした MacOSX Server 10.5 (Leopard Server)をいじくり倒してちょっと寝不足気味である。 それで、今3度目にクリーンインストールの真最中。

まぁ、前バージョンに比べて、RADIUS サーバ / autofs / NFS4 の機能が追加や、管理ツールが一層に磨きがかかっているに違いないと、わくわくしながら触っていたのだが。

ちょっと寝不足気味。

autofs

最初は autofs を中心に触ってみた、いい感じだ。 Open Directory サーバ上のマップ情報を読んでくれる。

追加用のGUIが無さそうなので、適当な LDAP 管理ツール (Apache Directory Studio )とかで、cn=automountMap,dc=example,dc=com 以下に次のレコードを追加する必要がある。

dn: automountMapName=auto_home,cn=automountMap,dc=example,dc=com
objectClass: automountMap
objectClass: top
automountMapName: auto_home

dn: automountKey=fileserver,automountMapName=auto_home,cn=automountMap,dc=example,dc=com
objectClass: automount
objectClass: top
automountInformation: fileserver:/srv/nfs/home
automountKey: fileserver

ワークグループマネージャで、/home/fileserver/username をホームに指定すれば、いい感じである。

MacOSX が忘れ去られしまった /home の地位がちょっとだけ向上できてうれしい。

NFS4

NFS4 はまだ実験的実装でまだ安定的にサポートできていないみたい。ちょっと読み違いだなぁ。

、、、で嫌なことを思い出した

MacOSX 全般でファイル名を UTF8 NFD のエンコードで扱えるように、UTF8 NFD <-> UTF8 NFC の変換をよろしくやっている。NFS だけ例外で素で通して何もしてくれない。。。

Linux や他のUnixとの相互運用時に引っかかるところ、普通は NFS をあきらめ samba/netatalk で逃げる、、、つまりautofs/NFS がどんなに賢くなっても意味ないじゃん

まぁ、他のUnixは捨てって言えればいいのだがぁ。

ちょっと思い出して疲れた。

RADIUS サーバ

まだ、触れていません。。。

追記

Open Directory の設定のまとめ 2008Q1

2007年4月27日

Linux on i915GMm-HFS での電源OFFの不具合?

Debian 4.0 が無事に正式にリリースになって半月あまり。testing時代の中途半端な状態の etchに放置していたi915GMm-HFS のバージョンアップを実行した。

いつの頃からか shutdown -h now で、カーネルまで落ちるが電源が落ちない現象があった。 etchは正式版でないと思って見過ごしていたが、やっぱり直っていなかった。。。

以前、同じマザーで Linux の ACPI で、電源断ができない問題があったらしい。記述をみる限り、2.6.14以上であれば問題無いが、それ以後でも似た症状が発生しているらしい。また、Fedora 5 の掲示板でも、同じような報告もある

いろいろ弄くった結果、どうもサウンドドライバの不具合のように見える。BIOSで内蔵サウンドを無効にすると、素直に shutdown 後に電源が落ちるようになる。。。

サーバ用途にしか使わないので、無効でもいいかぁ。。。

ただし、サーバ用途でも一時的にしか立ち上げて使わないので WOL が効かないとキツいので、試行錯誤してみる。

載ってるチップMarvell 88E8053のドライバ sky2 は結構安定して使えるが、 WOL 対応は2.6.21からのようで etch 標準の2.6.18では使えないらしい。。。

そこいらのWOL対応NICを突っ込んで様子を見てみるか。。。

2007年3月21日

emacs のフレームを仮想ディスクトップの上下左右に飛ばす

FVWM を使っていたころ、実画面のサイズの縦横が定数倍になった仮想ディスクトップとして使える機能があった。

blog20070321_metacity_desktop
当時から 1つの emacs プロセスで複数のフレームを、別々の画面に割り当てて使っていた。Ctrl+十字カーソルで画面を切替えることが出来るので、プログラムを開発するときに結構便利であった。

複数のフレームを配置するとき、何度かキーを叩きマウスぐりぐりするのが、相当面倒だった。

なので、emacs の 1つのキーシーケンスで、複数のフレーム生成して上下左右に飛ばすカスタマイズをしていた。

このカスタマイズが出来たので、 最終的には emacs の8フレーム、ターミナル、ブラウザを配置する形になった(右のイメージ)。

上のカスタマイズの肝は、仮想ディスクトップ上の geometry を指定すれば、任意の位置に配置することが出来ることだった。

FVWM は勿論 afterstep や sawfish の古いバージョンとかに共通した機能だったが、Gnome が標準で使っている metacity では仮想ディスクトップの実現方法がワークスペース?に変わってしまった。

幸いワークスペースは二次元的に配置が出来るので、以前と同様な使いかたが出来る。 唯一出来ないのは、emacs から別のワークスペースにフレームを飛ばすやりかたが分からなかった。

確か、特定のHints の値を変更すれば良かった気がするが、当時追っかけたら、 emacs から変更できる Hintsの型は 文字列だけだったような、そうでないような理由から面倒くさくて、ほったらかしにしていた。

完全に移行出来なかったが、最近 wmctl という外部プログラムを知って、取り組んでみたら上手くいった。

だいぶ幸せだ。

(global-unset-key "\C-z")
(define-key global-map "\C-z51" 'moi::make-frame-3)
(define-key global-map "\C-z52" 'moi::make-frame-6)
(define-key global-map "\C-z50" 'moi::delete-frame-6)

(setq moi::desktop-max-x 4)

(defun moi::move-frame (frame x y)
  (let ((wid (frame-parameter (or frame (selected-frame)) 'outer-window-id))
     (desk (int-to-string (+ (* moi::desktop-max-x y) x))))
    (call-process
     "wmctrl" nil nil nil "-i"
     "-r" wid "-t" desk)))

(defun moi::make-frame (x y)
  (let* ((fpar (frame-parameters))
     (bw  
      (if (string-match "^20" emacs-version)
          (cdr (assoc 'border-width fpar))
        0))
     (left (+ x bw (eval (cdr (assoc 'left fpar)))))
     (top  (+ y bw (eval (cdr (assoc 'top fpar)))))
     (frame (make-frame)))
    (sleep-for 0.09)
    (modify-frame-parameters frame `((top + ,top) (left + ,left) ,(cons 'font "fontset-standard")))
    (sleep-for 0.09)
    frame))

(defun moi::make-frame2 (x y)
  (let ((frame (moi::make-frame 0 0)))
    (moi::move-frame frame (+ x 1) (+ y 2))
    frame))

(defvar moi::make-frame-6-alist nil)

(defun moi::make-frame-3 ()
  (interactive)
  (if (not moi::make-frame-6-alist)
      (setq moi::make-frame-6-alist
        (list
         (moi::make-frame2 1 0)
         (moi::make-frame2 0 1)
         (moi::make-frame2 1 1)
         ))))

(defun moi::make-frame-6 ()
  (interactive)
  (if (not moi::make-frame-6-alist)
      (setq moi::make-frame-6-alist
        (list
         (moi::make-frame2 1 0)
         (moi::make-frame2 -1 0)
         (moi::make-frame2 0 1)
         (moi::make-frame2 0 -1)
         ;;(moi::make-frame2 1 1)
         (moi::make-frame2 -1 1)
         (moi::make-frame2 1 -1)
         (moi::make-frame2 -1 -1)
         ))))

(defun moi::delete-frame-6 ()
  (interactive)
  (while moi::make-frame-6-alist
    (delete-frame (car moi::make-frame-6-alist))
    (setq moi::make-frame-6-alist (cdr moi::make-frame-6-alist))))

久しぶりの投稿

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