2023-12-27

GL-AXT1800 のストレージを拡張または裏技で、大きなパッケージをインストールする

 

 

GL-AXT1800 はストレージ容量が 128 MB ですが初期起動直後でもパッケージインストール領域は 43 MB しか残っていません(マウントポイント:/overlay の利用可能領域サイズ)。

 

 

 

例えば tailscale 最新板 1.56.1 の tailscale / tailscaled パッケージ合計 58 MB をインストールできません。

 

GL-AXT1800 も A1300 も古い tailscale 1.32.2-1 dev-t が標準で入っています。


これでよければ管理画面から有効化(起動)すればすぐに使えます。




最新化する場合、いったん有効化しておき、モジュールを最新のものと置き換えます。

 

 

 

これら大きなパッケージをインストールできるようにするには二つの方法があります。

 

 

 

【方法1】ストレージを拡張する方法 

 

正統派のやり方です。

 

ストレージを sd カードで拡張して、パッケージをインストールするやり方です。

 

 

 

【方法2】upx 圧縮する方法:裏技です 

 

upx 圧縮はモジュールを実行可能なまま圧縮する方法です。

 

圧縮すれば約半分の 29 MB ほどになります。

 

Mac で upx 圧縮し、scp コマンドで GL-AXT1800 に送り込むやり方です。

 

 

ーーーーー

 

これら二つの方法は GL-A1300 でも同様にできますが、GL-A1300 のストレージ拡張は USB2.0 メモリでの拡張になります。

 

 

 

 

ここでは GL-AXT1800 での二つの方法について、具体的なやり方を記載します。

 

 

【方法1】ストレージを拡張する方法 


sd カードを挿して、ターミナルから GL-AXT1800 に ssh で入ります。


SD カードは 1 GB あれば十分ですが、手持ちの 2 GB のものを使います。


まずは、必要なパッケージをインストールします。


root@GL-AXT1800:~# opkg update
root@GL-AXT1800:~# opkg install block-mount kmod-fs-ext4 fdisk

 

 

次の手順でコマンドを実行します。

 

 ・sd カードのマウントを解除

 ・ext4 でフォーマット

 ・デバイスを /mnt にマウント

  下記ではエラーメッセージがでていますが、ちゃんとマウントされています

 ・/overlay の内容を sd カード である /mnt にコピー

 ・変更を有効にするため再起動


 

 

コマンドの具体的な実行状況です。


root@GL-AXT1800:~# umount /dev/mmcblk0p1
root@GL-AXT1800:~# mkfs.ext4 /dev/mmcblk0p1
mke2fs 1.45.6 (20-Mar-2020)
/dev/mmcblk0p1 contains a ext4 file system
    last mounted on /tmp/extroot/overlay on Wed Dec 27 07:49:01 2023
Proceed anyway? (y,N) y
Discarding device blocks: done                            
Creating filesystem with 480000 4k blocks and 120000 inodes
Filesystem UUID: 38034445-dc40-4eca-a606-955c098a40ab
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

root@GL-AXT1800:~# mount /dev/mmcblk0p1 /mnt
NTFS signature is missing.
Failed to mount '/dev/mmcblk0p1': Invalid argument
The device '/dev/mmcblk0p1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
root@GL-AXT1800:~#
root@GL-AXT1800:~# cp -a -f /overlay/. /mnt
root@GL-AXT1800:~# reboot
root@GL-AXT1800:~# Connection to 192.168.8.1 closed by remote host.
Connection to 192.168.8.1 closed.
Mac-mini ~ %



 

ーーーーー GL−A1300 の場合 ーーーーー

USB メモリで領域を拡大しますので以下のパッケージをインストールします。

 

root@GL-A1300:~# opkg update
root@GL-A1300:~# opkg install block-mount kmod-fs-ext4 kmod-usb-storage e2fsprogs kmod-usb-ohci fdisk

 

また、sd カードと違い、デバイスが /dev/mmcblk0p1 ではなく /dev/sda1 で認識されますので、GL-AXT1800 でのデバイスを読み替えれば結構です。

ーーーーー GL-A1300 ここまで ーーーーー


 

 

再起動されたら LuCi の管理画面から【システム】→【マウントポイント】として、マウントされている /dev/mmcblk0p1 の【編集】をクリックします。


マウントされていなければ【追加】ボタンで割り当て操作をします。

 

【一般設定】は次のようにします。

 

 

 

【詳細設定】は次のようにします。

 

 

【保存】して戻り【保存&適用】をクリックして反映させます。


【システム】→【再起動】で再起動します。


 

 

再起動後の【マウントポイント】は次のようになって /overlay が拡張されているのが確認できます。




tailscale の最新版インストールと起動は、次のコマンドを実行します。

 

root@GL-AXT1800:~# opkg flag hold tailscale tailscaled
Setting flags for package tailscale to hold.
Setting flags for package tailscaled to hold.
root@GL-AXT1800:~# wget https://pkgs.tailscale.com/stable/tailscale_1.56.1_arm.tgz
--2023-12-27 08:08:42--  https://pkgs.tailscale.com/stable/tailscale_1.56.1_arm.tgz
Resolving pkgs.tailscale.com... 199.38.181.239, 2607:f740:f::d19
Connecting to pkgs.tailscale.com|199.38.181.239|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://dl.tailscale.com/stable/tailscale_1.56.1_arm.tgz [following]
--2023-12-27 08:08:43--  https://dl.tailscale.com/stable/tailscale_1.56.1_arm.tgz
Resolving dl.tailscale.com... 109.105.218.17, 2a09:8280:1::a:1a71
Connecting to dl.tailscale.com|109.105.218.17|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 28696243 (27M) [application/x-compressed-tar]
Saving to: 'tailscale_1.56.1_arm.tgz'

tailscale_1.56.1_arm.tg 100%[=============================>]  27.37M  47.0MB/s    in 0.6s    

2023-12-27 08:08:43 (47.0 MB/s) - 'tailscale_1.56.1_arm.tgz' saved [28696243/28696243]

root@GL-AXT1800:~# tar zxf tailscale_1.56.1_arm.tgz
root@GL-AXT1800:~# mv tailscale_1.56.1_arm/tailscale* /usr/sbin
root@GL-AXT1800:~# /etc/init.d/tailscale restart 





【方法1】upx 圧縮する方法 

 

まず Mac のターミナルで brew install upx として、upx をインストールしておきます。

 

 

https://pkgs.tailscale.com/stable/ から現時点の最新板 tailscale_1.56.1_arm.tgz をダウンロードし、解凍します。

 

ターミナルで、解凍したフォルダに移動し、upx コマンドでモジュールを圧縮します。

 

圧縮時の --best オプションは最適圧縮指定です。

 

Mac-mini tailscale_1.56.1_arm % upx --best tailscale*   
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2023
UPX 4.1.0       Markus Oberhumer, Laszlo Molnar & John Reiser    Aug 8th 2023

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
  15875666 ->   8891944   56.01%    linux/arm    tailscale                     
  41638019 ->  20020416   48.08%    linux/arm    tailscaled                    
   --------------------   ------   -----------   -----------
  57513685 ->  28912360   50.27%                 [ 2 files ]

Packed 2 files.
Mac-mini tailscale_1.56.1_arm %

 

 

tailscale / tailscaled の二つ合計で 57.5 MB のものが約半分の 28.9 MB に圧縮されています。

 

 

次に GL-AXT1800 の LuCi →【システム】→【Software】で openssh-sftp-server をインストールします。

 

これは、scp で送り込まれるファイルを受け取るサーバーパッケージです。

 

Mac から scp コマンドで圧縮したモジュールを送り込みます。

 

Mac-mini tailscale_1.56.1_arm % scp tailscale* root@192.168.8.1:/usr/sbin
root@192.168.8.1's password: <パスワード入力>
tailscale                                                   100% 8891KB   1.7MB/s   00:05    
tailscaled                                                  100%   20MB   1.6MB/s   00:12   
Mac-mini tailscale_1.56.1_arm %
 

 

GL-AXT1800 に ssh で入り、tailscale を再起動します。

 

root@GL-AXT1800:~# /etc/init.d/tailscale restart 

 

 

tailscale を起動した GL-AXT1800 を、既存のルーターにぶら下げて使う場合は管理画面で【アプリケーション】→【tailscale】→【リモートアクセスWANを許可する 】をオンにします。

 

 

そして、ssh で入ったターミナル画面で tailscale up --advertise-routes=<192.168.xxx.0/24> --accept-routes --advertise-exit-node とし、Exit Node と Subnets を広告します。

 

  ※ 192.168.xxx.0/24 は既存ルーターの LAN 側セグメントです。

 


実際に Exit Node と Subnets を有効にするには、tailscale の管理画面で AXT1800 の Edit route setting... でチェックを入れます。




以上が、ストレージ容量が十分な空き領域を持たない場合の、空き領域以上の大きさのパッケージをインストールする方法です。





GL-MT2500 / MT2500A の場合はストレージが 8 GB ありますから、このようなやり方は不要ですが、これらの機種には無線 LAN が搭載されていません。









0 件のコメント: