cloudBitでSSH

cloudBitはArchLinuxのBoot部分をカスタムしたlinuxで動作しています。
標準ではiptablesで拒否されているためsshが出来ませんがSDカード上のデータを変更してからbootし直すことでsshdなどを動作させることも容易です。

ネット上ではcloudBitでsshが動作する、という報告もあるのですが具体的な手順が載っていなかったりするのでここにまとめておこうと思います。


GoのMQTTクライアントを動かして遊ぼうと思っていたんですがHello WorldでさえIllegal instruction (core dumped)となってしまいちょっと面倒だったので別のことに使おうかと思います。

## 必要なもの

* cloudBit (初期設定済み)
* microsd Adapter

## 事前準備(OSX)

http://tex-numerics.blogspot.jp/2013/05/read-and-write-ext4-file-system-on-mac.html

OSXだとext3のデータの読み書きがしづらいので、上記URLを参考にOSXFuseとfuse-ext2をインストールしておきます。再起動は不要です。

pingをbroad castしてどういうマシンがつながっているかメモしておきます。

```
ping 255.255.255.255
```

## 設定変更

micro sdカードをアダプタに入れて、書き込みモードでmountします。

```
mkdir /Volumes/little
sudo fuse-ext2 -o force /dev/disk1s3 /Volumes/little
cd /Volumes/little
```

sshdを自動起動させたり、設定を変更していきます。Arch Linuxは初な上に、試行錯誤してちらかったメモから書いているのでなにか抜けていたり、不要なことがあったりするかもしれません。

```
sudo ln -s /usr/lib/systemd/system/sshdgenkeys.service /etc/systemd/system/multi-user.target.wants/sshdgenkeys.service
sudo ln -s /usr/lib/systemd/system/sshd.service /etc/systemd/system/multi-user.target.wants/sshd.service

# sshdの設定変更
vi /etc/ssh/sshd_config
# PAMをOFF,あとはお好きに。面倒くさい時は初回だけRootLoginをOnにして設定済ませちゃうのが楽です。
# ログインは鍵を置くなり、パスワードを設定するなりはご自由に。
# UsePAM no
# PermitRootLogin yes

# sysctlの変更
vi usr/lib/sysctl.d/50-default.conf
# 見つけづらいのでicmp_echo_ignore_broadcastsを0にしておく
net.ipv4.icmp_echo_ignore_broadcasts = 0

# とりあえずiptablesを無効にしとく
mv etc/systemd/system/multi-user.target.wants/iptables.service etc/systemd
```

unmountして、再度cloudBitにmicro sdcardを挿入し起動が終わるのを待ちます。

再度pingをbroad castして新しくつながっているマシンをしらべてそいつに向かってsshを行います。

```
ping 255.255.255.255
```

※cloudBitのAPIで取れるMACアドレスはIPV6のNICの方なのでarpコマンドなどでは判別がつきづらいです。

wifi routerのほうで見れたりする場合はそちらをみたほうが気楽です。

# その他

/usr/local/lbに独自系コマンドなどが置いてある

```
[root@alarm ssh]# ls /usr/local/lb/
ADC  bit-util  Button  cloud_client  comm-util	DAC  etc  hw_util  LEDcolor  mfg_test
```

### ADC

入力系の値がとれるコマンド。lsb, msbの順で結果がとれる。

```
[root@alarm lb]# /usr/local/lb/ADC/bin/getADC -1
1
9
```

### DAC

出力の値がセットできるコマンド。多分引数は16進数で4桁

```
[root@alarm lb]# /usr/local/lb/DAC/bin/setDAC ffff

[root@alarm lb]# /usr/local/lb/DAC/bin/setDAC 0000
```

## Install済みパッケージ一覧

```
[root@alarm lb]# pacman -Qe
autoconf 2.69-1
automake 1.14.1-1
bash 4.3-3
binutils 2.24-1
bison 3.0.2-1
bzip2 1.0.6-5
coreutils 8.22-3
cronie 1.4.11-1
cryptsetup 1.6.4-1
device-mapper 2.02.105-2
dhcpcd 6.3.2-1.2
dialog 1:1.2_20140219-1
diffutils 3.3-1.1
dnsmasq 2.68-1
e2fsprogs 1.42.9-2
fakeroot 1.20-1
file 5.17-2
filesystem 2013.05-2
findutils 4.4.2-5
flex 2.5.38-1
gawk 4.1.0-2.1
gcc 4.8.2-7
gcc-libs 4.8.2-7
gettext 0.18.3.2-1
git 1.9.1-1
glibc 2.18-12.1
grep 2.18-1
gzip 1.6-1
ifplugd 0.28-14
inetutils 1.9.2-1
iproute2 3.12.0-1
iputils 20121221-3
iw 3.14-1
jfsutils 1.1.15-4
less 458-1
libnl1 1.1.4-1
libtool 2.4.2-12
licenses 20130203-1
lighttpd 1.4.35-1
linux-olinuxino 3.7.2-8
logrotate 3.8.7-1
m4 1.4.17-1
make 4.0-2
mdadm 3.3-2
nano 2.2.6-2
net-tools 1.60.20130531git-1
netctl 1.6-1
ntp 4.2.6.p5-19
openssh 6.6p1-1
pacman 4.1.2-5.1
pacman-mirrorlist 20140220-1
patch 2.7.1-2
pciutils 3.2.1-1
perl 5.18.2-2
pkg-config 0.28-1
procps-ng 3.3.9-2
psmisc 22.20-1
reiserfsprogs 3.6.24-1
s-nail 14.6.2-1
sed 4.2.2-3
shadow 4.1.5.1-7
sudo 1.8.10.p2-1
sysfsutils 2.1.0-8
systemd-sysvcompat 211-1
tar 1.27.1-1
texinfo 5.2-2
uboot-olinuxino 2013.10-1
usbutils 007-1
util-linux 2.24.1-3
vi 1:050325-3
wget 1.15-1
which 2.20-6
wireless_tools 30.pre9-1
wpa_supplicant 2.1-3.1
xfsprogs 3.1.11-2
```

## free

```
[root@alarm ~]# free -m
             total       used       free     shared    buffers     cached
Mem:            58         44         13          0          6         24
-/+ buffers/cache:         13         45
Swap:            0          0          0
```

## cpuinfo

```
[root@alarm ~]# cat /proc/cpuinfo
Processor	: ARM926EJ-S rev 5 (v5l)
BogoMIPS	: 113.04
Features	: swp half thumb fastmult edsp java
CPU implementer	: 0x41
CPU architecture: 5TEJ
CPU variant	: 0x0
CPU part	: 0x926
CPU revision	: 5

Hardware	: Freescale i.MX23 (Device Tree)
Revision	: 0000
Serial		: 0000000000000000
```

そいではHappy Hacking!