アナリティクス

ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示

2019年4月8日月曜日

ラズパイ用DAC+D級AMP(Zero同寸/PCM5102A)


RaspberryPi用DAC+AMP(Zero同寸/PCM5102A)
で出てきた質問と回答

DACの用途として使えるか?


スピーカーへの出力のみですのでDACとして他のアンプやヘッドフォンに繋いで使用することはできません。


ジャンパの意味。


D級アンプのPower ON/OFFと、アンプのゲイン設定です。ゲインの設定は
GAIN0 GAIN1 GAIN(V/V) 備考
LOW LOW 2 デスクトップで鳴らすならこれで良いかと
LOW HIGH 4
HIGH LOW 8
HIGH HIGH 16
詳細は FILTERLESS STEREO CLASS-D AUDIO AMPLIFIER の下記を参照
p 12 of 18 : Table 1. Gain Setting


と言ってもあと2枚しかモノがないけど...
2019/06/22 売り切れとなりました
1024文字しか説明できるところが無いって、こういうもの売るにはキツいな。
そのうえWeb版メンテナンス中とか勘弁。

2019年4月4日木曜日

神様はチャレンジャー

RaspberryPi用DAC+AMP(Zero同寸/PCM5102A)

この世に神はいない。
神はあの世にいる。
だが神のような人はこの世にいる。


買ってくれたメルカリ匿名の神様ありがとう。

いやホントどこの馬の骨ともわからない奴が作った基板を買ってくれる優しい神様。ちゃんと毎日 SpotifyUp In Here を秋月で買ったスピーカー(定価300円/ワケアリ半額、今売ってない)で聞けるほどにはちゃんとしている(と、本人は思っている)基板。だとしても、そうかどうか伝わるワケもないところでチャレンジ買いしてくれるって、その勇気に感謝せねば...


初めての出荷


と言っても、このあと多くて後二個しか在庫無いしもう作らない、だけどとにかく初出荷。なので、再度音出し確認。Raspotify専用となっているA+を引っ張り出して載せて確認。

念の為適当な(Pimoroniから買ったInky pHATの)静電気防止袋に入れて出荷。



思い返して


全て秋月のスピーカーが悪い(もう売ってないけど)。あれをPi-DigiAMP+で鳴らして、スピーカーユニットの良さに感動した後、どうにかZeroでお手軽に鳴らしたくて、これとかいろいろやって、なんとか鳴らせるようになった。

I2Sの確認とか、AMP選びとか、レギュレータ選びとか、素子を試す基板とか、その設計とか制作とか、よく考えても考えなくても手軽じゃ無い。手軽なワケが無い。なにが手軽なのかと...

  • 電源はUSB-microBなので別の電源アダプタ不要
  • アンプ搭載済み(3W only)なので別のアンプ不要

もしかしたらお手軽なのかもしれない。

2019年4月1日月曜日

ラズパイでSPH0645LM4H (Zeroでどハマり)

DigikeyでADMP441見たら今後怪しいので、Adafruit I2S MEMS Microphone Breakoutを試してみた。Raspberry Pi 3 Model Bではあっさりこの手順でできたが、Zero/Zero Wではうまくいかなかったので、うまく行った方法をメモ

使用したイメージは : 2018-11-13-raspbian-stretch-lite



どこでハマる


次のコードで出てくるモジュールが出てこない
    
sudo cat /sys/kernel/debug/asoc/platforms
    


なので


Kernel Compiling の下記を実行しない

    
sudo apt-get update
sudo apt-get install rpi-update
sudo rpi-update
    

あとはZeroの手順にある通りソースの編集などを行って進めば最後までたどり着ける。

最新版にしてビルドに備えるのが正しいのか、安定版で進むのが正しいのか。

2019年3月4日月曜日

ラズパイでADMP441から録音

ラズパイでの録音にUSBのマイクを使った事はあったけど、この記事をみつけてI2Sでもやってみようとして、一部を除き、記事の通りでさっくりできたのでメモ。




本当に起こった事なのかもうわからない


alsamixerでどうにも、"This sound device does not have any playback controls."と言われる。
F6でデバイス変えてもF4でCaptureにしてもダメ。
arecordした後でもダメ。

ダメ元で amixer -c 0 してみるとなぜか出る。
何もかもわからん!
amixer -c 0 set 'Boost' 80 してみると
普通に変わるし!

そのあとに alsamixer

自分に全く自信がなくなる瞬間。
どっかすっ飛ばしたのかなぁ。

2019年2月26日火曜日

ラズパイ + PCM5102A + Spotify

Raspberry Pi にPCM5102AのサウンドカードをのせてSpotify Clientにした時のメモ


PCM5102Aをデフォルトのサウンドカードに


PCM5102AHIfiBerrypHAT DAC
Setting up pHAT DAC
    
curl https://get.pimoroni.com/phatdac | bash
    

Spotify client (Raspotify)


Raspotify
    
curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
    

Spotifyのユーザー名とパスワード



/etc/default/raspotify を編集


  • DEVICE_NAME : 適当に
  • BITRATE : 320
  • OPTIONS : ユーザー名とパスワード ※
  • VOLUME_ARGS : やかましいので100を30に

raspotify サービスの起動


    
sudo systemctl restart raspotify
    

2017年10月15日日曜日

pHAT DACを使ってAirPlayとBluetooth(A2DP)

Super Simple Raspberry Pi Audio Receiver Installでサウンドカードも入れるとpHAT DACは出てこなかったので、回避する手順。当たり前な手順のメモ。

pHAT DACのセットアップ


ここのAutomated Set Up

    curl https://get.pimoroni.com/phatdac | bash

Super Simple Raspberry Pi Audio Receiver


ここのInstall

    git clone https://github.com/BaReinhard/Super-Simple-Raspberry-Pi-Audio-Receiver-Install.git
cd Super-Simple-Raspberry-Pi-Audio-Receiver-Install
sudo ./install.sh

あとはお好きに

先にpHAT DACを設定しておけば、No sound cardを選択すればそのまま使われる。
そりゃそうだ。

2017年6月26日月曜日

Tornadoを使ったWebAPIサーバ(の素)

BLEやPiCameraを外からコントロールしたいと思ったけど、PHPとかのページから叩くのはなんか違うと思ったので、TornadoでWebSocketのサーバを作ってみた。内容はここここの組み合わせ。

Tornadoのインストール


    
pip install tornado

サーバープログラム


ここのサーバーサイドのコードほぼまんま。ここにある方法でデーモン化。デーモンになると何やってるかわからんので、/var/log/websocket_server.logになんか吐き出すようにしている。on_messageがサンプルのままでAPIサーバーでもなく、ただのエコーサーバーだけど、中身は後でネタに応じて実装するということで。


websocket_server.service

    
[Unit]
Description=Websocket server daemon

[Service]
ExecStart=/usr/local/sbin/websocket_serverd.py
Restart=always
Type=forking
PIDFile=/var/run/websocket_serverd.pid

[Install]
WantedBy=multi-user.target

websocket_serverd.py

    
#!/usr/bin/python
# -*- coding: utf-8 -*-


import socket
import os
import sys
import tornado.httpserver
import tornado.websocket
import tornado.ioloop
import tornado.web


WS_LISTENING_PORT = '41072'


class WebSocketServer(tornado.websocket.WebSocketHandler):
    '''WebSocket event handler class'''

    _log_file = None

    def open(self):
        if self._log_file is None:
            self._log_file = open('/var/log/websocket_server.log', 'at')
        self._log_file.write('WebSocketServer::open : new connection')

    def on_message(self, message):
        self._log_file.write(
            'WebSocketServer::on_message : message received:  %s\r\n' %
            message)
        self._log_file.write(
            'WebSocketServer::on_message : sending back message: %s\r\n' %
            message[::-1])
        self.write_message(message[::-1])

    def on_close(self):
        if self._log_file is not None:
            self._log_file.write(
                'WebSocketServer::on_close : connection closed\r\n')
            self._log_file.close()
            self._log_file = None

    def check_origin(self, origin):
        return True


def websocket_handler_main(app):
    '''websocket main procedure'''
    pid = os.fork()
    if pid > 0:
        pid_file = open('/var/run/websocket_serverd.pid', 'w')
        pid_file.write(str(pid)+"\n")
        pid_file.close()
        sys.exit()

    if pid == 0:
        http_server = tornado.httpserver.HTTPServer(app)
        http_server.listen(WS_LISTENING_PORT)
        my_ip = socket.gethostbyname(socket.gethostname())
        print('*** Websocket Server Started at %s***' % my_ip)
        tornado.ioloop.IOLoop.instance().start()


APP = tornado.web.Application([
    (r'/ws', WebSocketServer),
])

if __name__ == "__main__":
    websocket_handler_main(APP) 

インストール


こんな手順で

    
chmod 755 ./websocket_serverd.py 
cp ./websocket_serverd.py /usr/local/sbin
mkdir /usr/lib/systemd/system
sudo cp ./websocket_server.service /usr/lib/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable websocket_server

再起動かsystemctlでサービス開始。クライアントプログラムはここに載っているHTMLのコードをそのまま使う。

2017年6月24日土曜日

Bluetooth audio 垂れ流し

ラズパイで音を鳴らしてみたくてDACを頼んだは良いけど未だ来ない。涙目にやられて海外に注文する俺が悪い。来る前にとりあえずBluetoothスピーカーもどきにしておく。

インストール&設定&実行


ここを頼りに進めようとして、長いなぁとげんなりしていたら、コメント欄にがいたのでそっちを使う。

A simple Bluetooth Speaker Daemon for the Raspberry Pi 3

    sudo -i
bash <(curl -s https://raw.githubusercontent.com/lukasjapan/bt-speaker/master/install.sh)

おわり。もう動いているのでiPhoneからBluetoothデバイス探索して繋げて音楽でも再生すれば流れる。


サービスの開始停止は

  • sudo systemctl stop bt_speaker
  • sudo systemctl start bt_speaker



2017/6/25 追記
カメラとマイクでレコーダー載せてったら使えなくなっていた…なんでじゃ…。
なので、結局ここの手順を実施(rpi-update以外)。
hcitoolとかbluezとか知るべき事があったんだからこれで良かったんだ…きっと。

2017年6月20日火曜日

chromiumをつかったキヨスク

全画面UIでデスクトップ覆われたKIOSKをやってみるとすごくデバイスっぽいのでやってみたかったのでやってみた

自動起動の設定(piだけど)


普通なら別ユーザーを割り当ててデフォルトログインユーザーにしてとやるのだろうけど、面倒なのでpiのまま。ここの4の前半だけ使う。

GUIログインの自動起動設定を開いて

    cp ~/.config/lxsession/LXDE-pi/autostart ~/.config/lxsession/LXDE-pi/autostart.org
vi ~/.config/lxsession/LXDE-pi/autostart

設定を変更する

    @lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
# @xscreensaver -no-splash
@point-rpi

@xset s off
@xset s noblank
@xset -dpms
@chromium-browser --noerrdialogs --kiosk --incognito http://localhost/

apacheが動いていればデビアンなデフォルト画面がログイン後に邪魔をしてくれる。ホントに邪魔だからAlt+F4で閉じる。元に戻しておしまい。

いわゆるアレ

やっぱり手順で困らなかったのでリンクとズルコマンドだけ

apache2 php5 php5-mysql mysql-server phpmyadmin


詳しくはここ

    sudo apt-get install apache2 php5 php5-mysql mysql-server phpmyadmin

2017年6月19日月曜日

2017年6月18日日曜日

ELECOM WDC-433DU2Hをラズパイで

遅かったな、もう買っちまったぜ
ラズパイで使えるようにしてた神様がいたので助かった。

それでも一度やってみたら躓いて、今はやらなくても良い手順もあったようなのでメモ(そしてこれもすぐ腐海にのまれる...)


ビルド環境の準備


ほぼここの内容。今のjessieはgccのバージョンを問題にしないみたいなので、色々スキップ。たたいたコマンドはこれ

    sudo apt-get -y install ncurses-dev
sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source && sudo chmod +x /usr/bin/rpi-source && /usr/bin/rpi-source -q --tag-update
sudo apt-get install bc
rpi-source

多分、ここに至るまで apt-get upgrade を叩いたことが無い のが良かったのかなぁと...


ドライバの準備とインストール

ほぼここの内容。WDC-433DU2Hの定義はすでに含まれてた。


ドライバの取得して展開して編集して

    wget https://github.com/gnab/rtl8812au/archive/master.zip
unzip master.zip
cd rtl8812au-master
vi Makefile

Makefileはi386にn、RPIにy

    CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_JB_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = n
CONFIG_PLATFORM_ARM_RPI = y

makeしてインストール

    make
sudo make install

後は/etc/network/interfaceにwlan2を追加して云々してsyncしてsudo reboot



無駄金にならず済んだ...

ラズパイをアクセスポイント化

ラズパイを持ち歩いているときでも、ラズパイにWifiで繋がりたい。でもネットワークにつなげられる時はラズパイ自身もインターネットに繋がりたい。なので、ちっこいUSBドングルはラズパイ自身のインターネット接続用。Pi3自身のWifiはアクセスポイントとして他のクライアントから繋ぎにこれるようにしてみた。

やり方も、必要なものも、まるまるここに書いてあった。

インストール


apt-getするだけ

    pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install hostapd dnsmasq

hostapdの設定


/etc/hostapd/hostapd.confを作って編集。内容はここのCONFIGURE HOSTAPDを丸写し。パスフレーズだけこんな感じで変更。

    # The network passphrase
# wpa_passphrase=raspberry
wpa_passphrase=iukosoyorasshaimashita

作った設定を読み込ませるために /etc/default/hostapd を編集

    #DAEMON_CONF=""
DAEMON_CONF="/etc/hostapd/hostapd.conf"

dnsmasqの設定


手順はここのCONFIGURE DNSMASQを丸写し。オリジナルをリネームしてから/etc/dnsmasq.confを作り編集。ここPaste the following into the new file:の内容をコピーしてベタリと貼り付け。待ち受けアドレスとDHCPサーバとして配布するアドレスの範囲だけ変えた。

    interface=wlan0      # Use interface wlan0
#listen-address=172.24.1.1 # Explicitly specify the address to listen on
listen-address=192.168.100.100
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere
server=8.8.8.8       # Forward DNS requests to Google DNS
domain-needed        # Don't forward short names
bogus-priv           # Never forward addresses in the non-routed address spaces.
# dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time
dhcp-range=192.168.100.150,192.168.100.199,12h

IPv4フォワード設定

ここのSET UP IPV4 FORWARDINGに従い進めた。


なにはともあれ、IPv4フォワードの有効化。/etc/sysctl.confを開いて編集

    # Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
net.ipv4.ip_forward=1

例だとwlan0へ繋ぎに来たクライアントを有線LANのeth0から外に出してあげてるので、ここをwlan0に繋ぎに来た、wlan1から外に出してと読み替えて以下のコマンドを実施。

    pi@raspberrypi:~ $ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
pi@raspberrypi:~ $ sudo iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
pi@raspberrypi:~ $ sudo iptables -A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED  -j ACCEPT
pi@raspberrypi:~ $ sudo iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
pi@raspberrypi:~ $ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

最後に自動起動の設定をする。/etc/rc.localを編集

    iptables-restore < /etc/iptables.ipv4.nat  
exit 0

保存したらサービス開始

    pi@raspberrypi:~ $ sudo service hostapd start 
pi@raspberrypi:~ $ sudo service dnsmasq start 

SSIDの候補になんか出てくるかと思いきや出なかったので、困ったときのリブート


SSIDを変えたければ/etc/hostapd/hostapd.confを編集

    # This is the name of the network
# ssid=Pi3-AP
ssid=KEISATSUJYANAI
多分SSH切れてるけど。

Wifiの設定

2019-04-04 追記 : どういうワケか今更この記事へのアクセスが頻発していたので注意喚起 このWifi設定はJessie以後(Jessie自身も含む)では正しく無いやり方です

ラズパイをWifi中継器(ルーター?)的な使い方させたいので、まずはWifiの設定


やりたい設定


使っているのはRaspberry Pi 3 Model B。Wifiのドングルを一個追加。

  • wlan0-標準のWifi
    後でアクセスポイントとして使う。静的IPを設定。
  • wlan1-Wifiドングル
    Raspberry自身からアクセスポイントへ接続。DHCPでIPを恵んでもらう。

wlan1-Wifiドングル


まずはラズパイ自身をアクセスポイントに接続しなきゃなので、パスフレーズを生成

    pi@raspberrypi:~ $ wpa_passphrase hogeSSID hogePassphrase
network={
 ssid="hogeSSID"
 #psk="hogePassphrase"
 psk=8187709bc50de0f88093f429...8e8
}

Wifiの接続設定をSSID用にコピーして

    pi@raspberrypi:~ $ cd /etc/wpa_supplicant
pi@raspberrypi:~ $ sudo cp wpa_supplicant.conf wpa_hogeSSID.conf

コピーしたファイルに接続設定を追加(countryもGBからJPに)

    country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
 ssid="hogeSSID"
 #psk="hogePassphrase"
 psk=8187709bc50de0f88093f429...8e8
}

wlan1の設定が作ったWifi設定を参照するよう /etc/network/interfaces の iface wlan1 ... のところを編集。

    allow-hotplug wlan1
iface wlan1 inet manual
 wpa-conf /etc/wpa_supplicant/wpa_hogeSSID.conf

ネットワークを下げ上げしておしまい

    pi@raspberrypi:~ $ sudo ifdown wlan1
pi@raspberrypi:~ $ sudo ifup wlan1

とにかくつながったのでおしまい

    ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument

wlan0-標準のWifi


固定IPでDHCPのクライアントとしては使わないので、/etc/dhcpcd.confに以下を追加。

    denyinterfaces wlan0

wlan0の設定を変えるので /etc/network/interfaces の iface wlan0 ... のところを編集。

    allow-hotplug wlan0
iface wlan0 inet static
 address 192.168.100.100
 netmask 255.255.255.0
 network 192.168.100.0
 broadcast 192.168.100.255

ネットワークを下げ上げしておしまい

    pi@raspberrypi:~ $ sudo ifdown wlan0
pi@raspberrypi:~ $ sudo ifup wlan0

HDMI出力を1024 x 600のモニタで

ラズパイ持ち歩いてデモする事が多かった時期があり、ちょっとしたモニタがあればなあと思ったので買ってみた。


HDMIの出力を写してみると...

  • 全体を使い切れてない
  • ので枠がみっともない
  • アスペクト比が変

だったのでせめて全体を使えるようにした。
参考にしたのはここ

config.txt


SDカードのbootパーティションにあるconfig.txtを編集する。このパーティション自身はfat32なので、Mac とか Windows でも読めるので、適当なテキストエディタで開く。


設定変更


27行目当たりのところを

    # uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

こう直した

    # uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
hdmi_group=2
hdmi_mode=85

多分おっけー


...ここによると1280x600のモードなのか? 確かに若干縦長な気もする。がVNCのいまいちなレスポンスでデモするのがアレってだけなので、これでいいや。

2017年6月1日木曜日

2016年8月6日土曜日

Raspberry Pi で DDNS

ここ超最高

レトロな6桁

ちょっと前に、ラズパイを買ったPIMORONIから新製品のお知らせメールが届いた。そこにはドットマトリクスがカワイイモジュールのお知らせ。何に使うとかそういうの一切なしに即注文。ついでにラズパイzeroをもう一枚。
Micro Dot pHAT
赤と緑が売られていた。両方美しいので両方買った。商売上手が過ぎる。

プログラムサンプルもPIMORONIのページがからダウンロード出来るので、ピンヘッダとドットマトリクスのモジュールを基板に半田付けすれば、ラズパイにくっつけて即遊べる。秋月で部品買ってブレッドボードで結線してというのも楽しいけど、これはこれでオモチャ感MAXでいい。

で、出来れば電源入れたら即レトロ時計になってほしいのでサンプルの時計スクリプトをサービス化してみた。

exampleのclockをmicrodotphat_clockd.pyとしてコピーして編集。
ここを参考にしてサービス化対応。
while True: の手前に...

pid = os.fork()
if pid > 0:
 f = open('/var/run/microdotphat_clockd.pid','w')
 f.write(str(pid)+"\n")
 f.close()
 sys.exit()
if pid == 0:

あとは、while True: のループのインデントを下げてスクリプトはおしまい。

で、同じくここを参照して、microdotphat_clock.serviceを作る。
[Unit]
Description=Pimoroni micro dot phat clock service

[Service]
ExecStart=/usr/local/sbin/microdotphat_clockd.py
Restart=always
Type=forking
PIDFile=/var/run/microdotphat_clockd.pid

[Install]
WantedBy=multi-user.target
で、このファイルを /usr/lib/systemd/system 配下にコピー(適当な場所に作ったものをシンボリックリンクして5分はまる)する。あとは
sudo systemctl daemon-reload
sudo systemctl enable microdotphat_clock
あぁ、かわえぇ。

電源入れてNTPの時刻同期でピコっと表示がかわるとこなんかたまらん。

ニキシー管思い出してしまったけど、値段見て忘れよう。

2016年8月4日木曜日

RPiインストールメモ(2)

Raspbianの導入初期に入ってしまう不要ファイルの削除を行い、空き領域をBleachBitでクリーンアップしてイメージバックアップサイズの抑制をしてみた。

不要と判断するものは以下の基準。
  • X(GUI)
  • game
とりあえず、パッケージの一覧を取得してそこから選んで削除。パッケージの一覧は
dpkg -l
で取得。
パッケージは以下にて削除。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get --purge remove adwaita-icon-theme 
sudo apt-get --purge remove alacarte
sudo apt-get --purge remove aspell
sudo apt-get --purge remove aspell-en 
sudo apt-get --purge remove blt
sudo apt-get --purge remove bluej
sudo apt-get --purge remove claws-mail
sudo apt-get --purge remove claws-mail-i18n
sudo apt-get --purge remove desktop-file-utils
sudo apt-get --purge remove dictionaries-common
sudo apt-get --purge remove dillo
sudo apt-get --purge remove epiphany*
sudo apt-get --purge remove gconf*
sudo apt-get --purge remove geany*
sudo apt-get --purge remove gnome*
sudo apt-get --purge remove gtk*
sudo apt-get --purge remove idle*
sudo apt-get --purge remove leafpad
sudo apt-get --purge remove minecraft-pi
sudo apt-get --purge remove penguinspuzzle
sudo apt-get --purge remove pi-package*
sudo apt-get --purge remove pulseaudio-module-x11
sudo apt-get --purge remove scratch
sudo apt-get --purge remove wolfram-engine
sudo apt-get --purge remove X11* 
sudo apt-get --purge remove x2x 
sudo apt-get --purge remove xarchiver 
sudo apt-get --purge remove xauth
sudo apt-get --purge remove xcompmgr
sudo apt-get --purge remove xdg*
sudo apt-get --purge remove xfconf
sudo apt-get --purge remove xfonts* 
sudo apt-get --purge remove xinit 
sudo apt-get --purge remove xkb-data   
sudo apt-get --purge remove xpdf
sudo apt-get --purge remove xserver*
sudo apt-get --purge remove python-pygame
sudo apt-get --purge remove python3-pygame
sudo apt-get autoremove

ついでにいらないディレクトリも。
rm -rf ~/Desktop
rm -rf ~/Documents
rm -rf ~/Downloads
rm -rf ~/Music
rm -rf ~/Pictures
rm -rf ~/Public
rm -rf ~/Templates
rm -rf ~/Videos
rm -rf ~/python_games



これでバックアップすれば、イメージサイズも抑制されると思いきや、1.6GBから1.9GBに跳ね上がってしまった。結局削除可能フラグがついたままの不可視データがディスク上に残ってしまうので、これがイメージに残ってしまうのでなんとかきれいにしなければならない。nautilus-wipeが使えればそれを使いたかったが、ubuntu16.04LTS への導入の仕方がさっぱりだったので、Ubuntu Software から BleachBit を導入し、空き領域をクリアすることにした。
ソフトウェアインストール後、ubuntuにSDを認識させて以下の手順で空き領域をクリーンな状態にする。
  1. BleachBit(as root) を起動
  2. 設定画面はClose
  3. メニューから[ファイル]->[フリースペースをワイプする]
  4. フォルダの"root"を選択->[OK]
  5. 進捗の残り時間はあてにならないのでひたすら待つ。
  6. なんか、時々画面がモノトーンになってものすごく不安になるけどひたすら待つ。

この作業の後にバックアップイメージを作ったところ0.9Gになった。
-rw-r--r-- 1 501 dialout 1625M  8月  3 19:34 01_RPi_Base_With_X.img.gz
-rw-r--r-- 1 501 dialout 1926M  8月  3 22:55 02_RPi_Base_No_X_and_useless.img.gz
-rw-r--r-- 1 501 dialout  939M  8月  4 00:39 03_RPi_Base_Wiped_free_area.img.gz

そこそこスッキリした。

2016年8月3日水曜日

RPiインストールメモ(1)

何度かラズパイのインストールを繰り返して、なんとなく自分が使う基本的な設定が固まったのでメモ。
手順は Raspberry Pi 3 で確認。
  • SD作成
    NOOBS Lite を使用して Raspbian を入れる
  • ネットワーク設定(1)
    WiFiの固定IPをインフラストラクチャ環境用に割り当てる
  • ラズパイ設定
    I2C,SPI,カメラの有効化,日本語環境
  • ネットワーク設定編(2)
    USB-WiFi(wlan1)にAd-hoc環境用に固定IPを割り当てる
※wlan1用のUSB-Wifiは接続しないで始める。
  1. SD作成
    1. NOOBS Liteのインストール
      なぜか手持ちのNOOBSはウンともスンとも言わないので、NOOBS Liteを使う。インストールの時は地域をUS、キーボードはJPでインストールする。
  2. ネットワーク設定(1)
    アクセスポイントへの接続設定を行い固定IPを割り当てる
    1. Wireless LAN(wlan0) の接続設定
      既存の設定ファイルをテンプレートとして、SSIDごとにコピーする
      > sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant_[SSID].conf
                
      設定内容を生成する
      > wpa_passphrase [SSID] [KEY]
                
      出力された内容をコピーする
      network={
       ssid="SSID-HOGE"
       #psk="WIFI-KEY-HOGE"
       psk=0d3e2e20346f004de5f49aed4aa52b740b1b0254f88dc25820a7696090414afc
      }
                
      コピーした内容を設定ファイルに貼り付け
      > sudo vi /etc/wpa_supplicant/wpa_supplicant_[SSID].conf
                
      country=JP
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      network={
       ssid="SSID-HOGE"
       #psk="WIFI-KEY-HOGE"
       psk=0d3e2e20346f004de5f49aed4aa52b740b1b0254f88dc25820a7696090414afc
      }
                
    2. 固定IP設定
      > sudo vi /etc/network/interfaces
              
      iface wlan0 net static
       address 192.168.0.118
       netmask 255.255.255.0
       gateway 192.168.0.1
       dns-nameservers 192.168.0.1
       wpa-conf /etc/wpa_supplicant/wpa_supplicant_[SSID].conf
              
  3. ラズパイ設定
    1. Raspberry Pi Configuration による基本設定
      X で Menu -> Preferences -> Rasberry Pi Configuration
      1. System
        Change Password → 変更
        Hostname → テキトーに
        Boot -> To CLI
        Auto Login → チェックを外す
      2. Interfaces
        Camera → Enabled
        SPI → Enabled
        I2C → Enabled
      3. Localisation
        Set Locale → Language → ja
        Set Locale → Country → JP
        Set Timezone → Area → Japan
        Set Keyboard → Japan + Japanese(OADG109A)
        Set WiFi Country → JP
    2. コンソールの文字化け対処
      コマンドで起動できる日本語コンソール環境。毎回起動しなきゃならないのがアレだが。
      > sudo apt-get install jfbterm
              
    3. Xの文字化けに対する対処
      jfbtermを入れた時点で文字化けそのものには対処出来ているが、フォントがアレなので。Xを使う予定がないならスキップスキップ。
      > sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese*
              
  4. ネットワーク設定編(2)
    アドホック用の設定を行い固定IPを割り当てる。
    ※wlan1用のUSB-Wifiを接続して始める。
    > sudo vi /etc/network/interfaces
        
    allow-hotplug wlan1
    iface wlan1 net static
     address 192.168.1.118
     netmask 255.255.255.0
     wireless-channel 2
     wireless-mode ad-hoc
     wireless-essid [SSID]
     wireless-key [key]
        
  5. FTPサーバー
    sambaもいいけど速度的にアレなので、古き良きFTP。
    1. インストール
      > sudo apt-get install vsftpd
              
    2. 設定
      > sudo vi /etc/vsftpd.conf
              
      以下2項目をそれぞれ探して、行頭のコメントアウトを削除。
      #write_enable=YES
      #local_umask=022