ubuntu serverでディスプレイ出力を90°回転させる方法を教えてください。

Ubuntu Serverでディスプレイ出力を90度回転させる方法は、GUI(デスクトップ環境)の有無によって異なります。

1. GUIがない場合(コンソール画面のみ)

Ubuntu Serverの標準的なCUI画面(仮想コンソール)を回転させるには、フレームバッファ(fbcon)の設定を変更します。

  • 即時反映させるコマンド:
    以下のコマンドを実行すると、現在の画面が即座に回転します。bash# 90度右回転 (時計回り) echo 1 | sudo tee /sys/class/graphics/fbcon/rotate_all # 90度左回転 (反時計回り) echo 3 | sudo tee /sys/class/graphics/fbcon/rotate_all # 0:標準, 1:90度, 2:180度, 3:270度
  • 永続的に設定する方法(再起動後も有効):
    GRUBの設定ファイルを編集して、起動オプションに回転設定を追加します。
    1. 設定ファイルを開く: sudo nano /etc/default/grub
    2. GRUB_CMDLINE_LINUX_DEFAULT 行に fbcon=rotate:1 を追記する(90度回転の場合)。
      例: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash fbcon=rotate:1"
    3. 設定を更新する: sudo update-grub
    4. システムを再起動する。 

2. GUIがある場合(Ubuntu Desktopを導入済み)

デスクトップ環境(GNOMEなど)を使用している場合は、xrandr コマンドまたは設定メニューを使用します。 

  • コマンドで回転:bash# 90度右回転 xrandr -o right # 90度左回転 xrandr -o left # 元に戻す xrandr -o normal コードは注意してご使用ください。※ Wayland環境では gnome-monitor-config などのツールが必要になる場合があります。
  • 設定メニューから変更:
    [設定] > [ディスプレイ] > [向き (Orientation)] から「Portrait Right(右縦)」または「Portrait Left(左縦)」を選択して適用します。 

現在、どちらの環境(コンソール画面デスクトップ画面か)で作業されていますか?

GUIは未インストールでConsoleで作業しています。

GUIがインストールされていないUbuntu Server(コンソール画面)では、フレームバッファ(fbcon)の機能を設定することで画面を回転させることができます。 

1. コマンドで即時に回転させる(一時的)

現在ログインしているコンソール、またはすべての仮想コンソールを即座に回転させるには、以下のコマンドを実行します。

  • すべてのコンソールを90度回転(時計回り):bashecho 1 | sudo tee /sys/class/graphics/fbcon/rotate_all
  • 各数値の意味:
    • 0: 標準(回転なし)
    • 1: 90度回転(時計回り)
    • 2: 180度回転(上下反転)
    • 3: 270度回転(反時計回り) 

2. 再起動後も設定を維持する(永続的)

再起動しても回転した状態を維持するには、ブートローダー(GRUB)の設定を変更して、カーネルパラメータに回転の指示を追加します。

  1. 設定ファイルを開く:bashsudo nano /etc/default/grub
  2. パラメータを追記する:
    GRUB_CMDLINE_LINUX_DEFAULT(または GRUB_CMDLINE_LINUX)の行に、fbcon=rotate:1 を追加します。
    • 例:GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity fbcon=rotate:1"
  3. GRUBの設定を更新する:bashsudo update-grub
  4. システムを再起動する:bashsudo reboot

注意事項

  • ハードウェアの制限: 使用しているビデオカードのドライバやハードウェア構成によっては、フレームバッファの回転(fbcon rotation)がサポートされていない場合があります。
  • 特定のアプリへの影響: この設定はコンソールのテキスト表示に対するものであり、フレームバッファを直接操作する一部のグラフィカルなアプリケーションには反映されないことがあります。 

この設定を試しても画面が変化しない場合、使用されているグラフィックドライバ名を教えていただけますか?

/etc/default/grubが新規ファイルとなっていたのですが、それでいいのでしょうか。 また、update-grubがcommand not foundで見つかりません。

/etc/default/grub

 が新規ファイルになり、update-grub コマンドが見つからない場合、お使いの環境は Raspberry Pi や ARMベースのシングルボードコンピュータ、あるいは クラウドイメージ(UEFIブートではない特殊な構成) である可能性が高いです。

これらの環境では GRUB の代わりに別のブートローダーや設定ファイルが使用されています。デバイスの種類に合わせて以下の方法を試してください。 

1. Raspberry Pi を使用している場合

Raspberry Pi版の Ubuntu Server では、設定は /boot/firmware/config.txt で管理されています。

  1. 設定ファイルを開く:bashsudo nano /boot/firmware/config.txt コードは注意してご使用ください。
  2. 回転設定を追記する:
    ファイルの末尾に以下の行を追加します。
    • 90度回転(時計回り): display_rotate=1
    • 270度回転(反時計回り): display_rotate=3
  3. 保存して再起動:
    Ctrl+O → Enter で保存し、Ctrl+X で終了した後、sudo reboot で再起動してください。

2. 一般的な環境(x86/64)で GRUB がない場合

最近の Ubuntu Server では、GRUB の代わりに systemd-boot が使われるケースがあります。その場合、カーネルパラメータを直接編集します。 

  1. コマンドでの即時確認(一時的):
    まず以下のコマンドで回転するか確認してください。bashecho 1 | sudo tee /sys/class/graphics/fbcon/rotate_all
  2. 永続化(スクリプト化):
    systemd-boot 環境でパラメータを渡すのが難しい場合、起動時に自動実行するスクリプトを作成するのが確実です。
    • crontab -e を実行し、末尾に以下を追記します:
      @reboot echo 1 > /sys/class/graphics/fbcon/rotate_all 

3. 使用しているデバイスの確認

もし上記で解決しない場合、どのようなハードウェア(PC、Raspberry Piなど)で実行しているか教えていただければ、より正確な設定ファイルをご案内できます。

まずは echo 1 | sudo tee /sys/class/graphics/fbcon/rotate_all を実行して、画面が回転するかどうか確認してみてください。 

Raspberry pi zero2wを使っています。rotate_allでは回転します。

Raspberry Pi Zero 2 W を使用している場合、ブートローダーが GRUB ではなく 

cmdline.txt という設定ファイルを読み込むため、update-grub コマンドは存在しません。

rotate_all コマンドで回転が成功しているのであれば、以下の手順で設定を永続化(再起動後も有効化)できます。

設定の永続化手順

  1. 設定ファイルを開く:
    Ubuntu Server on Raspberry Pi では、カーネルの起動オプションは以下のファイルに記述されています。bashsudo nano /boot/firmware/cmdline.txt コードは注意してご使用ください。※ 環境によっては /boot/cmdline.txt にある場合もあります。
  2. パラメータを追記する:
    ファイル内の既存の記述の最後(改行せず、半角スペースで区切って)に以下の文字列を追加します。textfbcon=rotate:1 コードは注意してご使用ください。
    • 1: 90度回転(時計回り)
    • 3: 270度回転(反時計回り)
    注意: cmdline.txt は必ず「1行」で記述されている必要があります。複数行に分けないよう注意してください。
  3. 保存して再起動:
    Ctrl+O → Enter で保存し、Ctrl+X で終了した後、再起動します。bashsudo reboot

もし上記でうまくいかない場合

Raspberry Pi のビデオドライバ(KMS/FKMS)が有効な場合、cmdline.txt の設定が無視されることがあります。その場合は、起動時に自動でコマンドを実行する設定を行います。

  1. crontab を編集:bashsudo crontab -e コードは注意してご使用ください。※初回起動時はエディタの選択が出るので nano を選んでください。
  2. 末尾に以下を追記:text@reboot echo 1 > /sys/class/graphics/fbcon/rotate_all
  3. 保存して終了すれば、起動のたびに自動で 90度回転が適用されます。

この設定を試した後、画面の向きは正しく反映されましたか?

OKです。

無事に回転したようで良かったです!

Raspberry Pi Zero 2 Wのようなリソースの限られた環境では、GRUBの代わりに Official Raspberry Pi Documentation にあるような cmdline.txt や config.txt を使うのが基本ルールになります。

今後、もし「画面の向きはいいけど、キーボードの入力方向(上下左右)も合わせたい」といったことがあれば、console-setup の設定変更が必要になるので、その際はお気軽にご相談ください。

他にディスプレイ表示や初期設定について、何かお手伝いできることはありますか?