2014-07-02

FATのパーティションタイプを設定

あるオシロスコープにて, あるUSBフラッシュメモリを使用できないなと思っていたら, パーティションタイプがLinuxになっていた.
   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1        1015       63924   83  Linux

このページによると, 修了シリンダが1023以下の場合は 0x0B (FAT32), 修了シリンダが1023を越える場合は 0x0C (FAT32 (LBA)) に設定するべきらしい 以下のように設定した.

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): b
Changed system type of partition 1 to b (W95 FAT32)
設定後のパーティション一覧は以下の通り:
   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1        1015       63924    b  W95 FAT32

Linux では, パーティションタイプが何になっていてもマウントできるので, オシロスコープでなぜそのメモリだけ使用できないのかわからず, なかなか原因がわからなかった. きっと Linux では, パーティション内のデータから判断しているのだろう.


2014-06-24

SOCKSを通した遠隔マシンからのアクセス

ウェブサイトによっては, アクセス元を制限していることがある. このような場合, OpenSSH の「動的アプリケーションレベルポートフォワーディング」を使用すると簡単に対処できる.

以下に例を示す.

$ ssh -NfD 1080 host.example.com
$ google-chrome --proxy-server=socks4://localhost:1080
ssh にて1080番ポートのフォワーディングを行い, google-chrome を1080をプロキシとして起動する.
なお, socks4 のかわりに socks5 でもよい.

SOCKS5 では, ドメイン名にて接続先のホストを指定することができる. 使用するクライアントの実装に依存するが, google-chromeでは SOCKS5ではサーバ側で名前解決が行われるようだ.

2014-06-21

LaTeX での文字サイズ

LaTeX にて \tiny により小さい文字にできるが, 縦横比が変わり, 上下にへしゃげた文字になる. そのままの縦横比で小さくするには, \scalebox の方がよさそうだ. 図表の中の文字サイズを変えるときに便利.

2014-06-19

Windows7におけるシリアルポートへのアクセス

Windows 7 にて, シリアルポートにアクセスしようとすると, CreateFile が失敗し, GetLastError が 2 を返す. ERROR_FILE_NOT_FOUND, 「指定されたファイルが見つかりません。」というエラーらしい.

このサイトによると権限が無いときにこのエラーになるらしい. プログラムを実行するときに, 右クリックし, 「管理者として実行(A)」をしたら, シリアルポートにアクセスできるようになった.

本来は, ユーザ権限で動作するプロセスにシリアルポートへのアクセスを許すような権限の変更を行うべきなのだろうが...

なお, C言語でのコードは以下の通り.

char s[] = "\\\\.\\COM1";
handle = CreateFile(s, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
バックスラッシュがたくさんあるが, C言語におけるエスケープが行われた後, \\.\COM1になる.


  • iBuffalo BSUSRC0610BS は, FTDI のチップが入っていて, 好評らしい.
  • エムサーブ HL-340 は, 変換名人のものと色が似ているが, 好評.
  • 一方で変換名人の USB-RS232 は悪評. PID/VID は PL2303 だが載っているチップは別物との情報も!

2014-05-13

zsh にて ESC-k の動作を bash と同じにする

Viモードのbashにて ESC-k を押すと, 一つ前の履歴に戻り, カーソルが行頭にゆく. zshでも同様に一つ前の履歴に戻るが, カーソルが行末に行く. この振舞の違いでzshを使うことをためらっていたのだけれど, 変更できないかと調べてみた.

以下の2行を~/.zshrcに記述すれば良いことが分かった.

function up-history-first { zle up-history ; zle vi-first-non-blank }
zle -N up-history-first
bindkey -a 'k' up-history-first
1行目で「一つ前の履歴に戻り, カーソルを行頭に移動する」関数を定義する. 2行目で, その関数をZLE (Zsh Line Editor) のウィジットとして登録する. 3行目で, Viコマンドモードでのキー「k」を先ほど登録したウィジットに割り当てる.

.zshrcはzshが対話モードで起動した場合に読み込まれる. 対話モードでないときには読み込まれないのでちょうど良い.

2014-04-04

CMOS VLSI Design 4th edition の PDF

ある大学のウェブサイトからCMOS VLSI Design (4th edition) がダウンロード出来るようになっている.

日本語訳が出ているらしい:


2014-04-01

Oracle_VM_VirtualBox_Extension_Pack を展開

Extension Pack をわざわざ root で Virtualbox を起動してインストールするのは面倒である. 以下のようにして展開すれば良いかもしれない.
$ sudo mkdir /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack
$ cd /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack
$ sudo tar xz <~/downloads/Oracle_VM_VirtualBox_Extension_Pack-4.3.10-93012.vbox-extpack