Hatena::ブログ(Diary)

..たれろぐ.. このページをアンテナに追加 RSSフィード

2016-02-18

Raspberry Pi で GW-450D を使う @ 2016.2

Raspberry Pi で GW-450D を使うアップデート

まとめ

今日時点の Respbian のイメージ 2016-02-09-raspbian-jessie-lite.img でセットアップして apt-get update & upgrade していた場合、次の環境になっているはず。

$ uname -a
Linux raspberrypi 4.1.17+ #843 Mon Feb 15 23:17:46 GMT 2016 armv6l GNU/Linux
$ gcc --version
gcc (Raspbian 4.9.2-10) 4.9.2


『修正パッチの適用』まで進めて、『カーネルダウンロード』から手順が変わる。

raspi-kernel だと Raspberry Pi 2 にしか対応していないので、 rpi-source を使う。

ちょっと使うだけなので、適当にダウンロード

$ wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source
$ chmod +x rpi-source

alternatives で gcc を一旦 4.9 に戻す。

$ sudo update-alternatives --config gcc

戻さないと、次の通り現環境とのコンパイラバージョン違いで怒られる。

ERROR:
gcc version check: mismatch between gcc (4.8.4) and /proc/version (4.9.3)
Skip this check with --skip-gcc

カーネルダウンロードカーネルモジュールコンパイル環境を構築する。

$ ./rpi-source

問題なければ次の通り表示されます。

$ ./rpi-source

 *** gcc version check: OK

 *** rpi-update: https://github.com/Hexxeh/rpi-firmware

 *** Firmware revision: 2ea8550c0fc6f4b916b3698fad857138d8a2da64

 *** Linux source commit: 27bb05acbbed3cb6fdb8b71ac66535a1602e09c6

 *** Download kernel source: Already downloaded /home/pi/linux-27bb05acbbed3cb6fdb8b71ac66535a1602e09c6.tar.gz

 *** Unpack kernel source
(snip)
 *** set 'EXTRAVERSION = +' in Makefile

 *** Create symlink: /home/pi/linux

 *** Create /lib/modules/<ver>/{build,source} symlinks

 *** .config

 *** Module.symvers

 *** Create symlink: /home/pi/linux

 *** Create /lib/modules/<ver>/{build,source} symlinks

 *** .config

 *** Module.symvers

 *** make modules_prepare
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
(snip)
  HOSTCC  scripts/recordmcount
  HOSTCC  scripts/sortextable

 *** Help: https://github.com/notro/rpi-source/wiki


ドライバビルド』の前に再び alternatives で gcc を 4.8 に切り換え。

$ sudo update-alternatives --config gcc

これを怠ると、ドライバビルド中に次のエラーとなって先に進めません。
gcc 4.9 でチェックが厳しくなった影響の模様。

  CC [M]  /dev/shm/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/../../sta/sta_cfg.o
/dev/shm/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/../../sta/sta_cfg.c: In function ‘RTMPIoctlShow’:
/dev/shm/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/../../sta/sta_cfg.c:5401:85: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
             snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
                                                                                     ^
/dev/shm/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/../../sta/sta_cfg.c:5401:95: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
             snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
                                                                                               ^
cc1: some warnings being treated as errors
scripts/Makefile.build:308: recipe for target '/dev/shm/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/../../sta/sta_cfg.o' failed
make[2]: *** [/dev/shm/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/../../sta/sta_cfg.o] Error 1
Makefile:1278: recipe for target '_module_/dev/shm/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux' failed
make[1]: *** [_module_/dev/shm/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux] Error 2
make[1]: Leaving directory '/usr/lib/modules/3.14.4-2-ck/build'
Makefile:393: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2

make & make install Rasberry Piだと30分ほどかかる。

$ cd mt7610u_wifi_sta_v3002_dpo_20130916/
$ sudo make
$ sudo make install

ビルド後の insmod は -v7 が付いていないディレクトリになります。

$ sudo insmod /lib/modules/4.1.17+/kernel/drivers/net/wireless/mt7650u_sta.ko

参考

2016-01-15

Elasticsearch + head のブラウザで geo_point 見えない問題

Elasticsearch の head プラグインブラウザBrowserですが、どうも geo_point のフィールドの表示は対応していないようです。

なので投入に成功していてもブラウザ上のカラムそのものが表示されなかったりします。
そのため、見た目はレコードのPOST/PUTにfailしたかのように見えます。

が、 match_all でクエリをかけるとちゃんと登録されているのでご安心ください。
失敗したかどうかはクエリをとばして確認するのがよさそう。


罠だった…