ジャンル不定の日記です。

タブレット復活した

不注意でソフト的に壊してしまい、ファーム更新環境が無かった上に構築に苦戦してるうちに完全放電して文鎮化してしまったONDA V7193G四核だったが、復活した。

ソフト破損で電源も切れない状態で充電できずに完全放電してしまって、PCからも認識しない状況が日曜から続いていたが、
今日は電源入れたら瀕死の電池残量画面が表示された。

ちょっとでも動けばファーム更新成功する可能性があるので、ちょうど今日届いたWindows7で急いでファーム更新。
したのだが、Linuxでファーム更新に失敗した時と同じエラーが・・・
壊れて復旧するために急いで臨時のファームを作ったが、ファームのカスタマイズに失敗しているような・・・と気づいた。

メイン環境のArch Linuxで再度Linux用のSP Flash Toolを用意して、
とりあえず復旧させなきゃいけないのにカスタムすべきではないと判断して、公式ファームをそのまま焼いた。
成功した。


一度復活させてから以前の記事を参考にカスタムファームを作ったが、
simg2imgでアンパックしたイメージをリパックに使うmake_ext4fsがAURに存在しなそうだった。
simg2imgとmake_ext4fsは両方共以前はext4_utilsパッケージに入ってたが、simg2imgはそのままの名前でAURにある。
新しいsimg2imgパッケージにはimg2simgとか逆のコマンドが入ってるからリパックにも使えそうではあるが、今回は急ぎだしバックアップにあったmake_ext4fsを使った。
ext4_utilsは今でもgitにソースあるから調達可能と思う。

ついでに、前回までのカスタムファームに、後から変更可能な箇所にブート時の処理置くことができるようにしたいと思ってたんで、
#!/bin/sh
if [ -e /dev/block/mmcblk1p2 ];then
    mkdir /storage/ext4sd
    mount -t ext4 -o noatime /dev/block/mmcblk1p2 /storage/ext4sd
    if [ -e /storage/ext4sd/.boot.sh ];then
        /storage/ext4sd/.boot.sh
    else
        /system/bin/busybox sysctl -w vm.swappiness=80
        echo 268435456 > /sys/block/zram0/disksize
        /system/bin/busybox mkswap /dev/block/zram0
        /system/bin/busybox swapon -p 100 /dev/block/zram0

        if [ -e /storage/ext4sd/.swap ];then
            /system/bin/busybox swapon -p 10 /storage/ext4sd/.swap
        fi
    fi
else
    /system/bin/busybox sysctl -w vm.swappiness=80
    echo 268435456 > /sys/block/zram0/disksize
    /system/bin/busybox mkswap /dev/block/zram0
    /system/bin/busybox swapon -p 100 /dev/block/zram0
fi
こんな感じに変更した。
zramを有効にするスクリプトを改造して、元は後ろに追加するだけだったが、
SDの第2パーティションが存在したら先にマウントして、SD上にブート用スクリプトが存在したら処理全部そっちに任せる感じ。
だが、ifが増えてわかりにくくなっちゃうし、zram要らないなら一度有効にしてから無効化すればいいだけだったなw

SD上のブートスクリプトはまだ試してないが、
chrootがうまく行く方法がわかればLinux試したり、Androidを端末1台で複アカとかもできるんじゃないかと。


Linuxでのファーム更新、ドライバも要らないからWindowsより簡単かも。
WindowsはUSB VCOMのドライバがわかりにくい。ただのUSB-シリアルとは違うのか?
SP Flash Toolはここからダウンロードできる。ここが公式か?
Windows用のUSB VCOMのドライバも上のサイトから落とせる。