USBメモリにUbuntu 10.04をインストール(4) ~初期設定編~

無事にログインし、さらに待っていると眠くて放置してウトウトしていたら、セキュリティアップデートがぞろぞろ。312個ものアップデートが表示されました。アップデートを適用すると・・・・現在30分経過でプログレスバーは1/4くらいしか進んでません。このペースだと最低2時間ですね・・・。

・・・・待つこと1時間15分、無事にアップデートが完了し、再起動です。
再起動がこれまた時間がかかる・・・。 ログイン画面までAtom230だと1分半くらいかかります。
ま、何はともあれ、無事にインストール完了です。

次に、シャットダウンしてUSBメモリをターゲットのノートPCに持って行きます。
USBメモリを挿して電源ON!
多少時間はかかりますが、無事にログオン画面が表示されました。
(それにしても、ログオン画面が出るまで画面真っ暗って、なんとかならかったんですかね?)

無線LANも無事に動作しました。

ここで、以下のものを Synaptic パッケージマネージャを使ってインストールしました。

  • KlamAV(アンチウイルスソフト)
  • GIMP

続いて、Chromeブラウザをインストール。これで完了です。

久しぶりにUSBメモリへのOSインストールを行いましたが、ずいぶんと楽になったものです。
当初は新しいバージョンのOSでの対応情報があまりなかったので、心配していましたが、インストールが楽になった分だけ、Webの情報が減っているだけのようですね。

USBメモリにUbuntu 10.04をインストール(3) ~インストール編~

CD-ROMからインストールすると、公式ガイドでは「デスクトップにある『インストール』をダブルクリックして実行」としてUSBへのインストーラを起動することになっていますが、10.04LTSのCD-ROMではいきなりインストーラが起動して、LiveCDとして起動するか、インストールするかを聞いてきます。

ですので、ここでUSBメモリを挿入し、「Ubuntu 10.04 をインストール(みたいなメッセージだったと思います)」を選択しました。選択すると、タイムゾーンの設定、キーボードレイアウトの後、「ディスクの準備」が表示されます。

ここでは「このコンピュータにはオペレーションシステムがインストールされていません」と表示され、 どこに Ubuntu 10.04 LTS をインストールするか質問されます。ここでは、USBメモリ全体をUbuntuにしたいので、「ディスク全体を削除してから使用する」を選択しました。

次にユーザー情報(ユーザー名やパスワードなど)を聞いてきますので、適当に入力します。
これでインストールの準備が完了し、設定内容の確認をしてきますので、「インストール」を押します。

7~8分経ったころでしょうか、画面下に「まもなくインストールが終了します。Ubuntuをどうぞお楽しみください。」と表示されましたが、プログレスバーはまだ半分くらいだったような・・・。

20分ほどするとインストールは完了し、再起動を促す画面になっていました。
起動順序をUSB-HDDに変更して、再起動をかけると・・・・・沈黙していまいました。
が、眠かったので、そのまま放置してうとうとしていたら、しばらくしてログイン画面が表示されました。(遅いだけでした!起動プロセスぐらい表示してもいいと思うんだけど。)
インストール時に設定したユーザー名とパスワードでログインすると、無事にデスクトップ画面が表示されました。

★2011/2/14追記:Ubuntuは2.4GB以上の容量を要求するのでたぶん関係ありませんが、インストール先のパーティションは(容量によって)LBAモードになっている必要があります。具体的にはうまく起動できない場合に、パーティションのbootflagの確認の際にLBAになっているか併せて確認する必要がある、ということです。

USBメモリにUbuntu 10.04をインストール(2) ~準備編~

まず手順を調べます。
公式ページによると、9.04での基本的な手順としてはHDDへのインストールとほとんど差はないようで、インストール先のデバイスファイルに気をつけることくらいのようです。 今回は上述のようにPuppyをインストールしたUSBメモリを使います。正確にはUSBメモリではなく、MicroSDHCカードを極小のMicroSDHCカードリーダに挿入したものなのですが、これだと本当に小指の先くらいのサイズに収まりますし、動作中もUSBポートからのはみ出しも5ミリくらいで済みます。容量はPuppyの際は2GBのものを使いましたが、今回は8GBのものを使うことにしました。

次にCDを準備します。今回は10.04LTSのISOイメージをダウンロードして、CD-Rに書き込みます。このあたりはWindowsマシンで行いました。CDは700MBいっぱいいっぱいあるようなので、80分のものを使用する必要があります。

CD-Rが焼けたら、CD-Rから起動します。今回はもともとUbuntuがインストールされているAtomマシンで起動します。
しかしここで問題発生。ブートデバイスをCD-ROMにしてもCD-RからブートせずにHDDのUbuntuが起動してしまいます。そこで、BIOSでHDDが接続されているオンボードのSATAを禁止しました。CD-ROMドライブはIDEで接続されているので問題ありませんし、BIOSでSATAを禁止してしまえば誤ってHDDの内容を破壊する心配もなくなります。
これでCD-ROMからUbuntuが起動するようになりました。

USBメモリにUbuntu 10.04をインストール(1) ~プロローグ~

再来週、海外に出張することとなりました。
一応、会社のノートPCを持参はするのですがリモートデスクトップ専用PCなので会社以外に接続できません。かといって、どうせ夜は暇だし、ネットワーク接続は無料だし、だけどもう1台持っていくのも重いし、ということで、USBメモリにLinuxのデスクトップ環境を入れて、そこから会社のノートPCでLinuxをブートできないかと調べてみました。

じつは、PuppyLinuxではずいぶん前にUSBメモリからの起動にトライして成功しています。しかし、起動はできるものの、無線LANが再起動のたびにドライバをインストールしなければならないという状況で、放置していました。また、Puppyはアップデートの方法がわかりませんので、セキュリティ的にもちょっと不安が残ります。

Ubuntuであれば、普段使っているし、セキュリティアップデートも自動でチェックしてくれるし、ということで嬉しいので、UbuntuでUSBメモリ起動ができないか調べてみました。すると、現行の10.04 ではなく 9.04 とかそれより前のバージョンであれば実績がありそうなことがわかりました。また、Ubuntu 10.04 のインストール方法を紹介した公式ページでも、USBにインストールする方法についてのリンクがあります。ただ、このリンク先も8.04,8.10,9.04が対象バージョンで、10.04は(今のところ?)対象になっていません。が、特に10.04がダメとも書いていないので、まずやってみることにしました。

Ubuntuその後6(ファイル共有編2)

こんどは、Windows側でマウントしているファイルサーバ(NAS)上の領域をmountしてみることにします。目的は、ファイルサーバ上の写真をLinux側で見えるようにしたい、ということにあります。
調べると、
http://itmst.blog71.fc2.com/blog-entry-99.html
に記載されている内容が参考になりそうなので、これに沿ってやってみることにします。

(1)smbfsのインストール

$ sudo apt-get install smbfs

(2)コマンドラインからのマウントテスト
looxというホスト名(まんまですが、古いLOOX上のdebianサーバ)上のphotoという共有ディレクトリを/mnt/smb/photo@loox というディレクトリにマウントする

$ sudo mkdir /mnt/smb/
$ sudo mkdir /mnt/smb/photo@loox
$ sudo mount -t cifs -o username=[ユーザ名],password=[パスワード],codepage=cp932,iocharset=utf8,defaults //loox/photo /mnt/smb/photo@loox
$ sudo mkdir /mnt/smb/pdata@loox
$ sudo mount -t cifs -o username=[ユーザ名],password=[パスワード],codepage=cp932,iocharset=utf8,defaults //loox/pdata /mnt/smb/pdata@loox

でマウントすることができた。これでファイルブラウザで写真をサムネイルでみることができるようになった。

(3) /etc/fstabに以下の内容を追記して、起動時に自動でマウントするよう設定します。

# mount photo directory on LOOX
//loox/photo /mnt/smb/photo@loox cifs username=[ユーザ名],password=[パスワード],codepage=cp932,iocharset=utf8,defaults s 0 0
//loox/pdata /mnt/smb/pdata@loox cifs username=[ユーザ名],password=[パスワード],codepage=cp932,iocharset=utf8,defaults s 0 0

ファイルに追記後に再起動して、マウントできることを確認しました。

その後、ファイルブラウザで写真がみえるようになりました!(パチパチ)

AVRプログラム環境(2)

無事にファイルをWindowsから持ってこれるようになったので、いよいよプログラムのコンパイル、リンク&書込みを試してみる。
書込みを毎回コマンドラインから行うのは面倒なので、Makefile に以下の内容を書き足した。

#--------
WRITER=-c avrispmkII -P usb
WRITER_MCU=t45

prog: all
    avrdude $(WRITER) -p $(WRITER_MCU) -F -U flash:w:$(IHEX)

これで、

$ make prog

としたら、コンパイル、リンク、書込みができた。ソースをいじって、LEDの点滅周期をイジって再度

$ make prog

としたら反映されたので、だいじょうぶみたい。
#fuse bit がどうなっているのかちょっとわからないけど、おいおい調べていくことにしよう。

Ubuntuその後5(ファイル共有編)

AVRの開発環境が整いつつあるのだが、従来のWindows環境でのプログラムを持ってきたくなってしまった。自宅では、古いノートPC上のDebianで動いているファイル共有と玄箱Proで動いているファイル共有があるのだが、今回はUbuntuのディスクを見せることにした。
Nautilus(ファイルブラウザ)でホームディレクトリを開くと、「公開」というフォルダがある。これを右クリックすると「共有のプロパティ」というメニューがあるので、これを選択して共有内容設定すると「共有のためのプログラムが入っていない」みたいなメッセージが表示され、インストールするかを聞いてきた。そこで、インストールを選択するとsambaをインストールしたようだ。
それでもWindowsからは見えないが、どうもWorkgroupが合っていないために見えないようである。
Ubuntuのことなので、どこかに設定メニューはないかと探したが、なさそうなので、/etc/samba/smb.conf を直接編集し、WORKGROUPの項目にローカルネットワークのワークグループ名を設定し、

$sudo smbcontrol nmbd reload-config
$sudo smbcontrol smbd reload-config

としたところ、無事に見えるようになった。
ここにWindowsからのファイルを置いて、ソースを持ってくることにする。

AVRプログラム環境

次は、AVRへの書込みです。プログラマは AVRISP mkII を使用します。
ATTINY45を使ったブレッドボードがあったので、このATTINY45のプログラムを読み出してみることにします。

$ sudo avrdude -c avrispmkII -P usb -p t45 -F -U flash:r:test.hex:i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9206
avrdude: reading flash memory:
Reading | ################################################## | 100% 1.16s
avrdude: writing output file "test.hex"
avrdude: safemode: Fuses OK
avrdude done. Thank you.
$

ということで、無事に superuser では読み出すことができました。
しかし、ルートでなければならないのは不便だし、できたファイルのオーナーがルートなのも不便です。
調べてみると、ゆきの研究室のLinuxメモのページにて、/etc/udev/rules.d/60-local.rulesに

SUBSYSTEM!="usb_device", ACTION!="add", GOTO="avr_programmer_end"
# USBasp
ATTRS{product}=="USBasp",GROUP="usbuser",MODE="0660"
# AVRISP mkII
ATTRS{idVendor}=="03eb",ATTRS{idProduct}=="2104",GROUP="usbuser",MODE="0660"
# AVR Dragon
ATTRS{idVendor}=="03eb",ATTRS{idProduct}=="2107",GROUP="usbuser",MODE="0660"
# AVR-Doper(HID)
ATTRS{idVendor}=="16c0",ATTRS{idProduct}=="05df",GROUP="usbuser",MODE="0660"LABEL="avr_programmer_end"

と記述して、アプリケーションメニューの「ユーザーとグループ」で usbuserというグループを作り、それに普段使うユーザーを追加すれば良いようなことが書いてあるのですが、うまくいきません。うーん。

<追伸>
なんのことはない、単に再起動すれば良いだけだったようです。

AVR開発環境

実は自分は電子工作を趣味としていたりします。
もっとも、最近はあまり何かを作ったりしていませんが・・・。
で、いろんなマイコンの開発環境(ハードウェア)があったりするのですが、それもこの際Linuxへの移行にチャレンジしてみます。
まずは、フリーソフトで開発環境が揃うAVRからトライです。(・・・っつーか、AVRしか移行できないんじゃないかと思うけど・・・)
参考にしたのは「over80」さんの以下のサイト。

http://d.hatena.ne.jp/over80/20100506/avr_build

このサイトで紹介されている gcc-avr,binutils-avr,avr-libc,make の各Ubuntuのパッケージをインストールします。・・・といっても、Synapticパッケージマネージャで選択して「適用」するだけです。
何と簡単なんでしょう!
調子に乗って 書きこみ用のプログラムである avrdude もインストールしておきました。

「over80」さんのページの Makefile と led.c もそのまま用意して、make コマンドを実行すると、

$ make
avr-gcc -g -O2 -mmcu=attiny13 -DF_CPU=1000000UL -c -o led.o led.c
avr-gcc -g -O2 -mmcu=attiny13 led.o -o led
avr-objcopy -j .text -j .data -O ihex led led.ihex
$

とまあ、あっさりとコンパイルに成功しました。