日本電算機(JCC)の JU10 という Sun の互換機を使っています。停
電から回復した時に、自動的に起動させる方法はないでしょうか。
eeprom の auto-boot?=true では、ROM の Forth からは自動的に
上がりますが、その前にフロントのボタンを押して電源を入れる必
要があります。停電時に UPS で自動シャットダウンはうまくいっ
ているので、停電から回復したら自動的に起動して欲しいというこ
とです。
ネットワークニュースの記事なので、当らずとも遠からずという話
でも、他の人には役に立つと思うので、投稿していただけばと思い
ます。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes:
>
> 新城@筑波大学情報です。
>
> 日本電算機(JCC)の JU10 という Sun の互換機を使っています。停
> 電から回復した時に、自動的に起動させる方法はないでしょうか。
予め停電の回復時刻が分っているなら、
http://solaris.sunfish.suginami.tokyo.jp/tips/hardware/wakeup.html
というのを使うと指定した日時に自動的に起動させることは可能なようです。
> eeprom の auto-boot?=true では、ROM の Forth からは自動的に
> 上がりますが、その前にフロントのボタンを押して電源を入れる必
> 要があります。停電時に UPS で自動シャットダウンはうまくいっ
> ているので、停電から回復したら自動的に起動して欲しいというこ
> とです。
手持ちのAPC SmartUPSでは停電から回復したときに自動的に
給電を開始させる事は可能なのだったかな?
>> 日本電算機(JCC)の JU10 という Sun の互換機を使っています。停
Sun でいう Ultra 10 でしょうか。
>> 電から回復した時に、自動的に起動させる方法はないでしょうか。
UPS の仕様上無理なのかも知れませんが、poweroff 状態じゃなくて
halt 状態にもっていって (OK プロンプト状態) 電源ラインが
オフにできればどうかな?と思います。
--
UPS 触ったことないので、はずしまくりかも
手元のNetra X1などは「init 5」でシャットダウンして電源を落としてしまうと、停
電→復電してもLOMプロンプトになるだけで、poweronコマンドを入れるか、電源スイッ
チを入れないとパワーオンしません。この場合、「init 0」でシャットダウンすれば、
電源自身が落ちていないので、そのあとの停電→復電で自動的に起動します。(復電
時にWSへコマンドを送れるUPSを使用してもよい。)
そうではなくて、PCのようにATX電源が使用されていて、内部電源の出力にスイッチ
を押す必要がある場合には、電源コネクタの14ピンと15ピンをショートさせると、AT
電源のようなメイン電源のオンオフで出力もオンオフするタイプに変更できます。
----
川部@(株)地球科学総合研究所
In article <x7r81cp...@maiorica.uni.sony.co.jp>
l...@uni.sony.co.jp writes:
> 佐藤通敏です。
> > 日本電算機(JCC)の JU10 という Sun の互換機を使っています。停
> > 電から回復した時に、自動的に起動させる方法はないでしょうか。
> 予め停電の回復時刻が分っているなら、
> http://solaris.sunfish.suginami.tokyo.jp/tips/hardware/wakeup.html
> というのを使うと指定した日時に自動的に起動させることは可能なようです。
というわけで、試してみました。うまく動きました。今日、実際に
停電があったのですが、UPS の機能で落ちて、wakeup コマンドの
働きで起き上がっていました。ありがとうございます。
http://solaris.sunfish.suginami.tokyo.jp/tips/hardware/wakeup.html:
------------------------------------------------------------
・指定時刻に起動
sun4u 機に搭載される TOD (Time of Day)チップには、指定した時間に alarm を
発行する機能を持っている。
で、実は、sun4u 機は、この alarm を受け取ると、自動的に起動を開始するように
作られているんだけど、表向きは、そんな機能があることにも触れていない。
が、TOD には、tod driver が利用されるのだけど、この driverに、指定した時間
に alarm を発行させるようにするための undocumented な ioctl が実装されている。
...
wakeup.c,v 1.4 2003/09/16 02:07:17
http://www.amoebasoft.com/~talon/wakeup.c
------------------------------------------------------------
/dev/tod というデバイスに、起き上がる時刻(Unix の 1970 から
の時刻。)を、ioctl で突っ込むということのようです。コマンド
は、Solaris 9 で開発されたようですが、Solaris 8 でも動きました。
たとえば、19:00 に停電から回復していることが分かっていたら、
こうします。
------------------------------------------------------------
# ./wakeup 19:00
Clearing the alarm just to be safe.... Success!
Setting TOD alarm.... Success!
Alarm set to 1066557600
thats 65719 seconds from now
now = 1066491881
# date
Sun Oct 19 00:44:45 JST 2003
# bc
65719/60/60
18
#
------------------------------------------------------------
この wakeup コマンド、もう少しユーザインタフェースが洗練され
ていてもいいような気もします。たとえば、at コマンド風に。日
付の指定の仕方とか計算方法で手抜きをしているのでしょうけれど。
GNU の at コマンドでも拾ってきて、ハードウェア(/dev/tod) を
たたくようにするといいんだけれど。
上の URL の説明には、「init level 5 で shutdown 」と書いてあ
りますが、私は単に shutdown -h now しています。というか、普
段は halt なんだけど、UPS を監視する daemon の設定で
shutdown -h now と入れています。
------------------------------------------------------------
# strings /usr/local/freqship/bin/freqshpd | egrep shutdown
Scheduled shutdown is in progress. Cancel?(y/else):
Failed to shutdown UPS.
System will shutdown after %d second.
shutdown -h now
#
------------------------------------------------------------
In article <bmo2k4$ni5$1...@caraway.media.kyoto-u.ac.jp>
yna...@st.rim.or.jp (Nagata) writes:
> >> 日本電算機(JCC)の JU10 という Sun の互換機を使っています。停
> Sun でいう Ultra 10 でしょうか。
たぶん、そんな所です。300MHz の UltraSPARC IIi。
------------------------------------------------------------
# uname -srmpi
SunOS 5.8 sun4u sparc SUNW,UltraSPARC-IIi-Engine
#
------------------------------------------------------------
In article <BBB5BDB2.BECF%k...@momo.so-net.ne.jp>
"Kawabe, Y." <k...@momo.so-net.ne.jp> writes:
> そうではなくて、PCのようにATX電源が使用されていて、内部電源の出力にスイッチ
> を押す必要がある場合には、電源コネクタの14ピンと15ピンをショートさせると、AT
> 電源のようなメイン電源のオンオフで出力もオンオフするタイプに変更できます。
JU10 の場合、外から見ると PC 風です。後ろの電源ケーブルの横
に物理的なスイッチがあって、それを切ると、前ボタンを押しても
だめです。それを切ってなければ、前のボタンをプチッと押しただ
けで起動します。
UPS (Uninterruptible Power Supply ) は、Computer 専用ではな
いし、入出力をあんまりやらないから peripheral device という
感じもしないけれど、ハードウェアだし、sys でもないから、
Followup-To: fj.comp.dev.misc としてみました。
In article <x7r81cp...@maiorica.uni.sony.co.jp>
l...@uni.sony.co.jp writes:
> 佐藤通敏です。
> 手持ちのAPC SmartUPSでは停電から回復したときに自動的に
> 給電を開始させる事は可能なのだったかな?
私が使っているのは、三菱の FREQUPS-A というものです。これは、
UPS 電源回復時の動作で次の3つがあります。
(1) 自動起動。停電から回復すると自動的に給電開始。
(2) 手動起動。人がスイッチを入れたら給電開始。
(3) インテリジェント起動。(1) と似ているけれど、OFF スイッチ
の時には、自動起動しない。スケジュール運転もできる。
今回、停電から回復して、うまく JU10 (Sun の互換機)をうまく起
動できたのは、(1) か (3) なんでしょう。(1)かなあ。実はどれか
よくわかりません。というのも、この設定は、UPS を制御する
FREQSHIP というソフトウェアで設定することになっているのです
が、このソフトウェアは、買ってないので使えないんです。
FREQUPS-A の場合、FREQSHIP-mini というものは無料で提供されて
います。Solaris では、FreeBSD 用を取ってきて、少し修正して使っ
ています。末尾にパッチをつけます。
http://www.nagoya.melco.co.jp/FREQUPS/down/freq_bsd.tgz
設定は、こんな感じ。confiure スクリプトで作られます。FreeBSD
用から Solaris 用に変えたのは、/dev/ttya につないだ所だけです。
------------------------------------------------------------
# cat UPSFILE
OSDelay=180
UPSDelay=360
Port=/dev/ttya
#
------------------------------------------------------------
他の UPS では、停電から回復した後の挙動は、どんな感じでしょうか。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Solaris で FreeBSD 用の FREQSHIP-mini を使うためのパッチです。
ミリ秒単位の Sleep() がいるんだけど、Solaris にはマイクロ秒
単位の usleep() があるので、それで代用しています。
----------------------------------------------------------------------
*** freqmain.c.~1~ Thu Jul 29 14:32:29 1999
--- freqmain.c Sun Aug 3 00:48:20 2003
***************
*** 12,15 ****
--- 12,18 ----
* *
************************************************************************/
+ #if defined(__sun)
+ #include <unistd.h>
+ #endif
#include <stdio.h>
#include <sys/wait.h>
***************
*** 505,508 ****
--- 508,512 ----
* Update 00/00/00 *
************************************************************************/
+ #if defined(__sun)
int
Sleep(millisec)
***************
*** 509,512 ****
--- 513,523 ----
DWORD millisec; /* IN:スリープする時間(ms) */
{
+ usleep( millisec * 1000 );
+ }
+ #else
+ int
+ Sleep(millisec)
+ DWORD millisec; /* IN:スリープする時間(ms) */
+ {
struct itimerval itv, oitv;
void (*prev_handler)();
***************
*** 554,557 ****
--- 565,569 ----
return 0;
}
+ #endif
/************************************************************************