と、あんりみは思った。

※やってみたこと、考えたことを書いてみましょう。

秋月謎SoC基板付きケース with Debian x HomeAssistant 2026

SDカード上のExt4 FSが壊れてカーネルパニック

[    4.686189] Run /sbin/init as init process
[    4.690349]   with arguments:                                                                                                                                                         [    4.693331]     /sbin/init
[    4.696046]   with environment:
[    4.699218]     HOME=/
[    4.701585]     TERM=linux
[    4.844857] EXT4-fs error (device mmcblk0p2): ext4_lookup:1752: inode #5496: comm init: iget: checksum invalid
[    4.874319] EXT4-fs error (device mmcblk0p2): ext4_lookup:1752: inode #5496: comm init: iget: checksum invalid
/sbin/init: error while loading shared libraries: libapparmor.so[    4.885876] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
[    4.899099] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 ]---
.1: cannot open shared object file: Error 74

SDが壊れてhassのwebhookにデータが飛んでこなくなったので再構築がてらメモ

BuildrootでSD用のイメージ作成

github.com

cd ~/
sudo apt -y install build-essential bc libssl-dev unzip ncurses-dev
git clone git@github.com:bakueikozo/buildroot_am3352_aki.git
cd buildroot_am3352_aki
make akiduki_am3352_defconfig
make menuconfig

rootfsのサイズを拡大

Filesystem images -> exact size -> 1200M

イメージサイズを拡大

vim board/akiduki_am3352/genimage.cfg
# size = 512MB => 1536MB
make

Debian に置き換える

debootstrap で rootfs を作成する

cd ~/
sudo apt-get install debootstrap qemu-user-static
sudo qemu-debootstrap --verbose --arch=armhf --variant=buildd \
  bookworm rootfs-debian-armhf \
  http://ftp.jp.debian.org/debian/
# 時代はbookworm (Debian 12)に

chrootでDebianイメージ内のセットアップ

sudo chroot ./rootfs-debian-armhf /bin/bash
apt update
apt upgrade -y
apt install -y ifupdown iproute2 iputils-ping net-tools dnsutils sudo vim screen tcpdump ca-certificates locales locales-all avahi-daemon kmod fdisk e2fsprogs curl wget openssh-server udev
echo "Asia/Tokyo" > /etc/timezone
cp /usr/share/zoneinfo/Japan /etc/localtime
locale-gen en_US.UTF-8
locale-gen ja_JP.UTF-8
ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttyS0.service
apt clean

chrootから抜ける

SDカードイメージのrootfsを差し替え

cp ~/buildroot_am3352_aki/output/images/sdcard.img ~/debian.img
sudo losetup -f ~/debian.img -P --show
sudo mkfs.ext4 -L rootfs -F /dev/loop0p2
sudo mkdir /mnt/rootfs
sudo mount /dev/loop0p2 /mnt/rootfs
sudo rsync -av ~/rootfs-debian-armhf/ /mnt/rootfs/
sudo umount /mnt/rootfs
sync; sync; sync;
sudo losetup -d /dev/loop0

~/debian.imgのrootfsがDebianに差し替わったのであとは焼くだけ。

ssh-copy-id debian@akiduki.local
ssh debian@akiduki.local
sudo fdisk /dev/mmcblk0 <<EOF
p
d
2
n
p
2
32769

p
w
EOF
Device         Boot Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *        1    32768    32768   16M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      32769 62552063 62519295 29.8G 83 Linux

Command (m for help): The partition table has been altered.
Syncing disks.

パーティションを32GBいっぱいまでexpand

fsもexpand

sudo /sbin/resize2fs /dev/mmcblk0p2

HomeAssistant Pythonスクリプト用セットアップ

GitHub - unlimish/GetSmartMeterData: Get SmartMeter Data for WI-SUN · GitHub

1. 必要なパッケージ全部入れる

sudo apt update && sudo apt install python3-serial python3-pip git -y
sudo pip3 install requests

2. スクリプト clone

git clone https://github.com/unlimish/GetSmartMeterData.git

3. 設定書き換え(B_ROUTE_ID, B_ROUTE_PW)

nano GetSmartMeterData/GetSmartMeterData.py

4. 動作確認(手動起動してログ見る)

cd GetSmartMeterData && sudo python3 GetSmartMeterData.py

5. 動いたら systemd サービス化(自動起動)

sudo tee /etc/systemd/system/smartmeter.service <<'EOF'
[Unit]
Description=Wi-SUN SmartMeter Data
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/debian/GetSmartMeterData/GetSmartMeterData.py
Restart=always
RestartSec=30
User=root

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now smartmeter

6. 全部確認できたら FSをread-only 化

sudo sed -i 's|\(/dev/mmcblk0p2.*\)\(defaults\)|\1\2,noatime,ro,commit=600|' /etc/fstab
sudo reboot

設定が書き換え必要になったときは

sudo mount -o remount,rw /
# 書き込み作業をする
sudo mount -o remount,ro /

Windowsが0xc000000eでブートしなくなった

Windows 11の入ったDELLのPCが起動しなくなったと渡されたのがことのはじまり。

はじめはINACCESIBLE_BOOT_DEVOCE (0x7B)が表示されてとりあえずバックアップ兼、SSDの容量がカツカツだったため新しいSSDに換装したかったらしい。 ということでひとまずUbuntuをライブ起動しGpartedで丸ごとクローンしシステム領域を増えた容量分拡張。

差し替えて起動してみようとしたところ、

Your PC/Device needs to be repaired An expected error has occured Error code 0xc000000e
クローンして拡張してみたらエラー 0xc000000eで起動しない

デバイスが繋がっていないか、アクセス不可ということらしい。

とりあえずF1を押してWindows REから起動してみようにも反応なし。

作業開始

懸念材料を減らすためにセキュアブートを無効にする。

Windows 回復環境からコマンドプロンプトを起動

Windows 11のインストールメディア(USBメモリ)から起動し、修復へ移動し、コマンドプロンプトを起動。

diskpartでEFI領域(ブート領域)を探しドライブレターをアタッチ

> diskpart
diskpart> list volume (ラベルがついていないときはFAT32でフォーマットされた小さめの領域を探すといい)
diskpart> select volume X (EFI領域のあるボリューム番号を選択)
diskpart> assign letter=B: (使われていないドライブレターを割り当て)
diskpart> exit

WindowsのBoot Configuration Data(BCD)を再構築する

B:> cd /d B:\EFI\Microsoft\Boot
B:> del BCD(ブート用の設定データを削除。怖ければrenコマンドで.bakなどにリネーム)
B:> bootrec /Rebuildbcd (WindowsがインストールされているディスクをスキャンしてBCDを再構築)
B:>  bootrec /fixboot (ブート領域のブートセクターコードを強制的に書き直させる)
B:> bcdboot C:\Windows /l ja-JP /s B: /f ALL (Windowsのブート設定にOSのインストールディレクトリ、言語、EFI領域のドライブレターを指定し、UEFI/BIOS両プラットフォーム向けファームウェアをコピー)
B:> exit

最後にスタートアップ修復を行ったところ起動した。

OSの修復とスキャン

念のため管理者権限で立ち上げたターミナルでSFCとDISMでOSの修復スキャンもした。(当該PCは破損個所があり修復された。)

> DISM /Online /Cleanup-image /Restorehealth
> sfc /scannow

Windows RE(回復環境)の再設定

起動後、

> reagentc /info

をしてWindows RE(回復パーティション)の状態を確認したところ、Disabledになっていたので

> reagentc /enable

で有効化しようとしたが

REAGENTC.EXE: 操作に失敗しました: b7

ひとまず C:\Windows\System32\Recoveryを空にした。 その後enableにしようとすると、「Windows REのイメージがない」と怒られたので、Windows 11 isoをexprolerでディスクとしてマウントし、sources/install.wimを7-zipなどで開く。 直下にある[1].xmlを開くと

"DISPLAYDESCRIPTION": "Windows 11 Home",
"_INDEX": "1"

とあるのでidは1 install.wim内のid(今回は1)\\Windows\System32\Recoveryにあるwinre.wimC:\Windows\System32\Recoveryにコピー。 管理者権限で立ち上げたターミナルで

> reagentc /setreimage /path C:\Recovery\WindowsRE
ディレクトリは次に設定されています: \\?\GLOBALROOT\device\harddisk0\partition3\Recovery\WindowsRE

REAGENTC.EXE: 操作は成功しました。

これで

> reagentc /info

をすると、enabledになった。

UEFI周りの設定を戻す

必要に応じて、高速起動(Fast Boot)やセキュアブートを有効に戻す。


refs

新下駄配列を使いはじめて3ヶ月経ったよ

f:id:unlimish:20201113222214p:plain
新下駄配列で練習しているe-typingのカルテグラフ

始めたての頃のずっと配列表を見ながらひいひい言いながら入力するフェーズは過ぎ、いまは単押しと中指押しのレイヤー(拗音以外)が見なくても打てるぐらいにはなりました!

ローマ字の1/4ぐらいしか速度がまだ出ないけど、だいぶ苦なくリズミカルに打てるようになってていい感じ~
(寿司打の高級モードがやりたくて久しぶりにローマ字入力で遊んでみたら、一動作で一文字打てないもどかしさとか、運指が考えられてない感じがすごかった…)

寿司打のお手軽モードで間に合うぐらいしかWPMだせないのでもう少しスパッと打てるように正確性を保ちながらスピードも上げていこうと思います!

新下駄配列を始めて七日経ったよ

まずは七日間の軌跡からどうぞ~(Twitterの引用)

新下駄配列一日目:

シフトなし配列しか把握できてなくて、パソコン嫌いになりそう

新下駄配列二日目:

Eucalyn配列にしました(かな入力じゃなくて、交互打鍵がしたいだけだった)

わー文字打ちたくないよ-(新下駄配列2日目)

(一応新下駄の練習はしてます。)

今日はなんだかんだ行って、新下駄配列でかな入力するのはいい感じに快適だし、かえうちほしいってこと。

やっぱり清濁同置配列のほうが直感的でいいのかな

清濁別置でもいいんだけど、運動記憶に持っていくまでの長さが待てない気がする

新下駄配列三日目:

日本語が違和感のない運指で打ち込めて、ホームポジションが無駄に崩れない感じすっごい良い 昨日より頭の中に配列表が記憶されてる

「新下駄しろうと」でした! #3時間新下駄配列速習教材・改 https://t.co/v7Bloab4Qp スコア 622点 正誤率 79.4% (ミス 235打) 速度  0.8打/秒 時間  1085秒 #mytyping

新下駄配列七日目:

楽器の運指覚える感覚にちかいかも

感想

まだ打鍵速度は遅いですが、やっぱり運指が明らかにQWERTYローマ字よりも滑らかに繋がる感覚と、指が余計な動きをしない快適さは、七日間で実感しました。 とりあえず数ヶ月でe-typingの平均ぐらいのスコアが出せるように沢山入力していきます! (この記事もちゃんと新下駄配列で書きました!)

新下駄配列はじめるよー

新下駄配列について 新下駄配列を作りました : ローマ字入力でもなく、かな入力でもなく

8日後。果たしてどうなっているでしょうかね-

本来は14日間のカリキュラムを8日間で頑張ってみたいと思います!

sasasa.org

(この記事も新下駄配列で打ってるけど、まだすっごい時間掛かる…年少の頃に、人差し指でかな入力とロ-マ字打ってたぐらい…)

Webプログラミング講座をはじめて2週間経って、DailyUIづくり始めたよ

f:id:unlimish:20200711212001p:plain 田んぼにも青々とした葉が茂り始めております。みなさまいかがお過ごしでしょうか。

今週やったこと(IT系)

  • 第1章 (HTML/CSS/JSの基礎) が終わった!
  • 第2章 (.shの書き方/bash周り/通信周り) が終わった!
  • 第3章 (node.jsを使ったサーバーサイドプログラミング) に入りましたー
  • BlenderHubローカライズをしようと思ってForkしてi18nのイニシャライズをしたよ
    • Reactに移行するっぽくてそのブランチの開発が煮詰まってきてからやろうかなって思ってたり…
  • unlimish.github.ioをNuxtで作るための準備
  • GitHubのプロフィールに出せる{username}/Readme.mdの設定
続きを読む

WSL 2にしたノリでGnomeを使えるようにGUI対応させてみた(備忘録)

Windowsだけで開発してたら死にそう…

そういえばIO早くなったんだっけ…パーミッションのバグ治ったんだっけ…

と思ってWSLをWSL2にしてみたよ!

まずはWindows Update

とりあえず、まずは、Windows UpdateWindows 10: 2004にアップデートをしましたf:id:unlimish:20200705151921p:plain

続きを読む