« レガシーなRS232Cインタフェースにはまる | トップページ | 電子工作の次の方向が決まらない »

2009年6月23日 (火)

BeagleBoardにUbuntu9.04をインストールする

日経Linuxの記事があてにならない(6/21/09)
 今月(7月号)の日経Linuxは、電源プラグに差すだけで動くLinuxサーバーや、BeagleBoardの新版(RevC)の紹介という組み込み系の特集である。なかでも最近リリースされたばかりのARM用のUbuntu 9.04 LinuxをBeagleBoardにインストールする記事は、当研究所がこれからやろうとしていたこととぴったり一致する。Thumb_200_cover_200907

 BeagleBoardは余技にすると言ったばかりなのだが、タイミングが良すぎた。これは買ってくるしかない。それに、この前のAngstromのインストールでは、knoppixで誤魔化したけれど、そろそろPCにもLinuxを入れておきたい。各種の最新Ubuntuディストリビューションの入ったDVDも付録についているというので、早速、購入してきた。

 通読すると、BeagleBoardへのUbuntu9.04のインストールは、SDカードのフォーマットから、最後の日本語フォントのインストールまで事細かに解説してある。とても簡単に見えた。BeagleBoardの当面の目標は日本語化だったが、Angstromの日本語化はそう簡単ではない(動かしたのはデモ版)。これならすぐ日本語が見られそうだと気楽に作業を始めた。

 ところが、これが一筋縄では行かなかった。雑誌の記事の通りやっても動かないのである。あとでわかったことだが、この雑誌の記事にはミスが多いのだそうだ。普通は、印刷された、しかも大手の出版社の活字情報は、Webの情報より信頼度が高いと思うのが常識なのだが、これが違ったのである。

 結果としては、インストールは成功し、BeagleBoardのブラウザーで日本語を表示できるところまで進んだ。この雑誌の記事の通りにやって動かないで困っている人がまだ沢山いると思うので、とりあえず経過だけでも紹介しておくことにする。

 まず、はまったのが、パーティションを切る、GPartedというソフトのインストールである。apt-get installを入れても一瞬のうちにエラーで帰ってくる。こちらは最近のLinux情勢にうとい。とくにDebian関係は全く経験がない。始め、apt-get updateをしないで、ない、ないと騒いでいた。

 これはGPartedでなく、gpartedで探したら一発で見つかる。やれやれUNIX関係は、大文字、小文字に厳密なので、こんなことではまる。コマンドは正確に記述して欲しい。

(誤) sudo apt-get install GParted    -----> (正) sudo apt-get install gparted

 しかもページを沢山使って説明したGPartedのやっていることは、単に、SDカードの残りの部分をext3で定義し、ここと頭の部分をそれぞれフォーマットするだけのためだった。これくらいなら、何故、fdiskとmkfsでやってしまわない。記事を良く読まなかった自分が悪いことを棚に上げて無駄な作業手順をやらされて腹の虫が納まらない。

 いよいよ付録DVDからrootfsイメージの展開である。記事の通りtarコマンドを入れる。おやあ、このコマンドのオペランドの順がおかしいなあ、最近は順序が変わったのかしら。入力する。やっぱりシンタックスがおかしいと、はねられる。

(誤)
$ tar /media/cdrom/article/toku3/ xvzpf armel-rootfs-lxde-200905161138.tar -C /mnt/
  (傍線 筆者)

(正)
$sudo tar xvzpf   /media/cdrom/article/toku3/armel-rootfs-lxde-200905161138.tar -C /mnt/

 何と、tarコマンドのオプションが入出力引数の中間に入っているまま印刷記事になっている。こういうコマンド行は校正の時には真っ先に、入念にしなければならないところである。どうしてこんな間違いが起きるのだろう。理解に苦しむ。しかもこのtarの前には、sudoがない。

 まあ、この程度なら少しUNIXを知っている人ならすぐわかる間違いだが、次の不具合はもう少し深刻である。正しく入れなおしたtarが全く展開できていない。エラーメッセージを見てわかった。SDカードのルートディレクトリは、root以外の書き込みを許可していない。雑誌の記述では、この先のファイルの作成ではroot権限になれと書いてあるが、tarはsudoで動かしている。

 ファイルの生成は微妙で、誰が作ったかでパーミッションが変るので、こういう作業はユーザーはrootでやるのが間違いがない。いくら管理者権限があってもrootでないと失敗するときがあるのだ。しかし困った。何かの手違いで新しくいれた現在のPCのUbuntuではrootのパスワードが設定されてしまい、現在rootになれない(これはその後、sudo su - で、# passwd によってrootのパスワードの設定が出来ることがわかった。 Ubuntuでは最初、rootが設定されていない)。

 仕方がないので、SDカードのルートディレクトリをchmod 777 /(SDカード)で、パーミッションを強引に変えて(これはsudoでも出来る)、tarを入力する。正規には、ここでrootになってインストールしなければならない。

 何とか順調にtarボールが展開され始めた。おや、最後の方で少しエラーが出た。うーむ、rootではないからな。いくつかのディレクトリ生成やリンクが失敗に終わっている。だめもとで出来上がったカーネルを立ち上げてみる。いや大丈夫なようだ、順調にブートされていく。いや、やっぱりだめだ。途中で止まってしまった。no initial consoleのメッセージで止まっている。確かtarの展開のときのエラーはディバイス関係のディレクトリでのエラーだった。このあたりでひっかかっているのだろう。

 やれやれ、アマチュアのWebの記事を参考に入れたAngstromは一発で動いたが、雑誌の記事を見て、しかもミスを回避しながらのインストールは失敗に終わった。恐らく沢山の人がこの記事の通りやって動かない動かないと悩んでいることだろう。A6221987

 もういちどrootからやってみよう。それに雑誌のrootfsイメージは信用がならないので、正規のサイトから落としたほうが良いかもしれない。

BeagleBoardでやっと日本語が出る(6/22/09)
 翌日、仕事から帰って、もういちどSDカードをフォーマットし直し、正式にrootになってtarで展開する。とりあえずは雑誌のDVDから展開する。うむ、全くエラーもなく、きれいにrootfsはインストールされた。omap3のカーネルイメージも順調に展開された。

 新しく入れたUbuntuのターミナルでcuコマンド(いや、なつかしい。接続終了が、~.という変なコマンド)でシリアル端末を立ち上げる。おやあ、最初のブートローダーがリセットしてしまう。どうした。あ、USBのハブの電源を入れていなかった。入れ直す。よしよし、Linuxのブートが始まった。画面を切り替える。

 おお、PCのUbuntuと全く同じログイン画面が出た。しかしログインでまたはまる。rootでは入れない。これは雑誌にちゃんと書いてあった。BeagleBoardのUbuntuはユーザー名 ubuntu パスワード ubuntuで入るのだ。

 Angstromと同じようなGUI画面があらわれる。ロケールが日本語になっているので字化けしている。日本語フォントが入っていないからだ。これは自分でいれなければならない。最後の難関、日本語化キットのインストールである。BeagleBoardがネットワークにつながっていないと出来ない。幸い、Net関係は一発で通ったようだ。インストールコマンドの入力だ。何い、こんなコマンドを入れるのか。

(誤)
$ sudo -y apt-get install language-support-fonts-ja

(正)
$ sudo  apt-get install language-support-fonts-ja

 とんでもないところに -y が入っている。これ違うよね。念のため、その通り入れてみる。もちろんシンタックスエラーではねられる。-yをとりのぞいて入力。順調にパッケージがインストールされた。Debianは初めてだが、このapt-getは実に便利である。昔々RedHat Linuxを入れて、rpmに感激したことを思い出す。

 ウェブブラウザーを探す。おや、Conkerorという簡易なブラウザーしかない。こいつキーボードからURLを入れさせる。コマンドガイドを頼りに日本語サイトを入れる。出た出た。おおう、きれいな日本語フォントだ。A6231991

 いやあたいしたものだ。たかだか8センチ四方のボードでここまで動くのである。ボードのCPUチップに触ってみる。結構熱くなっているが、やけどしそうなほどの熱さではない。せいぜい数ワットというところだ。地球に優しい。

 画面の動きは、一昔前のノート PC、そうちょうど今ターミナルに使おうとしているPentium133Mhz時代のLet'sNoteの画面の動きをもう少し遅くした感じだ。ウインドウを激しく動かすと軌跡が残る。まあ、これが目的ではない。これだけ動けば十分だ。こちらは今のところNASあたりを予定している。

 それにしても、今度の雑誌の誤植には驚いた。信頼性について活字メディアを一段高い位置に置いて考えていた自分がもう古いのかもしれない。Web情報ならいくらでも訂正が効くが、活字はそういうわけにはいかない。だから校正には念には念を入れ、読者もそれを信じていた。そういう自覚が今は薄れているのだろうな。

|

« レガシーなRS232Cインタフェースにはまる | トップページ | 電子工作の次の方向が決まらない »

電子工作」カテゴリの記事

コメント

早速のアドバイスありがとうございます。
いろいろ試してみます。
またお願いします。

投稿: とらきち | 2009年11月29日 (日) 21時54分

とらきちさん、コメントありがとうございます。同年代の挑戦、心強く思っています。しかし、Linux修業をBeagleBoardでおやりになるのはあまりおすすめしませんね。普通のデスクトップでやるほうが、情報も多いし、自由度が高いと思います。少し慣れてからBeagleBoardにお進みになる方が理解も早いと思います。何度も申し上げているように、こちらLinuxは最近ご無沙汰しているのであまり的確なアドバイスが出来ません。

すべてが展開できていない?--->tarのときメッセージを適当なファイルにリダイレクトして確認する。
/etcがない--->mkdirで作れば良い。

ですが、私は/etcを作った記憶がないので、展開に失敗している可能性が高いですね。本文の記事にあるように、必ずrootになってからtarコマンドを出し、すべてがno errorで展開されるのを確認してはいかがでしょう。リダイレクトしなくてもコンソールのメッセージを見ていると大体わかります。

投稿: がた老 | 2009年11月27日 (金) 18時32分

わかりやすい情報のご提供ありがとうございます。
日経Linux7月号関連でご教示をお願いします。
Ubuntu9.04をインストールしたディスクトップPCで実行しいております。SDカードへの第2パーティーションにtarコマンドで展開してからの手順で記事では/mnt/etc/event.d/以下に「ttyS2」というテキストファイルを作成するとあります。ところがこの/mntには/etcが存在しません。tarで展開した後にSDカードのプロパティを見ますと全部で570MB生成されています。所定のデータすべてが展開されていないのではと思っています。何を調べればよろしいのでしょうか?お忙しいところ恐れ入りますがよろしくお願いします。64歳でLinux修行中です。

投稿: とらきち | 2009年11月27日 (金) 14時35分

やれやれ。基本的なところを確認しておられませんね。「BeagleBoard シリアル」などで検索すれば、沢山情報が得られるのに。

そこには、BeagleBoardがROMモニターを持っていて、電源を入れただけでU-Bootというプログラムが動き、シリアルコンソールにプロンプトを出すということが書いてあるはずです(私の3つ前の記事にもある)。

*質問1、*質問2の状況は、このシリアル接続がまだ出来ていないことを示しています。画像(そちらならdell)モニターが動き始めるのは、LinuxがSDカードからロードされて相当進んでからです。

シリアルが動かない理由は沢山ありますので、ここに書くことはできません。ひとつひとつ調べていってください。「フロー制御なし」ではまる人がいますが、受信はできます。メッセージが出ないのなら他の原因でしょう。

雑誌の情報だけで、動かそうと言うのは無理です。BeagleBoardは小さいですが、やっていることは普通のLinuxと同じ。始めは訳がわからなくても色々調べていくうちに霧が晴れるようにわかるようになります。自分で苦労して得なければ、知識は身につきません。

投稿: がた老 | 2009年7月10日 (金) 16時52分

ご多忙中とは存じますが、もし、もし、対処方法をご存知であればアドバイスをお願いします。

日経linuxの記事で云う作業PC(ubuntu)の端末画面から、cu: -l ttyS2 -s 115200 と実行すると、

Connected と表示。

その時、beagleboardからdvi-HDMIで接続したモニター(DELL 1504FP)は真っ黒で何も表示されませんでした。

*質問1です。
 通常はこの時点で、日経linuxの記事にある図8の画面は、DELLのモニターに表示されるんでしょうか。?

一応、モニターの不具合の有無をチェックのため、dsubの端子もあるモニターなので、他のPCにつないだところキチンと表示されました。(ただし、この時「省エネモードのため、キーボードかマウスを触るように」と表示)

*質問2です
以上の状態のため、beagleboardからdellのモニターに信号がいっているのかわからない状態です。
この状態は、beagleboardに信号はいっているんでしょうか。?
一応、シリアルコンソールはconnectedと表示されたままで、enterを押すと、DisConnectedと表示されます。

なお、cuコマンドを実行する前に、USBハブ、beagleboardの電源投入、モニターの電源は入れた状態でやってみたり、cuコマンドを実行後に周辺機器の電源を入れてみたりとやっていますがダメでした。

もし、もし、対応策がございましたら、アドバイスをお願いします。
*SDメモリのセットアップがダメなんでしょうかね

投稿: kazu | 2009年7月 8日 (水) 23時12分

ううーん、困ったな。ここはサポートセンターではないので、そう矢継ぎ早やに質問されても。それに前に書いたように、Linuxは最近ご無沙汰で細かいところはみんな忘れています。わかっていることだけですが以下に。

>cu :open (/dev/ttys2): no such file or derectory
>cu :ttys2: line in use

そのノートPCが本当にシリアルインターフェースを持っていて、正しくLinuxがインストールされているのなら、恐らく、/dev/ttys2のパーミッションが今ログインしているユーザーに許可されていないのでしょう。
sudo chmod 777 /dev/ttys2 で全部OKにしてみる

>モニターへの画面出力の切り替えをどうするんだろうと悩んでいます。
>dsubのケーブルは外しておくんでしょか

雑誌の通り接続されたのなら、HDMI端子に画像モニターがつながっていますから、切り替えというのが良くわかりません。そこへ出ます。コンソールにも出ます。Linuxはこう見えてもUNIXと同じですから、沢山のユーザーを相手に同時に処理ができます(マルチタスク、マルチユーザー)。

まあ、あわてず落ち着いて少しづつ進めて行ってください。今は、Webという強力な道具がありますから、キーワードで検索すれば性急な質問をしなくてもいくらでも知識を増やすことができます。

投稿: がた老 | 2009年7月 8日 (水) 13時22分

ご回答ありがとうございます。
linux(ubuntu)のPCを良く見るとRS232Cの端子がありました。
(5年前のPCが幸いしました。)
日経の記事の通り(クロスケーブル)でつなぎました。

そこで質問です。
シリアルコンソールの起動の仕方を教えてください。

beagleboardの電源を入れ、ubuntuの端末画面から
以下の通り実行しました。
⇒ cu: -l ttys2 -s 115200 で「enter」
($ apt-get install cu でcuコマンドはインストールしました。)

その結果のメッセージは、
cu :open (/dev/ttys2): no such file or derectory
cu :ttys2: line in use
と表示されます。

このエラーの対処方法が判れば教えてください。
一応、sdメモリには、ttys2のファイルとinterfacesへの追加は確認しました。
よろしくお願いします。

なお、そもそもの疑問です。
通常はdsub9ピンでモニターにつないでいるPC(ubuntu)でSDメモリを作りました。
今回は、そのPCの本体にRS232Cをつないでbeagleboardの起動で確認しています。
そのため、モニターへの画面出力の切り替えをどうするんだろうと悩んでいます。
dsubのケーブルは外しておくんでしょか

それとも、cuコマンドを打つとbeagleboardのboot画面が自動的に表示されるんでしょうか

linuxの知識も無い私が、beagleboardの記事を見て衝動的に購入してしまいました。
ご多忙中とは存じますが、教えてください。
よろしくお願いします。

投稿: | 2009年7月 7日 (火) 22時20分

記事がお役に立ったようでこちらも喜んでいます。
ご質問の件ですが、PCのシリアル端子がメスということは通常あり得ません。恐らく画像出力のシュリンクDSUB15ピンの端子とお間違えになっていると思われます。穴の数を数えてみてください。最近はシリアルインターフェースのないノートPCが殆どでそのときはオスのDSUB9ピンはついていません。
少し大きなショップで、USBとシリアルの変換ケーブルを入手すれば良いでしょう。クロスケーブルを間に入れることを忘れないように。

投稿: がた老 | 2009年7月 7日 (火) 11時40分

突然のコメントで失礼します。
当方、まったくのlinuxの素人ですが、日経の記事を読み衝動的にbeagleboardを購入しました。アキバで周辺機器の記事のコピーを店員さんに見せながらやっとの思いで機器を揃えました。(モニターの規格がDVI対応のため、中古ですがモニターも買いました。)

日経の記事の誤記なのか判らず、全然、上手くいかずに途方にくれているところに貴殿のブログを見つけ一途の明かりがホントご来光の如く射し、やってみるとキチンとsdメモリに書き込まれDVDプレイヤーが動き始めた時は思わず涙目になっていました。

root権限でファイルやテキストが更新出来ませんでしたが、何とか、root権限を理解して、特定のフォルダ(パス)への変更のコマンドが判り、ファイルやテキスト文の追加が出来ました。これで何とかbeagleboard用のSDメモリは完成した模様です。

ここからが質問です。
いよいよ、ここからというときにRS-232C(クロスケーブル)とモニターをつなぐことができません。
モニター(*)はミニd-sub9ピンのメス端子です。
この場合は、どのようなアダプタ(またはケーブル)を購入すればいいのでしょうか。
webで調べましたが、今回の接続はクロスケーブルでもあることからよくわかりませんでした。
*:59頁の接続イメージによるとノートPCとありますが、私が持っているノートPCにRS232の端子は無くミニd-sub9ピンのみです。
お忙しいところすみませんが、よろしくお願いします。

投稿: | 2009年7月 6日 (月) 17時27分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: BeagleBoardにUbuntu9.04をインストールする:

« レガシーなRS232Cインタフェースにはまる | トップページ | 電子工作の次の方向が決まらない »