NI Linux Real-Timeコントローラの組み込みUIのディスプレイ解像度をcRIOのコマンドラインから変更するには、Linuxシェルに接続して、以下の手順に従って設定を行います。
ステップ1: 環境変数の設定
まず、DISPLAY環境変数をXサーバーにポイントするように設定する必要があります。これを行うには、コマンドラインに export DISPLAY=:0 と入力します。システムがXサーバーの場所を認識したら、xrandr コマンドを使用してディスプレイ設定を変更できます。
すべての検出された出力のリストを表示したい場合は、xrandr と入力します。ただし、DISPLAY環境変数を更新しないとエラーが返されることに注意してください。
ステップ2: ディスプレイモードの作成
例えば、モニターハードウェアの解像度が1024x768の場合、この解像度で組み込みUIを表示するためにディスプレイモードを作成する必要があります。xrandr コマンドには、画面解像度、リフレッシュレート、DPI、およびその他のフラグを定義する一連の引数(モードリスト)が必要です。
ディスプレイのマニュアルに互換性のあるモードリストが記載されている場合もありますが、記載されていない場合は生成する必要があります。幸いなことに、cvt という別のコマンドラインユーティリティを使用して、希望する水平および垂直解像度を指定してモードラインを計算できます。例えば、1024x768の解像度ディスプレイのモードラインを取得するには、cvt 1024 768 と入力します。これにより、次のような出力が得られます:
解像度の有効な引数が得られたら、実際にXfceでモードラインを作成する必要があります。これを行うには、xrandr --newmode <modeline> を呼び出します。ここで、<modeline> は cvt コマンドの出力に対応します。結果には引用符で囲まれた文字列が含まれています。これはモードラインの名前なので、好きな名前に置き換えることができます。例の出力(先頭の「Modeline」を除く)と「NewMode」という名前を使用すると、次のようになります:
新しいモードの追加が成功したかどうかを確認するには、再度 xrandr を呼び出します。新しいモードが VIRTUAL1 の切断されたディスプレイポートセクションに表示されるはずです。
ステップ3: 新しいモードの有効化
次に、ディスプレイポート(デフォルトでは DP1 として識別されます)にモードをオプションとして追加する必要があります。これを行うには、xrandr --addmode <display_port> <mode_name> と入力します。例えば、モード名が NewMode の場合、xrandr --addmode DP1 NewMode と入力します。再度 xrandr を呼び出すと、モードが DP1 に表示されることが確認できます。
新しいモードを有効にするには、xrandr --output <display_port> --mode <mode_name> を呼び出す必要があります。コントローラにモニターが接続されている場合、変更が反映されるのが確認できるはずです。ただし、これらの変更は再起動後には保持されません。変更に満足した場合は、次の手順に進んでこれらの変更を永続化します。
ステップ4: 変更を永続化する
上記の手順は現在のセッションにのみ変更を加え、システムを再起動すると失われます。再起動時にこれらの設定が適用されるようにするには、これらの設定コマンドを .bashrc に追加する必要があります。.bashrc は各ユーザーのホームディレクトリに存在するスクリプトファイルです。組み込みUIは lvuser ユーザーアカウントで実行されるため、この場合は /home/lvuser/.bashrc に変更を加えます。コマンドラインテキストエディタを使用するか、ファイルをローカルマシンに転送して必要な変更を加え、再度ターゲットに転送することができます。
ディスプレイモード NewMode による変更を行いたい場合、ファイルへの追加は次のようになります:
#code for init of custom res
export DISPLAY=:0
xrandr --newmode "NewMode" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
xrandr --addmode DP1 NewMode
xrandr --output DP1 --mode NewMode
変更を保存してコントローラを再起動してください。これで、カスタム解像度で起動するようになります。
.bashrc を変更した後も解像度が正しく表示されない場合、スクリプトが実行される時点でデスクトップ環境が完全に起動していない可能性があります。別の方法として、前述のスクリプトをUI(Xfce)のスタートアップアプリとして実行することもできます。
- /usr/local/bin/setresolution.sh にshファイルを作成します。
- 上記のスクリプトをコピーします
- 最初の行が#!/bin/shであることを確認します(以下の例を参照)。
- #!/bin/sh
export DISPLAY=:0
xrandr --newmode "NewMode" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
xrandr --addmode DP1 NewMode
xrandr --output DP1 --mode NewMode - スクリプトを実行可能にするには、以下のコマンドを使用します:chmod a+x /usr/local/bin/setresolution.sh
- Xfceの自動起動ショートカットを作成するには、以下の手順を行います:
- 組み込みUIを介してターゲットでSettings->Session and Startup->Application Autostart に移動します。
- Add をクリックし、関連するフィールドに入力します。重要なのはCommandで、/usr/local/bin/setresolution.sh を指定する必要があります。
- これにより、/home/lvuser/.config/autostart に .desktop ファイルが作成され、デスクトップ環境が起動するとスクリプトが実行されます(それ以前には実行されません)。
追加情報
NI Linux Real-Timeは、モニターをネイティブにクエリし、最も近いサポートされている解像度を選択します。この手順は、デフォルトの解像度が設定マネージャーダイアログをディスプレイから切り取ってしまうモニターに推奨されます。設定マネージャーが表示されるモニターの場合は、UIからマウスでディスプレイサイズを変更することをお勧めします。
また、この手順に従う際、テキストエディタ間のフォーマットの違いにより予期しないエスケープ/改行文字が導入されることがあります。vi(NI Linux Real-Timeのデフォルトテキストエディタ)を使用して .bashrc ファイルを表示し、予期しない文字が導入されていないことを確認してください。