cloudBitはArchLinuxのBoot部分をカスタムしたlinuxで動作しています。
標準ではiptablesで拒否されているためsshが出来ませんがSDカード上のデータを変更してからbootし直すことでsshdなどを動作させることも容易です。
ネット上ではcloudBitでsshが動作する、という報告もあるのですが具体的な手順が載っていなかったりするのでここにまとめておこうと思います。
GoのMQTTクライアントを動かして遊ぼうと思っていたんですがHello WorldでさえIllegal instruction (core dumped)となってしまいちょっと面倒だったので別のことに使おうかと思います。
必要なもの
- cloudBit (初期設定済み)
- microsd Adapter
事前準備(OSX)
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!