目次

1GiB メモリ全領域を使用する(1GiB DRAM 搭載機)

1GiB DRAM 搭載時、CONFIG_HIGHMEM を有効にすると問題が発生する可能性が否定できないため、v5.1.1 ファームウェアから Bootloader によりメモリサイズを 768MiB に制限しています。

現時点(2022/02/15)では回答が記載されておらず、スレッドもロックされて結論も出ていないために上記制限をいれました。

Forum を起票した方が書いている下記変更で問題が回避されると仮定した場合、1GiB 全領域を使用するためには下記対応が必要となります。

When we change the kernel config:

CONFIG_VMSPLIT_3G =>> CONFIG_VMSPLIT_3G_OPT(disable highmem and use entire 1G space for direct memory)

or

CONFIG_HIGHPTE = n (disable the 2nd level page table from highmem)

The issue seems solved.


上記 CONFIG_VMSPLIT_3G を有効にする変更を現在テスト中で、問題がないと確認ができ次第適用する予定です。


変更方法

Bootloader の入れ替え

ファームウェアの barebox.bin.img を、v5.1.0 までに入っていたものに入れ替えます。

File Stat SHA1SUM Note
barebox.bin.img2022/02/15 17:27 383.5 KBd31d6aff5b48d62eb3682b4732fd7532662ea231通常版
barebox_nojre.bin.img2022/02/15 17:27 383.5 KB6b3f6cb15789b9dcbcbabec587a8a6f64f017dffJRE 領域縮小版


# ls -l
-rwxr-xr-x 1 root root   392672  2月 15 17:30 barebox.bin.img
-rwxr-xr-x 1 root root   392704  2月 15 17:30 barebox_nojre.bin.img

# zip -j mae3xx_focal_v5_1_1.img barebox*
updating: barebox_nojre.bin.img (deflated 36%)
updating: barebox.bin.img (deflated 36%)


Kernel Config の変更

フォーラムにあるとおり、CONFIG_VMSPLIT_3G_OPT に変更します。

user1@pc:~/src/linux-kernel-wireguard-ti-4.19.y$ make CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

Kernel Features → Memory split → 3G/1G user/kernel split (for full 1G low memory)


※ Github に置いてあるリポジトリには、plum_MA_NOHIGHMEM_defconfig という config を追加してあるので、下記のとおり config を作成する方法もあります。

$ make CROSS_COMPILE=arm-linux-gnueabihf- plum_MA_NOHIGHMEM_defconfig
#
# configuration written to .config
#


ファームウェアのビルド

アップデート用ファームウェアの作成(クロス) の方法で、ファームウェアのビルドを行います。