Linux

Last-modified: 2011-03-16 (水) 11:53:43

基本的にVine Linux5 kernel 2.6.27-57v15

.Xdefaultsについて

LXDE上での設定記録。

  • 標準では存在しないので、自分で作る。
  • xrdb ~/.Xdefaults によって設定を随時適応できる。ただし対象となるプログラムは再起動が必要。
  • emacsの設定
    • 動く
      • Emacs*Background
      • Emacs.Background
      • Emacs*geometry
      • Emacs.geometry
    • geometryに関しては、動くが、あまりよいことにならないので(フォントサイズの関係からウィンドウのリサイズがおかしなことになる)mac向けに作った方法を使う。

X周りの設定

Ubuntu 10.10 で SandS をつかう

参考

ubuntu 10.10では evdev が2.5.99とバージョンアップしていて、中身もだいぶかわっているのでそのままでは適用
できない。
手動でがんばれ。

./autogen.sh
./configure
make
sudo make install

で ok だが、 xorg-xserver がないといわれたら、 xserver-xorg-dev をいれる。
一般に x関連のなにかをビルドしていてたりないといわれたら -dev がたりないみたい。

Libraries have been installed in:

  /usr/local/lib/xorg/modules/input

Dual Display

ノートPCのVGAアダプタにコネクトしている状態を想定
参考:http://d.hatena.ne.jp/rx7/20081009/p2

1.xorg.confの編集

/etc/X11/xorg.confを編集して、仮想ディスプレイサイズを理想の画面サイズを二つ並べた値にする。
たとえば、私の環境ではノートPCの画面が1280x800なので、2560x800にした。

Section "Screen"
       ....
       Subsection "Display"
               .....
               Virtual 2560 800
       EndSubsection
EndSection

自分の欲しいサイズより大きければなんでもいいという記述も見られるが、めったに変えるものでもないから綺麗に決め打ちしておこう。

2.xrandrを使う

この前にVGAアダプタをさして、再起動あるいはログインしなおしておこう(たぶんこの時点で自動認識される)。ディスプレイの情報をまず一括取得。オプションを付けないで、

$ xrandr

VGA-0 connected ....
...
...
LVDS connected ....
...
...
などというかんじででるはず。この場合、LVDSが内蔵ディスプレイの名前、VGA-0が外部ディスプレイの名前であるから、次のようなコマンドで新しい画面の設定を有効にする。

$ xrandr --output VGA --auto --right-of LVDS

出力先、既存のLVDSに対する位置を指定。そのほか勝手にやってくれ。
消すには、

$ xrandr --output VGA --off

で出力をOFFにする。
xrandrには様々なオプションがあるので、いろいろつかってみよう。

xset

Display/keyboard/mouseの基本的な設定には、xset

  • 情報を表示
    xset q
  • スリープ設定 xset dpms 300 0 0 (順に、standby suspend offまでのseconds)
    • 即時スタンバイ xset dpms force standby
      ここでstand byとは、画面の電源・出力を切るが、PCの動作に干渉しないこと。たとえばムービーを再生中にstandbyしてもムービーは止まらないし、たぶんダウンロードなどもキャンセルされない。
      suspendもoffも同じ動作・・・環境によって変わるようだが、同様の報告もある。
      スクリーンセーバが動作することによってstand byと同じ効果がもたらされることもあるようだ。スリープ設定がおかしいときは xset s off でスクリーンセーバをoffにすることもわすれずに。
    • dpmsがdisabledでもstand byになってしまうことがある。おそらくDesktopManagerのせいであろうが。
  • beepを切る xset b off

synclient

  • マウス・キーボードなどGUI周りの設定は、synclient -lで出力できる。異常が起きたときはこのファイルをdumpして見比べるとよい。
  • はんたいに、次のようにしてGUI周りの設定を変えられる。
    • synclient HorizTwoFingerScroll=0
    • synclient VertEdgeScroll=1
    • synclient HorizEdgeScroll=1

LXDEの起動時のうごき

  • LXDEは標準ではgdmの上にのっかる。ここからさまざまなスクリプトに対する処理などをわたせるはず。
  • runlevel5で起動→gdm→lxdeとしたとき、~/.xinitrc,~/.xsession,~/.xclientsはどれもロードされないようだ。これらとは関係なく正しく起動している。
  • gdmの設定ファイルは以前は/etc/X11/gdm/gdm.confだったが、いまは/etc/X11/gdm/custom.confになった。
    • さらに /usr/share/gdm/defaults.conf がデフォルト設定。
    • 次のファイルらがそれぞれのタイミングで実行される。
      • PostLoginScriptDir=/etc/X11/gdm/PostLogin/
      • PreSessionScriptDir=/etc/X11/gdm/PreSession/
      • PostSessionScriptDir=/etc/X11/gdm/PostSession/
      • DisplayInitDir=/etc/X11/gdm/Init
  • .desktopファイルにそれぞれのWindowManagerの説明が、そこからexecで参照されている起動スクリプトに処理が書いてある。
    • /usr/share/xsessions/LXDE.desktop
      • /usr/bin/startlxdeの起動
    • /usr/bin/startlxde
      • "~/.config/pcmanfm/main.lxde"の用意
      • "~/.config/openbox/lxde-rc.xml"の用意(ロードはしていないようだ)
      • window数の設定
      • /usr/bin/lxsession -s LXDE
        ここで指定されたsessionは、~/.config/lxsession/<session name>か/usr/share/lxsession/<sn>か/etc/xdg/lxsession/<sn>になければいけない。

LXDEの設定

  • Right Click Menu on Desktop : /usr/share/openbox/menu.xml (set in .config/openbox/lxde-rc.xml)
  • session directory内にautostartを置くと、その内容を読んでくれる。
    shではない。基本的に各行を@ではじめる。shell scriptですらないのはめんどうなので、次のように書いておけばいいのでは(PATHは適当に)(たぶん~などを解釈してはくれないので、別ユーザを作るときは再設定が必要)。
    @sh /home/username/.config/autostart.sh
    参考1
  • Desktopについての設定はpcmanfmが担当している。
    分かりにくいうえ、デスクトップにアイコンを表示しないときは背景色や壁紙をいじれない。
    背景色やらをいじるときは
    xsetroot -solid <色の名前>

LXDE内でのキーボードショートカット

キーボードショートカットはopenboxによってマネジメントされている。

/.config/openbox/lxde-rc.xmlのkeybindの節をいじくることで設定可能。
Openbox guide « urukrama’s weblog

こまかいコマンド

  • ドライブ構成の表示
    sudo sfdisk -l
    ほかには
    • df
    • dmesg
    • cat /proc/scsi/usb-storage/*
      などが参考になる
  • NTFSをマウント
    • # apt-get install ntfs-3g
    • /etc/fstabに次を追加
      /dev/sda2 /mnt/win ntfs-3g
  • カーネル情報:uname -a
  • ps aux で対象プロセス探索 -> kill -TERM プロセス番号 および kill -KILL プロセス番号
    • ps -fe
  • ライブラリ周りでエラーが出たときは
    • ldconfig -v
    • ldconfig -n [libを置いたディレクトリ]
    • ldd [実行ファイル]
  • 容量関係
    • df
    • du
  • 実行状態をしらべる
    • fuser -mv /file/path #アクセスしているプロセス

SIXAXISを使う

PS3のコントローラであるSIXAXISはUSB/Bluetoothで接続可能なデバイスとしてポピュラーである。これをlinuxで使うことを考える。

  1. 接続確認
    lsusb (-v)
    でSonyとかPlayStationとかそれっぽいのを見つける。
  2. kernelのHIDdにパッチする(kernelが2.6.20以下のとき)。パッチの仕方
    カーネルのバージョンはuname -aで確認できる。
  3. USB接続なら以上でコードを読むことができる。
    # hexdump -v -e '48/1 "%02x " "\n"' < /dev/hidraw1   # For kernels <  2.6.26
    # hexdump -v -e '49/1 "%02x " "\n"' < /dev/hidraw1   # For kernels >= 2.6.26
    • 六軸もうごいている。sixhidtest.c>を使うことでチェックできる。
  4. これらを具体的なソフトウェアでつかうにはこういうものをつかおう。

参考情報

日本語入力

SCIM and LXDE(or openbox) on Ubuntu10.04でemacs-terminal間の文字入力ができなくなる問題

とてもピンポイントな問題だが、mozcのせいでもなく、emacsのせいでもなく、gnomeだと発症せず(scimがgnomeに合わせて作られているのか?)、VineLinuxだとおこらなかった。
Firefoxなど他のアプリケーションとの間だとおこらない。
emacsがトリッキーなキーボード入力の扱い方をしているからではないかと睨んでいる。
具体的にはLXDE上で、IMをscim(bridgeじゃない)にし、emacsとterminal(lxterminalでもgnome-terminalでも)を起動して

  1. emacsにウィンドウを切り替える
  2. 英語と日本語をうってみる
  3. terminalに切り替える(Alt-Tabもしくはウィンドウクリック。タスクバーからだとならないかも)

とするとterminalに何も入力されなくなる。

解決方法はscim-bridge or scim-immoduleにすること。

emacsでもscimが働いてしまい、elを使った変換エンジンが使えない問題

emacs使用時には他のIM(scim,ibusなどなんでも)の働きを抑制する。
起動時に次のパラメータを付加
XMODIFIERS=@im=none
コマンド実行以外なら、直前にenvでこのキーを実行するなど。
参考:Emacs使用時にSCIMやiBusの起動を抑制するには - Ubuntu Japanese Wiki

mozc

http://code.google.com/p/mozc/
http://blog.livedoor.jp/vine_user/archives/51590928.html
すでにaptで提供されていた。

apt-get install mozc

scim-mozcのインストール

scim-mozcなどはaptでは提供されていないので(in vine)、これらを利用するときは手動でビルドしなければいけない。
LinuxBuildInstructions - mozc - How to build Mozc on Linux - Project Hosting on Google Code

  1. ソースコードを入手(公式からdownloadがオススメ。リポジトリはビルド出来ないことがあった)
  2. ソースコードを解凍
  3. 依存パッケージのインストール
    build-mozc.pyの出来が悪いので(?)依存関係に不備があってもそうとは表示されず、妙なエラーで立ち止まることになる。はじめに使う関数やライブラリのチェックをしてくれよと思う。
    • protoc関係 : protobuf系のパッケージ
    • __sync_val_compare_and_swap_4関係のエラー:
      CFLAGS="-O3 -march=i586"
      CXXFLAGS=$CFLAGS
      を実行。
  4. ビルド
    python build_mozc.py gyp
    python build_mozc.py build_tools -c Release
    python build_mozc.py build -c Release unix/ibus/ibus.gyp:ibus_mozc \
     unix/scim/scim.gyp:scim_mozc unix/scim/scim.gyp:scim_mozc_setup unix/emacs \
     /emacs.gyp:mozc_emacs_helper server/server.gyp:mozc_server gui/gui.gyp:mozc_tool
  5. ファイルの配置
    out_linux/Release/mozc_{server|tool} を /usr/lib/mozcに
    emacs用は/usr/binに
    out_linux/Release/lib.target/ のなかの libscim_mozc.so を名前変更して /usr/lib/scim-1.0/1.4.0/IMEngine/mozc.so へ
    libscim_mozc_setup.so を名前変更して /usr/lib/scim-1.0/1.4.0/SetupUI/mozc-imengine-setup.so へ
  6. mozcを有効にするために、再起動

mozcのemacsへの設定

ibusを使わないならば、mozc.elが使える。
unix/emacs/mozc.elをemacsのload-pathの通ったところにコピー。
mozc.elに書いてあるサンプルコードをそのまま.emacs.elに書き付ける。

現行のmozc.elはcliから使えない、C-hを認識しない、バーに出てくる[mozc]という表示が大きすぎるなどの問題があるので、カスタマイズした。
filemozc.el
mozc-el-tty.patch (filesize) - mozc - Project Hosting on Google Code

mozcの設定

GUIの設定ダイアログを表示する方法がわからなかったので、CLIで表示する方法。

  • 全体の設定
    • /usr/libexec/mozc_tool --mode=config_dialog
  • 辞書(全体の設定からいける)
    • /usr/libexec/mozc_tool --mode=dictionary_tool

ibus scimなどの切り替え

[漢字変換システムの選択]というのをみつけて、そこから選択すればよい。

ibusの欠点

scimの欠点

  • vineではmozc-scimパッケージが標準提供されていない。

mozc on emacs

ibus + mozc + ibus-el(ibusとemacsの受け渡し)
http://d.hatena.ne.jp/supermassiveblackhole/20100609/1276059762
現在ではmozc-elが存在し、emacs用のサーバを導入することでibusやscimを介さず直接mozcが使用できる。
filemozc.el

基本設定

無線を使う

無線LANを使う-on Vaio VGN-G2、Ubuntu-10.04

  • 問題:無線切り替えスイッチがOFFで起動したあと、ONに切り替えても動作しない。
  • 解決策:
    1. 無線を使いたい時に次のコマンドを実行する
      sudo iwconfig wlan0 txpower auto
      ただし、wlan0はじぶんの無線インタフェースの名前。多くの場合wlan0
    2. スイッチ切り替えはXF86WLANというキーコードを発しているので、これを上のコマンドにバインドする。
      このときsudoがパス無しで実行できなければいけないので、/etc/sudoersに次を追記
      username ALL=NOPASSWD: /sbin/iwconfig
      キーバインドは、LXDE(openboxベース)なら、~/.config/openbox/lxde-rc.xmlのふさわしい場所に、
      <keybind key="XF86WLAN">
        <action name="Execute">
          <command>sudo iwconfig wlan0 txpower auto</command>
        </action>
      </keybind>
      といったかんじ。なお、キーコードの名前(keysym)は、xevコマンドか、emacsで... Undefinedとでるのでわかる。
      GNOMEとかのキーバインドはどうするんだろう。
      Ubuntu日本語フォーラム / 無線LANスイッチの動作について
      なお、ii.のテクニックはCPUの速度調整や、液晶の輝度調整でもつかえるめも - sudoとPATH
      (/proc/acpi/なんたら にechoするshを書いて、それをパスの通ったところに置き、許可を出せばいい)

モジュールについて

moduleとはlinuxのkernelの一部を切り出し、部分としてロード/アンロードできるようにしたもののようだ。
/etc/modulesに書いたモジュールがロードされる

  • 関連コマンド
    • modprobe
    • lsmod

beep sound off

  • xset b off
  • /etc/inputrc において beep の設定を変える。

grubの設定

Vine5 では grub.conf は menu.lst へのシンボリックリンク。
http://bitwalker.dtiblog.com/blog-entry-66.html
default=エントリ番号 でブート対象を決める。

Ubuntu 10.04では/boot/grub/grub.cfgを編集する(boot時間等)標準エントリの設定は?

mount関連

基本文法

sudo mount -t File System -o codepage=[devise's encoding:ex.932],iocharset=utf8 /dev/sda* /mount/point

/dev/sda*にあたるspecial deviceの調べ方は幾つかある。

  1. cat /proc/scsi/usb-storage/*
  2. dmesg
  3. df (すでにマウントされているもの)
  4. sudo sfdisk -l (認識されているディスクを全表示。sudoじゃないとなにも出ない)

ivman

デバイスの状態を監視し、自動でマウントするデーモン。USBやCDが挿入されたときにマウントしてくれるらしい。
apt-getできる。

Sambaのmount

mkdir /mnt/smb
mount -t cifs //fileserver/diskname /mnt/smb

構文は、mount -t cifs //[ホスト名orIP]/ディレクトリ名 [ローカルのマウント対象]
fileserverは/etc/hostsにて参照できるようにしておかなければいけない。(私の例ではサーバにパスワードをかけておらず、Guestで認証しているのでユーザ指定してないが、通常はユーザ指定が必要 -o)
自動mountするには、/etc/fstabに次を書き加える。

//fileserver/diskname /mnt/smb cifs file_mode=0755,dir_mode=0755 0 0

OS終了時にマウント解除するときにものすごく時間がかかる、かもしれない。
参考

cifsでマウントしたボリュームに書き込み権限が得られない

guestユーザ、shareモードで動作時、他のOS(Win,Mac)からは誰でも書き込めるのに、Linuxからだと書き込み権限がない場合。
fstabの設定行のオプションに、nopermを追加する。
例:
Permission issues with smb and cifs [Archive] - Ubuntu Forums

ftpのmount(curlftpfsを使う場合)

残念ながら普通にmountすると一般ユーザには開けないことになる。fstabでuserを指定しても、directoryのパーミッションをどういじっても、一般ユーザからはmountできないとおもう。
しかたがないのでユーザレベルで起動時に実行されるスクリプトの中に、次を組み込む。

sudo curlftpfs -o allow_other ftp://user:pass@ftp.example.com /mnt/ftp

すくなくともこのスクリプトをterminalから実行する範囲では正常に動作している。

CUIでログイン画面

# vi /etc/inittab
  • id:5;initdefault ※グラフィカルなインターフェイス
  • id:3;initdefault ※コンソールなインターフェイス
    このあと、reboot
    この状態でloginするとコンソール状態ではいるので、startxでGUI(X11 + shell)起動
    Xsystem起動の待ち時間はどうせいつか発生する。

Caps >> Ctrl

  • コンソールについては、次のmapファイルを使う。私はCapsキーを使わないので削除している。
    ファイルの配置位置は/lib/kbd/keymap/i386/qwerty/
    /etc/sysconfig/keyboardのjp106をjp106_nocapsで書き換えればよい。
    filejp106_nocaps.map.gz
  • X11には
    xmodmap ~/.xmoxmaprc
    すみっこのメモを参考にされたし。

基本アプリケーション

  • LXDE(たぶんGnomeなし、X11のみでセットアップして、それからLXDE入れるのが正しい。未実験)
  • Firefox はいっている
  • TeX系 はいっている
  • Google Japanese Input 上記参照
  • Emacs
    apt-get install emacs-ばーじょん
  • VLC
    apt-get install self-build-vlc
  • OOo
  • Maxima:数式処理
    入門ノート
    apt-get install wxMaxima

.desktopファイルの書きかた

デスクトップエントリファイルと呼ぶ。
デスクトップエントリファイル (GNOME 2.2 システム管理 (Linux 版)) - Sun Microsystems
freedesktop.org - Home

ファイラ:未定

  • 理想
    • 軽量の2ペインファイラ。
    • キーボード操作をある程度サポートしてくれる(ノートPCのため)
  • PCManFMの不満な点
    • ツールバーのアイコンがでかすぎる
    • タブ周りの操作がエレガントじゃない(空間ダブルクリックで新規タブが起きない、ミドルクリックで消せない等、Fxなどで採用されている良さがすべて死んでいる)
    • 小さい画面には似合わない。文字・空間が巨大(Linuxのアプリはどれもそうだけども)
  • GNOME Commanderの不満な点
    • 設定項目が微妙。ディレクトリの扱い周りが特にやりにくい。
    • 参考になる情報がすくない
  • muCommander
    • /usr/local/bin においてある