2014年4月5日土曜日

Ubuntu で、Wireshark を一般ユーザで使えるようにする

Ubuntu で、Wireshark を一般ユーザで使えるようにする手順。
(Ubuntu 12.04 (64bit) で確認)

# dpkg-reconfigure wireshark-common
  yes を選択。

# chmod +x /usr/bin/dumpcap

● wireshark, sudo, 不要, 一般, ユーザ,

Windows7、Samba で共有したファイルをコピーしたり実行するとエラーが出る

Samba で共有しているフォルダのファイルをコピーしたり、実行しようとすると、下記のエラーメッセージが出る。
「これらのファイルは、コンピューターに害を及ぼす可能性があります」
ムカッ。
↓これね。これ。

以下の手順で解決。

1. IE を起動
2. 「ツール」 → 「インターネットオプション」 → 「セキュリティ」
        → 「ローカル イントラネット」 → 「サイト」 → 「詳細設定」
3. Samba サーバの URL を追加
       例 1: file://192.168.0.1/
       例 2: file://192.*.*.*/

● これらのファイルは、コンピューターに害を及ぼす可能性があります, Samba, Windows7, ファイアウォール, エクスプローラ, セキュリティ

2014年2月19日水曜日

Windows7 で、フォルダをドライブに割り当てる (psubst)

Windows7 で、フォルダをドライブに割り当てたい。
標準で、subst コマンドってのがあるけど、これは毎回設定しないといけないので、使い勝手が悪い。

subst のかわりに、psubst を使うと、毎回設定しなくてよくなります。
Persistent SUBST command

1. 管理者権限でコマンドプロンプトを起動

2. C:\R-Drive フォルダを R ドライブとして割り当てる

psubst に /P オプションを指定。

# psubst R: C:\R-Drive  /P

3. 解除方法 (一度設定すると、あまりすることはないけど)

psubst に /D オプションを指定。

# psubst R: /D

これと ごみ箱自動削除ツール を併用すれば、擬似 RAM ディスクっぽい運用ができて幸せ。

● subst, psubst, フォルダ, ディレクトリ, ドライブ, 割り当て, ごみ箱, ゴミ箱, ごみ箱自動削除ツール

2014年2月15日土曜日

リンクされているダイナミックライブラリを調べる (objdump -p)

リンクされているダイナミックリンクライブラリを調べる場合、通常は ldd を使います。
ldd 以外の方法で調べるには、objdump コマンドを使います。
オプションは "-p"。

bash を試しに確認した場合の例。
NEEDED に libtinfo.so.5, libdl.so.2, libc.so.6 とあります。
組み込みの時は、クロス環境の objdump コマンドを使えば OK ( こっちの方で使うことがある )。

$ objdump -p /bin/bash

/bin/bash:     file format elf64-x86-64

Program Header:
    PHDR off    0x0000000000000040 vaddr 0x0000000000400040 paddr 0x0000000000400040 align 2**3
         filesz 0x00000000000001f8 memsz 0x00000000000001f8 flags r-x
  INTERP off    0x0000000000000238 vaddr 0x0000000000400238 paddr 0x0000000000400238 align 2**0
         filesz 0x000000000000001c memsz 0x000000000000001c flags r--
    LOAD off    0x0000000000000000 vaddr 0x0000000000400000 paddr 0x0000000000400000 align 2**21
         filesz 0x00000000000dfea4 memsz 0x00000000000dfea4 flags r-x
    LOAD off    0x00000000000e0e08 vaddr 0x00000000006e0e08 paddr 0x00000000006e0e08 align 2**21
         filesz 0x0000000000008c88 memsz 0x000000000000e840 flags rw-
 DYNAMIC off    0x00000000000e0e30 vaddr 0x00000000006e0e30 paddr 0x00000000006e0e30 align 2**3
         filesz 0x00000000000001b0 memsz 0x00000000000001b0 flags rw-
    NOTE off    0x0000000000000254 vaddr 0x0000000000400254 paddr 0x0000000000400254 align 2**2
         filesz 0x0000000000000044 memsz 0x0000000000000044 flags r--
EH_FRAME off    0x00000000000c8770 vaddr 0x00000000004c8770 paddr 0x00000000004c8770 align 2**2
         filesz 0x0000000000003cec memsz 0x0000000000003cec flags r--
   STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3
         filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
   RELRO off    0x00000000000e0e08 vaddr 0x00000000006e0e08 paddr 0x00000000006e0e08 align 2**0
         filesz 0x00000000000001f8 memsz 0x00000000000001f8 flags r--

Dynamic Section:
  NEEDED               libtinfo.so.5
  NEEDED               libdl.so.2
  NEEDED               libc.so.6
  INIT                 0x000000000041af30
  FINI                 0x00000000004aafa8
  GNU_HASH             0x0000000000400298
  STRTAB               0x00000000004105b8
  SYMTAB               0x00000000004039a0
  STRSZ                0x0000000000008410
  SYMENT               0x0000000000000018
  DEBUG                0x0000000000000000
  PLTGOT               0x00000000006e0fe8
  PLTRELSZ             0x00000000000012f0
  PLTREL               0x0000000000000007
  JMPREL               0x0000000000419c40
  RELA                 0x0000000000419b80
  RELASZ               0x00000000000000c0
  RELAENT              0x0000000000000018
  VERNEED              0x0000000000419ad0
  VERNEEDNUM           0x0000000000000002
  VERSYM               0x00000000004189c8

Version References:
  required from libdl.so.2:
    0x09691a75 0x00 09 GLIBC_2.2.5
  required from libc.so.6:
    0x06969191 0x00 10 GLIBC_2.11
    0x06969194 0x00 08 GLIBC_2.14
    0x0d696918 0x00 07 GLIBC_2.8
    0x06969195 0x00 06 GLIBC_2.15
    0x0d696914 0x00 05 GLIBC_2.4
    0x09691974 0x00 04 GLIBC_2.3.4
    0x0d696913 0x00 03 GLIBC_2.3
    0x09691a75 0x00 02 GLIBC_2.2.5

● ダイナミックリンク, ldd 以外, objdump, dynamic link

2014年1月25日土曜日

お気に入りフリーフォントメモ ( BIONDI, Constantia )

このフォントがお気に入り。
名前を忘れてしまうので、私的メモ。
(html で font 設定してみたけど、フォントが無い環境では表示できません)

■ BIONDI

https://www.fontsmarket.com/font-download/biondi
名前を表示するときに使う。

 Masao 

■ Constantia

http://www.fontpalace.com/font-details/Constantia/
住所とか本文、年号に使う。

 Fukuoka, Japan 2014 

● フォント, font, お気に入り, free, フリー

2014年1月5日日曜日

SSD に Ubuntu をインストールするときの設定

SSD に Ubuntu 12.04 LTS (64bit) をインストールした時の設定メモ。

1. mount オプション変更

SSD にあるマウントポイント全てに下記を設定。
noatime を設定するか迷ったけどやめておいた。
■ 2014/01/26 追記
この設定をすると、動作が重くなったのでやめました。

# vi /etc/fstab
(マウントポイント全てに下記の設定を追加)
data=writeback,nobh を追加

tune2fs を実行。
(/dev/sda1: /, /dev/sda4: /home にしている)

# tune2fs -o journal_data_writeback /dev/sda1
# tune2fs -o journal_data_writeback /dev/sda4

2. swap への書き込みを軽減

# vi /etc/sysctl.conf
(下記を追加)
vm.swappiness = 20

3. mlocate の設定を毎日から毎週に変更

# mv /etc/cron.daily/mlocate /etc/cron.weekly/

■参考
http://laniusbucephalus.blog49.fc2.com/blog-entry-456.html
http://takashi-tomokuni.blogspot.jp/2012/10/ubuntu-1204-ssd.html

● SSD, Ubuntu

2014年1月4日土曜日

Dell Vostro 1510 に Ubuntu 12.04 LTS (64bit) をインストール (/init: line 7: can't open /dev/sr0: No medium found)

Dell Vostro 1510 に Ubuntu 12.04 LTS (64bit) をインストールした時のメモ。
Ubuntu をインストールするのに、ちょっと手こずりましたよ。
このノート PC のスペックは、以下のとおり。
CPU: Intel Core2 Duo T9300 2.5 GHz
RAM: 2 GB DDR2 SDRAM
LCD: 15.4 inch

0. HDD を SSD に変更

少しでも快適にしたいので、128GB SSD に交換。
ADATA の ASP900S3-128GM-C-7MM に付け替えました。
裏ネジ外して交換♪

1. Ubuntu 12.04 LTS (64bit) インストーラーの準備

Ubuntu 本家 のサイトから、Ubuntu 12.04 LTS のインストーラ (ISO イメージ) をダウンロード。
UNetbootin を使って MicroSD(USB アダプタ) にインストールします。

2. Ubuntu 12.04 LTS (64bit) のインストール

ここがはまりポイント。
BIOS 起動時に、F12 キーで ブートデバイスとして USB storage を選択。
USB からインストーラを起動。
ひとまず、「Try Ubuntu without installing」を選んで、Ubuntu 起動後にインストールすればいいやと思ってたら、
起動せず...。
[F1] キーで、裏のコンソールを見てみると、下記のエラーメッセージが。

/init: line 7: can't open /dev/sr0: No medium found

このエラーメッセージでググると結構引っかかる。
/dev/sr0 は CD-ROM ドライブらしいんだが、CD-ROM ドライブから起動してないし...。
解決方法は下記のサイトにありました。
https://bugs.launchpad.net/ubuntu/+bug/500822

・インストーラで、"Try Ubuntu without installing" を選択。
・[Tab] キーを押下して、オプション編集画面で "quiet splash" を削除。
・代わりに "break debug" を入力。
・[Enter] で起動。

・起動が途中で失敗して、"(initramfs)" プロンプトが出ます。

このあと、インストーラが /dev/sdb1 を認識するまでひたすら待ちます (4 分ぐらい)
待っている間、下記の USB のリセットログが何度か表示されます。

usb 2-1: reset high-speed USB device number 2 using ehci-pci
usb 2-1: reset high-speed USB device number 2 using ehci-pci
...

下記の表示が出たら、OK。
最初、sdb だけ、認識しますが、更に sdb1 を認識するまで待ってやる必要があります。

 sdb: sdb1
sd 2:0:0:0: [sdb] No Caching mode page present
sd 2:0:0:0: [sdb] Assuming drive cache: write through

念のため、ls コマンドでも確認。
(インストーラのデフォルトキーボードは US になっているので、"*" は日本語キーボードだと "(" の位置になります)

(initramfs) ls -l /dev/sd*
brw-------    1    8,  17 /dev/sdb1
brw-------    1    8,  16 /dev/sdb
brw-------    1    8,   0 /dev/sda

このあと、"exit" で Ubuntu が起動します。

(initramfs) exit

あとは、デスクトップ上にあるインストールアイコンでインストールすればよいです。

● /init: line 7: can't open /dev/sr0: No medium found

2013年10月19日土曜日

Linux PC を使ってネットワークシミュレーション (bridge tc 帯域制限 遅延 パケットロス)

Linux PC を使って、簡易的にネットワークの帯域制限、遅延をシミュレーションする。

ネットワークを下記のように構成。

192.168.0.0/24                                   192.168.0.100
+----------+                                     +----------+
|   L2SW   |----------[eth1]     [eth2]----------|    PC    |
+----------+                [br0]                +----------+
                           0.0.0.0
                        +-----------+
                        | Linux  PC |
                        +-----------+

1. bridge-utils をインストール

# apt-get install bridge-utils

2. eth1 と eth2 を bridge 接続する

# brctl addbr br0
# brctl addif br0 eth1
# brctl addif br0 eth2

(設定確認コマンド)
# brctl show br0

3. br0, eth1, eth2 に IP アドレスを設定

# ifconfig eth1 0.0.0.0 up
# ifconfig eth2 0.0.0.0 up
# ifconfig br0 0.0.0.0 up
# route add 192.168.0.0 br0

(ルーティングテーブル確認)
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.255 UH    0      0        0 br0

■下り方向 (eth1 -> eth2) を 500kbps に帯域制限

上り方向を制限したい場合は eth1 に設定する (要は、パケットの出口側に設定)。

# tc qdisc add dev eth2 root tbf limit 200kbit buffer 100kbit/8 rate 500kbit

(設定解除)
# tc qdisc del dev eth2 root 

■下り方向 (eth1 -> eth2) を 10% パケットロスさせる

# tc qdisc add dev eth2 root netem drop 10%

■下り方向 (eth1 -> eth2) を 1 秒遅延させる

# tc qdisc add dev eth2 root netem delay 1000ms

■下り方向 (eth1 -> eth2) を 200ms ± 20ms 遅延させる(正規分布)

# tc qdisc add dev eth2 root netem delay 200ms 20ms distribution normal

■設定解除

tc qdisc del dev eth2 root

■パケットロスの状況を確認する (watch コマンドと tc を併用)

# watch -n 1 -d tc -s -d -r qdisc show

● tc, ネットワーク, network, シミュレーション, simulation, netem, 帯域制限, 遅延, パケットロス, bridge, トラフィックコントロール
delay, packet loss, スループット

2013年10月12日土曜日

Emacs + Subversion 1.7 で ediff !!

Emacs + Subversion 1.7 の環境で、svn status のモードから "E" で ediff 起動が、ずぅぅぅぅ~っっと、
ずぅぅぅぅ~っっと、使えなかったのが、やっと使えるようになりました。

答えはここにありました。多謝!
■ http://www.emacswiki.org/emacs/SvnStatusMode

2 年ぐらい不便しとった。

● Emacs, subversion 1.7, svn status, ediff, ediff-revision

2013年9月7日土曜日

バイナリデータを cmp コマンドで比較して、差分を 16 進数で表示

cmp コマンドは、違いのあるバイトのオフセット (10進数) とその値 (8進数) を表示してくれるけど、
欲しいのは、全てが 16 進数の値。
それなら、出力結果を awk で変換するといい。
8 進数 → 16 進数の変換は、先頭に 0 を付けて、16 進数にすれば OK。

$ cmp -l hoge1.bin hoge2.bin | awk '{printf("0x%08X %02X %02X\n", $1, strtonum("0"$2), strtonum("0"$3))}'

0x00000001 26 27
0x00000003 CA CB
0x00000005 A6 A7
0x00000007 D6 D7
0x00000009 6A 6B
0x0000000b CA CB

strtonum は、gawk の拡張機能。

● バイナリ, binary, 比較, 差分, cmp, diff, compare, 16 進数, 10 進数, 8 進数, hex, strtonum