玄箱PROにDebian Squeezeをインストール(続編)

1.Webminのインストール

Webベースの管理ツールとしてWebminをインストールする。
インストール方法は以下を参照。

http://webmin.com/deb.html

変更点は以下のとおり。

  • wgetでダウンロードするファイル名が間違っている。「webmin_1.570_all.deb」でなければならないところが、「webmin-1.570_all.deb」になっていて、コピペするとエラーになる。

2.IPアドレスの設定

実は固定IPになってない。/etc/network/interfaces を修正

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#allow-hotplug eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.1.5
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
に修正して、ifdown/ifup でインタフェースを起動しなおしたところ、設定できた。

3. cgroupのマウントポイントがない

/cgroup を作成

4. sambaの設定がされていない

毎度ながら、設定がよくわからないところがある。とにかく Webminで設定実施。

  • unixのユーザーをsambaユーザーに変換
  • 変換したユーザーのパスワードを設定
  • ホーム以外に共有フォルダ作成

 

玄箱PROにDebian Squeezeをインストール

MicroServer+FreeNASの導入により、ファイルサーバとしてはすっかり用済みになってしまった玄箱PROですが、玄箱PROには玄箱PROらしい活かし方をしたいと思います。

で、玄箱PROの特徴はなんといっても小型であることと、USBの口をもっていることです。そこで、このUSB経由で自作周辺機器をつないでロギングなどをさせてみたいと思います。で、USBとなると、これまではDebianのlennyで動作していましたが、やはり最新のカーネルで動作させたくなりますので、squeezeに入れ替えることにしました。

入れ替えるといっても、この用途ではこれまでのように1TBものディスクは必要ないので、余っている320GBのディスクに入れ替えました。

入れ替え作業にあたっては、

http://nice.kaze.com/kuro-box-pro.html

のサイトを参考にして、シリアルコンソールケーブルを作成しました。そのシリアルコンソールケーブルを使ってインストールを行うのですが、squeezeのインストール手順は以下のサイトを参考にさせてもらいました。

http://masezou.blogspot.com/2011/06/prodebian-601-squeeze.html

手順はほとんどそのままなので、差分だけ。

  • 途中で ssh で接続することになっているが、すべてシリアルコンソールから作業可能
  • /etc/pam.d/su を編集してパスワードなしのsuが可能になる設定をしているが、作業ミス防止のためそのままにした

気づいた残課題は以下(随時追加する)

  • Sambaの設定

LinuxMint11でFlashPlayerをアップデート

LinuxMint11の環境でFlashを使ったページの要素(というのがいいのだろうか?)がChromeで「期限切れ」と表示されるようになってしまいました。

で、指示にしたがってAdobeのページからUbuntu用のパッケージをダウンロードしても、アップデートできません。

それで調べていたら、Ubuntu11.04やLinuxMint11でFlash11をダウンロードする方法、というページを見つけましたので、リンクを置いておきます。

http://forums.linuxmint.com/viewtopic.php?f=42&t=84696

DE0を注文してみた(3)

UPSの国内サービスの恨みつらみにビビリながら会社に行かざるをえなくなったのですが、昨日のうちにトラッキングのところにある「ステータス更新の依頼」に自分のメールアドレスを登録したうえで、ups.comドメインのメールを携帯メールに転送する設定をしておきました。

すると、10時過ぎに宅配BOXに配達した旨、メールが届きました!

宅配BOXには何も指示しなくても届けてくれるのですね!!

というわけで、帰りに宅配BOXからピックアップしました。

アメリカから届いたのに、大きな箱の損傷もなく、綺麗です。(どんだけ先入観もってるんだか・・・)

早速開けてみると、大量の緩衝材の中からインボイスとともにでてきました!

開けてみると・・・

ということで、無事にDE0とご対面ができました!!

<教訓>
宅配BOXがあればUPSは怖くないっ!

DE0を注文してみた(2)

UPSで送られてくる途中のDE0。早くも日本に着いたようです。

最初の「12/08/2011 8:05 P.M.」というのは日本時間で12月9日の午前11時05分なので、24時間かからずに成田に着いていることになります。で、このImport Scanってのは保税区域に到着したついたということか、それとも、さらに通関が終わったということでしょうか。どちらでしょうかねぇ・・・。

で、画面の少し上を見ると・・・・。

ということで、配送予定が12日月曜日中、ということだそうです。orz

画面内に配送スケジュールの変更やサインレスでの受け取り指示(宅配ボックスに置けると嬉しい)もありますが、追加料金が発生するようです。多少の追加料金なら、と思ったのですが、発送者の担当者名(メールで来たInvoiceには書いてない・・・)や、荷物の詳細な荷姿などが必要で残念ながら入力できません。

ということは、週末(土日)に受け取るためには木曜日配送予定にならなければならないということになりますので、火曜日中に注文しなければならない、ということですね・・・。

さらに調べると、どうもUPSが自力で配達して回る予感で、検索すると恨みつらみがたくさん見つかります(^^;。

参考になりそうなのが、UPSの再配達攻略法というこちらの記事。こんなんだったら初めから全部ヤマト運輸に配送委託してくれればいいのに、とか思いながら、色々調べてたら、「UPS日本」で検索すると、UPSの日本支社?のサイトから日本でトラッキングができることが分かりました。

が、こちらの画面の「配達の変更」は「UPS InfoNoticeナンバー」というのが必要なようです。(不在票の番号?)

ううむ・・・・。日本に入ってくるまではすごく早いけど、この先が不安ですねぇ・・・。

DE0を注文してみた(1)

USB-IOを動かしてみたのは、昔のDesignWaveに付いていたALTERAのFPGAボードを動かすためにUSB-Blasterもどきを作ってみよう、という動機でした。

・・・が、面倒くさくなって、Terasic社のDE0をDigikeyで注文してしまいました。

木曜日(12月8日)の夜中に注文したのですが、配送のUPSのトラッキングによると、

となっていて、アンカレジの9日午前9時は日本時間の10日午前3時で、この時点でアンカレジを出発しています。他の方のトラッキングデータを参考にすると、10日(土曜日)の午前中には成田に着いてしまいそうな勢いです。だとすると11日の日曜日には届いちゃうのかな?、と思ったのですが・・・。よく考えたら、

週末って通関やってないのでは?

ということで、調べてみました。これを見ると、成田の税関はほとんどの業務は24時間やってそうな感じです。しかし、仕事で海外から貨物を輸入して急ぎの場合に週末に通関させようとすると、社内の担当部署から「追加費用を払って臨時開庁をお願いするしかないですね」と言われます。調べてみると、昼間と夜間休日で通関の窓口が違うみたいなので、そのことなのでしょう。(追加費用って誰に払ってるんだろうか。税関に払ってるのかと思ってたけど、通関業者のような気がしてきました。今度聞いてみることにします。)

で、UPSの国際宅配便が週末に通関できるかどうかは・・・あと1日もしたらどうなるかわかると思います・・・。

USB-IOを動かしてみる(後編)

USB-IO(秋月版)へのアクセスをプログラムにまとめてみました。プログラムとしてはポート1のビット0につないだLEDを点滅させるだけのものです。ついでにデジタル入力データも表示しているので、ポート2をGNDに落としたり離したりするとそのようすもHEXデータとして見えてきます。

プログラムとしては、ほとんど参考にさせていただいたサイト(プログラム中を参照)とほとんど同じことをしているだけですので、完全コピペの部分は抜いてあります。追試される場合はリンク先から引用してください。

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <linux/hidraw.h>

// 下記関数は右記サイトより引用:http://www.magical-technology.com/hiroya/blog/2008-04-05T22_15_41.html
int hidraw_open(int vendor, int product, int mode)
{
<<途中省略>>
}

#define VendorId 0x1352
#define ProductId 0x0121

int main(int argc,char *argv[])
{
	int fd = hidraw_open(VendorId, ProductId, O_RDWR);
	char led_on[] = { 0x00, 0x20, 0x01, 0x01 };
	char led_off[] = { 0x00, 0x20, 0x01, 0x00 };
	char sts[65];
	int i,j;

	for(i=0;i<10;i++){
		// LED点灯
		write(fd, led_on, sizeof(led_on));
		read(fd, sts, sizeof(sts));
		for(j=0;j<8;j++) printf("%02X ",sts[j]);
		printf("\n");
		sleep(1);
		// LED消灯
		write(fd, led_off, sizeof(led_off));
		read(fd, sts, sizeof(sts));
		for(j=0;j<8;j++) printf("%02X ",sts[j]);
		printf("\n");
		sleep(1);
	}
	close(fd);
}

動かすには普通にコンパイルして、ルート権限で実行(sudoをつけて実行)すればOKです。

ただ、実行前に

# printf "\x00\x0f9\x00\x00\x00\x00\x0fe\x0f\x00\x00\x00\x00" > /dev/hidraw3

として、ポート1のビット0を出力に設定したあと一旦USBケーブルを抜いて、差しなおしておく必要があります。(hidraw3の部分も環境に応じて修正が必要)

USB-IOを動かしてみる(前編)

秋月でUSB-IOなるものをゲットしました。本来の目的は「PIC14K50を動かすための基板を作るのが面倒くさい」ということで、速攻でROMを書き換えてしまおうと思ったのですが、その前に少しだけ動かしてみました。なお、動かすにあたっては、こちらのページを参考にさせていただきました。

この基板をLinuxMint11のマシンに接続して、dmesgコマンドを叩くと、

$ dmesg
(途中略)
[16763.641868] generic-usb 0003:1352:0121.0009: hiddev0,hidraw3: USB HID v1.11 Device [Km2Net Inc. USB-IO2.0] on usb-0000:00:13.2-2.3/input0 $  

となって、hiddev0とhidraw3というデバイスファイルができてそうな雰囲気であることがわかります。

そこで、ターミナルを2つ開いて、

$ sudo bash

として、rootのシェルを2つ起動します。root権限のシェルなのは、/dev/hidraw3 へのアクセスにroot権限が必要なためです。

この状態で一つ目のシェルで

# od -x /dev/hidraw3

として、hidraw3からの出力を監視します。その状態でもう一つのシェルで、

# printf “\x00\x20” > /dev/hidraw3

とすると、

000xx00 0020 000f 0000 000f 0000 0000 0000 0000
000xx20 0000 0000 0000 0000 0000 0000 0000 0000
*
000xx60 0000 0000 0000 0000 0000 0000 0000 1000

という内容がもう一つのシェルに出力されます。赤文字の部分はレポートID、コマンド、ポート1の値、ポート2の値です。基板上のポート2(J2)を抵抗でGNDに落としてやると、落としたポートに応じて0fの部分が変化しました。(コマンドについてはこちらを見てください。いまひとつわかりにくい仕様ですが、「何バイト目にどんなデータが置かれるか」というフォーマットになっているようです。)

さらに、

# printf "\x00\x0f9\x00\x00\x00\x00\x0fe\x0f\x00\x00\x00\x00" > /dev/hidraw3

として、ポート1のビット0を出力に設定します。ここで一旦USBケーブルを抜いて、差しなおします。その後、監視側の od コマンドを再実行したあと、

# printf "\x00\x20\x01\x01" > /dev/hidraw3

とすると、ポート1のビット0がH出力になるので、そこに接続されたLEDが点灯します。次に、

# printf "\x00\x20\x01\x00" > /dev/hidraw3

とすると、LEDが消灯します。

badblocksによるディスクの検査

最近、マシンの入れ替えをやっているので古いHDDが出てきたりします。3.5inch PATAの低容量のHDDは使い道がないのですが、2.5inchの場合には1000円程度で売っているケースに入れて外付けのポータブルHDDとしています。これをUSBブートでいろんなディストリビューションのLinuxをインストールしてみたりしています。

ただ、古いHDDなので故障が心配だったりしますので、検査できないかを調べてみました。

UbuntuやLinuxMintに入っているディスクユーティリティでのチェックでは論理的な検査だけなので、物理的な障害は見つけられません。物理的なテストを行うには、全領域の書き込み/読み出しテストを実施するしかありません。

このテストを行う方法の一つとして、「badblocks」コマンドを使う方法がありそうです。

具体的には、

$ sudo badblocks -c 1024 -w -v -s -o bad.txt /dev/sdb

とすることで、書き込み/読み出しテストを行えます。指定しているコマンドラインパラメータは順に

  • 「-c 1024」は一度に扱うブロックの数。デフォルトのブロックサイズ(-bオプションで変更可能)は1024なので、この設定では1024バイト×1024ブロックで1MBになるはず。標準は64とのこと。
  • 「-w」は書き込みテストを指示する
  • 「-v」は詳細な表示を指示する
  • 「-s」は途中経過を表示する
  • 「-o bad.txt」は不良ブロックのリストを出力するファイル名を指定する
  • 「/dev/sdb」は試験対象のデバイスファイル

となります。

clamtkを試す

最近はすっかりUbuntuを離れてLinuxMint11ばかり使っているのですが、LinuxMintにはKlamAVがありません。
なので、ClamTkを入れてみることにしました。

「ソフトウェアの管理」からClamTkを検索してインストールします。インストールはほどなく終わりました。

起動ですが、「Menu」の中の「すべてのアプリケーション」にインストールされてしまうようで、他のカテゴリには分類されていません。探すのが面倒なので「ウイルススキャナ」のアイコンを「デスクトップにコピー」でデスクトップ上にランチャを作ってしまいました。

起動するとこんな画面がでますが、GUIバージョンの標識(?)のところにカーソルを持っていくと、「新しいバージョンが入手可能です」という表示が出ます。つまり、レポジトリにあるのは最新ではないようです。

SourceForgeのページ(http://sourceforge.net/projects/clamtk/)に行ってみると、最新版は4.36のようです。リリース版のページ(http://sourceforge.jp/projects/sfnet_clamtk/releases/)から、Debianのパッケージ clamtk_4.36-1_all.deb をダウンロードします。ダウンロードしたパッケージは、

$ md5sum clamtk_4.36-1_all.deb
e58f2a383979c60ef0b4a513391db309  clamtk_4.36-1_all.deb

として、MD5のチェックサムが正しいことを確認します。

正しいことを確認したら、Nautilsで右クリックして「GDebiで開く」を選択します。「ソフトウェア・チャンネルから古いバージョンがインストールできる」という表示が出ますが、無視して「パッケージのインストール」に進みます。インストールはほどなく終わります。

再度、起動しなおすと、

このような画面になりました。

次に、設定を進めます。

  1. 「拡張」→「セットアップウィザードの再実行」でシグネチャの自動更新をするかどうかが設定できます。(デフォルトは自動更新ありになっているようです)
  2. 「拡張」→「設定」でいろいろ設定しますが、Sambaディレクトリのスキャン以外はすべてチェックを入れました。
  3. 「拡張」→「スケジュール」でスケジュールスキャンの設定ができるようなので、設定しておきます。

が、一旦終了してみると、設定が保存されていません。ランチャのプロパティを開いて、「コマンド」の部分に「gksu」を書き足して「gksu clamtk %F」に修正してやると管理者モードで起動するので、スケジュールスキャンの設定等も保存されるようになりました。