nucleo-stm32F429ziボードからLinuxを実行できますか?

nucleo-stm32F429ziボードからLinuxを実行できますか?

私が知っている限り、stm32nucleoF429ziにはハードウェアMMUはありませんが、Linuxカーネル設定オプションでMMUオプションを無効にできます。

これで、stm32 F429ziでLinuxを実行できないのはなぜですか?なぜuCLinuxしか実行できないのですか? Linuxカーネル構成でMMUを無効にすると、uCLinuxは実行できますが、Linuxは実行できないのはなぜですか?

答え1

stm32f429でメインラインLinuxを簡単に実行できます。そして他のMMUがないMCUもあります。私はstm32h743でメインラインLinuxカーネルを実行しています(stm32f4のようなMMUもありません)。

しかし、唯一の問題はあなたの開発ボードに外部メモリ

Linuxを実行するには最低4MBのRAMが必要です。

だから、ぜひ購入することをお勧めします。STM32F429NI MCU付き評価ボード。評価ボードにはSDカードスロットもあります。

マザーボードでLinuxを実行する手順:

  1. ダウンロードユースタットそしてLinuxカーネルそして忙しい箱。
  2. u-boot および Linux カーネルとビジボックスのビルド (ビジボックスを使用した rootfs 生成用)このガイド)。
  3. stm32 内部フラッシュメモリにu-bootを書き込む
  4. SDカードの準備(20MB FATパーティションの作成と大型EXT4パーティションの作成)
  5. ブートファイルをsdcardにコピーします(マザーボードのdtbファイルとカーネルのzImageをfatパーティションにコピーし、rootfsをext4パーティションにコピーします)。
  6. u-bootコマンドを使用して、DTBとzImageをDRAMにロードしてカーネルを起動します。

便利で必要なu-bootコマンド:

  1. DTB と zImage をロードするには、「fatload」コマンドを使用します (例: fatload mmc 0:1 ${kernel_addr_r} zImage)。
  2. 「setenv bootargs」コマンドを使用して設定します。ブートパラメータたとえば、(setenv bootargs console=ttySTM0,115200n8 root=/dev/mmcblk0p2 rw rootwait loglevel=7 init=/linuxrc)。
  3. たとえば、「bootz」コマンドを使用してカーネルを起動します(bootz ${kernel_addr_r} - ${fdt_addr_r})。

PS:uClinuxは古くて役に立ちません。最新のメインラインLinuxカーネルが利用可能な場合は使用しないでください。

関連情報