2011年7月23日土曜日

cut コマンドメモ

"=" (イコール) とかで区切られた設定ファイルから設定値を抽出するときのメモ。
cut を使う。

設定ファイルサンプル

$ cat hogehoge.txt
AAA=100
BBB=200
CCC=300

この設定ファイルサンプルから、BBB の設定値 200 を抽出。
デリミタ "="、フィールド 2 番目

$ grep BBB hogehoge.txt | cut -d "=" -f 2
200

awk 使うより軽そうだ。

$ grep BBB hogehoge.txt | awk -F "=" '{ print $2 }'
200

● cut, awk, delimiter, field, 抽出

2011年5月11日水曜日

FHS ( Filesystem Hierarchy Standard )

組み込み系の開発で、ファイルの配置に迷ったら、これを読むべき。

Filesystem Hierarchy Standard

( 印刷して、風呂で読んどくか )

● ファイル, ディレクトリ, 配置, ファイルシステム, file, dhirectory, filesystem, hierarchy, standard, FHS,

Ubuntu syslog サーバを立てる

Ubuntu で syslog サーバを立てるときの設定。
リモートからのアクセス可にする設定。

Ubuntu 8.04 の場合

# vi /etc/default/syslogd
SYSLOGD="-r"

Ubuntu 10.04 の場合は、rsyslog になってるなぁ。
何もしなくてよいかも。
または /etc/default/rsyslog を設定すればいけそう (動作未確認)

■ 2014/05/05 追記

Ubuntu 12.04 (64bit) の場合は、/etc/rsyslog.conf を編集。

# vi /etc/rsyslog.conf

(下記のコメントを外す)
$ModLoad imudp
$UDPServerRun 514

あと、/dev/xconsole が必要。

# mkfifo /dev/xconsole

DNS の逆引きをさせないようにするには、/etc/default/rsyslog を編集して "-x" を追加すれば良い。

# vi /etc/default/rsyslog

("-x" を追加)
RSYSLOGD_OPTIONS="-c5 -x"

設定変更後、rsyslog をリスタートする。

# /etc/init.d/rsyslog restart

● syslog, 8.04, 12.04, server, サーバ, リモート, syslogd, remote, DNS, 逆引き, 重い, rsyslog

2011年5月3日火曜日

Ubuntu 10.04 で Canon PIXUS 850i を動かす

Ubuntu ってよくできてるなぁ。
「システム」→「システム管理」→「印刷」
「追加」 を選んで、
新規プリンタで 「Canon 850i」を選択して、
「Canon i850」を選べば OK 。
この組み合わせで使っている人は、あまりいないかもしれませんが…。

● Ubuntu, 10.04, Canon, PIXUS, 850i, キャノン, ピクサス, プリンタ, printer, ドライバ

2011年4月29日金曜日

scp コマンドのメモ

scp コマンドの使い方メモ

$ scp FILE_NAME USER@HOST_NAME:PATH

(例)

$ scp hogehoge.txt masao@192.168.0.10:/tmp/

● scp, ssh, copy, 転送, 使い方

svn: Can't convert string from native encoding to 'UTF-8'

Subversion を使っていて、このエラーが出るときがある。
svn: Can't convert string from native encoding to 'UTF-8'
ファイル名が SJIS のときに出る時がある。
LANG=ja_JP.UTF8 だけではだめで、
LC_ALL=ja_JP.UTF8 を設定すれば、とりあえず OK。
これで凌ぐか。

ファイル名の文字コードを調べるには kcc を使えば良い。
まさおのブログ (表): 日本語ファイル名の文字コードを変換 参照。

● Subversion, svn, convert, string, encoding, UTF8

2011年4月17日日曜日

任意サイズのファイルを作る

Linux で任意サイズのファイルを作る方法のメモ。

100MB のファイルを作る場合の例。

$ dd if=/dev/zero of=hogehoge bs=1M count=100

入力に、/dev/urandom を使うと中身がランダムなファイルができる。

$ dd if=/dev/urandom of=hogehoge bs=1M count=100

任意の 1 バイトのファイルを作る。(ファイルの中身を 0xff にしたい場合)

echo "010000: ff" | xxd -r -s -0x10000 > hogehoge

全データが 0x5A の 2112 バイトのファイルを作る。

for i in `seq 1 2112` ; do
    echo -en '\x5a'
done > All_0x5A_2112byte.bin

● 任意, バイト, サイズ, byte, size, 作る, 生成, 作成, dd, urandom, echo, バイナリ, binary

2011年4月10日日曜日

bootchart を手動で組み込む

bootchart を手動で組み込むときのメモ。

1. bootchart をダウンロード

ここからダウンロードする。
現在の最新バージョン Ver.0.9。
http://www.bootchart.org/

2. bootchart の準備

ダウンロードした tar.bz2 アーカイブを展開。

$ tar jxvf bootchart-0.9.tar.bz2

bootchartd, bootchartd.conf を対象システムのファイルシステムにコピー。

$ cd bootchart-0.9/script/
$ cp bootchartd TARGET_ROOT/sbin/bootchartd
$ cp bootchartd.conf TARGET_ROOT/etc/bootchartd.conf
  ( bootchartd.conf を編集し、ファイルの書き出し場所はシステムにあわせて変更する。 /tmp とか )

3. カーネルソースを編集 ( または、起動オプションを変更? )

TARGET_LINUX_SOURCE/init/main.c を編集し、/sbin/init を起動しているところを書き換え、
/sbin/bootchartd が起動するように変更する。

$ vi LINUXSOURCE/init/main.c
下記のように変更
(変更前) run_init_process("/sbin/init");
(変更後) run_init_process("/sbin/bootchartd");

4. ターゲットシステムを起動

bootchartd が init を呼びだすので、準備が整えば、起動するだけで OK。
ターゲットで /sbin/bootchartd stop を実行すると、/etc/bootchartd.conf 内の BOOTLOG_DEST で指定した場所に、bootchart.tgz が作成される。

# /sbin/bootchartd stop

5. bootchart.jar を生成

bootchart.tgz を /var/log/ ディレクトリにコピーしておく。

$ cp bootchart.tgz /var/log/bootchart.tgz

bootchart.tgz を PNG 形式に可視化する。

Java のソースをビルドしておく。

$ cd bootchart-0.9/
$ ant
  ( ant がインストールされていない場合は、apt-get install ant でインストール )

Java プログラムを実行する。
/var/log/bootchart.tgz の内容がパースされ、bootchart.png ファイルが生成される。

$ java -jar bootchart.jar

6. PNG ファイルを表示する。

$ display bootchart.png

● bootchart, 組み込み, Linux, ターゲット, target

2011年3月31日木曜日

date コマンド メモ

date コマンドの書式をメモ。

# date 033122152011
または
# date -s "2011/03/31 22:15:00"

busybox の date は、ちょっと違って下記。
ピリオドとハイフンで区切る。

# date -s "2015.01.30-11:39:00"

● date, コマンド, 書式, 設定, 日時, busybox, 時刻

2011年3月12日土曜日

32bit 版 Ubuntu で PAE を有効にして 3GB 以上のメモリを使う

32bit 版 Ubuntu で 3GB 以上のメモリを使用したい場合、kernel ビルド時に PAE オプションを有効にする必要があります。

1. CPU が PAE に対応しているか確認

# cat /proc/cpuinfo | grep pae

flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush
 dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc
 arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl
 vmx smx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority

2. kernel のコンフィグで PAE を有効にする

Processor type and features  --->
  High Memory Support (64GB)  --->
    -*- PAE (Physical Address Extension) Support

3. kernel をビルドして、再起動。

# cat /proc/meminfo

(PAE 無効の場合)
MemTotal:        3354200 kB
MemFree:          117236 kB
Buffers:          115572 kB
Cached:          2385400 kB
SwapCached:            0 kB
Active:          1807556 kB
Inactive:        1251840 kB
…

(PAE 有効の場合)
MemTotal:        4120476 kB
MemFree:         3674100 kB
Buffers:           36324 kB
Cached:           170856 kB
SwapCached:            0 kB
Active:           240784 kB
Inactive:         164056 kB
…

■ メモ
自宅の PC 環境 ( DELL Inspiron 530 + Ubuntu 10.04 ) で試したとき、
PAE 対応カーネルで起動しても 3GB までしか認識されず。
調べてみると、BIOS が Memory Remapping に対応してないと認識されないとのこと。
早速 BIOS をアップデート (1.0.3 → 1.0.18) してみたら、認識されました。

● kernel, PAE, 3GB, memory, 認識, 4GB, 32bit, BIOS, remapping, リマッピング