pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


iPhone7PlusのAppleCareが切れる前に無料のバッテリー交換に申し込む

バッテリー充電容量が低下したiOSバイスのパフォーマンスが意図的に下げられていた問題で2018年末まではバッテリー交換費用が通常よりも格安でできるようになりましたが、そもそもAppleCareが有効な期間は無償で交換できるので、購入してからもうすぐ2年になるiPhone7+のバッテリーを交換することにしました。

普段ならばiPhoneの修理はAppleStoreに持ち込むのですが、今回は配送修理を手配してみることにしました。単純に、どれくらいの日数で対応完了するかを知っておきたかったのです。

どうせなら、日数がかかりそうな条件で手配してみよう

各種対応は平日しか行わないと思うので、週末に集荷手配すれば、Appleへの到着はきっと月曜日になるはずです。というわけで、土曜日午前中の集荷を手配。

集荷のための準備をしよう

詳細は以下のリンク先に出ている通りなのですが、配送修理の場合は iPhone を初期化して個人に紐づかない状態で送付する必要があるようなので、以下の作業を行います。

  • バックアップする
  • iPhoneSuica を使っている場合は Wallet から明示的に削除しておく
  • iPhoneを探す」をオフにする
  • iMessage をオフにする (修理期間中に、SIMをiPhone以外で使う場合は電話番号でのiMessage受診を無効化する必要があるため)
  • 端末を初期化し、Apple ID を紐付けない状態で使える状態にしておく
  • SIMカード、ケース、フィルム類は全て取り外す。

support.apple.com

集荷の時系列ログ

あえて日数が掛かりそうなパターンで申し込んでいるので、このケースでは9/1集荷、9/6返送受け取り、となっています。これが8/31(金)の集荷だとしても土日はApple側の受け取り対応が行われないでしょうから、受け取りまでに1週間かかると考えられます。

日付 内容
2018/8/28(火) 配送修理申し込み
2018/9/1(土) 集荷
2018/9/3(月) ADSC支店宛配達完了
2018/9/4(火) Apple側 受領
2018/9/5(水) 修理
2018/9/5(水) 返送
2018/9/6(木) 到着(クロネコメンバーズで受け取り場所をコンビニ受け取りに変更)

ちなみにこれは関東圏での集荷配送を依頼しています。Appleの修理拠点がどこにあるかはよく知らないのですが、配送修理を依頼する場所によっては日数がもう少しかかるかもしれません。

感想

  • 修理期間中の予備機が無い方は持ち込み修理の方が良いと思います。

  • 予備機が手元にあるなら、配送修理はアリです。指定の時間帯に機器を引き取りにきますので、それまでに準備しておけば大丈夫です。持ち込み修理は当日(または翌日)に修理完了するメリットはありますが、都合の良いタイミングで予約を取るのが難しかったりします。

  • 修理品の集荷や配送はヤマト運輸なので、クロネコメンバーズに入っておき、修理後の受け取りをコンビニ等に変更すればタイムラグ少なく受け取れます。

  • エクスプレス修理なら端末交換になるので修理待ちが発生せず良いような気がしますが、バッテリ交換でこれが選べるかどうかは未確認です。

support.apple.com

  • Apple Store や正規サービスプロバイダへの持ち込み修理予約が都合の良い日時に取れるなら、そちらの方が待ち時間少なく対応できると思います。ただし、予約日時に機器を預けた上で、1時間後以降に再度来店する必要があることに注意が必要です。

Raspberry Pi 3 や Zero W に OpenWrt/LEDE 18.06 をインストールしてルータにする

LinuxベースのディストリビューションOpenWrtによるRaspberry Pi 3 や Zero W のルータ化の話は過去にも書いていますが、最新の 18.06 がリリースされていたので、環境を作り直すことにします。

(とは言いつつ、最初のバージョンのリリースを見逃していたので、この記事では 18.06.1 を前提に書いています)

※2020年1月時点では 19.07.0 がリリースされていますので、より新しいバージョンをインストールしたほうがよいです。

pslabo.hatenablog.com

既存の製品ではなく、あえて自分で作る理由とは?

既製品は機能面が不満です

例えば、DS-Lite (任天堂製品ではありません。フレッツ光のインターネット接続をPPPoEのIPv4ではなくIPoEのIPv6化することで速度改善をはかり、なおかつIPv4への通信も提供される仕組み)に対応したルータは案外少ないのですが、OpenWrtなら DS-Lite が利用できます。手持ちの製品が DS-Lite に対応していない為にルータを買い換えるというのは、とても残念な話ですが、そういうことは起きません。

セキュリティを強化したい

WPA2-EAPのような企業向けのセキュリティを導入するには、既製品はそれなりの価格の製品が必要です。でもOpenWrtならパッケージを追加してカスタマイズするだけで利用できます。作業コストは発生しますが、単にそれだけ。

IoT関連のハブにしたい

Raspberry Pi 3 に OpenWrt を導入したルータなら、Bluetooth 関連のパッケージを追加することで IoT 関連のハブにすることも可能ですね。

要するに、様々な拡張が容易に行えるのが魅力なのです。なお、OpenWrtを日本国内で運用する場合は電波法や技適の問題が付きまといますので、既製品のルータにOpenWrtを導入する話は公式な場所では展開しづらいのですが、Raspberry Pi 3 はデバイス自体が技適を通過していますから、OpenWrtをインストールしても技適の問題は発生しないはずです。(もしこれが問題になるとしたら、既存のノートパソコンにWindows / macOS / Linux の設定超背でWiFi AP化することもアウトになりますし)

そんな訳で、Raspberry Pi 3 は OpenWrt を導入するにはうってつけのデバイスだと考えています。技適の問題に目をつぶったとしても、既製品にOpenWrtを導入する場合は焼き方の失敗による文鎮化が心配です。でもファームウェアmicroSDに記録しているRaspberry Piは、何か問題があればmicroSDを再フォーマットすれば済むので、この辺りの不安も生じません。だから OpenWrt を試す環境としては Raspberry Pi3 に代表されるシングルボードコンピュータはちょうどよいのです。

ファームウェアイメージを入手する

OpenWrt のファームウェアイメージは、一般的な Raspberry Pi 向けファームウェア同様に dd で書き込みます。イメージは下記のURLから入手できます。

Raspberry Pi Zero W 向け https://downloads.lede-project.org/releases/18.06.1/targets/brcm2708/bcm2708/openwrt-18.06.1-brcm2708-bcm2708-rpi-ext4-factory.img.gz

Raspberry Pi 3 向け https://downloads.lede-project.org/releases/18.06.1/targets/brcm2708/bcm2710/openwrt-18.06.1-brcm2708-bcm2710-rpi-3-ext4-factory.img.gz

macOSな方は、下記記事のスクリプトを使うと、書き込み時の一連の作業(書き込み先デバイス名の確認、ddの実行、eject)が自動化できて便利だと思います。

pslabo.hatenablog.com

焼いたファームウェアmicroSD に、作業用のディレクトリを作る

適当な名前で作ってください。work とか。 これは OpenWrt 起動後のシェルからは /boot/work としてアクセスできます。

基本設定をバッチで流し込むためのファイルを作る

こんな設定をGUI操作なしに投入しようと思います

管理UIのパスワードはバッチ投入しないほうがよいかなあと思うので、これはインストール完了後にGUIから変更してください。

上記の設定は、次の内容をスクリプトとして保存・実行することで投入できます。 initialconfig.sh のような名前で保存して microSD の作業用ディレクトリに入れておきます。WiFiSSIDパスフレーズはご自身が使うものに変えてください。

#!/bin/sh -x

uci set system.@system[0].zonename='Asia/Tokyo'

uci set dropbear.@dropbear[0].Interface=lan

uci set dhcp.lan.ra_management='1'
uci set network.lan.ipaddr='192.168.4.1'
uci set network.lan.ifname='wlan0'

uci set network.wan=interface
uci set network.wan.proto='dhcp'
uci set network.wan.ifname='eth0'

uci set wireless.radio0.disabled='1'
uci set wireless.radio0.country='JP'
uci set wireless.radio0.txpower='10'
uci set wireless.default_radio0.encryption='psk2'
uci set wireless.default_radio0.network='lan'
uci set wireless.default_radio0.ssid='[設定するSSID名]'
uci set wireless.default_radio0.key='[WPA-PSKのパスフレーズ]'
uci set wireless.default_radio0.wpa_disable_eapol_key_retries='1'
uci delete wireless.radio0.disabled='1'

Pi3 以外の方向け:追加パッケージの下準備

Pi zero W をルータ化する場合は有線LANアダプタが必須です。USB LANアダプタに必要なパッケージやドライバを追加します。

下記のリストは PIMONORIの 3 Port USB Hub + NIC 向けドライバ を想定していますので、それ以外の USB LAN NIC をお使いの場合は必要なドライバを別途追加します。

https://downloads.lede-project.org/releases/18.06.1/targets/brcm2708/bcm2708/packages/kmod-libphy_4.9.120-1_arm_arm1176jzf-s_vfp.ipk
https://downloads.lede-project.org/releases/18.06.1/targets/brcm2708/bcm2708/packages/kmod-mii_4.9.120-1_arm_arm1176jzf-s_vfp.ipk
https://downloads.lede-project.org/releases/18.06.1/targets/brcm2708/bcm2708/packages/kmod-usb-net_4.9.120-1_arm_arm1176jzf-s_vfp.ipk
https://downloads.lede-project.org/releases/18.06.1/targets/brcm2708/bcm2708/packages/librt_1.1.19-1_arm_arm1176jzf-s_vfp.ipk

https://downloads.lede-project.org/releases/packages-18.06/arm_arm1176jzf-s_vfp/base/libusb-1.0_1.0.22-1_arm_arm1176jzf-s_vfp.ipk
https://downloads.lede-project.org/releases/packages-18.06/arm_arm1176jzf-s_vfp/base/usbutils_007-7_arm_arm1176jzf-s_vfp.ipk

# PIMONORIの 3 Port USB Hub + NIC 向けドライバ
https://downloads.lede-project.org/releases/18.06.1/targets/brcm2708/bcm2708/packages/kmod-usb-net-rtl8152_4.9.120-1_arm_arm1176jzf-s_vfp.ipk

これらのURLリストをテキストファイルに保存した上でシェルから wget -i packagelist.txt のようにダウンロードするのがお手軽で良いと思います。

全機種共通:最初から日本語UIで使いたい場合の追加パッケージ

これをインストールすれば、最初から日本語UIで使えます。必要な方はダウンロードして、microSD の作業ディレクトリに入れておきます。

http://downloads.openwrt.org/releases/18.06.1/packages/arm_arm1176jzf-s_vfp/luci/luci-i18n-base-ja_git-18.235.62437-6503756-1_all.ipk

焼いたmicroSDを装着してRaspberry Pi を起動し、パッケージインストールと初期設定の投入を行う

初期段階では NIC には LAN ケーブルを刺さずに作業します。(Pi Zero W は USB NIC だけ装着し、ケーブルは刺しません)。OpenWrt ではデフォルトのIPアドレスが 192.168.1.1 が NIC に設定され、さらにDHCPも有効なので、LAN接続して起動すると接続先ネットワークに影響が出る可能性があるからです。

行う作業はこんな内容です。

  • 起動したらシェルから cd /boot/作業ディレクトリ を実行
  • パッケージをインストールする。opkg install *
  • 初期設定の投入./initialconfig.sh
  • 初期設定をコミット uci commit
  • 再起動 reboot

ここまでくれば、有線LAN側がDHCPクライアントに設定されたWiFiルータになっています。あとは管理UIのパスワード設定を行い、さらに必要なカスタマイズを加えていきます。

OpenWRT/LEDE 18.06 リリースされてた

2018年7月末に 安定版18.06 がリリースされ、さらに8月17日に 18.06.1 がリリースされていた模様。

Raspberry Pi 3 向けのはここらへんにあるので、週末にでもセットアップしてみよう。(今は忙しすぎて時間がない)

Index of /releases/18.06.1/targets/brcm2708/bcm2710/

macOSの再インストールや各種トラブル対応の際に使用するキーボードショートカットのメモ

Mac起動時の特殊なショートカットーキー時々忘れてしまうので、使いそうなものをメモしておく。

内容 キーボード組み合わせ
SMCリセット shift control option + 電源
NVRAMリセット option command P R
Mac購入時のmacOSで復元 command R
利用可能な最新のmacOSで復元 option command R
Mac購入時またはそのバージョンに最も近い利用可能なバージョンで復元 shift option command R
シングルユーザモード command S
Verboseモード command V
セーフモード shiftキーを押して起動、ログインウィンドウが表示されたら放す
Apple Hardware Test の実行 Dキーを押したままで電源を入れる

ただし、メモしてから改めてググってみたら、そもそもAppleの下記のページにまとまっているのをみつけました。 https://support.apple.com/ja-jp/HT201255

まあでも自分なりにまとめるのは大事なので残しておく。

Sencha Architect インストール環境での Sencha Cmd の場所

Sencha Architect には Sencha Cmd が含まれているので、Ext JS での直接の開発もそのまま行けるはずなのだけど、インストールパスを時々忘れてしまうのでメモしておく。

Windows の場合はここらへんのフォルダのサブディレクトリに Sencha Cmd がインストールされているはずです。

%USERPROFILE%\bin\Sencha\Architect\Cmd

私の環境では、Sencha Cmd の2つのバージョンが存在していました。

C:\Users\pslabo>dir %USERPROFILE%\bin\Sencha\Architect\Cmd
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 6C4B-8866 です

 C:\Users\pslabo\bin\Sencha\Architect\Cmd のディレクトリ

2018/02/15  10:03    <DIR>          .
2018/02/15  10:03    <DIR>          ..
2018/01/24  10:50    <DIR>          6.5.1.240
2018/03/02  20:47    <DIR>          6.5.3.6
2018/01/24  10:50    <DIR>          repo
               0 個のファイル                   0 バイト
               5 個のディレクトリ  36,408,737,792 バイトの空き領域

C:\Users\pslabo>

そこで以下のように実行してみると、確かに sencha.exe が存在していました。

C:\Users\pslabo>%USERPROFILE%\bin\Sencha\Architect\Cmd\6.5.3.6\sencha.exe
Wat!
configFile: C:\Users\pslabo\bin\Sencha\Architect\Cmd\6.5.3.6\sencha.cfg
Sencha Cmd v6.5.3.6
Sencha Cmd provides several categories of commands and some global switches. In
most cases, the first step is to generate an application based on a Sencha SDK
such as Ext JS or Sencha Touch:

    sencha -sdk /path/to/sdk generate app MyApp /path/to/myapp

Sencha Cmd supports Ext JS 4.1.1a and higher and Sencha Touch 2.1 and higher.

そうすると、あとは環境変数の Path をここらへんに通しておけば Sencha Cmd がコマンドプロンプトから使えるようになります。

USB-CなMacBookにMagSafe ACアダプタで充電できるELECJET製の変換アダプタを買ってみたら、サードパーティ製のMagSafeアダプタが使えなかった

MagSafeなACアダプタ、余ってませんか?

MagSafeなMacBook ProからUSB-Cのモデルに切り替えると、多分、MagSafeなACアダプタが余っていると思うんですけど、いかがでしょうか。

少なくとも自分の場合は、自宅常備、携帯用の2つのMagSafeアダプタがあります。また、

新旧のMacBook Pro を普段から2台持ち歩く変な人には、ACアダプタ規格問題は結構困る

現在でも普段から2台の新旧MacBook Proを持ち歩いている身としては、ACアダプタが2種類必要なのは結構困ります。

普段は MagSafe AC アダプタと Anker Power Core Fusion 5000 を携帯しているのですが、Power Core Fusion では Macbook Pro を充電するにはパワーが足りず、どちらかというとこれは非常時のバックアップ用です。

ヘビーに使うことがわかっている場合は純正のUSB-Cアダプタ、または Anker PowerPort 5+ をカバンに収めるのですが、それを忘れると大変困ってしまいます。

そんなところに見つけたのが、ELECJET Anywatt One です。こちらのリンク先は製造販売元のページ。深センからの出荷で日本向けにも出荷してくれます。

[USB-IF Certified] ANYWATT ONE: MagSafe or Square to USB C Power Delivery Adapterelecjet.com

こちらは Amazon へのリンクですが、この記事の投稿時点では品切れ中のようです。

これは MagSafe に取り付けるタイプの MagSafe - USB-C 変換アダプタです。これがあると USB-C な MacBook Pro が MagSafe AC アダプタで充電できるので大変助かります。これのおかげでカバンには MagSafe ACアダプタがあれば大丈夫になりました。

しかし充電できない組み合わせがあった

これを試していると、手持ちの MagSafe AC アダプタのうち、これと組み合わせてもUSB-Cで給電できない組み合わせがありました。

色々試してみたのですが、どうやら、このアダプタは Apple 純正ではない MagSafe AC アダプタを認識しない場合があるようなのです。

思い起こしてみると、2つ目の MagSafe アダプタは Amazon で購入しており、価格も Apple Store のものとは異なっていたので、正規品ではないものである可能性が高そうです。

アダプタが余っていれば地味に便利。だけど純正品ではないアダプタには注意

というわけで、便利だけどサードパーティ製MagSafeアダプタでは動かない可能性があるので、そこは注意が必要です。

OpenWRT/LEDEのファームウェアがtftpでうまく焼けないときにDD-WRTのシェルから焼いてみる

職場の倉庫からWZR-HP-G300Nを1台発掘したのだけど、調べてみるとファームウェアDD-WRTに書き換えられていました。

しかし現在のスタッフはそういうことをする方々ではないので、過去のadminがそういう運用をしていたらしい。

それはさておき、DD-WRTよりはOpenWRT派な自分としては、当然のようにOpenWRTへの入れ替えを試みました。しかしtftpでの流し込みを何回試してもうまくいかなかったので、代わりにDD-WRTのシェルから焼いたらうまく書き換えできました。

シェルから焼く場合は squash-fs-sysupgrade のファームウェアを転送したのち、mtd コマンドで以下のように実行します

mtd -r write lede-17.01.2-ar71xx-generic-whr-hp-g300n-squashfs-sysupgrade.bin linux

tftp での書き換えはコマンド投入のタイミング調整が必要なのでやりづらいことがありますが、シェルからのコマンド投入なら簡単です。

ネタ的には半年前に投稿した、こちらの内容と同じなのですが、滅多にやらない作業だし、ググっても見つかりにくいネタなので、自分の検索用のメモとして残します。

pslabo.hatenablog.com

まあしかし、こんな古い機器、かつフラッシュメモリの容量が少ない機器を今更使えるようにしても、あまり意味はなさげですが。。。