Ubuntu 12.10における幾つかのメモ(代替のインストール方法,lowlatencyカーネル)

Last modified: 2021-09-09

Alternate CDの代替は?

Ubuntu 12.10からはテキストインストーラでインストールのできるAlternate CDが廃止されてしまった。

手元の環境ではKVMを使用してUbuntuをインストールしており、KVMでは通常のインストールディスクのISOイメージでは何故かうまくインストールできず、Alternate CDを使うことになっていたのだが、今回からはそうはいかなくなるため別の方法を探したところ、ネットワークインストールを行うための小さなCDイメージmini.isoを用いて起動する方法が見つかり、これを試してみたところ、インストールに成功した。

ネットワークインストールではテキストインストーラでインストールができる。

その後ネットワークインストール用のイメージファイルは廃止されたが、2021年時点では、手元の環境では通常のインストールディスクのイメージから起動してGUIからインストールできている。

ネットワークインストール用起動ディスクイメージファイルについて

ネットワークインストール用のCDイメージファイルmini.isohttps://cdimage.ubuntu.com/netboot/の “Select an architecture” の下のアーキテクチャ名のリンク(x86_64の場合は “amd64”, x86_32の場合は “i386”)の先にあった。

Ubuntu 12.10では

  • amd64版が “34M”
  • i386版が “28M”

のファイルサイズ表示となっており、非常に小さかった。

CDに焼いて使う場合でも処理時間が短く済み、また、Ubuntu 12.10で通常のインストールディスクイメージがCDサイズを超えている関係でCDに焼けずに困っているという場合にも役に立つ可能性があった(ただし後述の内容には注意・端末の操作に慣れていない場合は非推奨)。

ネットワークインストール後の状態と追加作業

ネットワークインストールをした場合、インストール後にOSを起動し、テキストログイン(文字のみが表示される環境でユーザ名とパスワードを入力)をしてから好みでパッケージを追加インストールしていくことになる。

ネットワークインストールでは本当に基本的なパッケージのみしかインストールはされず、X Window System上のグラフィカルログインもできない点に注意が必要。

下は-desktop系パッケージをインストールする形の作業例。

いずれかのGUI環境を選択してインストールすると、その後の起動ではグラフィカルログインとなる。

ダウンロードとインストールには(回線,CPU,ディスク読み書きなどの速度によるが)時間がかかる。

(Unity環境をインストールする場合)
$ sudo apt-get install ubuntu-desktop

(KDE SC環境をインストールする場合)
$ sudo apt-get install kubuntu-desktop

(Xfce環境をインストールする場合)
$ sudo apt-get install xubuntu-desktop

(Xfce/Ubuntu Studio環境をインストールする場合)
$ sudo apt-get install ubuntustudio-desktop

(LXDE環境をインストールする場合)
$ sudo apt-get install lubuntu-desktop

lowlatencyカーネルとその設定

Ubuntuには、12.10の時点ではリアルタイム性能を保証するrtパッチの当たったカーネルは用意されていないが、代わりに通常の “generic” カーネルよりも “遅延回避” 型のチューニングがされた “lowlatency” カーネルが存在する。

JACK Audio Connection Kitを使用する際には、このカーネルをインストールしてこれを起動することで音飛びがしにくくなる。

そのビルド設定(/boot/config-[バージョン]-lowlatency)を見たところ、(少なくとも)以下の点が “generic” カーネルとは異なっていることが分かった。

以下は自分でカーネルソースからカーネルをビルドする際に “lowlatency” カーネルの特性が欲しい場合のためのメモとする。

I/Oスケジューラ

“generic” カーネルではシステム上の全てのプロセスに対して平等に読み書きの帯域幅を割り振る “CFQ” というI/Oスケジューラが標準で使用されていたが、12.10時点の “lowlatency” カーネルでは公平性よりも遅延回避を重視して “Deadline” というI/Oスケジューラが既定のI/Oスケジューラとして使用されていた。

2021年時点では、“Deadline” をマルチキューに対応させた “MQ-Deadline” (mq-deadline) が “generic” と “lowlatency” の両方で既定になっている。
以下の出力はUbuntu 12.10当時のものとなる。

[*] Enable the block layer  --->
 IO Schedulers  --->
  <*> Deadline I/O scheduler
  <*> CFQ I/O scheduler
  [*]   CFQ Group Scheduling support
      Default I/O scheduler (Deadline)  --->

上の一番下の行の部分で “Deadline” が既定のI/Oスケジューラであることが示されている。

“lowlatency” カーネルで起動した場合、/dev/sdaのデバイス名のディスクのI/Oスケジューラは

$ cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

初期状態で “deadline” が使用されていることが分かる。また、上のビルド設定からも分かるが、“cfq” も利用可能であることも分かる。

“generic” カーネルでは

$ cat /sys/block/sda/queue/scheduler
noop deadline [cfq]

“cfq” が標準となっているが、“deadline” をここに書き込むことで “deadline” に変更できる。

$ sudo sh -c 'echo deadline > /sys/block/sda/queue/scheduler'
$ cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

プリエンプション・モデル (Preemption Model)

プリエンプション・モデル(Preemption Model)については、以前JACK関係で扱ったときと同様、遅延回避には “Preemptible Kernel (Low-Latency Desktop)” を選択するのがよい。

Processor type and features  --->
 Preemption Model (Preemptible Kernel (Low-Latency Desktop))

タイマー周波数

タイマー周波数についても、以前扱ったのと同様、遅延回避には “1000HZ” を選択するのがよい。

Processor type and features  --->
 Timer frequency (1000 HZ)  --->