SoftBank Airターミナル4 を純粋なAPとして使う
オークションやフリマなどから2000円程度で入手できるSoftBank Airターミナル4(B610h-70a)を純粋なAP(アクセスポイント)として設定する過程を書いていきます。
Toshiba Canvio Home を使えるようにする
秋葉原で投げ売られてたNASであるToshiba Canvio Homeを入手したので、NASとして使えるようにセットアップする過程を書いていきます。
環境
- Windows 10 1909
初期設定
このNASには電源スイッチは存在しないので、ACアダプタを接続するとすぐに電源が入ります。
電源を投入してしばらくすると、本体のインジケータLEDが4つ点灯から1つ点灯に変わるので、エクスプローラからネットワーク探索をして「Canvio-******」みたいな名前の機器をダブルクリックします。
ログイン画面に飛ぶので初回ログイン時に限り
Username: admin
Password: admin
でログインし、その後に続く初期設定を済ませます。ちなみにWeb UIに日本語はありません。
普通のNASならこの時点でファイルサーバとして使えるところですが、このNASは違います。最新のWindowsでSMB接続しようとすると繋がらない。
というのも、このNASはSMB1.0しか有効でないため、デフォルトでSMB1.0が無効化されている最新のWindows 10では有効化しない限り接続できません。
しかし今頃脆弱性のあるSMB1.0を有効化するのもはばかられるので、NAS側でどうにかします。要はSMB2.0を有効化します。(なぜ無効にしてるのか)
管理画面に入り、「Services」→「SSH」と進んでルートパスワードを適当に入力し、SSHを有効化します。
あとはターミナル上での作業です。
SMB2.0の有効化
まずこのNASに入ってるsambaのバージョンを確認します。
# smbd -V Version 3.6.6
バージョンが3.6以上ならSMB2.0をサポートしているので、SMB2.0を有効化、ついでにSMB1.0を無効化するように構成ファイルに追記します。ちなみに元々viが入っているのでviが使えます。
# vi /etc/samba/smb.conf [global] min protocol = SMB2 max protocol = SMB2
書き換えたら、デーモンを再起動して構成ファイルを読み込ませます。
# /etc/init.d/samba restart
完了
つながった
futurerestoreで"libc++abi.dylib: terminating with uncaught exception of type libipatcher::exception: std::exception"が出たときの対処法
先日 iPod touch 5g のダウングレードを行うために futurerestore を用いて iOS 6.1.3 の復元を試みたところ、タイトルにあるようなエラーが出力されて止まってしまった。
調べてみると、どうやら ipsw.me が提供している復号化キーに復元対象のデバイス/バージョンが含まれていないと、このエラーが表示されるようで自前で復号化キーを用意すれば解決するらしい。
必要なもの
- 復元先の ipsw
- Firmware Keys
- xpwntool
手順
復号化キーの雛形を入手する。もし iPod touch 5g, iOS 6.1.3 に復元するならば以下のファイルがそのまま使える。他のデバイス/バージョンの場合は次の手順により復号化キーなどを書き換える。
drive.google.com
ダウンロードした index.html に対してまず以下を書き換える。
"identifier":"<復元するモデルのID>", "buildid":"<復元先バージョンのBuild ID>", "codename":"<復元先バージョンのコードネーム>", "baseband":"0",
iPod touch は baseband が無いので "baseband":"0" となっているが、iPhone などの baseband があるものは適宜ググって書き換える。
次に復元先の ipsw を展開し、中から以下のファイルに対して xpwntool を用いて KBAG を取得する。
./Firmware/all_flash/all_flash.<model>.production/*.img3
./Firmware/dfu/*
./*.dmg
./kernelcache.release.<model>
./xpwntool <path to file> nul
index.html の Keys の部分を、取得した KBAG と以下のサイトから得られる Firmware Keys に書き換える。存在しないイメージや書いてないイメージのキーは消したり追加したりして、上記のファイルすべてのキーが含まれるようにする。
www.theiphonewiki.com
{ "image":"<イメージ名>", "filename":"<イメージのファイルパス>", "kbag":"<KBAG>", "key":"<Key>", "iv":"<IV>", "date":"2014-02-20T00:00:00Z" },
書き換えが終わったら適当に http サーバを建てて、ホームディレクトリから
/firmware/<model ID>/<Build>/index.html (例: /firmware/iPod5,1/10B329/index.html)
となるようにファイルを配置する。
macOS の場合はホームディレクトリに上記のように配置した後
$ sudo python -m SimpleHTTPServer 80
でhttpサーバを建てられる。
httpサーバを建てたら、通常通り futurerestore で復元を行う。
完成
Debian 10 Busterで録画環境を構築する
Debianはあまりにも更新を怠るとapt updateしたときに404が帰ってくることを知った。ちょうど時間があったのでリポジトリを書き換えてアップデートするくらいなら、いっそクリーンな環境で構築し直そう。というわけで次の環境で構築してみる。
環境
- Debian 10 Buster
- Mirakurun + EPGStation on Docker
- PT3
もくじ
Debianのインストール
実は環境構築時点でDebian 10はリリースされていないのでテスト版をダウンロードしてくる。
OSイメージをダウンロードしたらディスクなりUSBに焼いてインストールする。デスクトップ環境はいらないのでインストール時に除外した。
Docker CE のインストール
いつの間にかDockerがCEとEEに分離してて何が違うんだろうと思っていたら、CEはCommunity Editionでいわゆる無償版、EEはEnterprise Editionで商用版らしい。いずれにしろDebianにはCEしかインストールできないようだが、それはさておき公式の手順に沿って進める。
まっさらなDebianにはsudoが入ってないのでまずsudoを入れる。
# apt install sudo
visudoでログインユーザーのsudoを許可する。
# visudo mdoca ALL=(ALL:ALL) ALL
あとは手順通りに進める。
$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Dockerのfingerprintを検索してキーがあることを確かめる。
$ sudo apt-key fingerprint 0EBFCD88 pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb) <docker@docker.com> sub 4096R/F273FCD8 2017-02-22
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable" $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io
Docker Composeのインストール
これも公式の手順に従って導入する。
docs.docker.com
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
Mirakurun、EPGStationの導入
便利なことにMirakurun + EPGStationのDockerコンテナがあるのでそちらを使うことにする。
github.com
Readme.mdを見ると前提条件にPT3+m-tsudo/pt3の利用を想定と書いてあるので、ホストOSにm-tsudo/pt3ドライバを導入する。
$ sudo apt install git build-essential dkms $ git clone https://github.com/m-tsudo/pt3.git $ cd pt3 $ make $ sudo make install $ sudo bash ./dkms.install $ sudo echo "blacklist earth_pt3" >> /etc/modprobe.d/blacklist.conf $ sudo reboot now
再起動後、PT3ドライバがロードされていることを確かめる。
$ lsmod | grep pt3 pt3_drv 53248 2
Readme.mdに書かれている通りに進める。
$ git clone https://github.com/l3tnun/docker-mirakurun-epgstation.git
$ cd docker-mirakurun-epgstation
$ sudo docker-compose pull
$ sudo docker-compose build
デフォルトのチャンネル設定だとMXが受信できないので16から20に変更する。
$ vim mirakurun/conf/channels.yml - name: MX type: GR channel: '20'
カードリーダーのパスを確かめる。
$ lsusb Bus 002 Device 002: ID 4971:8017 SimpleTech Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 04e6:5120 SCM Microsystems, Inc. SCR331-DI SmartCard Reader Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ここではBus 001 Device 002がカードリーダーである。
構成ファイルのコメントアウトされている restart や user の設定やカードリーダーのパスなどを適宜変更する。
$ vim docker-compose.yml devices: - /dev/pt3video0:/dev/pt3video0 - /dev/pt3video1:/dev/pt3video1 - /dev/pt3video2:/dev/pt3video2 - /dev/pt3video3:/dev/pt3video3 - /dev/bus/usb/001/002
設定し終えたらコンテナを起動する。
$ sudo docker-compose up -d
ブラウザから録画機にアクセスしてメイン画面が表示されればOK。始めは番組表が空だが、しばらく待つと表示される。それでも実は動いてないんじゃないかって不安になるので
$ sudo docker-compose logs -f
でログを眺めてエラーが出てないことを確かめる。
完成