Category Archives

5 Articles

Ubuntu 16.04でBluetoothをONにできない際の対処法

by NigoroJr 0 Comments

何回か起こったので,メモ.

症状

unity-control-center の BluetoothでスライダをONにし,一旦メニューに戻ってからまたBluetoothに戻るとOFFになっている.つまり,BluetoothをONにできない.

Ubuntu 16.04で起こるっぽい?二つのマシンで同じ症状が確認された.以前はこのようなことはなかったのでアップデートした際に起こるようになってしまった模様.

環境

  • Ubuntu 16.04 (4.10.0-42-generic)
  • bluez 5.37-0ubuntu5.1

エラーメッセージ

$ sudo systemctl restart bluetooth.service
Job for bluetooth.service failed because the control process exited with error code. See "systemctl status bluetooth.service" and "journalctl -xe" for details.

というわけで,提案通り systemctl status bluetooth.servicejournalctl -xe の出力を見ましょう. journalctl -xe の出力は次の通り:

Feb 05 08:41:26 kyosen systemd[1]: Starting Bluetooth service...
-- Subject: Unit bluetooth.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit bluetooth.service has begun starting up.
Feb 05 08:41:26 kyosen systemd[12050]: bluetooth.service: Failed at step EXEC spawning /usr/lib/bluetooth/bluetoothd: Permission denied
-- Subject: Process /usr/lib/bluetooth/bluetoothd could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- The process /usr/lib/bluetooth/bluetoothd could not be executed and failed.
--
-- The error number returned by this process is 13.
Feb 05 08:41:26 kyosen systemd[1]: bluetooth.service: Main process exited, code=exited, status=203/EXEC
Feb 05 08:41:26 kyosen systemd[1]: Failed to start Bluetooth service.
-- Subject: Unit bluetooth.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit bluetooth.service has failed.
--
-- The result is failed.

Failed at step EXEC spawning /usr/lib/bluetooth/bluetoothd: Permission denied とありますね.

$ ls -l /usr/lib/bluetooth/bluetoothd
-rw-r--r-- 1 root root 1.1M Sep 12 11:04 /usr/lib/bluetooth/bluetoothd

あっ……

$ sudo chmod 755 /usr/lib/bluetooth/bluetoothd

で無事に sudo systemctl start bluetooth.service できるようになりました.

なぜこうなったかは謎.

mbedでLチカができるようになった話

組み込みのHello World的存在である,LEDをチカチカさせるプログラム,所謂Lチカを正常に動かすことができるようになった話です.

LPC1768とgcc4mbedを使っています.

テスト用に以下のLチカプログラムを書きました.
これ以上簡単なプログラムはないというぐらいです.

#include "mbed.h"

DigitalOut myled(LED1);

int
main() {
    while (1) {
        myled = 1;
        wait(0.1);
        myled = 0;
        wait(0.1);
    }
}

gcc4mbedをインストールして, make deploy を走らせると……

チカチカの間隔が長い!!

0.1秒ではなく,1秒間隔になります.

0.1のところを変えても,やはり指定した秒数の10倍の間隔になります.

原因

mbed OS 5用のバイナリだと,こうなるみたいです.もともとLPC1768はmbed 2用のバイナリじゃないといけないらしく,それ用にしたらうまくいきました.

2017-10-21追記: ファームウェアをアップデートし,mbed OS 5にすることでも解決しました.RTOSが使えるようになって便利になりました.下記の解決方法より,ファームアップデートのほうがおすすめです.

解決方法

gcc4mbedの設定用環境変数 MBED_OS_ENABLE を変更する.

export MBED_OS_ENABLE=0

使うデバイスのスペックをちゃんと知っておかないと,こういうことが起こるんですね.

Karabinerでやっと気に入った配列にできた話

前置き

Happy Hacking Keyboardの素晴しい配列に慣れると,
一般的なUSキーボードのわけわからん配列には耐えることができなくなります.
Karabiner自体は,KeyRemap4MacBookと名乗っていた時代から使っていたのですが,
その頃から思い通りの設定にできなくてもどかしい気持ちになっていました.
そんな私がやっと思い通りの配列に変更することができたので,メモがてら共有します.

さて,以下が私のMacBook Air (Late 2012)のキーボード配列です.

ん?なぜ a の隣が o なのかって?
申し遅れましたが,私,Dvorakユーザです.
あとSKKとかACT09とかバリバリ使ってます.
まぁ今回の話はそのへんの変更ではないので気にしないでください.
ちなみにこの配列変更は,マイナスドライバーでぱちぱち外して,ぱちぱちはめこみました.

さて,このキーボードですが,気に入らない点が幾つかあります.

  1. 1 の左は Esc がいい!
  2. 1 の左のキーは, Shift~ としても使いたい!
  3. `~ はなくならないでほしい!
  4. CapsLockControl として使いたい!

以下が理由です.

  1. 私がVimのヘビーユーザだから
  2. コマンドラインで ~ はめちゃくちゃよく使うから
  3. ` はMarkdownでよく使う
  4. コマンドラインのヘビーユーザなら誰もがそうしていると思われる設定

つまり,こうしたいのです.

まぁ,本当は \Backspace にしたり,
Delete\ にしたり,Shift + Delete| にしているんですが,
そのへんはデフォルトでもできるので割愛.

要はHHKBみたいにしたいということ.

設定方法

必要なもの

  • Karabiner
  • Seil
  1. まずシステムの設定を開いて KeyboardModifier KeysCapsLockControl にする
  2. Seilで Control_L110 にする.これはPC Application Key
  3. Karabiner用に ~/Library/Application Support/Karabiner/private.xml を作る
  4. 以下の内容を追加する:
  <item>
    <name>Hogehoge</name>
    <identifier>private.hogehoge</identifier>
    <autogen>
      __KeyToKey__
      KeyCode::PC_APPLICATION,
      KeyCode::BACKQUOTE,
    </autogen>
    <autogen>
      __KeyToKey__
      KeyCode::BACKQUOTE,
      ModifierFlag::SHIFT_L,
      KeyCode::BACKQUOTE,
      ModifierFlag::SHIFT_L,
      </autogen>
      <autogen>
      __KeyToKey__
      KeyCode::BACKQUOTE,
      KeyCode::ESCAPE,
    </autogen>
  </item>

こうして作った private.xml を読み込ませて,さきほど追加した項目に
チェックを入れると設定が反映されます.

検証はしていませんが,処理の順番的に

  1. Seil (Control → PC Application)
  2. Karabiner (PC Application → `等)
  3. macOSの環境設定で適応したキー (CapsLock → Control)

っぽい?

役に立つページ

GentooでJetpackのXML-RPCエラーが出るとき

ちょっと時間がかかったので、メモ。

Problem

Jetpackをadminページからconnectしようとしたときに、XML-RPCのエラーが出る。
/xmlrpc.php にアクセスすると、ちゃんと期待されるメッセージは表示される。
でもconnectできない。

Solution

原因はPHP7を使えていないという単純なもの。なので、以下の手順でPHP5から7に変えてやるとできるようになる。

  1. /etc/conf.d/apache2-D PHP5 から -D PHP に変える。
  2. eselectphp7.X を選択する。
  3. apacheを再起動。