Solaris教えてスレッド 其の15

このエントリーをはてなブックマークに追加
英語嫁
Sunの商用コンパイラでコンパイルされてるけど
pathに無いね、と読めますね。
Forteをインストールする工程が漏れてます。
買ってインストールしてください。
>>929
いや、今回の場合はあきらかにパッケージが足りないだろ。
だから >>931
>928
まずは英語よめ。

ライブラリ関係でハマることがあるから、コンパイル時に使ったコンパイラ
つまりSunのコンパイラを入れたほうがいい。
いまはForteという名前じゃないかも、SunONEナントカになってるかもな。
>>919
何をやってどううまくいかないのか、それを書けば誰か教えてくれるかもね。
そうじゃないならエスパーの降臨を待つか。
935名無しさん@お腹いっぱい。:04/10/24 01:45:26
>>933
Solaris 9 4/04 Companion CDのXEmacs-21.4.14を単純に選択しただけで、
自分でコンパイルしてインストールしてインストールしたのではなかった
ので質問しました。
コンパイルしてインストールした方が楽なような気がしてきた。
いや、コンパイルに労力かけるのもバカバカしいよ。

とりあえずコンパイルしてインストールしてインストールする前に
Sun Studio を買ってインストールしてみよう。コンパイルはそれからでも遅くないよ
http://jp.sun.com/software/tools/studio/
XEmacs使うためにコンパイラを買うのもバカバカしいと思うが・・・
938936:04/10/24 03:56:50
いまどき XEmacsなんて Windows や Linux ではバイナリで配布してて
しかも .emacs.el まで丁寧に設定した状態になってたりする。(ちょっと違うけど meadowとか)

そんななかで、わざわざ Solaris で XEmacs をインストールしてインストールしようと
いうのだからよほど XEmacs が使いたいのにちがいない。

XEmacs は xface や compat 等の依存ライブラリがおおいため、いちいち自分でコンパイルしていると
Sun Studioを買うぐらいの人件費ぶんは、どうしても時間がかかってしまう。

それだったら、Sun Studio を買うのがかえって安い。
もしくは Windos や Linux で XEmacs ヲ実行するか。
warning であって error でないのなら無視しちゃえばいいんじゃ?
釣りなのか業者(゚Д゚)ウゼェェェなのか…

ttp://list-archive.xemacs.org/xemacs/199902/msg00386.html
941名無しさん@お腹いっぱい。:04/10/24 18:59:18
>927

 ありがとう。
 system(3C)はvforkを使っているということですね。
 
 マルチスレッドでsystem(3C)の置き換え(自前でsystem関数の代替関数を作成)
 をする場合には、fork()-execve()による単純な置き換えでいいのでしょうか?
 fork()、execve()の両方とも、Async-Signal-Safeで問題ないとは思うんですが、
 自分で実装してみたところ、system(3C)より多少ノロい感じがします。
 shを経由しないで起動しているので、早くなるかなと思ったんですが、どうも
 うまくいかないようです。
 また、マルチスレッドから非同期に自分で作った代替のsystem関数を使うと
 たまにエラーで返るときがあります。たぶん、同時に代替のsystem関数を使った
 ときにfork()かexec()がEINTRで返っているんだろうとは思うんですが。
 どうもイマイチよくわかりません。

 また、Solaris9ではpopen(pclose("xxx",w))な感じで置き換えができるっぽいんですが、
 Solaris8では無理みたいです。
 何か簡単に置き換える方法はあるでしょうか?
 
>941
・ 速度のことはよく分りません。forkを軽くする実装の1つがvforkなので、
  状況によりsystemの方が速いのはうなずけますが。
  起動対象がフルパス指定バイナリの場合どうかとか、起動側プロセスのサイズにより
  どうかとか、検証ポイントはいくつかあります。
・ popen(pclose("xxx",w)) ではなく、 pclose(popen("xxx",w)) かと。
  いずれにせよ、popenはsystemと同じUNSAFEです。
・ forkではEINTRは戻らないはず。どこでどんなシグナルが戻っているのかを
  完全に特定する必要があります。
  事象を再現できるなら、truss等で特定できます。
OTTOのうにくす本舗にBLADE1000のケース(電源&FDDつき)が3000円で売ってた。
PC/ATマザボ突っ込んでSolaris入れたいが置き場所ないな。
あー誤爆った。安いぞ!スレに書いたつもりだったんだけどな。
Sun Netra i 544って裏に書いてある古い機械を戴いたのですが
Linuxあたりをインストールすることは可能なのでしょうか?
つまらない質問で本当に申し訳けございません。m(__)m
946名無しさん@お腹いっぱい。:04/10/25 19:15:14
勿論可能
>941
-mt だと fork(2) は全スレッドコピーになります。
んだもんだから、fork1(2) を使ってみると、多少は改善するかもしれない。
fork1(2) だと、発行スレッドのみをコピーして他は廃棄しますので若干速い。
vfork(2) も fork1(2) 的な動作をするようになっている(らしい)ので、
system(3C)と張り合うなら、fork1(2) にして確認する必要があります。
(じゃあ、なんで system(3C) は fork1(2) じゃなくて危険な vfork(2)
使うんだ?というとそれはもう中の人に聞くしかない)
ただし、-lpthreadでやってるなら、もうすでに fork1() 動作なので、
速度変わらないと思う。

あと942さんも言ってるけど、Solaris で開発するなら truss の使い方は
覚えておくといいです。ていうか必須。
948名無しさん@お腹いっぱい。:04/10/25 23:09:17
質問。俺の買った中古sparcに100BASE-TXカードが付いてるのだが
それの100BASE-TXと書かれた通常のコネクタの横に MII と書かれて
いるものがある。いったい MII って何?
http://www.cqpub.co.jp/term/mediumindependentinterface.htm
>>948
みたいな
Media Independent Interface じゃね?
950948:04/10/26 08:51:21
THX

参照サイト読んだけど,どういう場面で使うのかよく分からん。とにかく
俺の環境に関係なさそうなことは分かった。
>>900
メモリかCPUな気がする。
ハード屋なんで何度か見てきた。
952名無しさん@お腹いっぱい。:04/10/27 00:45:57
最近流行の USB 接続の HDD ですが
USB なモデルの Sparc マシンにつないで動作しますか?
OS はSolaris 9で
>>952
マウントに手間が掛かるけど出来るらしい。

・・・という情報を見たことがある。
WindowsにつなげてたUSB HDDエンクロージャを接続してみた。(Sol9 4/02 on SB100)

Oct 27 02:39:03 host unix: USB-device: storage@1, scsa2usb1 at bus address 4
Oct 27 02:39:03 host unix: DMI USB 2.0 Storage Adaptor 0B02011C05980E8B
Oct 27 02:39:03 host unix: scsa2usb1 is /pci@1f,0/usb@c,3/storage@1
Oct 27 02:39:03 host unix: /pci@1f,0/usb@c,3/storage@1 (scsa2usb1) online
Oct 27 02:39:07 host unix: sd2 at scsa2usb1: target 0 lun 0
Oct 27 02:39:07 host unix: sd2 is /pci@1f,0/usb@c,3/storage@1/disk@0,0
Oct 27 02:39:07 host unix: WARNING: /pci@1f,0/usb@c,3/storage@1/disk@0,0 (sd2):
Oct 27 02:39:07 host Corrupt label; wrong magic number
Oct 27 02:39:07 host unix: /pci@1f,0/usb@c,3/storage@1/disk@0,0 (sd2) online

まず、刺してみてここまでがdmesgに出る。/dev/r?dsk/以下も一応更新される。

# ls /dev/rdsk/c2t0d0s?
lrwxrwxrwx 1 root root 55 Oct 27 02:39 /dev/rdsk/c2t0d0s0 -> ../../devices/pci@1f,0/usb@c,3/storage@1/disk@0,0:a,raw
lrwxrwxrwx 1 root root 55 Oct 27 02:39 /dev/rdsk/c2t0d0s1 -> ../../devices/pci@1f,0/usb@c,3/storage@1/disk@0,0:b,raw
lrwxrwxrwx 1 root root 55 Oct 27 02:39 /dev/rdsk/c2t0d0s2 -> ../../devices/pci@1f,0/usb@c,3/storage@1/disk@0,0:c,raw
lrwxrwxrwx 1 root root 55 Oct 27 02:39 /dev/rdsk/c2t0d0s3 -> ../../devices/pci@1f,0/usb@c,3/storage@1/disk@0,0:d,raw
lrwxrwxrwx 1 root root 55 Oct 27 02:39 /dev/rdsk/c2t0d0s4 -> ../../devices/pci@1f,0/usb@c,3/storage@1/disk@0,0:e,raw
lrwxrwxrwx 1 root root 55 Oct 27 02:39 /dev/rdsk/c2t0d0s5 -> ../../devices/pci@1f,0/usb@c,3/storage@1/disk@0,0:f,raw
lrwxrwxrwx 1 root root 55 Oct 27 02:39 /dev/rdsk/c2t0d0s6 -> ../../devices/pci@1f,0/usb@c,3/storage@1/disk@0,0:g,raw
lrwxrwxrwx 1 root root 55 Oct 27 02:39 /dev/rdsk/c2t0d0s7 -> ../../devices/pci@1f,0/usb@c,3/storage@1/disk@0,0:h,raw
んが、実際にアクセスしてみるとI/O Error。この時dmesgには以下のメッセージ。

Oct 27 02:45:13 host unix: WARNING: /pci@1f,0/usb@c,3/storage@1/disk@0,0 (sd2):
Oct 27 02:45:13 host Corrupt label; wrong magic number

"mount -F pcfs /dev/dsk/c2t0d0s0:c /mnt"とかやっても同じ。
SCSI HDDと同じ扱いっぽいので、SPARC SolarisではSunのディスクラベルを
作らないとダメなのかもしれない。x86 Solarisならcmdkドライバが
x86パーティションを認識してくれるので、こういう問題は出ないはず(未確認)。

# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
...
2. c2t0d0 <drive type unknown>
/pci@1f,0/usb@c,3/storage@1/disk@0,0

おお。でも、partitionコマンドまでは恐くて試せず。
# cfgadm -l | grep usb
usb0/1 usb-storage connected configured ok
usb0/2 usb-kbd connected configured ok
usb0/3 unknown empty unconfigured ok
usb0/4 usb-mouse connected configured ok

# prtconf -D (抜粋)
SUNW,Sun-Blade-100
pci, instance #0 (driver name: pcipsy)
usb, instance #0 (driver name: ohci)
mouse, instance #2 (driver name: hid)
keyboard, instance #3 (driver name: hid)
storage, instance #1 (driver name: scsa2usb)
disk, instance #2 (driver name: sd)

実験が終わったら、"cfgadm -c disconnect usb0/1"で切り放す必要あり。
つーことで、I/O Errorを出さないような方法を探すか、あるいはformatで
パーティショニングまでやっちゃうかのどちらかかなと。
USBメモリは使えた希ガス >SunOS5.8@x86
ああ、そうかsparcバージョンはPCFS認識しないんだったな。
959名無しさん@お腹いっぱい。:04/10/27 15:53:15
openpkg.org 使ってる人いますか?
pkgsrc-bootstrap と比べてどんなかんじですか?
960名無しさん@お腹いっぱい。:04/10/27 21:46:39
Solaris 8 2/02
Xsun サーバを表示専用で使用
2 つの新しいオプションによって、キーボードやマウスなしで Xsun サーバを実行可能。
これにより Xsun サーバは以下の方法で使用可能。
 ・表示専用
 ・マウスおよびキーボード以外の代替入力装置と共に使用
 ・表示装置を使用せず、画面外描画をハードウェアで高速化する目的でフレーム
  バッファを駆動

表示専用サーバとして起動するための具体的な手順がわからないのですが、誰かわかる?
sparc版なのかx86版なのか。
962名無しさん@お腹いっぱい。:04/10/28 01:40:29
キーワードだけ教えてやると
xhostとtelnetとsetenvぐらい
963960:04/10/28 04:20:02
>>961
sparc版でつ。
>>958
pcfsを、じゃなくてfdiskパーティションを、がより正確かも。
965名無しさん@お腹いっぱい。:04/10/28 06:58:56
/etc/hostsに
192.168.0.1 host-a
192.168.0.2 host-a
と書いた場合、host-aへの接続は192.168.0.1のホストと
192.168.0.2のホストとで負荷分散を行ってくれますか?
それとも、上に書いたものだけが有効になるのでしょうか?
966名無しさん@お腹いっぱい。:04/10/28 08:39:01
>>965
負荷分散
負荷分散
負荷分散
>>965
うえのしかつかわない。
DNSつかえ。
それかロードバランサかえ
host-a IN A 192.168.0.1
host-a IN A 192.168.0.2
969941:04/10/28 22:34:07
>942
>947

 レス、ありがとう。

 system(3C)には及ばないけど、なんとか実装できました。

 -lpthreadでやってたので、速度は速くならなかったけど、
 要求レベルより遅いことはなかったので、なんとかなりました。

 Solaris9ではSafeもしくはMT-SafeなものがSolaris8では
 Unsafeだったりして、結構気を使いますね。
 MT-Levelを気にせずコーディングしていたため、
 ハマってしまった。

 trussを使ってみましたが、まだあんまりよくわかりません。
 とりあえず、システムコールに分解してくれるということは
 わかったのですが、それをどう生かせばいいか、
 よくわかりません。

 まだまだ精進が必要ってことか。。。
970名無しさん@お腹いっぱい。:04/10/29 15:51:45
Megaraid300にsolaris8のドライバはどこで拾えばよろしいですか?
現在Solaris8を使用しています。ずっとTelnetでログインできていたのですが、
別の人がリモートでIPを変更したら、shutdownした後にTelnetでログインできなくなってしまいました。
クロスで接続すると、pingは返ってきます。
Ipを変更しただけでそのようなことは起こってしまうのでしょうか?

しょぼい質問ですみません。
よろしくお願いします。
>>971
>Ipを変更しただけ

まず、これが怪しいワケだが。
>>971
OSは正常にあがってるの?
>>973

コンソールも使用できなくなっていて、モニタも表示できません。
実際にあがっているのかどうかすら確認できない状態です。

メンドイから STOP+A して boot -s で。
コンソール駄目なの?まじで?
Stop+Nで戻せない?
>>970
日本語でお願いします。
>>971
>>クロスで接続すると
どういう意味?
普通にLANにつないだ状態だとだんまりってこと?
まあ、>>975でだめだったら
シリアルでつないでbrk送ってみる。
それでもだめなら電源切れ。
>>974
IPを変更しただけでコンソールが使えなくなるって
どんな状況だよ!
>>957
USB FLASHメモリとMuvo^2はSolaris9/SPARCでもSolaris9/x86でも使えた
ただし、Windowsで使っていたATA HDDをATA/USB変換器経由で接続する場合、
x86は大丈夫だけど、SPARCは小細工しないとダメだった。詳細は
ttp://bt848x-ja.sourceforge.jp/index.php?tips%2FSPARC%20Solaris%A4%C7x86%20HDD%A4%F2%BB%C8%A4%A6