2013年6月12日水曜日

ifconfig で MAC アドレスを変更

組み込み系の Linux で使うことがあるかもね。
MAC アドレスは一意に設定されるべきものなので、むやみに変えてはいけません。
変更するときは、一旦 I/F をダウンする必要があります。

# ifdown eth0
# ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX
# ifup eth0

● ifconfig, MAC, アドレス, Address, Addr, hw, ether, 変更

2013年6月9日日曜日

Ubuntu 12.04 端末のウィンドウにスクロールバーを表示する

Ubuntu 12.04 で確認。
Ubuntu 12.04 で、端末 (gnome-terminal) とか、その他ウィンドウでスクロールバー (スライダー) が表示されなくなった。
オーバーレイスクロールバー (overlay scroll bar) になってしまって、使いにくい。
これを昔ながらのスクロールバーにする方法。

いろいろ方法があるようだが、/etc/X11/Xsession.d/ のファイルを修正するのが楽ちん。

# vi /etc/X11/Xsession.d/81overlay-scrollbar
(新しくファイルを作成し、下記を記述)

export LIBOVERLAY_SCROLLBAR=0

■ 参考
http://askubuntu.com/questions/34214/how-do-i-disable-overlay-scrollbars
日経 Linux 2013 年 6 月号

● terminal, 端末, gnome-terinal, scroll, bar, overlay, スクロールバー, オーバーレイ, バー

2013年5月22日水曜日

Busybox の tftp コマンドでファイルをダウンロード

■ busybox の tftp コマンドで tftp サーバからファイルをダウンロードするときのメモ。

$ tftp -r [Remote FILE] -g [HOST]

   -r : Remote FILE (サーバにあるファイル)
   -g : Get file (コマンド)

(例)
$ tftp -r hogehoge.bin -g 192.168.0.1

■ アップロードする場合

サーバ側の事前準備

$ cd /tftpboot/
$ touch remote.txt
$ chmod 777 remote.txt

クライアント側から送信

$ tftp -l local.txt -p 192.168.0.1 -r remote.txt

● busybox, tftp, ダウンロード, オプション, アップロード, download, upload, option

2013年5月20日月曜日

Ubuntu 12.04 で Synergy を設定する

Ubuntu 12.04 で Synergy を使うときのメモ。
Ubuntu 12.04 LTS で確認。

1. synergy をインストールする

# apt-get install synergy

動きが変なときは、サイトからパッケージをダウンロードしてインストールしたほうが良いかも。

# apt-get purge synergy
# dpkg -i synergy-*.*.*-Linux-x86*.deb

2. /etc/lightdm/lightdm.conf を編集する (自動起動設定)

# vi /etc/lightdm/lightdm.conf
([SeatDefaults] セクションに以下を追加)

greeter-setup-script=/usr/bin/synergyc [SEVER_HOST_NAME]

3. Synergy サーバ側の設定 (省略)

● synergy, lightdm, 12.04, 自動起動

2013年4月3日水曜日

#ifdef, #endif を削除してソースコードを整理する

ソースコードを整理するために #ifdef, #endif 他を削除したい場合、どうやるのか調べたところ
unifdef というコマンドがありました。
(Ubuntu 12.04 で確認)

1. unifdef をインストール

# apt-get install unifdef

2. カレントディレクトリ以下のソースをすべて処理したい場合のシェルスクリプト例

他にもエレガントな方法がありそうだが、ひとまずはこれで。
-DHOGEHOGE のところに unifdef のオプションを記述。
ちなみに rename コマンドは perl 版。
.svn ディレクトリを除外するようにしてます。

#!/bin/sh
find . -type d -name ".svn" -prune -o -type f -exec unifdef -DHOGEHOGE {} -o {}.unifdef \;
find . -name '*.unifdef' | xargs rename -f 's/\.unifdef$//'

● #if, #ifdef, #ifndef, #elif, #else, #endif, 一括, 削除, 処理, delete, unifdef, スクリプト

find で .svn ディレクトリを除外する

find で .svn ディレクトリを無視するようにする場合のメモ。
-prune で、それ以下のディレクトリを無視する。
.svn ディレクトリを除く、カレントディレクトリ以下のファイルを find する例。

$ find . -type d -name ".svn" -prune -o -type f

● find, .svn, 除外, 無視, 外す, prune

2013年3月30日土曜日

NFS マウントエラー時の対処法 ( svc: failed to register lockdv1 RPC service (errno 111). )

NFS 設定ってたまに失敗する。
今回は Ubuntu 12.04 の NFS サーバのディレクトリをマウントしようとしたら、
svc: failed to register lockdv1 RPC service (errno 111). というエラーが出た。
ググってみると下記に解決方法が書いてあった。
http://forums.xilinx.com/t5/Embedded-Linux/nfs-mount-problem-on-microblaze/td-p/153272

まず、エラーが出た時の mount オプション。
NFS サーバの IP アドレスは 192.168.0.1 (Ubuntu 12.04)。
errno 111 が出る。

# mount -t nfs 192.168.0.1:/hogehoge /mnt/hogehoge

[ 1384.083734] svc: failed to register lockdv1 RPC service (errno 111).
mount: mounting 192.168.0.1:/hogehoge on /mnt/hogehoge failed: Connection refused

こんなときは、mount のオプションを追加してやると良いようだ。

# mount -o port=2049,nolock,proto=tcp -t nfs 192.168.0.1:/hogehoge /mnt/hogehoge

● NFS, mount, errno 111, svc: failed to register lockdv1 RPC service, マウント, エラー, 失敗

Ubuntu で tftp サーバ (tftpd)

Ubuntu で tftpd を設定する方法。
( Ubuntu 12.04 で確認 )

1. tftpd をインストール

# apt-get install tftpd

2. xinetd の設定

/etc/xinetd.d/tftp を作成。

# vi /etc/xinetd.d/tftp
(以下を記述)
service tftp
{
 protocol        = udp
 port            = 69
 socket_type     = dgram
 wait            = yes
 user            = nobody
 server          = /usr/sbin/in.tftpd
 server_args     = /tftpboot
 disable         = no
}

3. /tftpboot ディレクトリを作成&パーミッション設定

# mkdir /tftpboot
# chmod 777 /tftpboot

4. xinetd をリスタート

# /etc/init.d/xinetd restart

● tftpd, tftp, サーバ

2013年3月23日土曜日

Subversion 管理外ファイルの扱い方メモ

Subversion で管理外のファイル (svn status で ? と表示されるファイル) を扱う時のメモ。 (subversion-1.7.8 で確認)

■ svn status で管理外ファイルを表示させない

$ svn status -q

■ 管理外ファイルを一括削除

$ svn status | grep ^? | awk '{print $2}' | xargs rm -rf

● subversion, 管理外, 管理下, ファイル, file, 一括, 削除, clean, delete, svn, status

2013年3月21日木曜日

Ubuntu 12.04 に Subversion 1.7.8 をインストール

Ubuntu 12.04 に Subversion 1.7.8 をインストールした時のメモ。
ビルド時にハマって、試行錯誤の結果なので、いらない作業が含まれているかもしれません。
apt でインストールすると、1.6.x になってしまいます。

1. apache2-threaded-dev libssl-dev libneon27-gnutls-dev をインストール

# apt-get install apache2-threaded-dev libssl-dev libneon27-gnutls-dev

2. APR をソースからビルド

# wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.4.6.tar.gz
# tar zxvf apr-1.4.6.tar.gz
# cd apr-1.4.6/
# ./configure
# make
# make install

3. Subversion をソースからビルド

# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/subversion/subversion-1.7.8.tar.gz
# tar zxvf subversion-1.7.8.tar.gz
# cd subversion-1.7.8/
# ./configure
# make
# make install

NEON が無いと、ビルドは通るけどチェックアウトできなかったりしました。
ビルドが通ったら動くよね? って思っちゃうんですが...。

● Ubuntu, 12.04, subversion, 1.7, 1.7.8, ソース, source, APR