UNIX 備忘録

「Linux は UNIX じゃない」という突っ込み不可! 恥をしのんで初歩的なものも載せます ^^;

[ lipsIV color | grub と Win XP OS loader | Vine Linux 2.6 の broadcom ドライバ | DVD+RW/+R (IDE接続) を linux で使う | UPS による自動 shutdown を linux で行う | Vine Linux 2.6r3 rc2 を Let's note CF-T2 へ install | Solaris 2.5.1 で 適当な SCSI HDD を format, mount | Vine on CF-T2 で PCcard-HDD | バックアップファイルの削除 | ifc でエンディアン変換 ]


Redhat Linux 7.2 で lipsIV のカラー

標準で入っている printtool では、 lips4v のフィルタを指定してもカラーの設定項目がないので、 下記のフィルタを作り実行権限を与え 、/etc/printcap に指定する。 (ただし、gs 自体は対応している)

% cat /usr/share/printconf/util/ps2lips4v
#!/bin/sh
#
/usr/bin/gs -q -r600 -sDEVICE=lips4v -dBitsPerPixel=24\
 -dManualFeed -dNOPAUSE -sPAPERSIZE=a4 -sOutputFile=- -
exit 0

-dBitsPerPixel=24 はカラーの指定、 -dManualFeed は手差し指定。

% cat /etc/printcap
# ...(他のリスト略)
lbp2040:\
	:ml=0:\
	:mx=0:\
	:sd=/var/spool/lpd/lbp2040:\
	:af=/var/spool/lpd/lbp2040/lbp2040.acct:\
	:sh:\
	:rm=lbp2040:\
	:lpd_bounce=true:\
	:if=/usr/share/printconf/util/ps2lips4v:

参考URL: http://www-seis.planet.sci.kobe-u.ac.jp/~kakehi/linux/intel/redhat42/gdevlips.txt

上へ


grub と Win XP OS loader

linux などで grub (GRand Unified Bootloader) を /dev/hda 以外(今回は/dev/hdd)に入れ、 なおかつ /dev/hda には Windows XP(2000) が入っている場合(普通ありえない)の注意点

grub 上での hd デバイス認識は、その grub が立ち上がっている hd を (hd0) としている。 よって、linux が載っている hd だけであれば、 デバイスの認識に問題は起こらない。 しかし、その grub がある bootsector を XP などの bootloader のメニュー c:\boot.ini から立ち上げようとすると、 XP は /dev/hda を当然 (hd0) と見なすので不整合となり、 linux の boot は失敗する。そこで、下記の方法を取ったらうまくいった。

かなり悩んだ割には、たいしたことしてません。

上へ


Vine Linux 2.6 の broadcom ドライバ

ASUS P4G8X な母板で Vine Linux 2.6 (i386) を動かそうと思い、 板上にある Giga-base な network device の driver を探したところ、 特に追加の driver は必要なく、tg3 でいけるということがわかった。

/usr/src/linux で make menuconfig すれば良いということが後からわかる(^^;)

上へ


DVD+RW/+R (IDE接続) を linux で使う

今回扱ったドライブは、 Plextor PX-504A

IDE 接続の DVD+RW ドライブで DVD+R/+RW media を焼くためには、 ドライブを SCSI 接続にエミュレートする。 (/etc/modules.conf は変更せず動作した)

dvd+rw-toolsのソースを持ってきて、make & sudo make-install。 デフォルトでは、/usr/local/bin に

の3つのコマンドがインストールされるだけ。

こちらの環境では、growisofs のみで事足りるのでそのコマンドの使い方:

-R は Rock Rridge 形式、-J は Jouliet 形式の指定。 どうも mkisofs を通しているみたい。 焼くスピードは勝手に最適化してくれた :-)
mkisofs などで既に iso-image を作ってある場合: とすれば、image.iso を media に焼いてくれる。

その他の使い方は、やはり 本家 を見た方が良い。 上記ではデバイスの指定を /dev/cdrom で行けたところが異なる。 ひょっとして、ide-scsi エミュレートも要らなかった ?! (未確認)

上へ


UPS (APC CS500) による自動 shutdown を linux で行う (New)

New machine にシリアルポートがないこともあって、USB で通信する APS CS500 を購入。買ったからには何とかする。

apcupsd を このあたりから持って来る。

% ./configure --enable-usb; make
# make install

FC3 で udev にて boot 時自動で device を作ってくれない時は、 下の1行を /etc/udev/rules.d/50-udev.rules に追加して reboot。 追加で自動認識される device は /dev/usb の下にできるので確認して、 /etc/apcupsd/apcupsd.conf をいじる。

% tail -1 /etc/udev/rules.d/50-udev.rules
BUS="usb", SYSFS[idVendor]="051d", NAME="usb/hiddev%n"

参考URL: http://www.apcupsd.com/3.10.x-manual/Checking-Out-Your-USB-Subsystem.html

UPS (APC BK500) による自動 shutdown を linux で行う (old)

突如の停電が怖いので、genpower を使って UPS(APC BK500) - PC 間を管理する。

参考 URL: http://www.riam.kyushu-u.ac.jp/~hashimot/UPS/ups.html

上へ


Vine Linux 2.6r3 rc2 を Let's note CF-T2 へ install

初めて研究費で買った CF-T2 は Vine Linux 2.6r3 が出るまで 待とうかと思ったが、某 T川さん が楽しそうに FreeBSD を install されたようなので β版(rc2)をinstall。 簡単だったので install の肝のみメモ。

追記: その後 rc4 が出たので試したところ、あっさり GUI install ができ、 X の vesa driver にて i865G のグラフィックも自動認識された。 だから、下記はやや無駄な情報も含まれる。

  1. 基本的には これ を参考にした。
  2. Install には起動できる光学ドライブがあると楽なので、同じ Panasonic 製の KXL-CB35AN を購入。(これは、USB バスパワーで動くので便利! でも W2 を買うべきだった?)
  3. text mode でインストール。参考 URL にあるように、X は後からにする。
  4. 買ってすぐパーティションを2つにしていたので、 後ろを Linux と Windows vfat へ割り当てる。 基本領域は4つ作ると Windows の復旧ができなくなるようなので、 installer の fdisk により と割り当てる。(せめて /home のパーティションを切ろうかと思ったが、 試しなのでやめた:-)
  5. MBR への lilo 書き込みは怖かった(根拠無し)ので /dev/hda2 へ入れ、 後からブートイメージを /dev/hda1 へ後述のように移動する。
  6. USB な FDD を持ち合わせてなかったので、起動ディスクは作らず (良い子は真似しないで下さい)、 installer を rescue mode で立ち上げ、
    # dd if=/dev/hda2 of=bootlnx.img bs=512 count=1
    その後 Windows 側で format した vfat 領域を mount し、 bootlnx.img を vfat 領域へ移動し、 Windows を立ち上げ直したらさらに C ドライブへ移動。 そして、C:\boot.ini に Linux で立ち上げる選択肢を与える。
  7. Linux では lilo に append="apm=on acpi=off" を与えると、 バッテリ状態がわかり、外部ディスプレイも使えるようになる。 (lilo.conf を変更したら、 /sbin/lilo した後に bootlnx.img を作りなおす必要あり)
  8. 残念ながら現時点では、Centrino(Intel) の無線 LAN は使えない。 802.11g のカードを持っているが、設定が面倒そうなので今回はヤメ。
  9. X は intel から ドライバ を持ってくる。Xconfigurator でカードを i845、ディスプレイを Generic Laptop 1024x768 を選択。 VRAM は 64M も必要ないので取りあえず 32M にする。
  10. Sound Card は、sndconfig で i810 を認識。
  11. 外付け関連では、上記の光学ドライブは /dev/scd0、 USB-Key は /dev/sda1 で mount 可能。
  12. apt-get install などで必要なアプリケーションをインストール。
  13. Intel Fortran Compiler、NetCDF、GMT、acroread4.05、OpenOffice.org1.1.0 を install。 GMT の do_examples.csh は 0:22.93。 デスクトップの P4-2.8CGHz が 0:12.02 なので PM-900MHz の割には速い。
  14. Intel の wireless-LAN driver 早く出ないかな... というのが現状です。

上へ


Solaris 2.5.1 で 適当な SCSI HDD を format, mount

Sun 純正マシン(ご老体)に久々に外付けSCSI-HDD(K先生のお下がり:)を増設。 やりかたを忘れかけていたのでメモ。

上へ


Vine on CF-T2 で PCcard-HDD

PCcard-HDD (IO-DATA, PCHDT-2Gt) を Vine on CF-T2 に刺したところ irq が衝突したとメッセージが出たので見たところ、 irq4 を使いたいみたいなのでそこを空けたら認識できた。 具体的には、/etc/pcmcia/config.opts でシリアルポート用に確保されている "exclude irq 4" を # でコメントアウトする。

% cat /proc/interrupts
           CPU0       
  0:     276910          XT-PIC  timer
  1:        128          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  3:       7303          XT-PIC  eth0
  4:          8          XT-PIC  ide1   <-- こいつ
  8:          1          XT-PIC  rtc
  9:        643          XT-PIC  Intel ICH4, usb-uhci
 10:          1          XT-PIC  Ricoh Co Ltd RL5c475
 11:          0          XT-PIC  ehci_hcd
 12:         23          XT-PIC  PS/2 Mouse
 14:      54657          XT-PIC  ide0
NMI:          0 
LOC:     276889 
ERR:          0
MIS:          0

上へ


バックアップファイル '*~' の削除

emacs や rsync で作られたチルダ付きバックアップファイル '*~' を削除するには find を用いる。 (これは man を見ればすぐわかる)

[1]% find . -name '*~' -ok rm {} \;
[2]% find . -name '*~' -exec rm {} \;

[1] 確認の上削除。rm -i と同じ。
[2] 強制削除。rm -f と同じ。 一応 find の結果のみを表示してから実行する方が良い。
'.' は検索開始ディレクトリ。find の結果が {} に引き渡される。

上へ


ifc (Intel Fortran Compiler) にてエンディアン変換

intel等の x86 系のマシンではバイナリは通常 little endian で扱われる。 big endian のデータを扱う必要がある場合は、 ifc でコンパイルしたプログラム実行前に環境変数を設定する。 (以下は、version 7 の場合)

% ifc hoge.f -o hoge
% setenv F_UFMTENDIAN 100     (csh 系の場合)
% ./hoge

最後の100は変換が必要な装置番号で、 read の場合は big → little、 write の場合は little → big の変換を行う。

version 8 からは compiler が ifort となり、

% ifort -convert big_endian hoge.f -o hoge
% ./hoge

ついでに、record length "recl" の扱いは default で 4byte 単位 になってしまっている。1byte 単位で扱いたいときは、例えばさらに

% ifort -convert big_endian -assume byterecl hoge.f -o hoge
% ./hoge

とする。

参考文献: /{ifc_path}/compiler70/docs/for_ug_lnx.pdf
endian で検索すると該当箇所が探せる。

Intel Fortran Compiler (Free for non-commercial use)

上へ


2005.01.08.更新
石田のページへ