follow me

PQI Air Pen、OpenWrt化(未開封編)

PQI Air Pen、OpenWrt化を未開封で行う方法です。
ファームウェアを書き換えた場合、サポートの対象外となります。また、ファームウェアを書き換えた状態での電波出力は電波法違反となります。
ファームウェア書換えは、自己責任とご認識下さい。


2016/12/23 1:00時点で、ntt-xにて再度税込980円なった様なので、みなさん3枚買ってみてはどうでしょうか?
PQI Air Pen 6W41-0000R2 ホワイト
PQI Air Pen 6W41-0000R1 ブラック


で、未開封でのOpenWrt化ですが、100%書換えを保障するものではないので、失敗し文鎮化したとしても、自己責任とご認識下さい。
書換えは、1回では完了できず、1段階踏み台を用意する形になります。
また、純正ファーム状態で、uImage、rootfs側が使われている前提で手順を紹介します。
uImage2、rootfs2が使用されている場合は、逆を行う必要があります。
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "ART"
mtd3: 00010000 00010000 "NVRAM"
mtd4: 00140000 00010000 "uImage"
mtd5: 00280000 00010000 "rootfs"
mtd6: 00140000 00010000 "uImage2"
mtd7: 00280000 00010000 "rootfs2"
mtd8: 00010000 00010000 "CONF"


以下は、OpenWrt trunk r50015のパッチとバイナリです。
PQIAirPen_trunk_r50015.patch
openwrt-ar71xx-generic-pqi-air-pen-factory-kernel.bin
openwrt-ar71xx-generic-pqi-air-pen-factory-rootfs.bin
openwrt-ar71xx-generic-pqi-air-pen-initramfs-kernel.bin
openwrt-ar71xx-generic-pqi-air-pen-squashfs-sysupgrade.bin
踏み台用として使用する、~factory-kernel.bin、~factory-rootfs.binは、以下の様に、~initramfs-kernel.binから切り出します。
# dd if=openwrt-ar71xx-generic-pqi-air-pen-initramfs-kernel.bin of=openwrt-ar71xx-generic-pqi-air-pen-factory-kernel.bin bs=1024 count=1280
# dd if=openwrt-ar71xx-generic-pqi-air-pen-initramfs-kernel.bin of=openwrt-ar71xx-generic-pqi-air-pen-factory-rootfs.bin bs=1024 skip=1280
この分割したファイルをマウントされていない領域の、uImage2、rootfs2に書き込む事で、ubootから起動してしまおうという訳です。
注意する点としては、rootfs2を超えてCONF領域を潰してしまわない様にする事。
CONF領域まで使用するイメージをCONF領域を潰して書き込んだ場合、起動できなくなります。

書き込むファームウェアデータが準備できたら、実機での書換えに進みます。
telnetでアクセスしてください。(管理画面でパスワードを設定済みであえばtelnetでアクセスできます)
ログインは、root/pqiapです。

書き込むファイルは、uSDにでも入れて刺しておけばいいでしょう。
書き込み作業に入る際、uImage、rootfsが使用されている事を確認した上で書換えを行う必要があります。
マウントした状態で書換えを行うと壊れます。
かならず、rootfs側がマウントされている事を確認してください。
# df
Filesystem           1k-blocks      Used Available Use% Mounted on

/dev/mtdblock5            2384      2384         0 100% /
/dev/sda1              1928992     22944   1906048   1% /tmp/www/ftp/sda1

イメージの書き込みは、ddでべたっと書き込みます。
~ # flash_erase /dev/kernel2 cnt 0x14
Erase Total 20 Units
Performing Flash Erase of length 65536 at offset 0x130000 done
~ # 
~ # dd if=/tmp/www/ftp/sda1/openwrt-ar71xx-generic-pqi-air-pen-factory-kernel.bin of=/dev/mtdblock6
2560+0 records in
2560+0 records out
~ # 
~ # flash_erase /dev/fs2 cnt 0x28
Erase Total 40 Units
Performing Flash Erase of length 65536 at offset 0x270000 done
~ # 
~ # dd if=/tmp/www/ftp/sda1/openwrt-ar71xx-generic-pqi-air-pen-factory-rootfs.bin of=/dev/mtdblock7
4042+1 records in
4042+1 records out
再起動前に、CONF領域の1バイト目を書き換えます。
これにより、uImage2側がブートされる形になります。
~ # echo -ne "\x01" | dd of=/dev/mtdblock8 conv=notrunc bs=1 count=1 seek=0
1+0 records in
1+0 records out
~ # 
~ # reboot
再起動後、OpenWrtがramfsでuImage2側(0x9f7f0000)の領域から起動してきます。
次に、本来あるべき位置に再度OpenWrtイメージを書き込みを行います。
書換える際に、sysupgradeをそのまま実行すると、壊れてしまったuImage2を起動させる形となる可能性があるので、注意してください。(運よく領域が壊されず残っていれば、同じ状態が起動してきますが。。。)
sysupgrade前に実行しなくてはいけないのは、次回ブートをuImage側の領域から起動する様に戻す事です。
CONF領域の1バイト目を元の0x00に書き戻す必要があります。
root@OpenWrt:~# echo -ne "\x00" | dd of=/dev/mtdblock8 conv=notrunc bs=1 count=1 seek=0
1+0 records in
1+0 records out
最後にsysupgradeを実行し、OpenWrt化が完了します。
root@OpenWrt:~# sysupgrade -n /tmp/openwrt-ar71xx-generic-pqi-air-pen-squashfs-sysupgrade.bin
killall: watchdog: no process killed
Sending TERM to remaining processes ... dnsmasq ubusd askfirst logd rpcd netifd uhttpd ntpd
Sending KILL to remaining processes ... askfirst ntpd
Performing system upgrade...
Unlocking firmware ...

Writing from  to firmware ...
Upgrade completed
Rebooting system...

ここで紹介した手順は、手持ち環境で確認した手順であり、ファームウェアの状態等により挙動が異なる可能性があります。
書換えは自己責任となります。
また、電波法は守ってハックを愉しむ事をお奨めします。
ファームウェア書換え後の電波出力等による電波法違反についても自己責任となります。
PQI Air Pen、OpenWrt化(未開封編) | 13 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。
PQI Air Pen、OpenWrt化(未開封編)
投稿者: ゲストユーザ on 2016年12月25日(日) 19:49 JST

 こんばんわ。

記事を見て、NTT-Xで白と黒をポチって、

openwrt化してみましたが、無事成功しました。

ありがとうございます。

その後、気がついたのですが、メモリーが32MBでした。

ロットによって、64MBと32MBモデルがある感じですかね。

 

PQI Air Pen、OpenWrt化(未開封編)
投稿者: Tochiro on 2016年12月26日(月) 10:58 JST

動作してよかったです。
手持ちは64MBだったので、ロット差かもですね。
32MBでも動いているのであればヨカッタデス。
そのうち本家にもパッチ送ります。

PQI Air Pen、OpenWrt化(未開封編)
投稿者: yukky37x on 2017年1月14日(土) 06:34 JST

 遅ればせながらOpenWrt化成功しました!私のも32MBだったようです。

PQI Air Pen、OpenWrt化(未開封編)
投稿者: ゲストユーザ on 2017年2月 5日(日) 03:06 JST

無事OpenWrt化できました。

OpenWrt環境でMicroSDスロットを使用することはできないのでしょうか?プログラムの追加を行うストレージとしてSDカードの利用を考えています。

 

PQI Air Pen、OpenWrt化(未開封編)
投稿者: Tochiro on 2017年2月 6日(月) 01:01 JST

SDは、USBの先に接続されているので、kmod-usb-storage、kmod-usb-storage-extra辺りがあれば認識できるはずです。
kmod-fs-~系は、使いたいファイルシステムに合わせて追加が必要です。
FATとかだと、kmod-fs-vfat、kmod-nls-cp932も必要になります。

PQI Air Pen、OpenWrt化(未開封編)
投稿者: yukky37x on 2017年2月16日(木) 02:05 JST

私もSDカードを認識させるべくやってみました。
一旦こちらのイメージでOpenWRT化した後、以下のイメージでLEDE化。
その後、fdisk、kmod-fs-vfat、kmod-nls-cp932などをインストールして
無事、マウントすることができました。
OpenWRT化直後だと、vfat系がうまくロードできなかったので、LEDE化
したところうまくいった感じです。


 

 




 

 



 

 

 

 

PQI Air Pen、OpenWrt化(未開封編)
投稿者: yukky37x on 2017年2月16日(木) 02:08 JST
PQI Air Pen、OpenWrt化(未開封編)
投稿者: ボビッピー on 2017年2月 5日(日) 13:21 JST

Air Penに興味があり、あれこれ調べていたところ、こちらにたどりつきました。素晴らしい記事ですね。多くの方に有益な情報と思います。

 

ひとつ、教えていただければと思っております。 

Air Pen、製品そのままの状態だと充電が完了するまでは無線機能が使用できないというトンデモ仕様らしいですが、OpenWRT化すれば、充電しながらでも無線機能を利用できるようになるのでしょうか?

 

 

 

 

PQI Air Pen、OpenWrt化(未開封編)
投稿者: Tochiro on 2017年2月 6日(月) 01:06 JST

> ボビッピーさん
手元では、気になった記憶がないので、使えています。
RAM 32MB版も存在する情報があるので、必ず動くとは言えない点はあります。

PQI Air Pen、OpenWrt化(未開封編)
投稿者: ボビッピー on 2017年2月 6日(月) 19:50 JST

ありがとうございます。
面白そうなので、さっそく購入してみることにします。

PQI Air Pen、OpenWrt化(未開封編)
投稿者: ゲストユーザ on 2017年2月23日(木) 17:56 JST

 はじめまして。openwrt化検討中ですが、df したところrootfs2がマウントされていました。この場合の変更点をおしえていただけないでしょうか?

PQI Air Pen、OpenWrt化(未開封編)
投稿者: Tochiro on 2017年2月24日(金) 23:20 JST

mtd4、mtd5を書換え対象に変更し、CONF領域の1バイト目(0x00に)書換えを1回になります。
コマンド自体はほぼ全部指定が変わるので、よく解らなければ、正常状態に戻す方が早いと思われます。
ファームアップ等で戻るのを試してみてはどうでしょうか?
逆転している状態での確認は試行回数も少ないので、書換えは十分注意して下さい。
また、書換え手順を保障できるわけではない点もご注意ください。

PQI Air Pen、OpenWrt化(未開封編)
投稿者: ゲストユーザ on 2017年2月26日(日) 05:47 JST

正常化のためファームウェアアップデートをしようと思ったのですが、充電完了しても起動しなくなりました。初期不良対応で無償交換となり、代替品の到着待ちです。