LoginSignup
0
0

More than 1 year has passed since last update.

NanoPi R5Sのカーネルの調整

Posted at

NanoPiのカーネルコンパイル自体は簡単に扱えるクロスコンパイル環境があるので非常にスムーズです。パラメータ自体も arch/arm64/configs/nanopi5_linux_defconfig に記載されているのでそこに追記すれば良いでしょう。
WireGuardを使いたい場合には

CONFIG_WIREGUARD=m

を追加すれば使えるようになります。

WRITEABLE clk DebugFS SUPPORT HAS BEEN ENABLED IN THIS KERNEL

NanoPi R5Sでdmesgを見ていると少し気になるメッセージがあります。

 ********************************************************************
 **     NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE           **
 **                                                                **
 **  WRITEABLE clk DebugFS SUPPORT HAS BEEN ENABLED IN THIS KERNEL **
 **                                                                **
 ** This means that this kernel is built to expose clk operations  **
 ** such as parent or rate setting, enabling, disabling, etc.      **
 ** to userspace, which may compromise security on your system.    **
 **                                                                **
 ** If you see this message and you are not debugging the          **
 ** kernel, report this immediately to your vendor!                **
 **                                                                **
 **     NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE           **
 ********************************************************************

カーネルデバッグするとき以外はこんなオプションを有効にするんじゃないと強くおっしゃられています。SBC自体は開発ボードという位置づけなので色々いじれるようにしているんでしょうね。ただ、金属筐体に収まった機材をサーバ用途に使う場合には不要でしょうから停止しておきます。
clk, debugfs などのキーワードからあたりを付けたのですがどうも適切なオプションが見当たりません。

そこでこのメッセージ自体を探すとCLOCK_ALLOW_WRITE_DEBUGFSというdefineが定義されている場合にメッセージが表示されるようです。
そして、このdefineはソースの中で定義されていました。

drivers/clk/clk.c
#define CLOCK_ALLOW_WRITE_DEBUGFS

ひとまずundefしてしまいました。

cma: cma_alloc: linux,cma: alloc failed

次に

cma: cma_alloc: linux,cma: alloc failed, req-size: 256 pages, ret: -12

CMAが溢れているようです。ただ、何に使っているのかよくわかりませんし特に実害が出ている感じもしません。ビデオドライバか何かでしょうか?

単純に気持ち悪いというだけですが、解消してみます。

カーネルメッセージの先頭付近に以下のメッセージがあります。

 Reserved memory: created CMA memory pool at 0x0000000010000000, size 8 MiB

CMAは8MB割り当てられているようです。
これを増やしてみます。CONFIG_CMA_SIZE_MBYTESがあったので増やしてみましたが増えません。ではどこで定義されているかというと、、、

arch/arm64/boot/dts/rockchip/rk3568-nanopi5-common.dtsi
        linux,cma {
                compatible = "shared-dma-pool";
                inactive;
                reusable;
                reg = <0x0 0x10000000 0x0 0x00800000>;
                linux,cma-default;
        };

ここのようです。0x00800000が8MBなので32MBに増やしましたが同様にエラーがでます。一体どのくらいいるんだろう?と思いつつ周辺のdtsiを覗いてみると128MB以上にしなさいというメッセージがいくつか見つかります。同じかどうかわかりませんが0x008000000x10000000に変更してみるとエラーが出なくなりました。
/proc/meminfoを確認すると100MB程度消費しているようです。8MBでは全然足りなかったようですが特に問題は無い感じなんでしょうか?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0