start

MacのtftpでRTX1100のファームウェアを更新する

実家用に中古のRTX1100を買ったところ、なんと初期出荷ファームだったのでRev.8.03.94に更新した。もの凄い今更感ではあるが、参考までにMac OS X v10.9.5での作業手順をメモ。

シリアルコンソールでルータにログインし、LAN1にIPアドレスを振る

# ip lan1 address 192.168.0.1/24
# save

telnetで入れることを確認。

$ telnet 192.168.0.1
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.

Password: 

RTX1100 Rev.8.02.31 (Fri Jan 14 11:04:37 2005)
  Copyright (c) 1994-2004 Yamaha Corporation.
  Copyright (c) 1991-1997 Regents of the University of California.
  Copyright (c) 1995-1996 Jean-loup Gailly and Mark Adler.
...

ルータのtftpによるファームウェア受信を許可する。 IPアドレス(192.168.0.2)はtftpクライアントとなるマシンのアドレスを入れる。

# tftp host 192.168.0.2

tftpでファームを流し込む。オケツのexecも必要なので注意。

$ tftp 192.168.0.1
tftp> put rtx1100.bin exec

転送が受理されるとシリアルコンソールに下記のようなメッセージが出る。

Update exec file receiving... Testing received file... Writing to Nonvolatile memory... done
Restarting ...

で、自動で再起動がかかる。

RTX1100 BootROM Rev.5.07
  Copyright (c) 2004 Yamaha Corporation

Press 'Enter' or 'Return' to select a firmware and a configuration.
Default settings :  exec0 and config0

Starting with default settings. 
Starting with exec0 and config0 ...

RTX1100 Rev.8.03.94 (Thu Dec  5 19:06:16 2013)
  Copyright (c) 1994-2012 Yamaha Corporation. All Rights Reserved.
  Copyright (c) 1991-1997 Regents of the University of California.
  Copyright (c) 1995-2004 Jean-loup Gailly and Mark Adler.
...

無事更新された模様。 仕上げにtftpによるファーム受信を無効にする。

# no tftp host 
# save

ワットチェッカーによると、アイドル時の消費電力は5W。LANケーブルを1本リンクさせた状態でも変わらず5Wだった。

C#でファイルパスの円記号を自動エスケープ

WindowsのファイルパスをRegexに渡す場合、円記号をエスケープシーケンスする必要があるが、ファイルパスが固定文字列じゃなかったりstring変数に入ってたりすると、さぁ大変。

string path = @"C:\path\to\file.txt";
Regex matcher = new Regex(path); // エラー!(パスの円記号のエスケープはどうしよう…)

C#の事だから良い感じにエスケープしてくれる機能があるに違いないと思って調べてみたら、案の定Regex.Escapeっていうそのまんまなメソッドがあった。

string path = @"C:\path\to\file.txt";
Regex matcher = new Regex( Regex.Escape(path) ); // C:\\path\\to\\file\.txt になる!

円記号だけではなく、正規表現のメタ文字を全部エスケープしてくれる。なので、上記例では拡張子のピリオドもエスケープされる。

便利便利。

Macで「ThinkPad ベーシック USB 3.0 ドック」を使う

USBケーブル1本で様々なインタフェースを追加出来る、通称USBドックと呼ばれる製品は様々あるが、ThinkPad Basic USB 3.0 Dock (4X10A06696)はUSB 3.0接続で

  • Gigabit Ether
  • DVI-I (最大2560×1600)
  • 音声入出力
  • USB 2.0ポート×2
  • USB 3.0ポート×2

と必要十分な機能を持ち、たまに直販で7000円弱で販売している非常にお買い得な製品だ(通常価格は16000円ちょい)。

これがMacBook Proで使えたら何かと便利だと思うのだが──結論から言うと、DisplayLink社の純正ドライバを入れるだけで全ての機能が問題なく使える(ちょっと嘘。DVI-Iの映像出力は試してない)。ドライバダウンロードページには「DisplayLink USB Graphics Software」しかなく、映像出力しか対応してなさそうな雰囲気だが、こいつを入れればOK。機能的に採用チップはDL-3700だと思われる。

しっかりThinkPad Basic USB 3.0 Dockと認識されているのが分かる(色々書き込みされてるのは他の日記からの使い回しだから気にすんな)。

ドック購入前にMacでの使用例を探してみるも見当たらず、人柱上等、所詮USB機器、ベンダーIDとプロダクトIDから適合ドライバを割り出して探してくりゃいいだろってなもんで、Macカテゴリに解説ページを作る気満々だったが、あまりにもあっけなく動いてしまったので面食らってるってのが本当の所。ドック本体にでかでかとDisplayLinkロゴがあって探すまでもなかった(笑)

Xvncが起動できなくなった(´・ω・`)

家鯖をFreeBSD 9.2-RELEASEから10.1-RELEASEに更新したら、Xvncが起動しなくなってしまった。X Window System単体でも下記のような感じで動かない。

(上略)
Initializing built-in extension DRI2
Loading extension GLX
(EE) 
Fatal server error:
(EE) no screens found(EE) 
(EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.

xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

とりあえず再設定してみる(本当は/var/log/Xorg.0.logを見るべき。)

$ sudo Xorg -configure
X.Org X Server 1.14.7
Release Date: 2014-06-05
X Protocol Version 11, Revision 0
Build Operating System: FreeBSD 10.1-RELEASE-p6 amd64 
Current Operating System: FreeBSD Freyja.local.decomo.info 10.1-RELEASE-p6 FreeBSD 10.1-RELEASE-p6 #0: Tue Feb 24 19:00:21 UTC 2015     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
Build Date: 04 April 2015  11:50:25PM
 
Current version of pixman: 0.32.6
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sun Apr  5 13:37:46 2015
List of video drivers:
	vboxvideo
	vmware
	vmwlegacy
	vesa
(EE) module ABI major version (6) doesn't match the server's version (14)
(++) Using config file: "/root/xorg.conf.new"
(==) Using system config directory "/usr/local/share/X11/xorg.conf.d"


Xorg detected your mouse at device /dev/sysmouse.
Please check your config if the mouse is still not
operational, as by default Xorg tries to autodetect
the protocol.

Your xorg.conf file is /root/xorg.conf.new

To test the server, run 'X -config /root/xorg.conf.new'

(EE) Server terminated with error (2). Closing log file.

なんぞモジュールのABIが適合してないらしい。ここでようやく/var/log/Xorg.0.logを見るべきことに気づく。

(上略)
[   912.200] (II) LoadModule: "vmware"
[   912.201] (II) Loading /usr/local/lib/xorg/modules/drivers/vmware_drv.so
[   912.201] (II) Module vmware: vendor="X.Org Foundation"
[   912.202] 	compiled for 1.7.7, module version = 11.0.99
[   912.202] 	Module class: X.Org Video Driver
[   912.202] 	ABI class: X.Org Video Driver, version 6.0
[   912.202] (EE) module ABI major version (6) doesn't match the server's version (14)
[   912.202] (II) UnloadModule: "vmware"
[   912.202] (II) Unloading vmware
[   912.203] (EE) Failed to load module "vmware" (module requirement mismatch, 0)
[   912.203] (II) LoadModule: "vmwlegacy"
[   912.204] (II) Loading /usr/local/lib/xorg/modules/drivers/vmwlegacy_drv.so
[   912.205] (EE) Failed to load /usr/local/lib/xorg/modules/drivers/vmwlegacy_drv.so: /usr/local/lib/xorg/modules/drivers/vmwlegacy_drv.so: Undefined symbol "miEmptyData"
[   912.205] (II) UnloadModule: "vmwlegacy"
[   912.205] (II) Unloading vmwlegacy
[   912.205] (EE) Failed to load module "vmwlegacy" (loader failed, 7)
(下略)

vmwareのビデオドライバが不味いっぽい。昔ESXi上で動かしていた時の残骸で、またfreebsd-updateの時に共有ライブラリの更新をミスったのが根本原因だろう。OS更新に失敗して見事にpkg情報が全部飛んでしまっているので、一度pkgでインストールしすぐにアンインストール。vmwlegacy_drv.soはなぜか消えなかったので手動で削除。

sudo pkg install xf86-video-vmware
sudo pkg remove xf86-video-vmware
sudo rm /usr/local/lib/xorg/modules/drivers/vmwlegacy_drv.so

Xorg単体では動くようになったっぽいが(ヘッドレス環境なので本当に動いてるかは未確認)、やっぱりXvncが起動しない。ログはこんな感じ。

Xvnc Free Edition 4.1.3 - built Mar 29 2015 07:02:28
Copyright (C) 2002-2008 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.
Underlying X server release 40300000, The XFree86 Project, Inc


Mon Apr  6 23:15:00 2015
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on port 5901
 vncext:      Listening for HTTP connections on port 5801
 vncext:      created VNC server for screen 0
error opening security policy file /usr/local/lib/X11/xserver/SecurityPolicy
Could not init font path element /usr/local/lib/X11/fonts/misc/, removing from list!
Could not init font path element /usr/local/lib/X11/fonts/Speedo/, removing from list!
Could not init font path element /usr/local/lib/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/local/lib/X11/fonts/CID/, removing from list!
Could not init font path element /usr/local/lib/X11/fonts/75dpi/, removing from list!
Could not init font path element /usr/local/lib/X11/fonts/100dpi/, removing from list!

Fatal server error:
could not open default font 'fixed'
xsetroot:  unable to open display 'Freyja.local.decomo.info:1'
vncconfig: unable to open display "Freyja.local.decomo.info:1"
xterm: Xt error: Can't open display: Freyja.local.decomo.info:1
Openbox-Message: 環境変数 DISPLAY からディスプレイを開くのに失敗しました。

フォントパスが無いと怒られてるけど、これらパスはxorg.confから取り除いてるんだけどな…。

使えなくても直ぐさま困る訳ではないが、使えると便利な場合があるので早いとこ何とかしたい(´・ω・`)

結局、インストール済みのpkgを全部消し、更に/var/db/pkg/var/db/portsを真っさらにしてTigerVNC環境を一から構築し直したら何事も無く動くようになった(´・ω・`)

オプションのあるportsでOptions unchangedが出る

間違いなくビルドオプションがあるハズのportsでmake configしても「Options unchanged」となって、いつもの青画面が出ない現象に遭遇した。その時インストールしようとしてたportsに変更があったのかの?と思い、他のportsで試してみても同じ現象。これは何かがおかしい。

調べてみると、あの青画面はdialog4portsというコマンドで実現されており、そいつがオカシクなった可能性があるらしい。てなわけで、直接実行してみると…

$ dialog4ports -v
Shared object "libdialog.so.7" not found, required by "dialog4ports"

共有ライブラリが見つからんとな。昨日、FreeBSD 9.2から10.1にfreebsd-updateしており、インストール済みportsの更新をせずに古い共有ライブラリを消してしまったような気がする…。

pkgコマンド自体もおかしくなってる可能性を考慮して、pkg-staticの方でdialog4portsを入れ直してみた。

# pkg-static install dialog4ports
$ dialog4ports -v
dialog4ports version: 0.1.5

無事、青画面も出るようになった。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo