2017-10-15

Fedora 27 の 32 bit UEFI サポートと ASUS TransBook T100HA

Fedora 27 のベータ版が 10 月 3 日にリリースされました [1]。メインの PC は dnf コマンドで先月アップグレードを済ませてしまっていましたが、このリリースで Live イメージが公開されるのを待っていました。

Fedora 27 では 32 bit UEFI がサポートされるので [2]、64 bit 対応のオペレーティングシステムが動くのに、起動部分だけ 32 bit UEFI にしか対応していなかった廉価な PC にも Fedora をインストールできる可能性が出てきました。既に Fedora が稼働している PC ではインストール用のメディアがなくともアップグレードできますが、Fedora がインストールされていない PC に Fedora を試すには、インストール用のメディアを作成できなければなりません。

このところ、廉価なノート PC に Fedora をインストールして、サブノートとして愛用してきましたが、幸いなことにほとんどの場合で Fedora のインストールに成功しています。唯一まともに Fedora を使えるようにできなかったのは、Amazon.jp プライムデー 2016 で破格な値段の誘惑に負けて買った ASUS TransBook T100HA でした [3]。なんとか Ubuntu 14.04 をインストールして使えるようにはしたものの、ほとんど使わずに埃を被ってしまっていました。

Ubuntu 14.04 on T100HA

ただ Linux が使えるということだけでは不十分で、普通のやりかたでアップデートやアップグレードを重ねて新しい機能を試すことができないと、趣味で Linux 使っている側面の欲求を満たせません。今回、ASUS TransBook T100HA へ Fedora 27 のベータ版のインストールすることに成功したので、顛末をまとめておきます。

Live イメージのダウンロード

まずは [4] のサイトから Fedora 27 Beta Workstation の Live イメージ(ISO フォーマット)をダウンロードしておきます。

MediaWriter で USB メディアを作成

Fedora 上でダウンロードした ISO ファイルを MediaWriter を使ってインストール用 USB メディアを生成します。しかし残念ながら Fedora 27 ベータ版の MediaWriter は正常に起動しなかったので、Fedora 26 の MediaWriter を使用しました。

  • OS: Fedora 26 (x86_64)
  • MediaWriter: mediawriter-4.1.0-1.fc26.x86_64

Live イメージを作成するブランクの USB メモリを準備し、USB ポートに挿入しておきます。

MediaWriter を起動するにはメニューから選択するか、端末エミュレータ上で以下のように入力します。

$ mediawriter

起動した MediaWriter の画面から、'Custom Image' をクリックします。

'Custom Image' の選択 (MediaWriter)

あらかじめダウンロードしておいた Live イメージ Fedora-Workstation-Live-x86_64-27_Beta-1.5.iso を選択します。

ISO ファイルの選択 (MediaWriter)

次に作成する、すなわちイメージを書き込みするメディアを選択します。

私は粗忽者なので、ここでのメディアの選択を怠り、大切なデータに何度も上書きをしてしまっています。くれぐれもここで正しい書き込み先を設定することを忘れないようにしてください。

作成するメディアの選択 (MediaWriter)

赤い 'Write to Disk' のボタンをクリックすると、root のパスワードの入力を求められます。

root のパスワード入力 (MediaWriter)

イメージの書き込みが始まりますので、終了するまでしばらく待ちます。

イメージの書き込み (MediaWriter)

書き込みとチェックが終わった後、青い 'Close' ボタンが現れますので、クリックして MediaWriter を終了します。

イメージの書き込みの終了 (MediaWriter)

作成したインストールメディアの BOOT フォルダ内をみると確かに BOOTIA32.EFIBOOTX64.EFI というように 32 bit と 64 bit 用の両方のファイルが存在していることを確認できます。

インストールメディアの BOOT フォルダ内のファイル

ASUS TransBook T100HA へのインストール

今回作成したインストールメディアを使って ASUS TransBook T100HA へインストールしました。インストールについては特に問題はありませんでした。Ubuntu 14.04 をインストールしていたときと同じくログイン画面では画面の縦横が逆になっています。

ログイン画面

デスクトップ環境は Cinnamon を使用しており、画面を反時計回りに 90°回転させています。

ディスプレイの設定と回転した画面 (Cinnamon)

インストールは問題なくできたものの、単純に最新に近いカーネルであれば良いというものではなく、正常に動作しないデバイスは相変わらずです。以下に不具合を簡単にまとめました。

  • タッチパネルが効いていない[要調査]
  • 内蔵の WiFi が使えない
  • Bluetooth が使えない
  • 内蔵のサウンド関連のデバイスを使えない
  • キーボードのレイアウトが時々おかしくなる

結局のところ、無い無い尽くしのままです。しかし、タッチパネルについては設定次第である程度使えるようになる可能性があるので、引き続き情報を収集しながらしばらく使ってみます。

 

参考サイト

  1. Releases/27/Schedule - FedoraProject
  2. Changes/32BitUefiSupport - FedoraProject
  3. bitWalk's: ASUS TransBook T100HA と Ubuntu 14.04 LTS
  4. Fedora Workstation Beta のダウンロード
  5. Input device configuration - FedoraProject

 

ブログランキング・にほんブログ村へ
にほんブログ村

2017-09-17

Fedora 27 のリリーススケジュール

Fedora [fɪˈdɒr.ə] は、レッドハット社が支援するコミュニティー Fedora Project によって開発されている RPM 系Linuxディストリビューションです。Fedora のリリースサイクルは概ね春と秋の年二回ですが、いつもリリースの遅れが目立っていました。次回リリースされる Fedora 27 ではアルファリリースを廃止し、ベータリリースを経て正式リリース (GA) になります。なお、Fedora の開発版は従来通り Rawhide です。

Fedora 27 のリリーススケジュールを参考サイト [1] から抜き出しました。

Fedora 27 Key Milestones

2017-02-28 Branch Fedora 26 from Rawhide (Rawhide becomes future F27)
2017-06-20 Change Checkpoint: Proposal submission deadline (Changes requiring mass rebuild)
2017-07-04 Change Checkpoint: Proposal submission deadline (System Wide Changes)
2017-07-11 Fedora 26 Release
2017-07-12 Mass Rebuild
2017-07-25 Change Checkpoint: Proposal submission deadline (Self Contained Changes)
2017-08-01 Change Checkpoint: Completion deadline (testable)
Software String Freeze
2017-08-15 Branch Fedora 27 from Rawhide (Rawhide becomes future F28)
2017-08-29 Software Translation Deadline
Bodhi activation point
2017-09-05 Beta Freeze (*)
Change Checkpoint: 100% Code Complete Deadline
2017-09-19 Beta Release (Target date) (actual)
2017-09-26 Beta Release (Rain date) (actual)
2017-10-10 Final Freeze (*)
2017-10-24 Fedora 27 Final Release (GA) (Target date) (actual)
2017-10-31 Fedora 27 Final Release (GA) (Rain date)

 

参考サイト

  1. Releases/27/Schedule - FedoraProject

 

ブログランキング・にほんブログ村へ
にほんブログ村

2017-09-03

Fedora で Cinnamon デスクトップ環境

Cinnamon(シナモン)は、GTK+ 3 ツールキットをベースとしたデスクトップ環境で、元々 Linux Mint(リナックス・ミント)のために開発されました。2011 年に初版がリリースされていますので、比較的新しいデスクトップ環境です。今回は、プライベートで愛用している Fedora で、デスクトップ環境を GNOME から Cinnamon 変更しましたので、変更の仕方や使用感などを報告したいと思います。

Cinnamon デスクトップ

動作環境は次の通りです。

  • OS: Fedora 26 (x86_64)

いままでのデスクトップ GNOME

ここ数年は、Fedora でデフォルトの GNOME のデスクトップ環境を使ってきました。しかし、安物の PC (HP Stream 11) に Linux (Fedora) をインストールして使っているので、あまり高精細でないディスプレイの解像度 1366×768 では GNOME はちょっと使いにくいと感じていました。

GNOME デスクトップ (1366×768)

そもそも GNOME のデスクトップに期待していたことは、タブレットの環境でタッチパネルの操作に適した UI の操作感を Linux で試してみたいと思ったことだったのですが、現実は、そこそこ使える格安の PC に Linux をインストールすることに満足してしまい、いまだに自分はタッチパネルの世界で Linux を使っていません。

Cinnamon デスクトップ

Cinnamon はもともと Linux Mint のために開発されたのですが、この Linux ディストリビューションでは、洗練され、最新で快適な Linux デスクトップを提供することを目標としている Ubuntu をベースとしたディストリビューションです。たしかに Linux Mint のデスクトップは洗練されたものに見えるので、デスクトップだけでも使ってみたいと思っていたのですが、幸い今では他のディストリビューションでも Cinnamon を利用できるようになっており、Fedora でも利用できるようになっていますので、切り替えてみました。

切り替え方法は後述するとして、Cinnamon にデスクトップ環境を変更した結果を下記に紹介します。

Cinnamon デスクトップ (1366×768)

使用したテーマは以下のようにしました(メニュー → 設定(システム設定) → テーマ)。

デスクトップのテーマ設定

システム情報は次のようになっています(メニュー → 設定(システム設定) → システム情報)。

システム情報

Cinnamon デスクトップ環境での操作は、仕事で使っている Microsoft Windows 7 の操作と似ており、細かいところはさておき、なんなく使えるようになりました。日本語メッセージにもよく対応していると思います。

GNOME → Cinnamon への変更手順

話が前後しましたが、GNOME から Cinnamon にデスクトップ環境を変更する方法をまとめました。

まず、GNOME 端末などの端末エミュレータを起動してルート権限で操作します。ここでは su でルートにログインして操作しています。

$ su
パスワード:
#

利用可能なグループパッケージを表示します。

# dnf grouplist
メタデータの期限切れの確認は、1:49:31 時間前の 2017年09月03日 06時54分52秒 に実施しました。
Available Environment Groups:
   Fedora Custom Operating System
   最小限のインストール
   Fedora Server Edition
   Fedora Workstation
   Fedora Cloud Server
   KDE Plasma デスクトップワークスペース
   Xfce デスクトップ
   LXDE デスクトップ
   Hawaii Desktop
   LXQt Desktop
   Cinnamon デスクトップ
   MATE デスクトップ
   Sugar デスクトップ環境
   開発環境とクリエイティブワークステーション
   Web サーバー
   インフラサーバー
   基本的なデスクトップ環境
インストール済みグループ:
   C 開発ツールとライブラリー
   開発ツール
   ...
   (以下省略)
   ...

Available Environment Groups にある Cinnamon デスクトップ をインストールします。

# dnf groupinstall "Cinnamon デスクトップ"
   ...
   ...
   ...
トランザクションの要約
================================================================================
インストール  137 パッケージ

総ダウンロードサイズ: 193 M
パッケージ展開後のサイズ: 518 M
これでいいですか? [y/N]: y
パッケージをダウンロードしています;
   ...
   (以下省略)
   ...
完了しました!
#

ログアウトしてログインし直すだけで十分のはずですが、念の為、再起動します。

# reboot

ログイン画面でログインするアカウントを選択し、下記のようにギア状のアイコンをクリックしてデスクトップ環境を変更します。なお、以降のスクリーンショットは実機では取れないので、Oracle VirtualBox 上にインストールした Fedora 26 のスクリーンショットを使っています。

デスクトップ環境の変更

選択肢を見ると、既に Cinnamon にチェックが入っていますが、不具合なのでしょうか、この状態でログインしても実際には GNOME デスクトップ環境のままです。ですので、面倒なようですが、一旦 GNOME を明確に選択(チェック)して(GNOME デスクトップ環境へ)ログインします。

デスクトップ環境を切り替える専用のツールに switchdesk というのがありますが、うまく動かなかったので、このようなやり方をしています。

GNOME で一旦ログイン

ログアウトしてから、あらためて Cinnamon を選択(チェック)してログインし直すと、Cinnamon のデスクトップ環境に切り替わります。デスクトップの切り替えに問題があるのは、このように後で他のデスクトップ環境を追加した直後だけで、以降は切り替えに問題はありません。

ログアウト後、Cinnamon をあらためて選択(チェック)してログイン

なお、Fedora のインストール時から Cinnamon をデスクトップに使いたい場合は Fedora Spins で Cinnamon 用のインストールイメージ [1] が用意されています。

 

参考サイト

  1. Fedora Cinnamon デスクトップ

 

ブログランキング・にほんブログ村へ
にほんブログ村

2017-08-06

【備忘録】JavaFX GUI メッセージの国際化 --- NetBeans IDE

JavaFX で GUI アプリケーションを作るとき、表示する文字列は英語でなければならない案件ばかりだったため、GUI アプリケーションの国際化について考えてきませんでした。しかし最近になって、ついにというか、ようやくというか、少なくとも英語環境と日本語環境の両方に対応する必要がある案件が出てきましたので、やり方を調べました [1]

使用している環境は以下の通りです。

  • OS: Fedora 26 (x86_64)
  • Java: jdk1.8.0_141-1.8.0_141-fcs.x86_64 (Oracle)
  • IDE: NetBeans IDE 8.2

この環境のロケール [2] は下記のようになっています。

$ locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
$

国際化の目標

ここでの目標は、ソースを再コンパイルすることなく、実行環境のロケールに応じたメッセージを表示することです。今回は英語をデフォルトとして日本語環境で日本語メッセージを表示することを目標とします。

Hello World!

サンプルとして、NetBeans IDE で空の JavaFX アプリケーションのプロジェクトを作成したときに生成される Hello World! のソースを国際化対応することにします。

メイン・メニューから「ファイル(F)」→「新規プロジェクト(W)...」を選んで、新規プロジェクトを作成するダイアログを開きます。

 

新規プロジェクトのダイアログの「プロジェクト(P)」の欄で JavaFXアプリケーション を選択し、下の「 次 > 」ボタンをクリックして次へ進みます。

 

プロジェクト名(N)」は HelloWorld としました。「終了(F)」ボタンをクリックしてダイアログを終了します。

 

実行すると(いつものように)以下のように表示されます。

 

Java のソースは以下のようになっています。コメント行は取り除きました。

リスト:HelloWorld.java 
package helloworld;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloWorld extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction((ActionEvent event) -> {
            System.out.println("Hello World!");
        });
        
        StackPane root = new StackPane();
        root.getChildren().add(btn);
        
        Scene scene = new Scene(root, 300, 250);
        
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }  
}

プロパティ・ファイルの追加

国際化に対応させる文字列は、プロパティ・ファイルに保存します。プロパティ・ファイルはキーと値がペアになった形式になっており、キーはプログラムがテキストを読み出すために使用する識別子、値は実際のテキストになります。各ロケールに対して、プロパティ・ファイルを作成しますが、キーは各ロケール共通で、文字列のみが異なります。まずはデフォルトのプロパティ・ファイルを作成します。

HelloWorld パッケージを選択、右クリックでプルダウンメニューを表示させ、「新規」→「その他...」を選択します。

 

「新規ファイル」のダイアログが表示されますので、「カテゴリ(C)」のリストから「その他」を選び、「ファイル・タイプ(F)」のリストで「プロパティ・ファイル」を選びます。下の「 次 > 」ボタンをクリックして次へ進みます。

 

「New プロパティ・ファイル」ダイアログで作成するプロパティ・ファイル名を設定します。ここではプロジェクト名と同じ HelloWorld とします。

 

ブランクの HelloWorld.propertier が生成されます。

 

国際化ウィザードの利用

国際化ウィザードは対象となるソースから文字列を抽出し、プロパティ・ファイルにキーとペアを書き出して、Java プログラムがプロパティ・ファイルと連携するよう、ソースの文字列の箇所に java.util.ResourceBundle.getBundle() を埋め込んでくれます。

国際化ウィザードを利用するには、メイン・メニューから、「ツール(T)」>「国際化(Z)」>「国際化ウィザード(I)」を選択します。

 

国際化ウィザートのダイアログの最初のステップ「1. 国際化するソースを選択する」では、国際化の対象となるソースを選択します。この例では HelloWorld.java のみです。下の「 次 > 」ボタンをクリックして次へ進みます。

 

次のステップ「2. ソースのリソースを選択」では、ソースとリソースであるプロパティファイルを対応させるのですが、この例では同じ名前の HelloWorld.propeties しかありませんので、そのまま下の「 次 > 」ボタンをクリックして次へ進みます。

 

「3. フィールドの生成」ステップでは、この場合、何も変更せず、下の「 次 > 」ボタンをクリックして次へ進みます。

 

最後の「4. 見つかった文字列の変更」ステップではウィザードは抽出した文字列からキーが先生されて表示されます。この例ではこのまま「終了(F)」ボタンをクリックしてウィザードを終了させます。

 

ウィザード終了後、HelloWorld.java の文字列の箇所は下記のように java.util.ResourceBundle.getBundle() で置換されています。

リスト:HelloWorld.java(国際化ウィザード終了後) 
package helloworld;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloWorld extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText(java.util.ResourceBundle.getBundle("helloworld/HelloWorld").getString("SAY 'HELLO WORLD'"));
        btn.setOnAction((ActionEvent event) -> {
            System.out.println(java.util.ResourceBundle.getBundle("helloworld/HelloWorld").getString("HELLO WORLD!"));
        });
        
        StackPane root = new StackPane();
        root.getChildren().add(btn);
        
        Scene scene = new Scene(root, 300, 250);
        
        primaryStage.setTitle(java.util.ResourceBundle.getBundle("helloworld/HelloWorld").getString("HELLO WORLD!"));
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }   
}

空だった HelloWorld.properties には以下のようにキーと値のペアが書き込まれています。

リスト:HelloWorld.properties 
SAY\ 'HELLO\ WORLD'=Say 'Hello World'
HELLO\ WORLD!=Hello World!

日本語ロケールの追加

国際化に対応した HelloWorld.java と、デフォルトの HelloWorld.properties ファイルの準備ができたので、今度は日本語のメッセージを用意します。

デフォルトの HelloWorld.properties ファイルを選択して右クリックしてプルダウンメニューを表示させ、「追加(A)」→「ロケール...」を選択します。

 

「新規ロケール」のダイアログが表示されますので、「事前定義ロケール(P)」のリストから ja_JP を選択して「 OK 」ボタンをクリックしてダイアログを閉じます。

※「事前定義…」ってなんだ?と思いましたが、英語版のメッセージは Predefined ですので、要するに「定義済み…」という意味なのでしょう。

 

HelloWorld_ja_JP.properties が生成されます。生成後は HelloWorld.properties と同じ内容になっていますので、次のように編集しました。

リスト:編集後の HelloWorld_ja_JP.properties 
SAY\ 'HELLO\ WORLD'=「こんにちは、世界!」と出力
HELLO\ WORLD!=こんにちは、世界!

あらためてプロジェクトをビルド・実行すると。以下の通り、ばっちりメッセージが日本語に変わりました(下左図)。

念の為 HelloWorld.jar を Windows 10(日本語版, 32bit)へコピー・実行して確認してみたところ、同様に日本語メッセージが表示されました(下右図)。

 

参考サイト

  1. GUIフォームの国際化 - NetBeans IDEチュートリアル
  2. ロケールとは - 国際化対応言語環境の利用ガイド

 

国際化に関しては、こんなに古い本しか出回っていません。😢

ブログランキング・にほんブログ村へ
にほんブログ村

2017-07-28

Oracle、32件の脆弱性を修正した「Java SE 8 Update 141」を公開 - 窓の杜

Java SE 8 Update 141 を Oracle 社が公開したのは 7 月 18 日のことですので、すいぶん時間が経ってしまいましたが、OpenJDK 8 の Update 141 (java-1.8.0-openjdk-1.8.0.141-1.b16.fc26.x86_64) が Fedora でもそれから数日遅れで利用可能になりました。

今回は Fedora 26 上で、OpenJDK と OenJFX の組み合わせでバージョン表示をしてみました。

参考サイト

  1. Oracle、32件の脆弱性を修正した「Java SE 8 Update 141」を公開 - 窓の杜
  2. OpenJDK
  3. bitwalk123/JavaVersion

 

ブログランキング・にほんブログ村へ
にほんブログ村