2016年7月31日日曜日

Raspberry Pi 3 (Ubuntu MATE) : USB シリアルコンソール端末にする

■ USB シリアル変換基板

Raspberry Pi 3 を USB シリアルコンソール端末に改造。
まずは、USB シリアル変換基板を調達。
変換基板は、SWITCH SCIENCE絶縁 USB シリアル変換基板 がオススメ。
USB の形状は、mini-B になります。
ちょっと高いけど、PC と Raspberry Pi の両方を不意の過電流から守れると考えれば安いもんです。
ジャンパワイヤ (メス-メス) も合わせて調達。

■ GPIO の割り当て確認

http://pinout.xyz/ で GPIO の割り当てを確認。

Pin #Name
025v Power
04Ground
06BCM 14 (UART Transmit) TXD
08BCM 15 (UART Receive) RXD

■ 仮組み

仮組みしてみる。配線は、こんな感じ。

■ 配線四つ編み

四つ編み開始~。
編んどいたほうが扱いやすい。

ピン配置と合わせないといけないので、ヨリ方は調整しながら進める。
5 回ぐらいやり直した (汗)。

よしよし。

■ ケース格納

蓋開けっ放しってのも使いづらいので、HDMI ケーブルの横を 5 mm 角ほど切り込み加工。
カッターナイフで、ちょっとずつ削ればいけます。
一気にやろうとすると、汚くなる可能性あり ( ツゲを彫るより簡単 )。

HDMI コネクタとフレキのコネクタの間を通す。

横のカバーを付ける。

上蓋をはめて完成。

■ UART 設定

UART0 でコンソールを使えるようにするために、コアクロックを 250MHz に変更。

# vi /boot/config.txt

(下記を追記)
core_freq=250

上記は一時対応なので、ちゃんと設定したい場合は下記を参照。
http://qiita.com/yamamotomanabu/items/33b6cf0d450051d33d41

■ 参考
http://qiita.com/komeda-shinji/items/03546ae1014c6b4edc92
http://qiita.com/yamamotomanabu/items/33b6cf0d450051d33d41

● Raspberry Pi 3, Ubuntu MATE, UART, USB, シリアル, serial, コンソール, console, 変換, コネクタ, mini-B

2016年6月30日木曜日

Raspberry Pi 3 (Ubuntu MATE) : 導入まで

Raspberry Pi 3 Model B Base Kit 32GB。
KSY から購入。
電話帳より小さいサイズの箱に入って届いたので、「えっ」と思ってしまいました。
ケースはブラックで、9,720 円。

OS は、Ubuntu MATE 16.04 LTS を選択。
Unetbootin でイメージを焼けば良いのかと思って、説明も読まずに試したところ、うまくいきませんでした (当たり前か)。
Win32 Disk Imager を使ってインストール。簡単ポン。

とりあえず、起動したのでここまで。
次は、「Raspberry Pi 3 を USB シリアルコンソール端末にする」です。

● Raspberry Pi 3, Ubuntu MATE

2016年6月25日土曜日

ドコモ光 ルータ RT-500KI 設定メモ ( 玄人向け ) ユーザ名 パスワード

本日、ドコモ光開通。
Galaxy S4 から 3 年ぶりに Galaxy S7 edge に機種変更したタイミングで、フレッツ光からドコモ光に乗り換えです。

設定ガイドを読むと、Windows PC で、簡単セットアップツールをダウンロードすることになっています。
Windows 持ってない人は、どうするの?
そんな人向けのメモ。

設置されたのは、ホームゲートウェイ/ひかり電話ルータ (RT-500KI)。
LAN ポートに PC を接続すると、192.168.1.0/24 ネットワークの IP アドレスが DHCP で設定されます。
192.168.1.1 がルータの IP アドレス。


ブラウザで http://192.168.1.1/ に接続すると、機器設定用パスワードの設定が求められます。
機器設定用なので、自分の好きなパスワードを設定。

設定が完了したら、機器設定用ユーザ名、パスワードで認証する必要があります。

機器設定用ユーザ名user (小文字です)
機器設定用パスワードさっき設定したパスワード

次にプロバイダの設定。うちの場合は OCN です。
基本設定 -> 接続先設定 (IPv4 PPPoE)

接続先名OCN
接続先ユーザ名xxxxxxxx@xxx.ocn.ne.jp
接続パスワードプロバイダの接続パスワード

● ドコモ光, RT-500KI, ルータ, router, ルーター, 設定, ユーザ, ユーザ名, パスワード, user, password, 簡単セットアップツール, 無しで, なしで, 使わない, Linux, Mac, OCN, 玄人

2016年6月15日水曜日

bash 依存コードをチェック ( checkbashisms )

bash 依存コードが含まれているシェルスクリプトを sh で実行すると、思ったように動かないことがある。
それをチェックするには、checkbashisms を使うと良い。

■ checkbashisms をインストール

# apt-get install devscripts

■ 使用例
サンプルコード

$ cat hogehoge.sh 

#!/bin/sh
source hogehoge

■ 実行例
source は使っちゃダメ。代わりに "." を使うべし。

$ checkbashisms hogehoge.sh 
possible bashism in hogehoge.sh line 2 (should be '.', not 'source'):
source hogehoge

● bash, 依存, コード, シェルスクリプト, shell, script, sh, チェック, check, checkbashisms, 専用

Ubuntu DHCP サーバがいない時に起動が遅い (Waiting for network configuration...)

Ubuntu で、DHCP の設定で立ち上がるように設定していて、DHCP サーバがいない時ってたまにあります。
(いや、普通はないけど)
このとき、ディスプレイには Waiting for network configuration... と表示されて、
非常に待たされてイライラさせられます。
これの対処法。

sleep 40 と sleep 59 のところをコメントアウト。

# vi /etc/init/failsafe.conf
    # Plymouth errors should not stop the script because we *must* reach
    # the end of this script to avoid letting the system spin forever
    # waiting on it to start.
 $PLYMOUTH message --text="Waiting for network configuration..." || :
# sleep 40    (★ ここをコメントアウト)

 $PLYMOUTH message --text="Waiting up to 60 more seconds for network configuration..." || :
# sleep 59    (★ ここをコメントアウト)
 $PLYMOUTH message --text="Booting system without full network configuration..." || :

■参考
http://www.aa7.netvolante.jp/wp/?p=1579

● Ubuntu, DHCP, Waiting for network configuration..., Waiting up to 60 more seconds for network configuration..., イライラ, 起動, 遅い, 待たされる, 時間, かかる

2016年2月13日土曜日

parted の使い方メモ ( 2TB 以上は fdisk ではなく parted で )

8TB の RAID HDD を 1 つのパーティションにしようと思って fdisk 使おうとしたら、2TB までしかいけませんでした。
2TB 以上は parted でやる必要があります。

今回の例は /dev/sdc の HDD にパーティションを切ります。
とりあえず、ヘルプを表示。

# parted /dev/sdc
GNU Parted 2.3
/dev/sdc を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。

(parted) help
  align-check TYPE N            パーティション N のアライメント(TYPE: min|opt)をチェックする
  check NUMBER                  ファイルシステムの簡単なチェックする
  cp [転送元デバイス] 転送元NUMBER 転送先NUMBER
                    ファイルシステムを他のパーティションにコピーする
  help [コマンド]               ヘルプ表示。コマンド指定でそのヘルプを表示
  mklabel,mktable ラベルの種類  新しいラベル(パーティションテーブル)を作る
  mkfs NUMBER ファイルシステムの種類
                    指定した種類のファイルシステムを作る
  mkpart パーティションの種類 [ファイルシステムの種類] 開始 終了
                    パーティションを作る
  mkpartfs パーティションの種類 ファイルシステムの種類 開始 終了
                    パーティションとファイルシステムを作る
  move NUMBER 開始 終了         パーティションを移動する
  name NUMBER 名前              パーティションに名前をつける
  print [devices|free|list,all|NUMBER]
                     パーティションテーブルや、利用可能なデバイス、空き領域、
                     見つかった全てのパーティション、あるいは特定のパーティションについて表示する
  quit                          プログラムを終了する
  rescue 開始 終了              開始、終了で指定した範囲付近にあるパーティションを復活させる
  resize NUMBER 開始 終了       パーティションとその中のファイルシステムをリサイズする
  rm NUMBER                     パーティションを削除する
  select デバイス               操作するデバイスを選択
  set NUMBER フラグ 状態        ファイルシステムのフラグと状態を設定する
  toggle [NUMBER [FLAG]]        パーティションのフラグの状態を反転する
  unit UNIT                     デフォルトの単位を UNIT にする
  version                       GNU Parted のバージョンと著作権情報を表示

現在の状況を確認。fdisk と同じ感じで p。

(parted) p
モデル: ATA H/W RAID10 (scsi)
ディスク /dev/sdc: 8001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos

番号  開始  終了  サイズ  タイプ  ファイルシステム  フラグ

ラベルを gpt ( GPT: GUID partition table ) に設定。

(parted) mklabel gpt
警告: いま存在している /dev/sdc のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? y

ラベルが設定されていることを確認。

(parted) p
モデル: ATA H/W RAID10 (scsi)
ディスク /dev/sdc: 8001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号  開始  終了  サイズ  ファイルシステム  名前  フラグ

8TB を 1 パーティションで、ext4 FS に設定。

(parted) mkpart primary ext4 0% 100%

(parted) p
モデル: ATA H/W RAID10 (scsi)
ディスク /dev/sdc: 8001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号  開始    終了    サイズ  ファイルシステム  名前     フラグ
 1    1049kB  8001GB  8001GB                    primary

最初、0, -0 でパーティションを切ってたら、アライメントが正しくないとエラーになってしまいました。
開始が 17.4kB になってました。パフォーマンス的に良くないらしいので、0% 100% で指定したほうがよいです。

(parted) mkpart primary ext4 0 -0
警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。
無視(I)/Ignore/取消(C)/Cancel? I
(parted) p
モデル: ATA H/W RAID10 (scsi)
ディスク /dev/sdc: 8001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号  開始    終了    サイズ  ファイルシステム  名前     フラグ
 1    17.4kB  8001GB  8001GB                    primary

q で終了。

(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

mkfs.ext4 コマンドで /dev/sdc1 をフォーマット。
time コマンドで実行時間を計測したところ、57 秒かかりました。

# time mkfs.ext4 /dev/sdc1
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
244187136 inodes, 1953480695 blocks
97674034 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
59616 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544, 1934917632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done


real    0m57.858s
user    0m2.288s
sys     0m0.736s

マウントしてみる。よしよし。

# mount /dev/sdc1 /mnt/

# df
Filesystem      1K-blocks      Used  Available Use% Mounted on
/dev/sda1        95989516  31844624   59245772  35% /
udev             16434540         4   16434536   1% /dev
tmpfs             3288768       832    3287936   1% /run
none                 5120         8       5112   1% /run/lock
none             16443832       152   16443680   1% /run/shm
/dev/sdb1        61407392   6674084   51590840  12% /ssd
/dev/sda4       761367048 640958904   81709856  89% /home
/dev/sdc1      7752225032     51360 7361461152   1% /mnt

● fdisk, parted, 2TB, HDD, パーティション, partition, フォーマット, format, gparted, アライメント, 正しくない, パフォーマンス

2015年12月12日土曜日

Ubuntu 14.04 で X-mouse

また設定のやりかたが変わったのか Ubuntu、、、。

1. unity-tweak-tool をインストール

# apt-get insall unity-tweak-tool

2. 設定

unity-tweak-tool を起動し、Workspace Settings → Additional → フォーカスモード マウス ( Mouse ) を選択。

$ unity-tweak-tool

下図参照。


● Ubuntu, 14.04, mouse, マウス, X-mouse, focus, フォーカス

Git で、ブランチを切った日時、ユーザ名を確認する

Git でブランチが切られたのがいつで、誰によって切られたかを確認する方法。
(出力例は加工しています)

$ git for-each-ref --format='%(committerdate:iso) %(refname) [%(authorname)]' --sort=-committerdate refs/heads refs/remotes

2015-11-13 09:13:43 +0900 refs/remotes/origin/HOGEHOGE [hoge]
2015-10-21 10:12:33 +0900 refs/remotes/origin/HOGEHOGE2 [hoge2]
2015-09-01 17:32:10 +0900 refs/remotes/origin/HOGEHOGE3 [hoge3]
2015-08-02 09:30:00 +0900 refs/heads/master [hoge]

参考: http://tech.aainc.co.jp/archives/8323

● git, branch, ブランチ, いつ, 誰, 確認, 順番, sort, ソート, 切る, 作成, 日時, date

2015年12月5日土曜日

廃棄前の HDD 完全消去 ( shred )

HDD を廃棄する前に中のデータを完全消去 ( ランダムデータ書き込み、0 クリア ) するには、Linux PC の場合、shred を使います。
下記、消去したい HDD が /dev/sdc として接続されている場合の例。
2015/12/05 時点の Ubuntu 14.04 では、4 回ランダム値が書き込まれる。
ちなみに、500GB、7200rpm、USB-SATA ケーブル接続の HDD 消去に 7 時間 11 分かかりました。

# shred -z -v /dev/sdc

● HDD, 廃棄, 消去, ランダム, random, 数回, 書き込み, shred

2015年11月29日日曜日

awk 特定のカラムの合計値を取得する メモ

awk で特定のカラムの合計値を取得したい時のスクリプト。

元データの中身。

$ cat hogehoge.dat

0,0,0,0,9
1,0,0,0,8
2,0,0,0,7
3,0,0,0,6
4,0,0,0,5

5 カラム目の合計値を取得。

$ awk -F , '{total=total+$5} END{print total}' hogehoge.dat

35

● awk, カラム, 合計, 加算, 合計値, total