HP h8-1080jp で ubuntulinux
- HP h8-1080jp (LP172AV-AAAB) に Ubuntu 11.10 (64bit版)を入れてみました。
- 12.04 LTS版(64 bit)にアップグレード。
事前準備とインストール
インストール関連メモ
- h8-1080jp には H67 チップセットが使われており、ファームウエアとして
旧来の BIOS に加えて
Extensible Firmware Interface (EFI) が組み込まれている。
Ubuntu 11.10 64bit 版の CD で起動すると EFI (UEFI) 経由
でシステムが起動し、インストールもそれを前提としたインストール
になるようである。最初この事を知らずに、旧来の手法でデュアル
ブート環境を構築しようとして失敗した。
実は、未だに内蔵 HDD のみからのデュアルブートには
成功しておらず、暫定的に USBメモリを経由した起動方法をとっている。
以下はその際行った事のメモである(なので推奨されるものでない)。
(なお、UEFI, GPT については
この記事
がある程度参考になるかもしれない。)
- LP172AV-AAAB には 160GB の SSD と 2TB の HDD が接続されており、
SSD は 100MB の SYSTEM 領域、約 140GB の OS (Windows7) 領域及び約 10GB
の RECOVERY 領域の 3 つのパーティションに分割されている。このうち OS
領域(C:ドライブ)を Windows7 付属のディスク管理ツールで縮小し、
Linux のインストール用の未フォーマットパーティション(/boot 及び
/ 用)を作成。
同様に HDD 側にも /home, /data 等の為のパーティションを作成。
また、万一に備えて、リカバリーディスク (DVD) を作成した。
- Ubuntu 32bit版には日本語 Rimix CD が用意されているが 64bit版にはないので
本家より iso イメージをダウンロードしてインストールディスク(Live CD)
を作成。
なお、この場合でもインストール作業の途中から日本語表示を選択できる。
- Live CD から起動し、Install を選択。最初にインストール作業中の表示言語
を選択することが出来る。また、インストール仕方(ディスクの使い方)
については全てを手動で設定するオプションを選択。ブートローダーを
インストールをするデバイスとしては /dev/sda5 を選択した
(32bit版なら、おそらくこれで良いが、62bit版では以下に示すように
これでは上手く行かない)。
- 以降は、通常の Linux ディストリビューションのインストールと同様に進行。
ユーザー情報、パスワード等を入力して再起動させるとインストール作業は
終了。勿論、この状態ではまだ Windows7 しか起動しない。
- (失敗例、要注意) Linux を起動させる為の仕掛けを作るために再度 Live CD
から起動し、今度は
Try without install を選択。Ubuntuのデスクトップ画面が立ち上がれば、
画面左一番上の Dash home アイコンを選択し、Other Applications から
terminal を起動。そこから
$ sudo dd if=/dev/sda5 of=ubunts.pbr bs=512 count=1 で /dev/sda5
(=/boot) の先頭セクタ 512 バイトをファイル化。後はこれを Windows の
C: ドライブにコピーし、Windows のブートマネージャーがこれを読み込める
ようにメニューを(bcdedit 等で)編集すれば上手く行く筈であったが
これが実は大失敗。Windows7 の起動時に OS を選択する画面は表示される
もの ubuntu を選択しても一向に起動する気配が無い。ちなみに、dd で作成した
ファイルの中身を覗いてみると、00 しか並んでいない空のファイルになって
いる事が判明。dd でのファイル化に失敗したのかと思い、何度かやり直すが
何度やっても同じ結果である。
- (失敗例、要注意) そこで次に、grub4dos を用いる方法を試してみる。
WindowsのブートローダーでLinuxとデュアルブートする方法 - Ubuntu 11.04, Grub2の場合
を参考に、まず grub4dos をダウンロードして、grldr と grldr.mbr を C:
ドライブ直下にコピーし、Windows7 のブートマネージャー Bootmgr が
grldr.mbr を読み込める様に bcdedit を用いて
bcdedit /create /d "Linux" /application bootsector
bcdedit /set {xxxx} device partition=C:
bcdedit /set {xxxx} path \grldr.mbr
bcdedit /displayorder {xxxx} /addlast
の様に設定(上記{xxxx}の部分は一行目のコマンドを実行した際に返される
とても長いエントリー番号。コピーの仕方は次の
記事
の前半部分を参考に)。そして、grub4dos の為のメニューファイル
(テキスファイル)menu.lst を C:\ に作成しそこに
title Linux
root (hd0,4)
kernel /boot/grub/core.img
等と記述すれば良い筈だった。しかし、Linux パーティションの /boot/grub
の中を見ても core.img というファイルは見あたらない。代わりに core.efi
というファイルが存在したので、それを指定するようにして再起動してみるも
そのファイルのフォーマットはサポートされていない由のエラーメッセージ
が grub4dos から出されて、結局失敗。/boot パーティションを
分けたのが悪かったのかと、パーティションを切り直してインストールし直す
とか、EasyBCD を用いるとか色々試行錯誤するが全て失敗に終わる。
- ここまで失敗して、どうやら鍵は efi というものにあるらしいと気づき、
色々検索してみて、H67 チップセットを使ったパソコンでは EFI あるいは
UEFI というファームウエアが採用されているらしい事、
一つのデバイスからは EFI もしくは
BIOS のいずれかの方法でしか起動できない(場合が多い)らしい事などを知る。
そして h8-1080jp の場合、EFI はインプリメントされているものの
プリインストールされている (64bit) Windows7 自体はどうも従来の BIOS
経由で起動されている(つまり SSD は GPT を用いていない)様なのである
(違うかもしれないが)。
従って、プリインストールされている Windows7 をそのままにして、
Ubuntu を EFI 経由で(SSD から)起動するのは絶望的かもしれない。
しかし、一旦 USBメモリ等から EFI 経由で起動し、SSD にインストールしてある
Linux を読み込ませることは可能に思えたので、以下の方法を試みる事にした。
- まず h8-1080jp で 64bit版 Ubuntu 11.10 が EFI 経由で確かに起動可能
である事を確かめる為に、USBメモリに 64bit版 Ubuntu をインストール。
その際、USBメモリに2つのパーティションを作り、一つを
EFI ブートパーティション、もう一つを ext4 パーティションとし、ブート
ローダーは EFI ブートパーティションに書き込んだ(この方法が正しいか
どうかはわからない。ちなみに、内蔵 SSD に EFI ブートパーティションを
作成して、そこにブートローダーを書き込んでみても SSD からは
起動できなかった)。こうして USBメモリから Linux が起動可能である事を
確認出来たので、USBメモリは挿したままにして、CD から再起動し、SSD への
Ubuntu 11.10 のインストールを改めて行った。手順は上に書いたのと同様
であるが、ブートローダーの書き込み先のみを USBメモリの MBR (/dev/sdc等)に
した。この状態で USBメモリからの起動が優先される様にファームウエアを
設定し直して再起動すると
メニューに SSD の Ubuntu, SSD の Windows7, USB の Ubuntu 等の選択項目
が現れ、
SSD の Ubuntu を選択すると無事 SSD 上の Ubuntu を起動させる事が出来た。
また、USB の Ubuntu を選択した場合は当然 USB 上の Ubuntu が起動する。
(ただし、このメニューから Windows を選択しても、Windows7 の起動はエラー
になる。Windows を起動するにはファームウエアの設定で SSD 起動(BIOS
経由)に設定し直す必要がある。あるいは USB メモリを抜く。)
インストール後の設定等(日本語環境)
64bit版には日本語 Rimix CD は無い。同等の環境を構築するには
Ubuntuの日本語環境
の中程以降に書かれた手順(バージョン毎に微妙に異なるので注意)に従って作業する
ubuntu でのパッケージのインストール及び情報収集の基本
$ apt-cache search hoge (hoge をキーワードとする検索)
$ apt-cache show hogehoge (パッケージ情報の表示)
$ sudo apt-get install hogehoge (パッケージのインストール)
$ sudo apt-get remove hogehoge (パッケージの削除)
$ sudo apt-get purge hogehoge (設定ファイルを含めた削除)
$ sudo apt-get update (リポジトリの更新)
$ sudo apt-get upgrade (導入済みパッケージの更新)
$ sudo apt-get source hogehoge (ソースパッケージのダウンロード)
$ sudo apt-get build-dep hogehoge (コンパイルに必要なパッケージの導入)
$ sudo apt-get autoremove (依存されないライブラリの自動削除)
なお、画面左に表示されるソフトウエアセンターからインストールする事も可能
インストール後に導入したソフトウエア(パッケージ)
- GParted (ソフトウエアセンターから)
- gdisk ( $ sudo apt-get install gdisk )
gnuplot ( $ sudo apt-get install gnuplot )
Maxima, wxMaxima ( $ sudo apt-get install maxima wxmaxima )
- synaptic パッケージマ・ネージャー ($ sudo apt-get synaptic)
- SBCL(Steel Bank Common Lisp) (synaptic から)
- wxWidegets (wxMaxima用 synaptic から)
TeX (Tex Live 2011) 日本語環境の整備
Ubuntu にパッケージが用意されているが xdvi での日本語表示に問題がある
ようなので、独自に入れて tlptexliveリポジトリの pxdvi 等を追加する。
尚 Tex Live のインストールは専用の install-tl コマンド、
インストール後の管理は tlmgr コマンドを用いて行なう。
- 事前に perl-tk をインストールしておく($ sudo apt-get install perl-tk)。
- TeX Live のホームページ の download から install-tl-unx.tar.gz をダウンロードし、適当なディレクトリに展開。
- $ sudo ./install-tl --gui=perltk で GUI の設定画面が現れるので適当に
設定。言語コレクションで、全てを選ぶとエラーでインストールが失敗
したので、必要なさそうなものは外しておくのが吉。また、symlink
は作成しないのが吉。ちなみに全てをインストールすると 3GB 超。
- インストールが終了すれば環境変数PATHを変更するために ~/.profile に
PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH を追加。
- インストール時に Tex Live 専用のパッケージマネージャー tlmgr が
/usr/local/texlive/2011/bin/x86_64-linux/
にインストールされるので、その後の管理はこれを用いて行う。
(起動時オプションで gui を指定可)
- dviファイルの日本語表示のために
tlptexliveリポジトリ
にあるpxdviを入れる。
$ tlmgr update --self --all
$ tlmgr --repository http://www.tug.org/~preining/tlptexlive/ update --all
$ tlmgr --repository http://www.tug.org/~preining/tlptexlive/ install pmetapost pxdvi uptex
辞書引きソフト EBView の導入
これまで使っていた辞書ツールが動かなくなってしまったので、辞書引きソフト
として
EBView
を入れることにした。これを使うには
EBライブラリー
というものが必要なのだが、
本家
が店じまい(?)したらしくそのソースが
見つからない。あきらめかけてふと synaptic で検索してみるとUbuntu
のパッケージとして存在していたので、それをインストール。
EBライブラリーの方も eblib16 という名前でパッケージが存在している。
なお、辞書データとしては EPWING という形式(既に古い)のもの
が使われるので、その形式の電子辞書データを購入する必要がある
(例:研究社英和・和英大辞典)。
EPWING でない電子データを EPWING 形式に変換するツールも限定的ながら
存在する(
参考
)。
数式処理システム Maxima の導入
Ubuntu のパッケージとしても存在しているが、ここではソースからビルドする。
Maxima
は Lisp プログラムとして書かれており、そのコンパイルには
Common Lisp が必要となる。推奨されているCL処理系としては
CMUCL(CMU Common Lisp),
SBCL(Steel Bank Commom Lisp),
GCL(GNU Common Lisp),
SCL(Scieneer Common Lisp)
等があるが、Ubuntu でパッケージ化されている GCL は
ANSI 仕様でなく使えない。そこで GCL 自体をソースから
./configure --enable-ansi & make でコンパイルする事を試みたが、
GLIBC のバージョンが違うためか、失敗。SCL は商用品の様。
CMUCL と SBCL のビルドには一旦何らかの形で実行バイナリを導入しておいた
上で、その最新版をコンパイルし直すという手間がかかる。
結局最新版のバイナリが配布されている SBCL を使うことにした
(実はubuntuパッケージもあった)。
一旦 SBCL が導入されれば Maxima の導入自体は簡単で、展開ディレクトリで
./configure & make & make check & make install を実行すればよい。
次に Maxima の GUI フロントエンドとして
wxMaxima
を入れる。
それに先立ち
wxWidgets
ライブラリーを入れておく必要がある。これも
ソースからのビルドを試みるが上手くゆかず結局 ubunts のパッケージを
探し出してきて入れた。その後、グラフィックエンジンとして
gnuplot
をコンパイル・インストール
するとデフォルトの端末タイプが x11 でなく wxt となっているのが確認できる。
最後に、wxMaxima を ./configure & make & make check & make install
でインストール。
12.04 LTS 版へのアップグレード
4月下旬にアップグレードの通知が来ていたのでアップグレード。
途中で、キーボードの選択画面が出るが、日本語106, 109 キーボードの
選択肢が無く悩む。しかし、最初の選択肢に現れるAで始まる何かを
選択しておいても途中困ること無くアップグレードが進み、終了後には
ちゃんと日本語キーボードとして認識されていた。
12.04 LTS版では unity と gnome classic がログイン時に選択できる
という事で期待していたのだが、少し挙動におかしなところがある気がする
(時々 unity に戻している)。
インストール後に導入したソフトウエア(ソースからビルド)
- tgif :ソースを展開したディレクトリで Tgif.tmpl-linux-intl を Tgif.tmpl
としてコピーし BINDIR MANPATH TGIFDIR に対するコメントを外し ${HOME}
を /usr/local に書き換えた後 $ xmkmf, make tgif, # make install
- magicpoint :./configure で libngif が見つからないといわれたので gif
に関係するいくつかのツール類、開発パッケージ等を入れる。./configure,
xmkmf, make Makefikes まで成功するが make の途中で yacc が無くてエラー。
bison をインストールしてそこは通過するが lex 関連でエラーが出る。
flex 等をインストールするが上手く行かない。
GPhys の導入
CIRAのデータをGrADSで作画しようとしたところ、鉛直座標のラベルが
上手くつけられなかったので、GPhysを導入することにした。
事前に netCDF, DCL のインストールが必要。また
NArray, NArrayMiss, Numru-misc, Numru-units, RubyNetCDF, RubyDCL,
Ruby-FFTW3, Ruby-GSL, Ruby-LLAPACK, Ruby-GRIB のrubyライブラリーが必要。
このうち、RubyDCL 以外は ubuntu のパッケージがある模様。
- netCDF : Ver.4.2からCライブラリーとFortranライブラリーが別になっている。
$ tar zxvf netcdf-4.3.3.1.tar.gz
$ cd netcdf-4.3.3.1
$ ./configure --prefix=/usr/local
$ make check
$ sudo make install
$ tar zxvf netcdf-fortran-4.4.2.tar.gz
$ cd netcdf-fortran-4.4.2
$ FC=ifort CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --prefix=/usr/local
$ make check (一部エラーがでた)
$ sudo make install
- DCL:
$ tar zxvf dcl-6.0.2.tar.gz
$ cd dcl-6.0.2
$ FC=ifort ./configure
$ malke
$ sudo make install
$ tar zxvf dcl-6.0.2-C.tar.gz
$ cd dcl-6.0.2-C
$ ./configure
$ make
$ sudo make install
$ tar zxvf dclf90-6.0.1.tar.gz
$ cd dclf90
$ FC=ifort ./configure
$ make
$ sudo make install
- RubyDCL:
$ tar zxvf ruby-dcl-1.7.1.tar.gz
$ cd ruby-dcl-1.7.1
$ ruby extconf.rb --with-narray-include=/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux
$ make
$ sudo make install
- GPhys:
$ tar zxvf gphys-1.4.3.tar.gz
$ cd gphys-1.4.3
$ ruby extconf.rb --with-narray-include=/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux
$ make
$ sudo make install
$ sudo ruby install.rb
- gtool5
$ tar zxvf gtool5_current.tgz
$ cd gtool5-20101228-1
$ FC=ifort ./configure --with-netcdf=/usr/local/lib/libnetcdf.a --with-netcdff=/usr/local/lib/libnetcdff.a
$ make
$ make doc (現在上手くいってない)
$ sudo make install