4.3.1JP-RC3(+SP3.1118)

4.X系の開発

モデレータ: 暇人, YoN, nyu

アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: pup_event_frontend_d

投稿記事 by シノバー »

新谷 さんが書きました:単純計算で従来版の3倍時間がかかるっよね
df の実行にずいぶん掛かるようなので、それを1回にしました。次のようなコーディングでいかが?

コード: 全て選択

free_flash_func() { #PUPMODE 3,7,13. called every 4 seconds.
 WARNMSG=""
 # 17nov09 SIZEFREEM by shinobar
 DFM=$(df -m)
 LINERO=$(echo "$DFM" | grep ' /initrd/pup_ro1$' | tr -s ' ' )
 LINERW=$(echo "$DFM" | grep ' /initrd/pup_rw$' | tr -s ' ' )
 SIZEM=$(echo $LINERO| cut -f 2 -d ' ')
 SIZEWM=$(echo $LINERW| cut -f 2 -d ' ')
 [ $SIZEWM -lt $SIZEM ] && SIZEM=$SIZEWM
 SIZEUM=$(echo $LINERW| cut -f 3 -d ' ')
 SIZEFREEM=$(expr $SIZEM - $SIZEUM)
 #SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`
 SIZETMPM=$(echo $LINERW| cut -f 4 -d ' ')
添付ファイルを見るにはパーミッションが必要です
The bar master, Shino's Bar
http://shinobar.net/
新谷
記事: 934
登録日時: 08/10/09(木) 18:52
お住まい: 大阪

Re: pup_event_frontend_d

投稿記事 by 新谷 »

お疲れ様です。
えーと、
新谷 さんが書きました:pup_event_frondend_d-1117 の417行目から

コード: 全て選択

 # 17nov09 SIZEFREEM by shinobar
 SIZEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 2 -d ' '`
 SIZESM=`df -m | grep ' /initrd/pup_rw$' | tr -s ' ' | cut -f 2 -d ' '`
 [ $SIZESM -lt $SIZEM ] && SIZEM=$SIZESM
 SIZEUM=`df -m | grep ' /$' | tr -s ' ' | cut -f 3 -d ' '`
 SIZEFREEM=$(expr $SIZEM - $SIZEUM)
 #SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`

コード: 全て選択

SIZEUM=`df -m | grep ' /$' | tr -s ' ' | cut -f 3 -d ' '`
↑の「/$」の部分には「/initrd/pup_ro1$ OR /initrd/pup_rw$」が代入されるべきなのでは?、ということが言いたかったのであります。

新スクリプトでは、

コード: 全て選択

 SIZEUM=$(echo $LINERW| cut -f 3 -d ' ')
になってるんで、えー....特にありません。
テストしてますが、今のところ不具合はないです。
新谷
記事: 934
登録日時: 08/10/09(木) 18:52
お住まい: 大阪

Re: pup_event_frontend_d のスピード

投稿記事 by 新谷 »

従来部分と改良版から抽出してテストしてみました。
従来版 (OLD.sh)

コード: 全て選択

#!/bin/ash
 SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`
echo done
改良版 (NEW.sh)

コード: 全て選択

#!/bin/ash
 DFM=$(df -m)
LINERO=$(echo "$DFM" | grep ' /initrd/pup_ro1$' | tr -s ' ' )
LINERW=$(echo "$DFM" | grep ' /initrd/pup_rw$' | tr -s ' ' )
SIZEM=$(echo $LINERO| cut -f 2 -d ' ')
SIZEWM=$(echo $LINERW| cut -f 2 -d ' ')
[ $SIZEWM -lt $SIZEM ] && SIZEM=$SIZEWM
SIZEUM=$(echo $LINERW| cut -f 3 -d ' ')
SIZEFREEM=$(expr $SIZEM - $SIZEUM)
echo done
従来版のスピード

コード: 全て選択

#time ./OLD.sh
done

real	0m0.304s
user	0m0.212s
sys	0m0.092s
....約0.3秒くらいっすか。

改良版のスピード

コード: 全て選択

#time ./New.sh
done

real	0m0.424s
user	0m0.320s
sys	0m0.104s
....約0.4秒くらい。結構早い :o

ところで、

コード: 全て選択

#time LANG=C ./New.sh
done

real	0m0.096s
user	0m0.020s
sys	0m0.076s
....スクリプト中、free_flash_func() だけは LANG=C にするというのは可能でしょうか?

註1: このテストはペン3 597MHzのPCで、Xを終了状態で行いました。
註2: time コマンドでは厳密な測定はできないと思います。
註3: 各数値は5回測定して一番結果の良かったもの。
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: pup_event_frontend_d のスピード

投稿記事 by シノバー »

詳細な検討ありがとうございます。
新旧のdiffは

コード: 全て選択

# diff  pup_event_frontend_d.old pup_event_frontend_d
28a29
> # 17nov09 free_flash_func
416,417c417,427
<  SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`
<  SIZETMPM=`df -m | grep ' /initrd/pup_rw$' | tr -s ' ' | cut -f 4 -d ' '`
---
>  # 17nov09 SIZEFREEM by shinobar
>  DFM=$(df -m)
>  LINERO=$(echo "$DFM" | grep ' /initrd/pup_ro1$' | tr -s ' ' )
>  LINERW=$(echo "$DFM" | grep ' /initrd/pup_rw$' | tr -s ' ' )
>  SIZEM=$(echo $LINERO| cut -f 2 -d ' ')
>  SIZEWM=$(echo $LINERW| cut -f 2 -d ' ')
>  [ $SIZEWM -lt $SIZEM ] && SIZEM=$SIZEWM
>  SIZEUM=$(echo $LINERW| cut -f 3 -d ' ')
>  SIZEFREEM=$(expr $SIZEM - $SIZEUM)
>  #SIZEFREEM=`df -m | grep ' /initrd/pup_ro1$' | tr -s ' ' | cut -f 4 -d ' '`
>  SIZETMPM=$(echo $LINERW| cut -f 4 -d ' ')
旧がdfを2回やっているのに対し新は1回なので、結構早いはず。
*pup_event_frontend_dは基本 LANG=Cで動いてます。メッセージを出すときのみ LANG=$LANGORG

SIZEFREEM=$(expr $SIZEM - $SIZEUM)
第1項は pop_ro1 か pop_rw のどちらか小さいほう
第2項は pop_rw
というのがキモです。pop_rw はリアルタイムに変化するが、pop_ro1はデフォルトで30分おきにしか更新されない。

蛇足ながらフラッシュメモリで動いている場合に限っては pop_rw と / が同じみたいでした。df -m を実行してみるとそうだった。
The bar master, Shino's Bar
http://shinobar.net/
新谷
記事: 934
登録日時: 08/10/09(木) 18:52
お住まい: 大阪

Re: pup_event_frontend_d のスピード

投稿記事 by 新谷 »

シノバー さんが書きました:*pup_event_frontend_dは基本 LANG=Cで動いてます。メッセージを出すときのみ LANG=$LANGORG

(中略)

蛇足ながらフラッシュメモリで動いている場合に限っては pop_rw と / が同じみたいでした。df -m を実行してみるとそうだった。
あら :shock: そうでしたか。
こちらの確認不足のようです。
申し訳ありませんでした :oops: :oops:
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: pup_event_frontend_d のスピード

投稿記事 by シノバー »

シノバー さんが書きました: SIZEFREEM=$(expr $SIZEM - $SIZEUM)
第1項は pop_ro1 か pop_rw のどちらか小さいほう
第2項は pop_rw
むむ〜、そんなに単純じゃなかった。

pup_ro1はpupsaveそのものですが、pop_rwはpupsaveに加えて更新分と、解釈していたのだが、そうではなくて
pop_rwはpupsaveからの差分のみ

上記の(新)free_flash_func()だと、セッション中に大きなファイルをいれると、確かにそれが反映されるが……、
再起動すると空きスペースが500MBに戻ってしまう。 :oops:
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

pup_event_frontend_d / snapmergepuppy ほか

投稿記事 by シノバー »

シノバー さんが書きました:むむ〜、そんなに単純じゃなかった。
あきらめてもとに戻り、新谷さんも言われたようにエラーメッセージを強化する方向でまとめてみました。
  1. /sbin/pup_event_frontend_d
    現状フリーエリアのチェックを pup_roとpup_rwの両方について行っており、どちらが足りなくてもエラーメッセージが出ます。
    エラーメッセージとトレイのfree表示との整合を取る意味でトレイのfree表示も pup_roあるいはpup_rwの空きのうち小さいほうを表示するということでいかがでしょうか。
  2. /usr/share/locale/ja/LC_MESSAGES/pmount.mo
    pup_event_frontend_dが使っているメッセージです。少し丁寧にしました。
  3. /usr/sbin/snapmergepuppy
    エラーメッセージをすぐに消えるスプラッシュではなく「OK」ボタンを押すまでは残るダイアログにしました。
    /etc/profileのLANGを参照するという方法で日本語を表示させてます。
    また、rc.shutdownから呼ばれたときのために成功/失敗のステータスを返すようにしました。
  4. /etc/rc.shutdown
    上記ステータスを見て、保存に失敗したときはエラーメッセージを表示するようにしました。
  5. /usr/X11R7/bin/yaf-splash
    メッセージの改行を反映させるために、引数参照のさい「"$@"」とダブル・クォーテーションを付けました。
以上5つをまとめました。
添付ファイルを見るにはパーミッションが必要です
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

SP3.1118

投稿記事 by シノバー »

service_pack431JP-RC-3.1118.pet(SP3.1118) を用意しました。
こちらから

4.3.1JP-RC3に適用してください。
4.3.1JP-RC3リリース以降の修正をすべて含んでいるので、他の修正PETはあらかじめ外しておいてください。
SP3.1118適用後、 /usr/bin/abiword-binは不要です。邪魔なら削除してください。

今回(SP3.1118)の追加
  • USキーボードで「`」(grave asciitilde)がX上で入力できなかったものの修正
  • 個人保存ファイルに/var/run以下のpidファイルが残ることがあったものの修正
  • フラッシュメモリから起動した環境での空き容量表示とエラーメッセージの改善
  • デフォルトの壁紙を4.3.1バージョンに差し替え
  • アプリケーション日本語化の更新(gnumeric)
  • release-4.3.1JP.htm(更新)
SP3.1113, SP3.1114 の内容(SP3.1118に同梱済み)については以下をご覧ください。
viewtopic.php?f=28&t=1444&start=30#p10252
The bar master, Shino's Bar
http://shinobar.net/
きりん
記事: 553
登録日時: 08/02/24(日) 21:49
連絡する:

Re: SP3.1118

投稿記事 by きりん »

こんにちわ。きりんです。
USキーボードで「`」(grave asciitilde)がX上で入力できなかったものの修正
だいぶ昔、メッセージをアップした、「Xvesaでのかな漢字起動キー」viewtopic.php?f=23&t=387
があるのですが、副作用として日本語キーボードで漢字キーが使えなくなるような・・・。動作確認していませんが、気に掛かったので、お知らせです。
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: SP3.1118

投稿記事 by シノバー »

きりん さんが書きました:
USキーボードで「`」(grave asciitilde)がX上で入力できなかったものの修正
副作用として日本語キーボードで漢字キーが使えなくなるような・・・。
気に掛けていただきありがとうございます。
SP3.1118では /root/.xinitrcでそこのところを処理してます。
36行目から

コード: 全て選択

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
else
  if [ $(readlink /usr/bin/X) = "Xvesa" ]; then
    [ -f $usermodmap.xvesa ] && xmodmap $usermodmap.xvesa
    [ "$(grep '.map' /etc/keymap | tail -n 1)" = jp106.map ] && \
    xmodmap -e 'keycode 49 = Zenkaku_Hankaku'
  else
    [ -f $usermodmap.xorg ] && xmodmap $usermodmap.xorg
  fi
fi
あ、/root/.Xmodmap.xvesaを読むのとxmodmap -eで設定するのと順番がよろしくないですね。次で直しておきます。

追記:RC4での /root/.xinitrcのそこの部分(36行目から)

コード: 全て選択

[ "$(grep '.map' /etc/keymap | tail -n 1)" = jp106.map ] && \
  xmodmap -e 'keycode 49 = Zenkaku_Hankaku'
if [ -f $usermodmap ]; then
    xmodmap $usermodmap
else
  if [ $(readlink /usr/bin/X) = "Xvesa" ]; then
    [ -f $usermodmap.xvesa ] && xmodmap $usermodmap.xvesa
  else
    [ -f $usermodmap.xorg ] && xmodmap $usermodmap.xorg
  fi
fi
最後に編集したユーザー シノバー [ 09/11/24(火) 08:36 ], 累計 1 回
The bar master, Shino's Bar
http://shinobar.net/
きりん
記事: 553
登録日時: 08/02/24(日) 21:49
連絡する:

Re: SP3.1118

投稿記事 by きりん »

シノバー さんが書きました: SP3.1118では /root/.xinitrcでそこのところを処理してます。
了解しました。確認せずですいませんでした。今後とも改良作業よるしくお願いします。
きりん。
cygnus_odile
記事: 665
登録日時: 09/08/16(日) 14:30

Re: SP3.1118

投稿記事 by cygnus_odile »

SP3.1118 と英語キーボードとの組み合わせを確認しました。(英語キーボード派ですので)。
これまではいつも、 xmodmap -e "keycode 49 = grave asciitilde" なる内容のスクリプトを起動時に実行させていたのですが、不要となりました。
アバター
みのむし
記事: 1164
登録日時: 08/09/10(水) 13:56
お住まい: 福岡市中央区草香江1-2-40-101号
連絡する:

Re: 4.3.1JP-RC3(+SP3.1118)

投稿記事 by みのむし »

シノバーさん、作業お疲れ様でした。
早速、ダウンロードしてアップデートしました。
なお、/root/.xnitrc は初期化されるんでしょうか?
wbar の設定が消えていました。
みのむし
Notebook PC HP G62
CPU: Intel(R) Core(TM)i5 M450 @ 2.40GHz
MEM: 4GB
Puppy Linux Quickset 5.1.1 JP
PC内蔵無線LANデバイス RTL8171(r8192se_pci)
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: 4.3.1JP-RC3(+SP3.1118)

投稿記事 by シノバー »

みのむし さんが書きました:/root/.xnitrc は初期化されるんでしょうか?
でしたね。ゴメンなさい。
The bar master, Shino's Bar
http://shinobar.net/
返信する