RPi3にubuntu16.04(1) インストール
0RaspberryPi3にubuntu16.04をインストールします。
ubuntuのサイトからRPi3用のイメージファイルをダウンロード。SDに書き込みます。
1 2 |
wget http://www.finnie.org/software/raspberrypi/ubuntu-rpi3/ubuntu-16.04-preinstalled-server-armhf+raspi3.img.xz xzcat ubuntu-16.04-preinstalled-server-armhf+raspi3.img.xz | sudo dd of=/dev/sdX |
SDを延命
起動したら、まずSDの延命措置を施しましょう。
やることはRPi2のubuntu14.04インストールと同じですが、変更元ファイルの内容が一部違っていたりするので、ここでは16.04での変更内容を示します。
最初に/tmpと/var/tmpをtmpfsに追い出します。/etc/fstabに以下の変更を行います。
1 2 3 4 5 |
LABEL=cloudimg-rootfs / ext4 defaults 0 0 LABEL=system-boot /boot/firmware vfat defaults 0 1 proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0 |
つぎに、ログファイルもtmpfsに置くようにします。
RPi用のtransientlogスクリプトを使用します。
このスクリプトは、RPi起動時にログファイルをtmpfsに移動し、シャットダウン時にSDに書き戻すようになっているので、シャットダウンしてもログファイルの内容が保持されます。
1 2 3 4 |
wget https://github.com/senju/transientlog/archive/master.zip unzip master.zip cd transientlog-master chmod +x install.sh |
install.shを変更してinsservのパスを追加します。
148 149 150 151 152 153 |
#! /bin/sh cp transientlog.init /etc/init.d/transientlog chmod a+x /etc/init.d/transientlog #insserv transientlog /usr/lib/insserv/insserv transientlog |
また、transientlog.initをそのままインストールするとサービスのstart/stopがエラーになるので、一部変更します。
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in # 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 exit 0 ;; # 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 exit 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in # 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 exit 0 ;; # 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 exit 1 ;; esac |
変更を保存したらインストールします。
1 |
sudo ./install.sh |
その他の変更は、RPi2のホームディレクトリのファイル以降の内容と同じです。
そのほか
タイムゾーン、キーボード、ロケール設定をRPi2のタイムゾーン、キーボード、ロケール設定と同様に行います。
ついでにlogrotateでログファイル肥大化抑制もやっておきましょう。
RPi3にubuntu16.04(2) bluetoothとwi-fiを使う
0Bluetooth関連パッケージのインストール
pi3上のbluetoothを使うために、raspbianではbluez-firmware
とpi-bluetooth
パッケージが追加されていますが、これらはubuntuには含まれていません。
あちこち探してみると、ubuntu-pi-flavour-makerというプロジェクトが見つかりました。
ubuntuをベースに、pi2/3のubuntu MATE、lubuntu、xbuntuなどをリリースしていて、いずれもpi3のbluetoothとwifiに対応しています。
このubuntu-pi-flavour-makerのPPAを追加して、bluetoothとwifi関連のパッケージをインストールします。
1 2 3 |
sudo add-apt-repository ppa:ubuntu-pi-flavour-makers/ppa sudo apt-get update sudo apt-get install bluez bluetooth libbluetooth3 bluez-firmware pi-bluetooth |
インストールが完了したら、hciconfig
コマンドでbluetoothレシーバが認識されているか確認します。
1 2 3 4 5 6 |
ubuntu@ubuntu:~$ hciconfig hci0: Type: BR/EDR Bus: UART BD Address: C2:58:90:B8:27:EB ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING RX bytes:820 acl:0 sco:0 events:53 errors:0 TX bytes:1850 acl:0 sco:0 commands:49 errors:0 |
bluetoothキーボードのペアリングと自動接続
本体側の準備ができたらキーボードを接続します。今回使用したのはiBuffaloのBSKBB24BKです。
設定はbluetoothctl
コマンドで行います。
1 2 3 |
ubuntu@ubuntu:~$ sudo bluetoothctl [NEW] Controller C2:58:90:B8:27:EB ubuntu [default] [bluetooth]# |
レシーバが認識されています。
キーボードのペアリングボタンを押して待機状態にしたら、scan on
と入力してデバイスをスキャンします。
1 2 3 4 5 |
[bluetooth]# scan on Discovery started [CHG] Controller C2:58:90:B8:27:EB Discovering: yes [NEW] Device EF:D0:89:DC:2C:26 BSKBB24 [bluetooth]# |
デバイスが見付かったらpair
コマンドでペアリングします。
1 2 3 4 5 6 7 8 9 10 11 |
[bluetooth]# pair EF:D0:89:DC:2C:26 Attempting to pair with EF:D0:89:DC:2C:26 [CHG] Device EF:D0:89:DC:2C:26 Connected: yes [CHG] Device EF:D0:89:DC:2C:26 Modalias: usb:v0A5Cp4502d011B [CHG] Device EF:D0:89:DC:2C:26 UUIDs: 00001000-0000-1000-8000-00805f9b34fb [CHG] Device EF:D0:89:DC:2C:26 UUIDs: 00001124-0000-1000-8000-00805f9b34fb [CHG] Device EF:D0:89:DC:2C:26 UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device EF:D0:89:DC:2C:26 Paired: yes Pairing successful [CHG] Device EF:D0:89:DC:2C:26 Connected: no [bluetooth]# |
ペアリングされたデバイスは、paired-devices
コマンドで確認できます。
1 2 3 |
[bluetooth]# paired-devices Device EF:D0:89:DC:2C:26 BSKBB24 [bluetooth]# |
ペアリングはrpiを再起動しても維持されます。デバイスにはconnect
コマンドで接続します。
1 2 3 4 5 |
[bluetooth]# connect EF:D0:89:DC:2C:26 Attempting to connect to EF:D0:89:DC:2C:26 [CHG] Device EF:D0:89:DC:2C:26 Connected: yes Connection successful [BSKBB24]# |
プロンプトが[bluetooth]
から[BSKBB24]
に変わっています。以降はデバイスを指定しなければBSKBB24に対するコマンドと解釈されます。
trust
コマンドを実行して、以降は自動で接続するようにしておきます。
1 2 3 4 |
[BSKBB24]# trust [CHG] Device EF:D0:89:DC:2C:26 Trusted: yes Changing trust succeeded [BSKBB24]# |
たぶん、ここまでの操作はUSBキーボードかsshで行っているのではないでしょうか。
一度接続を切って再起動し、自動的に接続するか試してみましょう。
1 2 3 4 5 6 7 |
[BSKBB24]# disconnect Attempting to disconnect from EF:D0:89:DC:2C:26 Successful disconnected [CHG] Device EF:D0:89:DC:2C:26 Connected: no [bluetooth]# exit [DEL] Controller C2:58:90:B8:27:EB ubuntu [default] ubuntu@ubuntu:~$ sudo reboot |
wifi設定
まずはrpiのwifiを有効にします。
/etc/network/interfaces
にwlan0
の設定を追記します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Source interfaces # Please check /etc/network/interfaces.d before changing this file # as interfaces may have been defined in /etc/network/interfaces.d # See LP: #1262951 source /etc/network/interfaces.d/*.cfg auto wlan0 iface wlan0 inet manual |
追加したwlan0
を起動してifconfig
で確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
ubuntu@ubuntu:~$ sudo ifup wlan0 ubuntu@ubuntu:~$ ifconfig enxb827eb683af2 Link encap:Ethernet HWaddr b8:27:eb:68:3a:f2 inet addr:192.168.2.41 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::ba27:ebff:fe68:3af2/64 Scope:Link inet6 addr: 2408:13:11c8:cc00:ba27:ebff:fe68:3af2/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:280 errors:0 dropped:0 overruns:0 frame:0 TX packets:182 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:29416 (29.4 KB) TX bytes:26209 (26.2 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:160 errors:0 dropped:0 overruns:0 frame:0 TX packets:160 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:11840 (11.8 KB) TX bytes:11840 (11.8 KB) wlan0 Link encap:Ethernet HWaddr b8:27:eb:3d:6f:a7 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ubuntu@ubuntu:~$ |
wifi関連のパッケージ、wpasupplicant
、wireless-tools
、iw
をインストールします。
1 |
sudo apt-get install wpasupplicant wireless-tools iw |
iwlist
コマンドでアクセスポイントを検索します。
1 2 3 4 5 6 7 8 9 10 |
ubuntu@ubuntu:~$ sudo iwlist wlan0 scan | grep ESSID ESSID:"WARPSTAR-01504C" ESSID:"WARPSTAR-01504C-W" ESSID:"aterm-8deeda-gw" ESSID:"elecom2g-1788A8" ESSID:"e-timer-1788A8" ESSID:"auhome_bXvkCh" ESSID:"catch22" ESSID:"Buffalo-G-5538" ubuntu@ubuntu:~$ |
この例ではcatch22
に接続します。
wpa_passphrase
コマンドで接続キーを生成して/etc/wpa_supplicant/catch22.conf
に保存します。接続先はcatch22
、パスフレーズはsortie50
です。
1 |
sudo sh -c "wpa_passphrase catch22 sortie50 > /etc/wpa_supplicant/catch22.conf" |
生成された/etc/wpa_supplicant/catch22.conf
の内容はこのようになっています。
1 2 3 4 5 |
network={ ssid="catch22" #psk="sortie50" psk=81a7fe6297535368a04df23b1cb2fadca7e058436deacd13c7136ea8fa949f1c } |
3行目に生のパスフレーズがコメントアウトされています。必要なければこの行は削除しておきましょう。
ネットワーク起動時にcatch22.conf
を読み込んでdhcp接続するように/etc/network/interfaces
を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Source interfaces # Please check /etc/network/interfaces.d before changing this file # as interfaces may have been defined in /etc/network/interfaces.d # See LP: #1262951 source /etc/network/interfaces.d/*.cfg auto wlan0 #iface wlan0 inet manual iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/catch22.conf iface default inet dhcp |
設定は以上です。
wlan0
を再起動してアクセスポイントに接続します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
ubuntu@ubuntu:~$ sudo ifdown wlan0 && sudo ifup wlan0 Internet Systems Consortium DHCP Client 4.3.3 Copyright 2004-2015 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/b8:27:eb:3d:6f:a7 Sending on LPF/wlan0/b8:27:eb:3d:6f:a7 Sending on Socket/fallback DHCPRELEASE on wlan0 to 192.168.3.1 port 67 (xid=0x6a770bf0) Internet Systems Consortium DHCP Client 4.3.3 Copyright 2004-2015 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/b8:27:eb:3d:6f:a7 Sending on LPF/wlan0/b8:27:eb:3d:6f:a7 Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 3 (xid=0x7210bc27) DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5 (xid=0x7210bc27) DHCPREQUEST of 192.168.3.3 on wlan0 to 255.255.255.255 port 67 (xid=0x27bc1072) DHCPOFFER of 192.168.3.3 from 192.168.3.1 DHCPACK of 192.168.3.3 from 192.168.3.1 bound to 192.168.3.3 -- renewal in 13411 seconds. ubuntu@ubuntu:~$ |
アクセスポイントのIPアドレスは192.168.3.1
です。dhcpで192.168.3.3
のアドレスが割り当てられました。
ifconfig
で確認してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
ubuntu@ubuntu:~$ ifconfig enxb827eb68f23a Link encap:Ethernet HWaddr b8:27:eb:68:3a:f2 inet addr:192.168.2.41 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::ba27:ebff:fe68:3af2/64 Scope:Link inet6 addr: 2408:13:11c8:cc00:ba27:ebff:fe68:3af2/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:382 errors:0 dropped:0 overruns:0 frame:0 TX packets:260 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:32372 (32.3 KB) TX bytes:41483 (41.4 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:160 errors:0 dropped:0 overruns:0 frame:0 TX packets:160 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:11840 (11.8 KB) TX bytes:11840 (11.8 KB) wlan0 Link encap:Ethernet HWaddr b8:27:eb:3d:6f:a7 inet addr:192.168.3.3 Bcast:192.168.3.255 Mask:255.255.255.0 inet6 addr: fe80::ba27:ebff:fe3d:6fa7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:52 errors:0 dropped:2 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20278 (20.2 KB) TX bytes:1868 (1.8 KB) ubuntu@ubuntu:~$ |
zero購入とraspbianインストール(3) raspbianインストール
0RaspbianダウンロードページからOSイメージをダウンロードします。
ダウンロード所要時間はフルイメージで約5分程度です。
microSDカードへの書き込み方法については、この記事では扱いません。
方法がわからなかったり自信がない場合は、きちんと理解している人に依頼して書き込んでもらってください。
microSDへの書き込みが完了したらzeroのSDスロットに差し、各ケーブルを接続して起動!
と、ここで想定外の事態が発生しました。
ケーブルの重みでzeroがズリズリと持っていかれてしまいます。とくにHDMIケーブルが強引に基盤を浮き上がらせる勢いです。
これだけ小さくて軽いのだから当然と言えばあまりに当然ではありますが、これではどうにもダサダサです。
と言って無理に固定するとコネクタが壊れはしないかと心配です。
そこで、このようにしました。
セロテープでケーブルを留めています。
これならコネクタに無理な力がかかることがなく、zero基盤も一応安定した状態(実は少し浮き上がっている)に固定できます。
ともあれ、無事起動できました。
体感的には初代Model Bと変わりません。スペックが一緒だから当たり前ですが。同じSDをModel Bに差して使ってみても、とくに違いは感じられませんでした。
ということで、zeroを買ってみてわかったこと。
- アダプタとケース付きセットがお得。
- Model A+ならzeroで足りる。
- 時と場合によっては小さすぎる。
zero購入とraspbianインストール(2) 本体以外に必要なもの
0zeroはUSBとHDMI端子がそれぞれmicro-USB、mini-HDMIとなっており、従来モデルで使っていたキーボードやHDMIケーブルをそのままでは流用できません。
また、USBポートがひとつしかなく、LANも非搭載です。
まず最低限、モニタに画面を表示してキーボードを接続するだけでも、mini-HDMIケーブル(またはアダプタ)とmicro-USBプラグ/USB-Aコネクタアダプタが必要です。
さらにRaspbianでマウスを使い、ネットワークに接続するには、3ポート以上のUSBハブとUSB-LANアダプタが必要になります。
そしてもちろん、microSDカードも。
microSDカード(580円)、mini-HDMIケーブル(729円)、スマホ用USB-OTGハブ(1,280円)、USB-有線LANアダプタ(1,103円)、税込み合計3,987円でした。なかなか切ない金額です。zeroが8台買えます。
Pi Zero + Adaptorsセット(6.67ポンド)を買った方が、プラス3.34ポンドでHDMIアダプタとmicro-USBアダプタが入手できて得でした。
というか、どうせケースも欲しくなるのだから、アダプタとケース付きのPi Zero + Adaptors + Pibow Zero Case(10ポンド)を買うべきでした。
zero購入とraspbianインストール(1) zeroを買う
0遅ればせながらRaspberry-Pi zeroを買いました。
というわけで、zeroの購入からRaspbianインストールまでをレポートします。
いまのところ日本国内で正規ルートの販売はなさそうですから、海外通販で個人輸入することになります。
販売元を検索するといろいろ出てきますが、手っ取り早く探すならhttp://whereismypizero.com/で主要な販売元の在庫を一括チェックするのがお勧めです。
しょっちゅうチェックするのが面倒なら、販売元のページでメールアドレスを登録しておけば入荷通知がメールされます。
私はPIMORONIから購入しました。
依然として品薄状態が続いていますが、最近はいくらか在庫が安定してきたようで、In Stockして即時売り切れということはなく数日間は在庫があるようです。
また、「1人1台限り」となっているものの、実際には「1発注1台」です。別発注にすれば複数台買うこともできます(ただし、1台ごとにそれぞれ送料がかかります)。
価格は、zero本体が3.33ポンド、送料5.50ポンドで計8.83ポンドです(商品リストの本体価格は4ポンドと表示されていますが現地の税込み価格らしく、請求額は3.33ポンドになります)。
1ポンド155円なら送料込み1,368円。
実際に支払う金額は、決済業者の手数料が加算されたレートになります。たとえばPayPalなら1ポンド161円換算で1,422円、クレジットカードなら157円換算で1,390円といった感じです。
さて、注文を済ませると一週間ほどで到着します。
上記の送料5.50ポンドの配送方法(International Standard)なら日本郵便がポストに入れてってくれます。送料8ポンドのTracking & Signならイギリス国内はRoyal Mail、イギリスを出たあとは日本郵便のサイトから配送状況をトラッキングできます。
送られてきたクッション封筒の中身は、袋に入ったzeroが1枚だけ。箱もなければ関連商品の宣伝チラシもなし。実にあっさりとしたものです。
基盤を出してみると、想像していた以上に小さいことに驚きました。
電車の切符ぐらい。初代Model Bのおよそ3分の1。SDカード2枚分という小ささです。
RPi2でubuntu14.04LTS(12) xcompmgrで透過ターミナルとフェードイン/アウト
0コンポジットマネージャーxcompmgrを使うと、ターミナルの背景を半透明にしたり、ウインドウやメニューをフェードイン/アウトさせたりできます。
1 |
sudo apt-get -y install xcompmgr |
~/.config/openbox/autostartにxcompmgrを追加します。
19 20 21 22 23 24 |
xset r rate 250 25 & xcompmgr -f -D10 -I0.2 -O0.15 & nitrogen --restore & spacefm --daemon-mode & tint2 & conky -q & |
- -f フェードイン/アウト有効
- -D フェード処理周期(msec)
- -I フェードインの周期ごとの変化量
- -O フェードアウトの周期ごとの変化量
ウインドウとメニューに影を付けるには、次のようにします。
1 |
xcompmgr -f -D10 -I0.2 -O0.15 -c -t8 -l6 -r2 -o0.4 & |
- -c 影有効
- -t 上辺からのオフセット位置
- -l 左辺からのオフセット位置
- -o 影の非透明度
lxterminalの背景を透過させるには、~/.config/lxterminal/lxterminal.confを編集してbgalphaを設定するか、編集メニューの設定ダイアログを開き、スタイルタブの背景色ボタンをクリックしてOpacityを設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[general] fontname=DejaVu Sans Mono 10 selchars=-A-Za-z0-9,./?%&#:_ scrollback=1000 bgcolor=#282828282828 bgalpha=53000 fgcolor=#aaaaaaaaaaaa disallowbold=false cursorblinks=false cursorunderline=false audiblebell=false tabpos=top hidescrollbar=false hidemenubar=false hideclosebutton=false disablef10=false disablealt=false |
RPi2でubuntu14.04LTS(11)logrotateでログファイル肥大化抑制
0tmpfsに追い出した/var/logが大きくなりすぎないように、logrotateでログの保存期間を抑制します。
この例では、1日ごとまたは500KBごとにファイルを分け、1つ前までのファイルを残すようにします。
まずは/etc/logrotate.confを編集してデフォルトとwtmp、btmpの設定を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# see "man logrotate" for details # rotate log files weekly #weekly daily # use the syslog group by default, since this is the owning group # of /var/log/syslog. su root syslog # keep 4 weeks worth of backlogs #rotate 4 rotate 1 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress size 500k # packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp, or btmp -- we'll rotate them here /var/log/wtmp { missingok # monthly daily size 500k create 0664 root utmp rotate 1 } /var/log/btmp { missingok # monthly daily size 500k create 0660 root utmp rotate 1 } # system-specific logs may be configured here |
次に、/etc/logrotate.d/rsyslogと/etc/logrotate.d/updatartを変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
/var/log/syslog { # rotate 7 rotate 1 size 500k daily missingok notifempty delaycompress compress postrotate reload rsyslog >/dev/null 2>&1 || true endscript } /var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/mail.log /var/log/daemon.log /var/log/kern.log /var/log/auth.log /var/log/user.log /var/log/lpr.log /var/log/cron.log /var/log/debug /var/log/messages { # rotate 4 # weekly rotate 1 daily size 500k missingok notifempty compress delaycompress sharedscripts postrotate reload rsyslog >/dev/null 2>&1 || true endscript } |
1 2 3 4 5 6 7 8 9 10 |
/var/log/upstart/*.log { daily missingok # rotate 7 rotate 1 size 500k compress notifempty nocreate } |
ここで一度logrotateを実行して、変更後の設定に合わせてログを整理しておきます。
1 |
sudo logrotate -f /etc/logrotate.conf |
また、(「いままさに不具合の調査中!」など)特に必要なければ、圧縮されたログとupstartのログも削除してしまいましょう。
1 2 3 |
sudo /etc/init.d/transientlog stop sudo rm -f /var/log/*.gz /var/log/upstart/*.gz sudo /etc/init.d/transientlog start |
RPi2でubuntu14.04LTS(10)日本語入力
0
iBus-MOZCをインストールします。
1 |
sudo apt-get -y install ibus-mozc |
lxterminalなどでCtrl+SpaceしてもMOZCが有効にならない場合は、以下の設定を行います。
- x-windowからibus-setupを実行。
- Input MethodタブのCustomize active input methodsにチェックを入れる。
- Select an input methodドロップダウンでJapanese→Mozcを選択。
- Addボタンをクリック。
- Close。
MOZCのデータファイルは頻繁に書き込みが発生しそうなのでtmpfsに追い出してキャッシュしましょう。
/usr/share/libpam-script/temporize.listに.mozcと、ついでに.cacheを追加します。
1 2 |
# ITEMS=(".bash_history" ".Xauthority" ".xsession-errors") ITEMS=(".bash_history" ".Xauthority" ".xsession-errors" ".mozc" ".cache") |
RPi2でubuntu14.04LTS(9)LightDMでx-windowの言語選択
0
LightDMの言語選択メニューを有効にします。
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[greeter] #background=/usr/share/backgrounds/warty-final-ubuntu.png background=#2E3436 #theme-name=Ambiance theme-name=waldorf #icon-theme-name=LoginIcons icon-theme-name=CrunchBang #font-name=Ubuntu 11 font-name=Liberation Sans 10 xft-antialias=true xft-dpi=96 xft-hintstyle=slight xft-rgba=rgb indicators=~language;~session;~power |
この時点で言語選択メニューに表示されるのはEnglishとEnglish USAです。
メニューに日本語を追加するには、languege-pack-jaをインストールします。
languege-pack-jaはロケール設定で追加した日本語ロケールとかぶるので、一旦削除してからインストールします。
1 2 3 |
sudo rm /var/lib/locales/supported.d/local sudo locale-gen --purge sudo apt-get -y install language-pack-ja |
インストールが完了したらロケールを更新します。
1 2 |
sudo update-locale sudo update-locale --locale-file=/etc/default/x-locale |
LightDMで選択した言語によって、LANGとLANGUAGEが切り替わります。
言語のデフォルトは、/etc/default/localeのLANGの設定値になります。
RPi2でubuntu14.04LTS(8)x-window日本語化
0
x-window専用のロケール設定
x-windowを日本語化するとき問題となるのが、ttyのローカルコンソールでメッセージが文字化けしてしまうことです。
export LANG=Cとすれば済むことではありますが、それをいちいちやるのは面倒です。
x-windowだけのロケール設定ができないものかと調べてみたら、PAMでLightDMの認証時にスクリプトをフックできることが判りました。ローカルコンソールはLightDMを通らないので、x-windowセッションのときだけシステムロケール設定を上書きできます。
ロケールファイル作成
/etc/default/localeをコピーして/etc/default/x-localeを作成します。
1 |
sudo cp /etc/default/locale /etc/default/x-locale |
x-localeに対してupdate-localeを実行して、ロケールを設定します。
1 |
sudo update-locale --reset --locale-file=/etc/default/x-locale LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8 |
メニューなども日本語化するには、上記にLANGUAGE=jp_JP.UTF-8
を追加します。
PAM設定
/etc/pam.d/lightdmを編集して、セッションのロケールファイルをlocaleからx-localeに変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#%PAM-1.0 auth requisite pam_nologin.so auth sufficient pam_succeed_if.so user ingroup nopasswdlogin @include common-auth auth optional pam_gnome_keyring.so auth optional pam_kwallet.so @include common-account session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close session required pam_limits.so @include common-session session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open session optional pam_gnome_keyring.so auto_start session optional pam_kwallet.so auto_start session required pam_env.so readenv=1 #session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/locale session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/x-locale @include common-password |
LightDMのログイン画面も日本語化するなら、/etc/pam.d/lightdm-greeterも同様に変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#%PAM-1.0 auth required pam_permit.so auth optional pam_gnome_keyring.so auth optional pam_kwallet.so @include common-account session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close session required pam_limits.so @include common-session session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open session optional pam_gnome_keyring.so auto_start session optional pam_kwallet.so auto_start session required pam_env.so readenv=1 #session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/locale session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/x-locale |
ログイン画面はLANGの値を見ているようで、LANGUAGEの設定は関係ないようです。