2.3_config.txt_ファイルによる設定
RDK では、設定ファイルconfig.txtを使って起動時のシステム設定を行います。config.txt はuboot段階で読み込まれ、デバイスツリーの設定、IO ピンの状態、ION メモリ、CPU 周波数などの変更に対応しています。このファイルは通常 Linux から/boot/config.txtとしてアクセスでき、rootユーザーとして編集する必要があります。config.txtで設定を行う際にファイルがまだ存在しない場合は、新しいテキストファイルとして作成するだけで構いません。
注意事項
注意
config.txt設定ファイルはRDK X3、RDK X5、RDK X3 Module開発ボードにのみ対応しており、RDK Ultra開発ボードには対応していません。- システムバージョンは
2.1.0以上である必要があります。minibootのバージョンは20231126以降である必要があります。rdk-miniboot-update を参照してボード上で miniboot を更新してください。- この設定ファイルにフィルタ項目を追加した場合、
srpi-configツールを使用する際に設定項目がフィルタで除外されないか注意してください。
デバイスツリーの設定
dtdebug
dtdebug が 0 以外の場合、uboot段階のデバイスツリー設定処理中に設定ログがシリアルポートに出力されます。dtdebug は dtoverlay より前に設定する必要があります。
dtdebug=1
dtoverlay
デバイスツリーオーバーレイに対応しており、より柔軟にデバイスツリーを調整できます。
【RDK X3】例えばion_resizeでIONメモリのサイズを調整できます。以下の設定ではIONメモリサイズを 1GB に変更します。
dtoverlay=ion_resize,size=0x40000000
【RDK X5】dtoverlay_spi5_spidev で /dev/spidev5.0 を追加します(注意:CAN デバイスも spi5 に接続されているため、spidev と CAN はどちらか一方しか使用できません)
dtoverlay=dtoverlay_spi5_spidev
RDK X5 の ION 設定
ion_reserved_size、ion_carveout_size、ion_cma_size で boot 環境変数を変更し、ION パーティションのサイズを変更します。
| boot 環境変数名 | dts ラベル | dts compatible 文字列 | デフォルトサイズ |
|---|---|---|---|
| ion_reserved_size | ion_reserved | ion-pool | 320M |
| ion_carveout_size | ion_carveout | ion-carveout | 320M |
| ion_cma_size | ion_cma | ion-cma | 128M |
ion=ion_reserved_size=0x14000000
ion=ion_carveout_size=0x14000000
ion=ion_cma_size=0x08000000
起動情報から各 ION 領域のサイズを確認できます:
root@ubuntu:~# dmesg | grep "Reserved ion"
[ 0.207939] Reserved ion-pool MEM start 0xa4100000, size 0x14000000
[ 0.207964] Reserved ion-carveout MEM start 0xb8100000, size 0x14000000
[ 0.208068] Reserved ion-cma MEM start 0xcc100000, size 0x8000000
dtparam
uart、i2c、spi、i2s などのバスの有効化・無効化を設定できます。
現在対応しているオプションパラメータ:
RDK X3 の対応: uart3, spi0, spi1, spi2, i2c0, i2c1, i2c2, i2c3, i2c4, i2c5, i2s0, i2s1
RDK X5 の対応: uart1, uart2, uart3, uart6,spi1, spi2, i2c0, i2c1, i2c5, i2c4, i2c5, dw_i2s1
注意
RDK X5 ではピンの多重化関係に注意が必要です。1 行のすべてのインターフェースが disable の場合、そのピンは GPIO 機能ピンになります
| 機能1 | 機能2 |
|---|---|
| uart3 | i2c5 |
| i2c0 | pwm2 |
| spi2 | pwm0 |
| spi2 | pwm1 |
| i2c1 | pwm3 |
例えばシリアルポート 3 を無効にする場合:
dtparam=uart3=off
例えばi2c5を有効にする場合:
dtparam=i2c5=on
X5 の CPU 周波数
CPUスケジューリング方式については X5 CPU 周波数管理 を参照してください。オーバークロックを行う予定の場合は、必ず事前にドキュメントのCPU オーバークロックの節を読み、リスクと注意事項を十分に理解してください。
ここではconfig.txtによる設定方法のみを説明し、スケジューリングポリシーやオーバークロックの原理に関する内容は含みません。
arm_boost
1 に設定するとオーバークロックが有効になり、RDK X5 の最大周波数が 1.8GHz に引き上げられます。cat /sys/devices/system/cpu/cpufreq/policy0/scaling_boost_frequencies で、boost を有効にした後に開放される高い CPU 周波数を確認できます。
デフォルトではオーバークロックは無効で、arm_boost を 1 に設定すると有効になります。例:
arm_boost=1
governor
CPU 周波数のスケジューリング方式で、conservative ondemand userspace powersave performance schedutil から選択できます。cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_governors で設定可能なモードを確認できます。
例えばCPUをパフォーマンスモードで動作させる場合:
governor=performance
frequency
governorを userspace に設定した場合、このオプションでCPUを固定周波数で動作させることができます。現在は一般的に300000 600000 1200000 1500000の周波数を設定でき、具体的にはcat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies で設定可能な周波数の一覧を確認できます。
例えばCPUを 1.2GHz に下げて動作させる場合:
governor=userspace
frequency=1200000
IO の初期化
gpio
IO の機能多重化、入力・出力モード、出力の High/Low レベル、プルアップ/プルダウンモードを設定できます。BOARD 番号に対応する GPIO 番号を選択してください。
gpio:
ip - Input 设置为输入模式
op - Output 设置为输出模式
f0-f3 - Func0-Func3 设置功能复用,X3 f3功能都是设置为io模式,X3的其他功能和X5的所有功能请查看40PIN 管脚定义,或查阅相关寄存器文档
dh - Driving high (for outputs) 输出高电平
dl - Driving low (for outputs) 输出低电平
pu - Pull up 推挽上拉
pd - Pull down 推挽下拉
pn/np - No pull 无上下拉
例
40Pinピン上の GPIO5 と GPIO6 を IO モードに設定する場合:
gpio=5=f3
gpio=6=f3
# 对于连续的管脚,也可以使用以下方式配置
gpio=5-6=f3
40Pinピン上の GPIO5 を入力モードに設定する場合:
gpio=5=f3
gpio=5=ip
40Pinピン上の GPIO6 を出力モードにし、Low レベルを出力する場合:
gpio=6=f3
gpio=6=op,dl
40Pinピン上の GPIO6 を出力モードにし、High レベルを出力してプルアップを設定する場合:
gpio=6=f3
gpio=6=op,dh,pu
温度制御
throttling_temp
システムの CPU・BPU の周波数低下温度です。温度がこの値を超えると、CPU と BPU は動作周波数を下げて消費電力を抑えます。CPU は最低 240MHz、BPU は最低 400MHz まで下がります。
例えば周波数低下温度を 86℃ に設定する場合:
throttling_temp=86000
shutdown_temp
システムの停止温度です。温度がこの値を超えると、チップとハードウェアを保護するためにシステムが自動的にシャットダウンします。停止後はデバイスが自動で再起動しないため、デバイスの放熱対策を十分に行い、停止を避けることをお勧めします。
例えば停止温度を 112℃ に設定する場合:
shutdown_temp=112000
オプションのフィルタ
[] を使ってフィルタ項目を設定できます。フィルタ項目は設定ファイルの末尾に追加する必要があります。ファイル前半のフィルタ項目がない部分は all に属し、フィルタ設定を追加すると、それ以降の設定は設定ファイルの終わりまたは別のフィルタ項目が設定されるまで、そのフィルタ属性にのみ属します。
現在対応しているフィルタ項目はハードウェア型番で区別され、以下のフィルタ項目に対応しています:
| フィルタ項目 | 対応する型番 |
|---|---|
| [all] | すべてのハードウェア(デフォルト属性) |
| [rdkv1] | RDK x3 v1.0,RDK x3 v1.1 |
| [rdkv1.2] | RDK x3 v1.2 |
| [rdkv2] | RDK x3 v2.1 |
| [rdkmd] | RDK x3 Module |
| [x5-rdk] | RDK X5 V0.1 |
電圧ドメイン
voltage_domain
40pin ピンの電圧ドメインを設定します。3.3V と 1.8V に設定でき、設定しない場合はデフォルトで 3.3V になります。
この設定項目は、ハードウェア上の電圧ドメイン切り替え用ジャンパーキャップと組み合わせて使用する必要があります。
注意
この設定に対応しているのは RDK Module のみです。
例えばRDK X3 Moduleの40Pinを3v3電圧モードで動作させる場合(ここではフィルタ項目として[rdkmd]を使用しています):
# Voltage domain configuration for 40 Pin, 3.3V or 1.8V, defualt 3.3V
# Only RDK Module supported
[rdkmd]
voltage_domain=3.3V
ドキュメント