5

カーネルがPAEモードであるかどうかを確認するスクリプトを作成する必要があります。確かに、/ proc/cpuinfoフラグにこの 'pae'設定があるかどうかを確認するだけでは不十分です。LinuxがPAEモードまたは非PAEモードであることをプログラムでどのように伝えるか?

PAEメカニズムが実際に実装されているだけでなく、アクティブ化されているかどうかを知る必要があります。

PAEカーネルが新しいデフォルトになり、非PAEカーネルが必要な場合は、最近別のカーネルを作成する必要があるためです。他の言葉で

  1. 、カーネルはPAE(をテストするには、2つの可能な条件の一つである)を有するCPU上で非PAEであれば、どのように言うのです。

  2. その他は、カーネルがPAEをサポートしていないCPU上でPAEであるかどうかを知る方法です。

そしてCONFIG_HIGHMEMまたはCONFIG_PAEカーネル設定オプションは、一般的なセキュリティで保護されたカーネルで使用された場合に指示する方法はありません。

$ cat /boot/config-$(uname -r) | grep PAE 
    CONFIG_X86_PAE=y 

あなたは、そのファイルへのアクセス権を持っていない:通常、CONFIG_PAEはこのように、*あなたの/ boot/CONFIG-に

+2

'/ proc/cpuinfo'は、特定のプロセッサがPAEモードで動作しているかどうかを判断する信頼できる方法です。これでは十分ではありませんが、あなたのLinuxプラットフォームを通じてBIOS設定をテストすることを意味するようです。まさにあなたが達成したいと思っているものについて詳しく説明できますか? –

+0

PAEカーネルがデフォルトになり、非PAEカーネルが必要な場合は、今のところそれを作る必要があるためです。 つまり、カーネルがPAEを持つCPU上で非PAEであるかどうかを調べるには(テストする2つの条件のうちの1つです) その他の情報は、カーネルがPAEをサポートしていないCPU上でPAEであるかどうかを調べる方法です。 セキュリティで保護されたカーネル設定で 'CONFIG_HIGHMEM'または' CONFIG_PAE'が使われたかどうかを知る方法はありません。これを反映するために –

+0

質問が更新されました。 –

答えて

1

を発見することができますか?

0

CR4レジスタを読み取り、ビット5を調べる方法があります。これは、PAEでは1、PAEなしでは0になります。カーネル内で実行中のコード(カーネルドライバなど)でそのレジスタを読み取ることができます。あなたはこの目的のために小さなドライバを書くことができるかもしれません。それほど複雑ではありません。

関連する問題