新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


サイドバー

Home The modern stone age.

サイドバー

記事ナビ


タグ一覧

タグ#
1
18
5
2

作者関連サイト

参考

スポンサーリンク

develop:rtk_kernel:rtk_kernel-rpi:execution:start


実行

rtk_kernel for Raspberry Pi」の実行手順。

シリアルコンソール

Raspberry Piとパソコンとは、シリアル通信で接続する。Raspberry Piのシリアル通信関係のコネクタピンは下記。尚、Raspberry Pi側は3.3V信号なので、シリアル-USB変換ケーブルなどが必要。詳しくは関連記事(1.)を参照。

Raspberry Pi ピン名称 ピン番号 シリアル信号
GND 6 GND
GPIO 14 (TXD) 8 RX
GPIO 15 (RXD) 10 TX
  • 通信仕様は下記
    ボーレート :115200、データ長 :8bit、パリティー :なし、ストップビット :1、フロー制御 :なし

起動SDカード準備

T-Kernel/T-Monitorプログラムの起動は、u-bootを利用。(T-Monitor単体でも起動はできるのだが、2019/10/21現在 SDカードアクセスは未サポートの為)

ファイル容量は4GByteもあれば十分なので、FATフォーマットされたマイクロSDカードを準備し、下記の合計7のファイルを書き込む。

u-boot関連ファイルの書き込み

GitHub(https://github.com/jr4qpv/rpi_u-boot_jtag_bins)から、各Raspberry Piの機種用の下記4つのファイルを入手し、SDカードのルートに書き込む。詳しくは、関連記事(1.)を参照。

  1. bootcode.bin
  2. start.elf
  3. u-boot.bin
  4. config.txt

T-Kernel関連ファイルの書き込み

T-Kernel関連のファイルを、コンパイル手順で作成した下記3つのファイルを、SDカードに書き込む。

  1. tmonitor.bin
  2. rominfo-rom.bin
  3. kernel-rom.bin

T-Kernelの起動

前記で作成した起動用SDカードを Raspberry Piにセットして電源起動すると、シリアル通信でu-bootの起動メッセージが表示される。 カウントダウンするので、その間にキー入力するとu-bootコマンドが入力できる。

続いて、下記コマンドを実行してT-Kernelを起動。

u-boot> fatload mmc 0 8000 tmonitor.bin
u-boot> fatload mmc 0 4000 rominfo-rom.bin
u-boot> fatload mmc 0 30000 kernel-rom.bin
u-boot> go 8000

起動メッセージが下記のように表示されたら、無事T-Kernelが起動。

U-Boot> go 8000
## Starting application at 0x00008000 ...

T-Kernel Version 2.02.00 for RPi2 r0.60 [Thu Oct 10 16:58:26 JST 2019]

ConsoleIO - OK
userinit(0x80000) code not found.
usermain start.
T2EX >>

この例では、アプリの実行コードが認識できないので、サンプルアプリ(簡易シェル)の入力待ちとなっている。

u-bootの調整

毎回手動でコマンド入力するのは面倒なので、下記コマンドでT-Kernelを自動起動するようにする。詳しくはu-bootのhelpやドキュメントを参照。

u-bootのコマンド入力待ちから、下記コマンドを入力

u-boot> setenv tk_bootcmd 'fatload mmc 0 8000 tmonitor.bin; fatload mmc 0 4000 rominfo-rom.bin; fatload mmc 0 30000 kernel-rom.bin; go 8000'
u-boot> setenv bootcmd 'run tk_bootcmd'
u-boot> setenv bootdelay 2
u-boot> saveenv

デバック中など自動でT-Kernelまで起動せずに、u-bootのコマンド待ちにしたい場合は、下記コマンドを実行。

u-boot> setenv bootdelay -1
u-boot> saveenv

電源投入でu-bootのコマンド待ちとなり、bootコマンド入力で、bootcmd変数登録のコマンドが実行されるのでT-Kernelが起動。

自動起動画面例

「Raspberry-Pi 2」で起動した時の画面はこんな感じ。

イーサネットLAN経由でのブート

毎回SDカードに書き込むのも面倒なので、u-bootではTFTPサーバからイーサネット通信でのファイル読み込みも出来る。詳しくは下記記事参照。

【Raspberry Pi】u-bootでTFTPサーバからイーサネット経由のファイル読込み

関連記事

develop/rtk_kernel/rtk_kernel-rpi/execution/start.txt · 最終更新: 2020/01/07 14:21 by yoko