StartSSLに切替

投稿日: Leave a comment

NASのサーバーSSL証明書に署名する認証局をでっち上げ,サーバーに接続する端末にこの認証局のCA証明書をインストールしていたが,最近買ったXperia Z1fはルートCA証明書をインストールすると起動時にWarningを表示して,結局うっとうしいので,フリーだがちゃんとした認証局で署名したサーバー証明書を使うように変更した.

使ったのは https://www.startssl.com/ の StartSSL free (class1) というのを使った.

続きを読む StartSSLに切替

RTX810でDS-Lite

投稿日: Leave a comment

IIJから発表されたDS-Lite (Dual-Stack Lite,数年前のIPv6 over IPv4 のトンネルの逆でIPv6ネイティブな環境で IPv4 over IPv6 のトンネルを掘って IPv4 を通すトンネル技術)を,以下を参考にRTX810でつないでみた.

続きを読む RTX810でDS-Lite

384kHz/32Bit PCM5102A DAC

投稿日: Leave a comment

Interface 9月号に触発されてPCM5102Aの載ったI2S DACボードを買って動かしてみた.

買ったのはこれではなくてこっち.香港のDIY系通販サイトから直接購入.発注して1週間くらいで届いた.

Raspberry Pi Type Bは実験用に2台目を購入済み.

今回はオーディオ用ということで,Volumioというディストリビューションを入れてみた.

続きを読む 384kHz/32Bit PCM5102A DAC

PyVISA

投稿日: Leave a comment

こんなことを以前書いていたけど,実はPyVISAなるものがあるらしい.

仕事で無線関連の測定をするときは測定器を極力PCからリモートで制御するようにしていて,ここ最近はRubyからTCP/IP SOCKETで直接やり取りするか自作のライブラリでVISA32.DLLをたたくかしていたけど,試しにPyVISAをPython3で使ってみたらいい感じに動いていた.

出来ることは変わらないので,PyVISA/Pythonにあえて移行することはないけど,やりたいことを実現する選択肢が広がるのは良い事.

結局Pythonはあまり使っていないので,そろそろ覚えようかなと思えてきた.

デスクトップPC処分予定

投稿日: Leave a comment

何年か前に組み立てたCore2-Duoなマシン,NASに使っていたHDDを入れたり,LinuxやFreeBSDを入れたり,だらだらと使い続けていたけど,そろそろもういいかなという感じになってきたので,思い切って処分することにした.

手始めにHDD消去.GNU shred (シュレッダーのシュレッド) を使うべく,Ubuntu Desktop 14.04のISOイメージ (ubuntu-14.04.1-desktop-amd64.iso) を落としてきて,UNetbootin でブータブルUSBを作成.

NASに使っていたHITACHIの2TB SATA3 HDDが2本あるので,これを消去する.
起動してから dmesgを見ると,/dev/sdbと/dev/sdc になっているようなので,

# shred -v -z -n 2 /dev/sdb
# shred -v -z -n 2 /dev/sdc

として,ランダム,ランダム,ゼロの3回書き込み.Terminalを2つ立ち上げて,2台同時に処理.夜寝る前に始めて,次の日の夕方終わった.結構時間かかった.

あとは,分解して,HDDやマザーボード (DG965RY) を元の箱に入れて売却の準備.

来週資源ごみなので,PCケースをばらして金属ゴミとして出したい.

/etc/protocols on FreeBSD/NetBSD

投稿日: Leave a comment

FreeBSD機 (Core2 duo),NetBSD機 (Raspberry pi)に同じpf.confを入れたが,FreeBSDでは動いて,NetBSDでは動かず.

具体的には,以下のルールがNetBSDでは弾かれる.icmp6は知らん,と.

pass inet6 proto icmp6 all

man pf.confを見るとicmp6って書いてあるが,その下に/etc/protocolsを見るとも書いてある.

proto <protocol>
      This rule applies only to packets of this protocol. Common
      protocols are icmp(4), icmp6(4), tcp(4), and udp(4). For a list of
      all the protocol name to number mappings used by pfctl(8), see the
      file /etc/protocols.

念のため,FreeBSDとNetBSDでicmp6がどう載っているか比べてみた.

FreeBSD

ipv6-icmp 58 IPV6-ICMP icmp6 # ICMP for IPv6

NetBSD

ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 [RFC2460]

NetBSDにはicmp6が入っていなかった.NetBSD,FreeBSDどちらもipv6-icmpなら載っているので,pf.confにはipv6-icmpと書くことにした.

pass inet6 proto ipv6-icmp all

NetBSD/evbarm(2) with pf

投稿日: Leave a comment

FreeBSD/armが安定しなかったので,NetBSD/evbarmを入れることにした.出戻り

今回は,http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/ からスナップショットのSDイメージを持ってきてさくっとインストール.アップデートもここからユーザーランドを持ってこれるので自ビルドする必要はなさそう.

sshdをインターネットにさらそうと思っているので,sshguardを入れるべく,pfを使えるようにする.そのためにはカーネルを作り直さないとダメみたいなので,FreeBSDの母艦PCでクロスビルドする.

1. ソースの取得

ここと同じ.今回は /home/netbsd/current/src に展開.

2. kernel config

/src/sys/arch/evbarm/conf/RPI の末尾を見ると,

% tail RPI

# data mover pseudo-devices
#pseudo-device swdmover # software dmover(9) back-end
#pseudo-device dmoverio # /dev/dmover dmover(9) interface

# userland interface to drivers, including autoconf and properties retrieval
pseudo-device drvctl

# local configuration
cinclude "arch/evbarm/conf/RPI.local"

とあるので,RPI.localを作っていろいろ追加していけばよさそう.ということで,こんなRPI.localにした.

% cat RPI.local
file-system UNION # union file system
pseudo-device pf # PF packet filter 
pseudo-device pflog # PF log if
pseudo-device vlan # IEEE 802.1q encapsulation

※ついでに使うかわからないけど,union file systemとvlanも入れておいた.

3. クロス環境の構築

基本的にはここと同じだが,archとしてearmhf を指定することと,FreeBSD/amd64のclangでコンパイルできなかったので,gccを使うことに注意.

まず,gccを入れてなかったのでインストールから.

# pkg install gcc

gcc-4.7.1がgcc47として入るので,クロス環境の構築時に指定してあげる.earmhfも指定する.

% cd /home/netbsd/current/src
% HOST_CC=gcc47 HOST_CXX=g++47 ./build.sh -O ../objarm -m evbarm -a earmhf -U tools

4. カーネル構築

クロス環境の構築に引き続きカーネルを構築.コマンドはほとんど同じ.

HOST_CC=gcc47 HOST_CXX=g++47 ./build.sh -O ../objarm -m evbarm -a earmhf -U kernel=RPI

基本的にクロスコンパイラーを使うのでHOST_CCとか指定する必要はなさそうだが,一応入れておいた.

5. カーネルの入れ替え

objarm/sys/arch/evbarm/compile/RPI/netbsd.binをコピーして,NetBSD on Raspberry pi の /boot/kernel.img としておいて再起動.

カーネルはSDカード先頭のFATパーティションに置くことになっているが,/bootにマウントされているので,動作中に置き換え出来る.

FreeBSD/arm build

投稿日: Leave a comment

FreeBSD 10-STABLE / arm のビルドメモ.

1. ソースの取得

10-STABLE用のフォルダをzfsで用意して,svnで持ってくる.

# zfs create -o compression=lz4 -o exec=off -o setuid=off rpool/usr/src_stable10
# cd /usr
# svn co https://svn0.us-west.freebsd.org/base/stable/10 src_stable10

2. ビルドツールの取得

crochet-freebsdというFreeBSD/armのブートイメージを作成するためのスクリプトが用意されているので,それを持ってくる.また,展開したフォルダにu-bootのソースも置いておく必要があり,合わせて取得.

# cd /usr/local
# git clone https://github.com/kientzle/crochet-freebsd.git
# cd crochet-freebsd
# git clone https://github.com/gonzoua/u-boot-pi.git u-boot-rpi

3. 設定ファイルを用意する

crochet-freebsdのconfig.sh.sampleをコピーして編集する.

# diff -uN config.sh.sample config.sh
--- config.sh.sample 2014-05-14 00:09:50.436616000 +0900
+++ config.sh 2014-05-14 00:15:05.937593000 +0900
@@ -25,7 +25,7 @@
 #board_setup GenericI386
 #board_setup PandaBoard
 #board_setup Soekris
-#board_setup RaspberryPi
+board_setup RaspberryPi
 #board_setup VersatilePB
 #board_setup ZedBoard
 #board_setup Wandboard
@@ -45,7 +45,7 @@
 # Suggested: option ImageSize
 #option ImageSize 100mb # for kernel-only images
 #option ImageSize 1950mb # for 2 Gigabyte card
-#option ImageSize 3900mb # for 4 Gigabyte card
+option ImageSize 3900mb # for 4 Gigabyte card

 #
 # How to Customize Your Build
@@ -85,7 +85,7 @@
 # couple of extra reboots, which can make this occasionally perplexing
 # to use.
 #
-#option AutoSize
+option AutoSize

 # Enable emailed status notifications.
 # This can also be enabled via the -e command-line flag.
@@ -147,7 +147,7 @@
 # it will tell you how to get appropriate sources into this directory.
 # (I find FREEBSD_SRC=${TOPDIR}/src to be useful.)
 #
-#FREEBSD_SRC=/usr/src
+FREEBSD_SRC=/usr/src_stable10

 # You will probably never override this, but you may need to
 # understand it: WORKDIR holds all of the created and temporary files

4. ビルド実行

crochet-freebsdのフォルダでスクリプトを実行し,しばし待つ.

# sh crochet.sh -c config.sh

5. 出来上がり

出来上がったイメージをSDに焼いてブート.イメージは work/FreeBSD-armv6-10.0-RPI-B-r.img  として出来上がる.