USBドングル

USBモデムとしても、アクセスポイントとしても使えるUSBドングルってないかなと思って、PIX-MT100 を買いました。 SIM は、mineo の DプランのmicroSIMカードを使っています。

f:id:section27:20180110162932j:plain

設定は簡単で、microSIMをセットして、PCのUSBにつないで、http://192.168.0.1 にアクセスして、私の場合は、mineo なので、mineo の Dプラン のサイトをみて、APN等の設定を行いました。

f:id:section27:20180110163812p:plain

Raspberry Pi の HDMI 出力の設定

HDMI にモニタが接続されていない状態で起動すると、NTSC(コンポジット)に切り替わってしまうので、それを防ぐために、/boot/config.txt の hdmi_force_hotplug の先頭にある # を削除します

#hdmi_force_hotplug=1

を下のように編集します

hdmi_force_hotplug=1

次に、hdmi_group の先頭の # を削除し、また hdmi_mode の先頭の # を削除するとともに、値を 5 に設定します ここの値については、Video options in config.txt を参考にしてください

#hdmi_group=1
#hdmi_mode=1

を下のように編集します

hdmi_group=1
hdmi_mode=5

変更後、再起動して以下のコマンドで設定された解像度等の確認ができます

# tvservice -s

Raspberry Pi 起動時に接続しているモニター(TV)がOnにならないようにする

/boot/config.txt に以下の行を追加します

hdmi_ignore_cec_init=1

参考

https://elinux.org/CEC_(Consumer_Electronics_Control)_over_HDMI

github.com

AvahiでHTTP Serverのサービスをアナウンス

Raspbian で HTTP Server を起動するようにしたので、Avahi でアナウンスするように設定したメモ

HTTP Server

/etc/avahi/services/http.service ファイルを次の内容で作成しました

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>

  <service>
    <type>_http._tcp</type>
    <port>80</port>
  </service>
</service-group>

Avahi-daemon の再起動

# systemctl restart avahi-daemon

iPhone の WIFI 設定に プロファイル を使う

macOS には、Apple Configurator 2 というアプリケーションがあって、これを使用すると iPhone 等の設定や制限を記述したプロファイルを作成することができます。

名称と識別子を入力します

f:id:section27:20171110232102p:plain

WIFISSID やパスワードを入力します

f:id:section27:20171110232142p:plain

名前をつけてプロファイルを保存します

f:id:section27:20171110232154p:plain

簡単に試すには、USB で iPhone 等を接続して、保存したプロファイルをデバイスに設定します

iPhone 側でインストールを実行すると、プロファイルがインストールされて、プロファイルにある WIFI 設定が有効になります

f:id:section27:20171110232321p:plain

Raspbian - Raspberry Pi 2 で scala を使う

sdkman のインストール

$ curl -s "https://get.sdkman.io" | bash

sbt のインストール

$ sdk install sbt

起動

$ sbt console

もっとメモリ領域が必要というとき

/var/swap のサイズを大きくします

$ sudo service dphys-swapfile stop
$ sudo vi /etc/dphys-swapfile

CONF_SWAPSIZE=2048

$ sudo service dphys-swapfile start
$ ls -l /var

-rw-------  1 root root  2147483648 10月 20 21:50 swap

AWS Greengrass - Java 8

AWS Greengrass が東京リージョンで使用できるようになりました。

Greengrass Core を動かす環境としてRaspberry Pi 3 を使います

$ sudo -s
# update-alternatives --install /usr/bin/java8 java8 /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java 0

Greengrass Core にデプロイするLAMBDAが使えるメモリは非常に少ないです。16MB程度にしておくのが良さそうです。

Scala or Java の場合にaws-lambda-java-coreだけだといろいろなクラスが見つからないという例外が発生します。

aws-lambda-java-coreだけで、AWSコンソール上でテスト実行できたものをGreengrass Coreで動かすと、jacksonのクラスが見つからないというエラーが発生します。

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException

そこでjackson-databindを依存に加えてみます。すると今度はApache HTTPClientのクラスが見つからないというエラーが発生します。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpEntity

AWSのドキュメントを注意深く読むとaws-java-sdk-greengrassを取り込む必要があるという記述にたどりつきようやく解決しました。