前置き#
FortiGate 50EにOpenwrtを入れてガチャガチャしているときにgithubを見ていたら@musashino_205氏によるcortexa72のヤバそうなルーターをサポートするプルリクエストを見つけた。
ヤフオクの相場を見ると¥2000~。テンション上がっちまって買ってしまった。
その後届くまでの間情報収集をしていると@djed736氏がDebianを起動するために作業しているのを発見したので
イメージが公開されていて手軽にできそうなDebian実行路線で触っていく事になりました。
御二方にはこの場で御礼を申し上げます。作業の成果にフリーライドする形になってごめんなさい。
USBメモリーを用意する#
一応ディスクイメージを作成してあるので面倒だったら使ってみてください。(おまけ参照)
パーティション分け#
partedを使った。
mklabelでgptラベルを貼って、boot(1GB),rootパーティションを作る。
bootパーティションはfat32で、rootはext4でフォーマットして/mnt/{boot,root}にマウントする。
USBメモリーにmmdebstrapしてubuntuをインストール#
mmdebstrapについてはこちらを参照されたし。
mmdebstrapで/mnt/rootにubuntu24.04LTS arm64をいれる
usbメモリーだとかなり時間がかかる。
sudo apt install mmdebstrap qemu-user-static binfmt-support
sudo mmdebstrap --architecture=arm64 noble /mnt/root
sudo chroot /mnt/root
セットアップ#
必要なこと
ユーザーを作る
adduser user sudo
カーネルのインストール
apt update && apt install initramfs-tools
cd /tmp
wget https://github.com/junk-labs/debian-mvebu_cortexa72/releases/download/dockerworkingnow/linux-headers-6.6.52-mvebu-cortexa72_6.6.52-mvebu-cortexa72-20241003061437_arm64.deb
wget https://github.com/junk-labs/debian-mvebu_cortexa72/releases/download/dockerworkingnow/linux-image-6.6.52-mvebu-cortexa72-dbg_6.6.52-mvebu-cortexa72-20241003061437_arm64.deb
wget https://github.com/junk-labs/debian-mvebu_cortexa72/releases/download/dockerworkingnow/linux-image-6.6.52-mvebu-cortexa72_6.6.52-mvebu-cortexa72-20241003061437_arm64.deb
wget https://github.com/junk-labs/debian-mvebu_cortexa72/releases/download/dockerworkingnow/linux-libc-dev_6.6.52-mvebu-cortexa72-20241003061437_arm64.deb
sudo dpkg -i /tmp/*.deb
- u-bootが読み込むためのあれこれ
chrootから抜けてからcd /mnt/root
してsudo vim boot/extlinux.conf
内容は
label ubuntu
kernel /boot/vmlinux-6.6.52-mvebu-cortexa72
initrd /boot/initrd.img-6.6.52-mvebu-cortexa72
fdt /boot/armada-7040-v-80.dtb
append console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000 earlyprink root=/dev/sda2 rw rootwait mvpp2x.queue_mode=1 ethaddr=${ethaddr} eth1addr=${eth1addr} eth2addr=${eth2addr} eth3addr=${eth3addr}
gzip圧縮イメージは使えないのでgunzipする。
ついでにdtbを移動させる。
sudo mv boot/vmlinuz-6.6.52-mvebu-cortexa72 boot/vmlinux-6.6.52-mvebu-cortexa72.gz
sudo gunzip boot/vmlinux-6.6.52-mvebu-cortexa72.gz
sudo cp usr/lib/linux-image-6.6.52-mvebu-cortexa72/marvell/armada-7040-v-80.dtb boot/
- bootパーティションに
/mnt/root/boot
をコピーする
sudo cp -r boot ../boot
ルーターの準備#
シリアルコンソールでルーターを操作してusbブートできるようにする。
起動後expert
と叩くと色々いじれるのに入れる。
expert # ここで初期状態だとパスワードの設定が入る。
fw_setenv bootcmd_ow_sysboot 'usb start; sysboot usb 0:1 any ${loadaddr} /boot/extlinux.conf;'
fw_setenv bootcmd 'set cp_quiet; run set_bootargs_vx; run bootcmd_ow_sysboot; run bootcmd_ow_usb; run bootcmd_ow_emmc; run bootcmd_part${activePartition};'
USBメモリーを刺して起動するとubuntuが立ち上がる。
chrootでいじる段階でユーザーを作ってないとログインできない。