ラベル fedora の投稿を表示しています。 すべての投稿を表示
ラベル fedora の投稿を表示しています。 すべての投稿を表示

2014/05/24

PidoraでCLIからBluetooth SPP接続しようとしたらbluez-simple-agentがない件

Raspberry PiのPidoraでコマンドラインからBluetooth SPPで接続しようとしたところ、bluezパッケージ(bluez4)をインストールしてあるにもかかわらず、
bluez-simple-agentなどのコマンドがないということで引っかかってしまいました。
私のRPiのPidoraはFedora18ベースのバージョンなのですが、どうもリポジトリにある bluez4 のパッケージに、これらのコマンドが含まれていないようです。(たぶん。)

Bluezのソースコードからビルドすれば良いのですが、
今ビルドするだけのために必要なパッケージをRaspberry PiのSDカードにインストールするのもあれですし、単なるPythonスクリプトですので、他から持ってくることにしました。

私のRPiのPidoraにあるbluezは Bluez-4.101-5 です。
従って、bluez-4.101 のソースコードから持ってくれば良いということになります。
http://www.bluez.org/download/ から bluez-4.101.tar.xz をダウンロードし、
アーカイブを解凍したところ、"test"ディレクトリ以下に"simple-agent"、"test-device"などのファイルがありました。
# ls test/
agent.c     l2test.c            service-spp.xml   test-nap
attest.c    list-devices        simple-agent      test-network
avtest.c    lmptest.c           simple-endpoint   test-oob
bdaddr.8    monitor-bluetooth   simple-player     test-proximity
bdaddr.c    mpris-player.c      simple-service    test-sap-server
btiotest.c  rctest.1            test-adapter      test-serial
dbusdef.py  rctest.c            test-attrib       test-serial-proxy
gaptest.c   sap-client          test-audio        test-service
hciemu.1    scotest.c           test-device       test-telephony
hciemu.c    sdptest.c           test-discovery    test-textfile.c
hsmicro     service-did.xml     test-health       test-thermometer
hsplay      service-ftp.xml     test-health-sink  uuidtest.c
hstest.c    service-opp.xml     test-input
ipctest.c   service-record.dtd  test-manager
この中からを必要なスクリプト(simple-agent, test-device)をリネームして/usr/local/bin あたりにコピーすればOKです。
# cp test/simple-agent /usr/local/bin/bluez-simple-agent
# cp test/test-device /usr/local/bin/bluez-test-device

あとは接続を試してみます...。
# hciconfig hci0 up
# hcitool scan
Scanning ...
    XX:XX:XX:XX:XX:XX    xxxxx

# bluez-simple-agent hci0 XX:XX:XX:XX:XX:XX
# RequestPinCode (/org/bluez/xxx/hci0/dev_xx_xx_xx_xx_xx_xx)
Enter PIN Code: XXXX

# bluez-test-device trusted XX:XX:XX:XX:XX:XX
# rfcomm bind 0  XX:XX:XX:XX:XX:XX
# rfcomm
rfcomm0: XX:XX:XX:XX:XX:XX channel 1 closed

/dev/rfcomm*にバインドされましたので、minicom などのターミナルから接続できるはずです。
# minicom -D /dev/rfcomm0

2013/05/27

Fedora 17 → Fedora 18 にバージョンアップした (gnome3.6)

先日、fedup(fedup-cli)を使って、
メインPCを Fedora 17 → Fedora 18へバージョンアップしました。
(メインとして使っているOSなので...なかなか腰が上がらなくて(笑))

Fedora 18 with gnome 3.6.3.1
GUI環境は...結局、そのまま Gnome3 (バージョン: 3.6.3.1)を使っています。
バージョンアップに際して幾つか気になる点があったので、メモしておきます。

Google Chromeが動作しない:
既知の問題であり、再インストールが必要なようです。
$ sudo yum remove google-chrome-*
$ sudo yum install google-chrome-stable

Gnome shell extensionが無効になっている:
https://extensions.gnome.org/ にログインして、Installed extensionsから
Extensionを有効にしていきましょう。
また、幾つかのExtensionは使えなくなっているので・・・
代替のものを探すか、自分でハックしてパッチを送りましょう(w

Nautilusなどを最大化表示した際にタイトルバーが消えてしまう:
仕様です。
https://extensions.gnome.org/extension/515/ignore_request_hide_titlebar/

Nautilusのメニューバーがない:
トップバーにあるアプリケーションアイコンを右クリックすると代替のメニューが表示されます。
http://askubuntu.com/questions/224970/nautilus-missing-menubar-in-12-10
但し、Extension(例: TaskBar)をインストールして、これを非表示にすると...メニューが表示できなくなるので注意。

マウスカーソルがちらつく問題:
未解決

ウィンドウの最大化/最小化ボタンが無い:
そもそもGnome3からの仕様ですけど、拡張機能などから設定可能です。
http://ankyo.blog.so-net.ne.jp/2011-12-12

Nautilusの右クリックメニューから端末を開けるようにする:
$ sudo yum install nautilus-open-terminal
http://www.if-not-true-then-false.com/2011/nautilus-open-in-terminal-on-fedora-centos-red-hat-rhel/



今回適用した Gnome shell extension (拡張機能):
だいたい以前からそのまま or 代替です。
  • Activities Configurator
    Activities関連のカスタマイズができる。
  • Advanced Volume Mixer
    トップバーの音量アイコンを拡張できる。
  • Alternative Status Menu
    ユーザメニューにSuspend および Power-offを追加できる。
  • Battery remaining time and percentage 
    トップバーの電源表示を拡張できる。
  • Coverflow Alt-Tab
    Alt+Tabによるタスクスイッチャをカバーフロー風表示にできる。
  • CPU Freq
    トップバーにCPUのモードおよび動作クロックを表示できる。
  • Dash to Dock
    便利なドックバー(ランチャとタスクスイッチャ)。
  • ignore_request_hide_titlebar
    タイトルバーが非表示となる動作を抑制できる。
  • Impatience
    アニメーションを高速化できる。
  • Lock Keys
    トップバーにNum Lock および Caps Lockの状態を表示、通知できる。
  • Network Connections Shortcut
    トップバーのネットワークアイコンにネットワーク接続のショートカットを追加できる。
  • Removable Drive Menu
    トップバーにリムーバルドライブのアイコンを追加できる。
  • Remove Accessibility
    トップバーのアクセシビリティアイコンが不要な場合に非表示にできる。
  • SettingsCenter
    Gnome関連の少し細かい設定が行えるようになる。(ランチャー)
  • Status Area Horizontal Spacing
    トップバーの通知領域部分(画面右上のアイコン表示部)の幅を調整できる。
  • TaskBar
    トップバーにタスクバー的なウィンドウスイッチャを追加できる。
  • Touchpad Indicator
    トップバーにタッチパッド(トラックパッド)のインジケータを表示できる。
  • Window Slide In
    ウィンドウ切替時にスライドイン効果を適用。
  • WindowOverlay Icons
    Activities画面などにアプリケーションのアイコンをオーバレイ。


2013/02/16

以前に作ったUNIX系サーバ用バックアップスクリプト (AmazonS3対応)

以前に作った"UNIX系サーバ用バックアップスクリプト"を公開しました。
任意のディレクトリとMySQLデータベースを、Amazon S3へバックアップできます。
一応、世代管理が可能です。また、ファイルは SquashFSでアーカイブされます。

ちょっと昔に必要に迫られて作ったものだったので...。
かなりのやっつけ仕事で...汚すぎるソースコードですが、一応、今もきちんと動きますので、公開することにしました ヘ(゚∀゚ヘ)w (CentOS 6.3で動作確認済。)
squashfs-tools と perlがあれば動きます。

https://gist.github.com/mugifly/4966246

改造してサーバのcrontabに登録するなり、印刷してゴミ箱にダンクするなり...
よろしければ、ご自由にどうぞ( ´∀`)b


このとおり、Gistに置いておきます。

2013/02/13

node.jsをソースからビルドしてインストール(簡単) on Fedora17

以前の記事ではnaveを使ってnode.js環境をセットアップしましたが、
今回はソースコードからビルドしてインストールする話です。
といっても特に何のことはなく、とっても簡単です。
コーヒー飲んでたら終わる手軽さです♪

尚、今回利用した環境は、Fedora 17 (64bit)です。

まずはnode.jsのソースコードのアーカイブを取得して...
(執筆時の最新版は、node-v0.8.19でした。尚、Githubからgit cloneしてもOKです。)
$ wget http://nodejs.org/dist/v0.8.19/node-v0.8.19.tar.gz
展開してビルドし、インストールします。 (尚、g++, openssl-devel、pythonなど必要なものは、前もってインストールしておいてください。)
$ tar zxf node-v0.8.19.tar.gz
$ cd node-v0.8.19/
$ ./configure
$ make
$ sudo make install
これで、nodeとnpmがインストールされました。
/usr/local/bin にインストールされたので、/usr/binからリンクを張ります。
$ sudo ln -s /usr/local/bin/node /usr/bin/node
$ sudo ln -s /usr/local/bin/npm /usr/bin/npm
終わりです ( ̄ー ̄)b

2013/01/30

TeXLive 2012+Vim-LaTeXでてふてふする on Fedora 17

大学のレポート類は基本的にLaTeXなのですが、
これまで、UbuntuのほうにしかTeX環境を整備していなかったため...
今回はFedora17で、TeXLive 2012を用いたTeX環境構築をやってみることにしました。

一昔前とは違い、おかげ様で日本語対応のLaTeX環境がかなり整備されてきていて、
導入がめちゃくちゃ簡単になっています。ありがたい事です...ε-(´∀`*)ホッ
UTF-8もそのまま扱えます。

まずは、TeXLive 2012のインストール。
http://fedoraproject.org/wiki/Features/TeXLive の内容どおりなんですがw

リポジトリを追加するだけで、yumでインストールできるのでなんとも楽です。
(注意: リポジトリを追加しないまま行った場合、恐らく、古いTeXLiveがインストールされてしまいます。)
また、platexを扱うためにtexlive-collection-langcjkも一緒にインストールします。
$ sudo rpm -i http://jnovy.fedorapeople.org/texlive/2012/packages.fc17/texlive-release.noarch.rpm
$ sudo yum clean all
$ sudo yum install texlive texlive-collection-langcjk
これだけです。私の環境の場合、340MB程度のダウンロードとなりました。


次は、Vim-LaTeXのインストール。
一応、仮にも私はVimを使っていますので、ありがたいですw
※ところで...念の為。Fedoraのデフォルトですと、vim-enhancedが入っていなかったりするので、その場合は先に入れておきましょう。

こちらもとても簡単になっています。
以下の手順は、Vim-LaTeX - TeX Wikiの内容どおりにやってみたものです。(感謝♪)

まず、Vim-LaTeXのアーカイブをダウンロードします。
http://sourceforge.net/projects/vim-latex/files/
執筆時の最新版は、vim-latex-1.8.23-20130116.788-git2ef9956.tar.gz でした。

ダウンロードしたアーカイブを展開します。
$ tar vxf vim-latex-1.8.23-20130116.788-git2ef9956.tar.gz

展開されたディレクトリ内の全てのディレクトリを ~/.vim/ 下へコピーします。
$ cd vim-latex-1.8.23-20130116.788-git2ef9956/
$ ls
Makefile     compiler  ftplugin  latextags  plugin
Makefile.in  doc       indent    ltags

$ cp . ~/.vim/ -R

最後に、~/.vimrc に記述を追加します。
$ vi ~/.vimrc
""
"" Vim-LaTeX
""
filetype plugin on
filetype indent on
set shellslash
set grepprg=grep\ -nH\ $*
let g:tex_flavor='latex'
let g:Imap_UsePlaceHolders = 1
let g:Imap_DeleteEmptyPlaceHolders = 1
let g:Imap_StickyPlaceHolders = 0
let g:Tex_DefaultTargetFormat = 'pdf'
let g:Tex_FormatDependency_ps = 'dvi,ps'
let g:Tex_FormatDependency_pdf = 'dvi,pdf'
"let g:Tex_FormatDependency_pdf = 'dvi,ps,pdf'
"let g:Tex_FormatDependency_pdf = 'pdf'
let g:Tex_CompileRule_dvi = 'platex -synctex=1 -interaction=nonstopmode $*'
"let g:Tex_CompileRule_dvi = 'uplatex -synctex=1 -interaction=nonstopmode $*'
let g:Tex_CompileRule_ps = 'dvips -Ppdf -o $*.ps $*.dvi'
let g:Tex_CompileRule_pdf = 'dvipdfmx $*.dvi'
"let g:Tex_CompileRule_pdf = 'ps2pdf $*.ps'
"let g:Tex_CompileRule_pdf = 'pdflatex -synctex=1 -interaction=nonstopmode $*'
"let g:Tex_CompileRule_pdf = 'lualatex -synctex=1 -interaction=nonstopmode $*'
"let g:Tex_CompileRule_pdf = 'luajitlatex -synctex=1 -interaction=nonstopmode $*'
"let g:Tex_CompileRule_pdf = 'xelatex -synctex=1 -interaction=nonstopmode $*'
let g:Tex_BibtexFlavor = 'pbibtex'
"let g:Tex_BibtexFlavor = 'upbibtex'
let g:Tex_MakeIndexFlavor = 'mendex $*.idx'
let g:Tex_UseEditorSettingInDVIViewer = 1
let g:Tex_ViewRule_dvi = 'pxdvi -watchfile 1'
"let g:Tex_ViewRule_dvi = 'advi -watch-file 1'
"let g:Tex_ViewRule_dvi = 'evince'
"let g:Tex_ViewRule_dvi = 'okular --unique'
"let g:Tex_ViewRule_dvi = 'wine ~/.wine/drive_c/w32tex/dviout/dviout.exe -1'
let g:Tex_ViewRule_ps = 'gv --watch'
"let g:Tex_ViewRule_ps = 'evince'
"let g:Tex_ViewRule_ps = 'okular --unique'
"let g:Tex_ViewRule_ps = 'zathura'
"let g:Tex_ViewRule_pdf = 'texworks'
let g:Tex_ViewRule_pdf = 'evince'
"let g:Tex_ViewRule_pdf = 'okular --unique'
"let g:Tex_ViewRule_pdf = 'zathura -s -x "vim --servername synctex -n --remote-silent +\%{line} \%{input}"'
"let g:Tex_ViewRule_pdf = 'qpdfview --unique'
"let g:Tex_ViewRule_pdf = 'pdfviewer'
"let g:Tex_ViewRule_pdf = 'gv --watch'
"let g:Tex_ViewRule_pdf = 'acroread'
"let g:Tex_ViewRule_pdf = 'pdfopen -viewer ar9-tab'
(コードの引用元: http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Vim-LaTeX#f59a6b76 感謝♪
このコードはコメントアウトされている部分が多いですが、設定を弄りやすいですね。)


以上です。

これで、vimを使って.texファイルを開くと・・・Vim-LaTeXが適用されます。
Vim-LaTeXを有効にしたVimで.texファイルを開いたところ。
また、Vimだけでなく、GVIM環境でもきちんと反映されます。
Vim-LaTeXを有効にしたGVIMで.texファイルを開いたところ。
次は...試しにVim上で.texファイルを作って、TeXLiveでtex→PDFにしてみます。
$ vi test.tex
\documentclass[a4j,12pt]{jarticle}
\title{てふてふ}
\author{masanori}
\date{\today}
\begin{document}
\maketitle

\section{\LaTeX なう!}
これはテストです。
\begin{math}
e^{i\theta} = \cos\theta + i \sin\theta
\end{math}

\end{document}
ここで...ESCでインプットモードを解除して、いつもどおりに
: w 
で保存します。

そして、
\ll
を素早く入力することで、LaTeXによるコンパイルが実行されます。

さらに、
\lv
を素早く入力すると、.texファイルと同じディレクトリにpdfファイルが生成され、
evinceなどのビューアでPDFファイルが開かれます。
(dviファイルでのプレビューをデフォルトとしたい場合等は、先ほどの.vimrcに記述したコードをいじるだけです。)


(尚、YaTeXなどと同じで、一度、\lvをしてプレビューを開いている間は、
編集しても、上書き&\ll(コンパイル)するだけで、自動的にプレビューへと反映されます。)

詳しい使い方は、http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Vim-LaTeX#v4639f7b を参照させていただきましょう(>ω<)

以上です♪


余談ですが、GUIなエディタ好みの方は...
TeXMakerが使いやすいみたいですので、そちらも。

http://hgeekooohay.blogspot.jp/2013/01/ubuntu1210tex.html

2013/01/26

Kyoto Tycoonの導入とperlからのアクセス (on Fedora 17 and Ubuntu)

Kyoto CabinetとKyoto Tycoonを試してみました。

以前から気になりつつも、ちょっと今更になってしまったのですが・・・
開発中のWebアプリケーションで使いたい!という動機です(笑)
Fedora 17 および Ubuntu 12.04で以下の手順による動作を確認できました。

まず、必要なパッケージをインストールします。
$ sudo yum install libcurl gcc make zlib-devel
尚...Ubuntuなど(Debian系)では次のような感じです:
$ sudo apt-get install curl gcc make zlib1g-dev libbz2-dev build-essential

次に、Kyoto Cabinetをインストールします。
$ wget http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gz
$ tar zxf kyotocabinet-1.2.76.tar.gz
$ cd kyotocabinet-1.2.76/
$ ./configure
$ make 
$ sudo make install
$ ../
その次に、Kyoto Tycoonをインストールします。
(Kyoto Tycoonは、Kyoto Cabinetをネットワークで扱うためのインターフェイスです。)
$ wget http://fallabs.com/kyototycoon/pkg/kyototycoon-0.9.56.tar.gz
$ tar zxf kyototycoon-0.9.56.tar.gz
$ cd kyototycoon-0.9.56/
$ ./configure
$ make 
$ sudo make install
さらに、管理用のコマンドを使えるようにスクリプトをコピーしておきます。
$ sudo cp lab/ktservctl /usr/local/sbin/
$ sudo cp lab/ktservctl /etc/rc.d/init.d/ktserver
(【Ubuntuの場合】 /etc/rc.d/init.d/ → /etc/init.d/ ですので、注意。以下も同様に読み替えてください。)

またこのスクリプトを一部編集しておきます。
$ sudo vi /etc/rc.d/init.d/ktserver
#! /bin/sh

#----------------------------------------------------------------
# Startup script for the server of Kyoto Tycoon
# chkconfig: - 80 20
#----------------------------------------------------------------

〜〜〜
PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin"
〜〜〜
(2行目付近に、このように、chkcondigのための行を追加。 また31行目付近のPATHに、/usr/local/bin を追加しておきます。) [2013/02/10:追記]

共有ライブラリパスに/usr/local/libを含めていなければ、追加しておきます。
$ vi /etc/ld.so.conf
〜〜〜
/usr/local/lib
$ sudo ldconfig
これで完了です。

では...早速、Kyoto Tycoonを起動してみます。
$ sudo service ktserver start
または
$ sudo ktserver 

これで...コンソール上にログが表示されたら、稼働中です。

とりあえず試しに、perlでスクリプトを書いて読み書きしてみることに。
ありがたいことに、Cache::KyotoTycoonというモジュールがあるので、とても簡単に扱うことができます。

まずは、cpan/cpanmで、Cache::KyotoTycoonをインストールします。
$ cpanm Cache::KyotoTycoon
あとは、スクリプトを書いて...実行。
use Cache::KyotoTycoon;

# KyotoTycoonに接続
my $kt = Cache::KyotoTycoon->new(
    host => '127.0.0.1',
    port => 1978,
);

# キー'foo'で 文字列'bar'を保存
$kt->set('foo', 'bar');
# 読み出してみる
print $kt->get('foo') ."\n";

# 時限削除機能もあるので試してみる
$kt->set('foo2', 'bar', 2); # 2sec
# 読みだしてみる
print $kt->get('foo2') . "\n"; # OK
# 2秒〜ほど待つ
sleep(2500);
# もう一度、読みだしてみる
print $kt->get('foo2') . "\n"; # 時限削除されているので空になる。

うーん!とってもシンプルですし、時限削除は便利ですね。
まさに...キャッシュのためにももってこいなKVSだといえます。
ベンチマークの類はまだしてないですが。メモリにも優しいそうです。

また、memcached互換なので既存のモジュールも応用できるそうです。

[2013/03/19 追記]
Cache::KyotoTycoon v0.14で行われた修正にともない、
コンストラクタ(Cache::KyotoTycoon->new)内でdbパラメータを与えると
リクエストがエラーとなってしまうようです。

[2013/05/29 追記]
パッケージ類のインストール手順を追加しました。
また、Ubuntu 12.04でもこの手順で動作を確認しているため、追記 および タイトルを変更しました。


参考にさせていただいたページ (感謝 m(_ _)m♪):

2012/12/03

組み込み(マイコン)、はじめました。

プログラミングというモノを独学&趣味でかじりはじめて...
...気づけば、もう8年にもなるのですね〜・・・。
まだまだ初心者の域を出ませんが(汗;)w

ここ5年間くらいはWebやネットワーク系を独学で遊び・学んできましたし、
大学に入って、C++やアルゴリズムを学びつつ、ちょっとばかり組み込み方面にも触れて...といった感じで過ごしてきました。

そして大学2回生 冬となった今。

昔から「組み込み(*)をやりたいな〜」と思うことが幾度もあったにもかかわらず、これまで結局は取り組んだことが無かったのだと言う事を
友人のおかげで気づかされた...そんな今日このごろです。

(* 組み込み...というかセンサーロボットとかヘリコプターとか(ry) ロボコンとか!!)

やるなら今だっ! (ある意味、私にとっての新境地開拓ですww)

ということで、組み込み(マイコン)を始めました(笑)

最初のテーマは組み込みOSの自作です。
(何年か前にPC向けの自作OSをかじり...かけたこともありました。見事に投げてしまいましたがw)

理由としては・・・
  • 何よりOSの勉強になる!
  • 低階層な組み込みを折角やってみるのだから、
    面白そうですし踏み込んでやってみたいな〜。
というところです。

低階層を理解することが自分にとっての貴重な学びになるのだ...ということを、
友人・知人から教えてもらった、影響を受けた...という理由も大きいです。


Raspberry Piとか、mbed、Arduinoなど、比較的容易に扱えるボードにとても興味があって、
目的に応じてやりたいことを手軽に(そこに注力して)やれるのが良いな〜と思うのですが、
ただ、今のうちにもっと低いレベルにも触れておくことも大事なんだなーと悟ったのですw(

Rasberry Piを使って作りこんだりというのもまた必ずやってみたいです。
また、もっと新しいマイコンでロボットなども近いうちに挑戦してみるつもりです。

参考にさせていただく本は...


です。

これは、H8/3069Fのマイコンボードを使って、シンプルな組込みOSを作る本です。
ブートローダーから、割込み/スケジューリング等々をすべて実装していきます。
まさにこんな事、やりたかった><!
(筆者の方のサポートサイトでは、TCP/IPスタックの実装、Webサーバの搭載まで広げているようです。
私も、実はネットワーク系を志していたりするので、ココは外せないところですねw)


さらに参考にさせていただくウェブサイトとして...
2回目のC言語で『12ステップで作る組込みOS自作入門 』の通りに組込みOSを作ってみた - 三等兵
かなり最近(3ヶ月前)の記事ですが、Mac OS (Lion)を用いてこの本に取り組まれたそうです。私もLinux(Fedora 17)での開発となりますし、詰まった時には特に参考にさせていただこうと思います(><;)ゞ

早速、ボードのほうも調達しました。
ちょっと昔の自分みたいに、半田ゴテを持ち出して(汗;)...とも思ったのですが、
流石にここは大人しく...本の指示どおりに、部品実装済みのボードを購入しました。
秋月のAKI-H8/3049Fネット対応マイコンLANボード完成品 という商品です。

使用するマイコン自体、アーキテクチャ的にはもう古くなってしまっている?感じもするのですが、私にはこれで十分すぎますw
なにせ最初の第一歩なので、本どおりに進めてもつまづきそうですし(笑)


とりあえず...初日の今日は、セルフコンパイルのための開発環境構築から...。
とはいっても、普段使いのFedoraにはgccやその他諸々が入っていて、何かと使っている状況なので、特段やることはなさそうです。

シリアル<->USBケーブルがまだ手元ににないので、この先はお預けです(´・ω・`)w
(家を探しまわれば、どこかに落ちているかもしれませんがw)
尚、今回、シリアル<->USBケーブルは、BUFFALOのBSUSRC0610BSを購入しました。


のんびりでも、確実に取り組んでいきたいな〜と考えています。
友人とのWeb開発や、他にも進めたいプロジェクト・勉強がありますので、
平行になりますが、逐一メモを兼ねて、このブログに進捗状況をアップしていけたらな〜と考えています(><)/
頑張りますっ。

今後、一連の記事は"自作OS"というタグでまとめたいと思います。
こちらから一覧できます。

2012/08/05

Ubuntu&Fedoraをマルチブートにして新規インストールしちゃおう


大学が夏休みに入って、さあ開発だ!と張り切っているMasanoriですw

大学の都合で、Ubuntu 10.10の環境のままになっていたPCがあるのですが、
これをそろそろ、アップグレードでなく新しくフルインストールしてしまって
新しいLinuxに入れ替えたいな...ということで、やってみることとしました。

この記事も例によって自分用メモです。
順をおって、ただしい知識を得たい方には特に申し訳ありません・・・
ページ下部の参考ページをあたってください。すみません。

また...<結論から言うと、今回インストールしたのはFedoraだけです>

現状のパーティション構成はこんな感じです:
  • /dev/sda (500GB)
    • [基本]NTFS (13GB) - Recovery
    • [基本]NTFS (315MB) - System
    • [基本]NTFS (210GB) - Windows7 システムパーティション
      • マウント: /win
    • [拡張] (60GB)
      • [拡張]ext4 (50GB) - Ubuntu ルートパーティション
        • マウント: /
      • [拡張]swap (10GB) - Ubuntu スワップパーティション
    • 未割当 (217GB)
もともと、Windows7とUbuntuのデュアルブートになっています。
ブートローダはGRUBで、1段階ブートです。

新しい構成としては次のような感じにします:
  • /dev/sda (500GB)
    • [基本]NTFS (13GB)  - Recovery
    • [基本]NTFS (315MB)  - System
    • [基本]NTFS (210GB)  - Windows7 システムパーティション
    • [拡張] (256GB)
      • [拡張]ext4 (50GB) - Ubuntu(旧) ルートパーティション
      • [拡張]swap (16GB) - スワップパーティション
      • [拡張]ext4 (20GB) - Ubuntu ルートパーティション
      • [拡張]ext4 (70GB) - Ubuntu /homeパーティション
      • [拡張]ext4 (20GB) - Fedora ルートパーティション
      • [拡張]ext4 (70GB) - Fedora /homeパーティション
      • 未割当 (15GB)
今回は、PBRのブートローダにMBRを使い、2段階ブートとし、
Windows、UbuntuとFedora、旧Ubuntuを選択できるようにしたいと思います。

まずは、念の為にバックアップ。何でも構いません。

私は...mondo rescueを使って...と思っていましたが、バージョンの互換性の問題のために色々とエラーが発生したので、
試行錯誤をしてみてもよかったのですが、面倒くさかったですし(おい)
今回は、Fedora 17のLiveCDでブートし、標準のディスク管理機能でイメージバックアップを取りました。

次に、パーティション構成を変更しておきます。

LiveCD上で、GPartedを用いてパーティション構成も変更します。
後からOSをインストールする際にパーティションを作成するのではなく、
あらかじめ、パーティションをリサイズし切り分けておくことにしました。
(切り分ける構成は、先述のとおりです。GPartedの使い方については、ググってくださいw)

ここで、スワップもLinuxで共通にしておきたいと思います。

既に、Ubuntuのためのスワップパーティションがあるので、これを使います。
メインメモリの容量が8GBですから、スワップの容量も余裕をもって、16GBに変更しました。
 (スワップ容量についてはここ参照)




次に、1段階から2段階ブートにするために ブートローダをMBMに変更します。
詳しい手順は、http://d.hatena.ne.jp/den8/20100605/1275709966 などを
参考に勉強させていただきましょう。先にじっくり読んでおくことを推奨します


まずは、"MBMをインストールするためのUSBメモリ"を作ります。
適当なUSBメモリ(容量は28MBより大きければ良い)を用意してください。

MBMインストールの機能が含まれた
Minimum Ubuntuという超軽量なレスキュー用Ubuntu環境を利用することにします。
バイナリが用意されているので、使わせていただきましょう。
http://winmac.blog33.fc2.com/blog-entry-119.html

ということなので、そのバイナリをダウンロード。
usb-minimumubuntu-include(dmraid)-0.9.013(100620)-10.04.img
28MBのファイルです。素晴らしい。

次に、mount -l でUSBメモリのデバイス名を調べます。


さらに、DDコマンドで、そのデバイス名を指定してイメージを焼きます。
$ dd if="usb-minimumubuntu-include(dmraid)-0.9.013(100620)-10.04.img" of=/dev/sdb

これでMBMをインストールするためのUSBメモリが作成できました。
おかげさまで...簡単ですね。ありがたいです(´;ω;`)

次に、現在のUbuntu環境のGRUBのエントリポイントを変更しておきます。(その際、”Ubuntu環境でルートにマウントされているパーティション”を指定します。)

$ sudo grub-setup  -f  /dev/sda5 
grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR.  This is a BAD idea..
grub-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
warningが出ますが、気にしない。

さらに本来であれば、Debconfデータベースの更新をしておかなければいけないのですが
今回、現在のUbuntu環境はもはや残しておくだけでアップデートもしないので、
私はとりあえず飛ばしておきます。(皆さんは、ちゃんとやってくださいw(汗;)
http://wikiwiki.jp/disklessfun/?grub2_and_grub1#x3f37a52)


あとは、PCを再起動してUSBメモリからブートします。
ブートしたらコンソールが表示されますので、MBMのインストールを実行します。
(その際、インストール先となるHDDのデバイスを指定します。)

$ sudo install-mbm /dev/sdb

MBMのインストールが終わり...次はFedoraのインストールです。

正しく2段階ブートにするために、
インストールの際、パーティション設定は手動設定にして

  • ルートパーティションの指定
  • /homeパーティションの指定
  • swapパーティションの指定
  • ブートローダーのインストール先の指定
    (同じルートパーティションを指定。)
を行っておきます。

以上で、2段階ブートでのインストールは終了です♪




Fedoraのインストールが終わったら・・・

とりあえず、日本語設定にしておきます。
その後、一旦ログアウト&ログインして、
Firefoxを起動して、ちょろめをインストールしてww

visudoコマンドでsudoersを設定しておきます。
$ su
# visudo
root    ALL=(ALL)       ALL
hoge        ALL=(ALL)       ALL

みたいな感じで。(※リスクは理解した上で行ってください)

さらに、このPCはLet's noteなのですが
Let's noteのあのトラックパッドの回転スクロールを有効にするために...
gsynapticsをyumでインストールしておきます。
$ sudo yum install gsynaptics
Fedora17標準でも回転スクロールはサポートしていますが、
これを導入して有効にしたほうがさらに快適なスクロールができます。



さらにSDカードスロットのドライバも入れておきます。
lspciした結果によると・・・

$ lspci
~~~
14:00.1 SD Host controller: Realtek Semiconductor Co., Ltd. Device 5209 (rev 01)


ということでPCIE RTS5209 card reader driver for Linuxをダウンロード。
http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=4&PNid=15&PFid=25&Level=4&Conn=3&DownTypeID=3&GetDown=false#2

アーカイブファイルを展開してmakeしインストール。
$ tar vxf rts_pstor.tar.bz2
$ cd rts_pstor/
$ make
$ sudo make install
$ sudo depmod
さらに再起動をさせればSDカードを認識できるようになります。

次にIMEですが、私はMozcを使っているので
これは"ソフトウェアの追加と削除"から入れておきます。

次に開発環境。とりあえずAptanaを入れておきます。
http://www.aptana.com/products/studio3/download

Aptanaはパッケージになっていないため、自動的にアプリケーション一覧には登録されません。
ですから手動でショートカットをアプリケーション一覧に登録します。
まず、デフォルトでメニューエディタがインストールされていないようなので、
"ソフトウェアの追加と削除"で"alacarte"をインストール。
"メインメニュー"という項目がアプリケーション一覧に表示されるので、
そこでAptanaを自分で追加します。
あとは一旦ログアウトしてログインしなおすと、反映されます。

DartEditorとか、ベースとなっているEclipseも同様に。

最後に...Gnomeをカスタマイズしておきましょうw
今時は、https://extensions.gnome.org/ でExtentionをどんどん試せるんですね。
Web上で設定ができて面白いですね。実際にいくつか試して入れてみました。

ということで少し長くなりましたが・・・


これで以上です♪
(おっと!新しいUbuntuをまだインストールしていない件w←)



参考にさせていただいたページ (感謝♪):