スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Firefox起動時に前回表示したタブが開かない時

2016/5/17追記
Firefoxが新しいバージョンの場合、管理方法(ファイルの方式)が変わっているうようです。
新しい記事を参照してください。




対象者
 ・FirefoxをWindowsまたはLinuxで利用している
  ※WindowsXP,7,Ubuntuで確認
 ・Firefox標準の「前回表示のタブを復元する機能」を利用している
 ・Firefoxのタブが復元されなかった


タイトルの通りですが、Firefoxを利用していてかつ標準の「起動時に前回表示していたタブを復元する機能」を利用している場合で、プログラムが無応答になって強制終了したりすると次回起動時にタブがすべて失われて、初期状態で立ち上がる場合があります。タブが復元しないのです。
そのほかにも、Firefoxを2つ開いていて閉じる順番を間違えたときなどにも起こります(汗)
※アドオンで管理している場合は別です。

Firefox、GoogleChromeなどはWindows,Linux,MacOSXなどで動作するので便利です。
で、Firefoxのタブグループ機能が便利で活用しているのですがずぼらなため閉じるときにxxx個(3ケタ)のタブを閉じますといわれるくらい開きっぱなし(笑)
そんなわけで、タブが復元されないとブックマーク損失するくらいショックな事態。
でもFirefoxはたまにおこるorz


でもあわてない!(まだ)
助かる可能性があります!!呆然とする前に下を試してみましょう。
前回のセッションが復元できるかもしれません。


まず、そのFirefox(初期状態)を閉じないでください!


Firefoxはタブの情報を
"sessionstore.js"
"sessionstore.bak"
という二つで管理しています。
開くときには、"sessionstore.js"を読み込んで前回のタブを復元します。で、閉じると"sessionstore.bak"としてコピー(上書き)します。タブ情報が失われた時は、この"sessionstore.js"と"sessionstore.bak"のファイルサイズが全然違くなっていたりします。ウィンドウを閉じると、この初期状態のタブ情報が"sessionstore.bak"に上書きされてしまいます。
そうするともうアウトです(^ ^;



つまり、復元方法は以下のようになります。

1.sessionstore.bakを退避します
 よくやるのはsessionstore.bak.20120101のように日付を付けてリネームします。
 
 ちなみにファイルの場所は
  Windows
   %AppData%\Mozilla\Firefox\Profiles\プロファイルフォルダ

  Linux(Ubunutuで確認)
   ~/.mozilla/firefox/プロファイルフォルダ

 にあります。プロファイルフォルダの名前は文字の羅列です。プロファイルフォルダ名がわからない場合は"profiles.ini"に利用プロファイルの記載があります。

2.sessionstore.bakをsessionstore.jsにファイル名を変更して上書きします


3.Firefoxを再起動します



これで復元していればラッキー!
復元しなかったときに初めて、呆然としましょう(笑)
ちなみに私は何度も助けられてます。

まぁ、こんなタブ開く運用している人ってたぶん私くらいですかね。いつも驚かれますし。


スポンサーサイト

UbuntuでRS-232Cを利用したシリアルポート通信

シリアルポート端末(gtkterm)を使ってみる!




2016/5/20 追記

Ubuntu16.04で、下記方法の2で確認しました。また、その際のコマンドを訂正しています。
(1は試していませんが、可能と思われます。)




Ubuntuソフトウェアセンターをさまよっていたら、ふと面白いものを見つけました。
RS-232Cシリアルポートを利用した通信が可能なターミナルソフト(シリアルコンソール)です。
これの設定でちょっと苦戦したのでメモ。


目的はUbuntuからシリアルポートを経由して外部装置と通信(コンソール接続)するのが目的です。
Ubuntuを操作する事が目的ではありません。

このソフトは、Windowsで言うとPuttyやTeraTermのようなものです。最近では使われないと思いますが、ネットワーク機器設定やらその他開発をされているような人は利用すると思います。私はルータ、スイッチの設定のため利用が必要なためどうしてもWindowsが必要となることから、何とかならないかと思って過去に調べたことがあります。その時はアプリのようなものはなく「screen」コマンドのようなものを利用して行うといったものだったと記憶してます。その時はできたのですが普段使わないのでやり方を忘れた(笑)。
今回見つけたのは、ソフトウェアなので簡単♪




「シリアルポート端末」もしくは「gtkterm」で検索してください。
早速インストールして起動。

■環境
 ・Ubuntu12.04
 ・USBシリアル:USB-CVRS9(サンワサプライ製)

メニューの「Configuration > Port 」から、ポートの指定でシリアルポート(今回はUSBシリアルポートなので)"ttyUSB0"を選択。
※ 接続したUSBシリアルがどう認識されているかは"dmesg"で確認できます。
$ dmesg | tail
[423416.978909] usb 1-1.1: new full-speed USB device number 6 using ehci_hcd
[423417.072692] pl2303 1-1.1:1.0: pl2303 converter detected
[423417.074451] usb 1-1.1: pl2303 converter now attached to ttyUSB0


※その他、転送速度や、パリティなどは接続機器に合わせて指定します。
gtktermインタフェース指定

で、OKを押すと、

Cannot open /dev/ttyUSB0: 許可がありません


怒られました・・・。
terminalから
$sudo gtkterm
として起動するとうまく行きますので、権限の問題のようです。

デバイスを確認します。
$ ll /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 11月 9 17:14 /dev/ttyUSB0

となっており、このデバイスの所有者はrootで所属グループはdialoutとなっておりその他はアクセスできないのが原因のようです。



解決方法
1.ユーザ(自分)を dialoutグループに所属させる
 利用ユーザをdialoutグループに所属させることで実現可能です。
 $sudo addgroup hogehoge dialout2016/5/20 コマンド訂正
 $sudo gpasswd -a hogehoge dialout
2.USBシリアルポートの権限を拡大する
 自動で認識する際に、"その他"のユーザも読み込み・書きこみ権限を与えてあげます。
 私はこの方法で行いました。


-以下、2の方法の手順-
Ubuntu12.04では、デバイスを接続するとudevによってデバイスファイルが適切に/dev配下に配置されるとのことです。(微妙に正確ではないかも)
まずは、USBシリアルポートを接続した際にudevがどういうイベントを検知するのかを調べます。
$sudo udevadm monitor
この状態でUSBシリアルケーブルを接続すると
KERNEL - the kernel uevent
KERNEL[81897.906304] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1 (usb)
KERNEL[81897.909256] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0 (usb)
KERNEL[81897.920212] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0/ttyUSB0 (usb-serial)
KERNEL[81897.920297] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0/ttyUSB0/tty/ttyUSB0 (tty)
UDEV [81897.930378] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1 (usb)
UDEV [81897.934428] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0 (usb)
UDEV [81897.935944] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0/ttyUSB0 (usb-serial)
UDEV [81897.943302] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0/ttyUSB0/tty/ttyUSB0 (tty)

このような表示がされます。
udevで認識したデバイスは、udevのルールファイルで定義された内容に従いデバイスファイルが追加されるようです。ルールファイルは
/lib/udev/rules.d
/etc/udev/rules.d

に有ります。 前者は標準で持っているもので、ユーザが定義する場合は後者に配置するようです。
/lib/udev/rules.d/50-udev-default.rules
にデフォルト定義?があるのでこれを参考にしてファイルを作ります。
今回は/etc/udev/rules.d/70-usbserial.rulesという名前で作成しました。
※同じディレクトリにあった"70-persistent-net.rules"をコピーして作りました。
内容はこんなかんじです。
# This file maintains persistent names for USB-Serial I/F devices.
# See udev(7) for syntax.
#
# Entries are automatically added by the 75-cd-aliases-generator.rules
# file; however you are also free to add your own entries provided you
# add the ENV{GENERATED}=1 flag to your own rules as well.
KERNEL=="ttyUSB*", MODE="0666"

必要なのは最後の行です。#から始まる行はコメントです。
ファイル名は必ず「.rules」という形で終わる必要があります。でないと、適用されません。
また、最初の数字は低い方ファイルから評価され、マッチするのがあるとそこでその動作を実施するようですので、場合によっては調整する必要があると思います。
ファイルの作成・配置が終わったらudevを再起動します。
$sudo service udev restart


で、USBシリアルケーブルを接続し、再度権限を確認します。
$ll /dev/ttyUSB*
crw-rw-rw- 1 root dialout 188, 0 11月 9 17:14 /dev/ttyUSB0


となり、アクセス権が付加されました。
この状態で、GtkTermをユーザ権限で起動し(terminal、GUIどちらでも)インタフェースを指定すると問題なくアクセス出来ました!
こりゃ楽でいい。
ちなみにポートを指定して起動するには

$ gtkterm -p /dev/ttyUSB0

で出来ます。

GUIでアプリを起動した際にも初期接続ポートを指定するには
/usr/share/applications/gtkterm.desktop
ファイルを開き実行オプションを追加します。(赤字)
[Desktop Entry]
Encoding=UTF-8
Name=Serial port terminal
Name[fr]=Terminal pour port série
Name[it]=Terminale per porta seriale
Comment=Communicate with the serial port
Comment[fr]=Communique avec le port série
Comment[it]=Comunica con la porta seriale
Exec=gtkterm -p /dev/ttyUSB0
Icon=gtkterm.xpm
Terminal=false
Type=Application
Categories=GTK;Utility;

のように編集して上げれば、UnityなどからGUIで起動した際に/dev/ttyUSB0に接続しに行きます。
マクロ機能なんかもあるようですが、まだ調べていません。


実行画面(CiscoCatalyst3700に接続した例)
gtkterm画面





Firefoxでオレオレ証明書サーバにアクセスしたら怒られた

FirefoxでのHTTPSアクセス時のエラーに関するお話

※今回はWindows7でのお話です

Firefoxを利用して自己証明書サーバ(正規にサーバ証明書を発行してもらっていないサーバ)にHTTPSアクセスすると通常は下のような画面が表示され、「危険性を理解した上で接続するには」をクリックして強引にアクセスすることができる。

正常警告画面




ところがある時、

安全な接続ができませんでした

無効な証明書を受信しました。サーバ管理者またはメール送信者に次の情報を知らせてください
(エラーコード:sec_error_reused_issuer_and_serial)


というエラーが表示されるようになった。(下)
認証エラー画面

この画面では、「再試行」という選択肢しか与えられず、しかも同じ結果となるため結果としてアクセスできない状況になった。
サーバやら、ネットワークやらを変更しているときに発生したので原因は不明だけど、ほかのブラウザ(IE)でアクセスすることができたのでそのままの運用としていた。
※つまり、サーバ側ではなくPCの問題?
が、いちいちFirefoxのブックマークのURLをコピーしてIEに張り付けるのがめんどくさくなったので(IEのお気に入りに追加すればいいという突込みは無視の方向でw)調べてみた。


結果として、Firefoxの設定を変えてあげればよいとのことらしい。



--対策方法--

エクスプローラのアドレスバーに
"%AppData%\Mozilla\Firefox\Profiles"
と入力してアクセスすると
"適当な文字列.default"というフォルダがあるのでこの中にある
"cert8.db"
というファイルをリネームしてあげればよいらしい。

※ちなみに、Firefox終了してないとだめですよ。
 あと、Firefoxでいろいろやっている人は、Profilesフォルダ内に複数かもしれないので、普段使っているプロファイルのものを見てください。


今回は
"cert8.db.20121031"
と変更。
Firefoxを再起動してアクセス試してみると、できました!

もっと早くやればよかった。



プロフィール

Author:Opecha-DaDa
ニッチな技術メモ的なブログになりつつありますが、だからこそあなたのお役に立てる内容があれば幸いです。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。