2010-12-24

dropbox のファイル更新検出

Dropbox では, sha256 でファイルを管理しているようだ.
sqlite3 ~/.dropbox/dropbox.db 'select active_blocklist,server_path from file_journal'
をみると, ファイルの sha256sum をとって, base64 でエンコードしたデータが入っていた. でも, ファイルサイズが大きいと, カンマ区切りで active_blocklist のエントリが長くなってゆくので, 単に sha256sum をとっているわけではないようだ.

2010-11-27

Fedora errata

Fedora は, Linux ベースの OS で, 世界中で開発されています. Fedora の更新情報/エラッタを探していたのですが, どうも web ページは無いようです. 代わりに, Fedora-package-announce というメーリングリストで提供されているようです.

2010-11-18

SSH ポートフォワードの失敗

Fedora 14 で SSH ポートフォワードを使おうとすると,
channel 2: open failed: administratively prohibited: open failed
と出力される. この原因はいろいろ考えられるが, いくつかをあげる.
  • sshd の設定で禁止されている.
  • SE Linux により禁止されている.
まずは /etc/ssh/sshd_config
AllowTcpForwarding yes
がかかれているかを確認. 私の環境では AllowTcpForwarding がコメントアウトされていたが, デフォルトは yes なので問題ない. /var/log/message をみると,
setroubleshoot: SELinux is preventing /usr/sbin/sshd "name_connect" access on <Unknown>. For complete SELinux messages. run sealert -l 1d8e1b1c-526e-4214-97be-98b8d48b5950
と出力されていた. メッセージのとおり, sealert -l 1d8e1b1c-526e-4214-97be-98b8d48b5950を実行すると,
アクセスを許可:
Confined processes can be configured to run requiring different access, SELinux
provides booleans to allow you to turn on/off access as needed. The boolean
sshd_forward_ports is set incorrectly.
Boolean Description:
allow sshd to forward port connections

Fix コマンド:
# setsebool -P sshd_forward_ports 1
と許可する方法を教えてもらえたので,
$ sudo setsebool -P sshd_forward_ports 1 
とコマンドをいれた. setsebool が終了するまで数秒かかったが, ポートフォワードを使用できるようになった.

追記: X11 forwarding のみ失敗する場合は, xauth がインストールされていないことが原因かもしれない. No xauth Program; Cannot Forward With Spoofing Error and Solution

2010-10-26

VMware Server に Firefox 3.6 からアクセスすると「接続がリセットされました」

現象

Firefox 3.6 から VMware Server の Web Access (デフォルトポート: 8333) へ https で接続しようとすると, 「Loading ...」というタイトルのまま先へ進まない, または, 「接続がリセットされました」と出てきて, Web Access を使用できないことがあるようです.

Internet Explorer 7 (IE7) においても同様の現象が発生するかもしれません.

解決方法

SSL2 を有効にする

Firefox 3.6 では SSL2 が無効になっているのですが, これを有効にすることで解決するようです.
  • about:config を開く.
  • security.enable_ssl2 を有効にする.
  • security.ssl2.* を有効にする? (必要でないかも)
注意: デフォルトで SSL2 が無効となったのは, SSL2 にセキュリティ上の脆弱性があるといわれているためと思われるので, 危険性を考慮した上でこの設定を行ってください. (Web Access で SSL2 を使用するために, 別のプロファイルを作るのがお薦めかも.)

Cookies を消す

Cookies を消すと, Web Access を使用できるようになることもあるようです.

参考

追記

Vmware server は 2009年 10月の 2.0.2 以降, 更新されていません. 同様の機能のソフトとして, VirtualBox もお薦めです.

2010-10-02

Run icfb on Fedora 11

Fedora 11 上で, SSH Xフォワードを使用し, icfb を起動しようとしたときに, 以下の様なエラーが出たときの 対処方法のメモです.
X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  45 (X_OpenFont)
  Serial number of failed request:  15
  Current serial number in output stream:  30
  1. XFS とフォントをインストールする: yum install xorg-x11-xfs *xorg-x11-font*
  2. XFS を起動: /etc/init.d/xfs start; chkconfig xfs on
  3. X を再起動
xorg-x11-fontがつくパッケージを全てインストールしてしまいましたが, これで icfb が起動するでしょう.
  • Thread: Steps for installing Cadence IC5141 on Fedora 9
  • BadName (named color or font does not exist) « Free Electronic Lab
    ここには, XFS のインストールと再起動だけで icfb を起動できたという投稿があるのですが, 私の環境では, フォントのインストールも必要でした. XFS のインストールが必要だったかは確認していません.
  • 2010-08-06

    GV-MVP/RX を Vine Linux 5.1 上で使用する

    GV-MVP/RX は MPEG エンコーダチップを搭載した, TV チューナボード (アナログ). これを Vine Linux 5.1 から使用してみた.

    Vine Linux 4.2 ではこのチューナを使用できていたが, Vine Linux 5.1 でも使用できることがわかった. ただし, 使用するコマンドが 4.2 のときと変わっているようだ.

    関連するパッケージ

    以下のパッケージを使用した. すべて Vine Linux 5.1 のリポジトリから取得できる.
    • ivtv-firmware: ファームウェア
    • ivtv-utils: IVTV ドライバのためのツール
    • ffmpeg: 動画の再生に使用

    手順

    1. 上記パッケージをインストール
    2. IVTV ドライバをインストール
      # modprobe ivtv
      このあと,
      dmesg
      でエラーが起こっていないか確認する. おそらく, 以下のような出力が得られる.
      ivtv0: Registered device video0 for encoder MPG (4096 kB)
      ivtv0: Registered device video32 for encoder YUV (2048 kB)
      ivtv0: Registered device vbi0 for encoder VBI (1024 kB)
      ivtv0: Registered device video24 for encoder PCM (320 kB)
      ivtv0: Initialized card #0: I/O Data GV-MVP/RX, GV-MVP/RX2W (dual tuner)
      ivtv:  End initialization
      ivtv0: Loaded v4l-cx2341x-enc.fw firmware (376836 bytes)
      ivtv0: Encoder revision: 0x02060039
    3. 周波数とチャンネルを設定
      $ ivtv-tune -t japan-bcast -c 12
      (この例では, 「12」がチャンネル.)
    4. 規格を設定 (1行目が一覧の取得, 2行目が設定, 3行目が設定値の読みだし.)
      $ v4l2-ctl --list-standards
      $ v4l2-ctl -s 2
      $ v4l2-ctl -S
    5. チューナからの入力を選択
      $ v4l2-ctl -n
      $ v4l2-ctl -i 0
      $ v4l2-ctl -I
    6. ファイルへ MPEG ストリームを保存
      $ dd if=/dev/video0 of=stream.mpeg
    7. MPEG プレーヤで再生する.
      $ ffplay stream.mpeg

    2010-07-02

    AndroidでSPPによる通信

    Android 1.6 と Linux PC との間で SPP (Serial Port Profile) を用いた通信を試してみた. SPP を通してデータのやりとりができることが分かった.
    Android マーケットには, GetBlue Demoというソフトが公開されいる. これを使用することで, プログラミングしなくても Android で SPP が使えることを確認できる.

    機器

    AndroidHT-03A, GetBlue Demo
    PCVine Linux 5.1, bluez-4.42, minicom-2.3, BT-MicroEDR2X

    手順

      PCへ接続できるようにする.
      # hciconfig hci0 piscan
      # rfcomm listen hci0

    1. Android 上で GetBlue を起動し, PC へ接続する.
      1. Datasource をタップ
      2. Bluetooth をタップ
      3. PC が一覧に表示されたらタップ
    2. 接続できたら
      Connection from * to /dev/rfcomm0
      と rfcomm が出力する. とりあえず別の端末で
      # minicom -s
      を起動し, /dev/rfcomm0 を開く.
    3. minicom へデータを入力すると GetBlue に送られ, GetBlue からデータを送ると minicom が出力する.
    今回は Android と接続する相手として Linux を使用したが, 他のシステムでも使用できることが期待できる.

    2010-05-22

    Web上のファイルの一部の取得

    HTTP には,
    Range と呼ばれるデータの一部分だけを取得する機能があります.
    これを Python3 で試してみました.


    >>> import http.client
    >>> conn = http.client.HTTPConnection("www.google.co.jp")
    >>> conn.putrequest('GET', '/')
    >>> conn.putheader('Range', 'bytes=0-10')
    >>> conn.endheaders()
    >>> res = conn.getresponse()
    >>> print(res.status, res.reason)
    200 OK
    >>> data = res.read()
    >>> print(len(data))
    14486
    >>> conn = http.client.HTTPConnection("www.python.org")
    >>> conn.putrequest('GET', '/')
    >>> conn.putheader('Range', 'bytes=0-3')
    >>> conn.endheaders()
    >>> res = conn.getresponse()
    >>> print(res.status, res.reason)
    206 Partial Content
    >>> data = res.read()
    >>> print(len(data))
    4
    

    2010-05-17

    Android アプリケーションのビルド

    Android のアプリケーションは,
    オープンソースのものが多くあります.
    ソースコードをダウンロードして, ビルドする方法をまとめてみました.
    なお, 署名するためのキーの作成方法については省略します.

    ここでは,
    メールクライアントである k9mail を例にとって, 説明してゆきます.
    1. ソースをダウンロード
      git svn clone http://k9mail.googlecode.com/svn
    2. プロジェクトの設定をアップデート
      android update project --name k9 --target android-7 --path $PWD
      (build.propertiesの編集が必要かも; 「android-6」を「android-7」に書き換える.)
    3. プロジェクトをビルド
      ant release
    4. 署名
      jarsigner -verbose -keystore キーストアのファイル名 bin/k9-unsigned.apk キー名
      jarsigner -verbose -verify bin/k9-unsigned.apk

    5. ZIPのアライン
      zipalign -v 4 bin/k9-unsigned.apk bin/k9.apk
    6. 端末へインストール

      sudo $(which adb) start-server
      sudo $(which adb) install -r bin/k9.apk

    2010-05-07

    分散ファイルシステム coda をビルド

    まず以下のパッケージを coda のページからダウンロード,
    ビルドしてインストール. ( ./configure ; make ; make install)
    1. lwp
    2. rpc2 - portable and extensible remote procedure call
    3. rvm - Recoverable Virtual Memory
    4. coda
    CentOS 5.4 ではとくに問題なくビルド/インストールできました.