はじめまして。Cerevo まつけんです。
(2009-02-13追記) 下記の利用するシリアルケーブルの種類の説明で、Null Modem Cable=ストレートケーブルという記述になっていましたが、Null Modem Cable=クロスケーブルの間違いでした。記事を修正しました。コメントでのご指摘ありがとうございます。
昨日、弊社岩佐個人Blogキャズムを超えろ!にて、スタートを宣言されたこのBlogですが、思ったより反応があり、すこし腰が引けつつ、最初の投稿です。
私自身は、主に、サーバ関連全般(Web系のアプリ〜サーバ、ネットワークインフラ等)を担当しています。そのため、各部品ののデータシートを読み込んで、ハード設計して、回路図も書けて、ハンダ付けもバリバリ!みたいな組み込み屋さんではありません。ただ、前職の関係で、組み込み関連の知識は多少あるという感じです。
今回は、そんな人間によるBeagleBoardというARM系のCPU搭載開発ボードをつかった組み込みLinuxの体験記です。
まずは、BeagleBoardの紹介、そして、購入から実際にLinuxが動くところまでをお送りします。
今後も連載という形で、
- BeagleBoard(OMAP3)向けtoolchainの構築
- linux kernelの構築とインストール
- NFSルートでの起動
- DebianやGentooのインストール
- DSPの使い方
なども紹介していきたいと考えています。
前置き
といいつつ、まず、すこしだけ前置きをさせていただきます。
まず、組み込みの世界は広大です。家電だけにフォーカスを当てても、電子レンジ、炊飯器などの白物で使われる8bitくらいのマイコンから、まるでPC並なARMが搭載された携帯電話、PowerPCが搭載されたゲーム機等まで、それぞれの用途に合わせて、ハードウェア、OS、開発環境、ライセンスなどすべてに違いがあるのが現状であり、一概に語れる状況ではないのはその通りだと思っています。
ただ、どうしても、組み込み系の開発といえば、基本的に個人が手を出せるようなものではなく、ベンダーのサポートを前提とした契約(多くの場合、NDAもセット)のもと、EVMなどの評価ボードと高価な開発環境を手に入れて開発をしていく、という形のものが多く、現在もメジャーであるとは思います。
ただ、近年、そのなかでも、高性能な機器向けを中心として、組み込みの世界で存在感を示しつつあるのが、組み込み向けのLinuxです。組み込み向けのLinuxの搭載を前提とするボードなどでは、ライセンスの関係などから、ソースが公開され、個人でもFreeに手に入れられるものも出てきています。
そういったものは、個人で入手可能な形で販売され、比較的、ローコストで開発に入れるようになっているものも増えています。
たとえば、プラットホームのOpenBlockS,OpenMicroServer、アットマークテクノのArmadilloシリーズなど、日本でも簡単に開発環境も含め、手に入るものがかなり増えてきました。玄人指向の玄箱もこれに含めてもよいかもしれません。
そんな組み込みLinuxな世界を、あまりコストをかけず、気軽に体験してみようというのが、今回の趣旨になります。
#個人的には、マイナーですが、NetBSDなどの組み込みっぽいBSDも好きです。
#NetBSDのどんな機器にもポーティングするぜ、みたいなパワーに憧れます。
Beagle Boardとは
長くなってしまいました。さて、本題のBeagle Boardです。本家のページに様々な説明があります。
このボードの特徴は、なんといっても高性能なのに安い、とりあえず回路図とかほぼすべてオープン、というところにあるんではないでしょうか。そのため、個人がx86系ではない環境で、Linuxを動かす、という目的においては、ローコスト、かつ、情報も集めやすい環境であり、今現在、かなりオススメな入門環境です。
ここからの内容は、基本的に、Embedded Linux Wiki を参考に書かれています。ここの情報+αという形で書いていきます。
ここのWikiに、かなりの情報があります。とりあえず、ざっと読んでみて損はないと思います。
本家のページにも、いろいろ説明があるので、具体的なボードのスペックは簡単にだけご紹介します。
- OMAP 3530(Cortex-A8 500-600MHz + C64x DSP + Graphics Accelerator)
- 128MB SDRAM
- 256MB NAND Flash
- USB 2.0 OTG
- USB EHCI Host
- DVI-out x1
- SDスロット x1
というのが、大体の概要でしょうか。いわゆる、CPU(OMAP3550)、メモリ(SDRAM)、ストレージ(NAND,SD)がそろっており、USBも搭載しているので、結線がどうとか、回路がどうとか考えずに、ある程度の拡張が容易です。CMOSなどもスペック上はつながりそうです。
性能という点でみた場合、組み込み用途としては、かなりの高性能だと思います。TIのOMAPシリーズは携帯電話を中心に採用されているもので、OMAP 3530はそのシリーズの最新のものになり、OMAP3の中でもOMAP3530は最上位モデル?にあたり、OpenGL ES互換のグラフィックアクセラレータまで搭載しています。そのような性能のため、後述のAngstromのデモでは、普通にFirefoxなど追加で構築し直して使ってみると、かなり快適に動作します。
#はじめは、ボード上に、チップぽいものが1つしかなく、PoP(Package On Package)というものを知らなかったので、どこにメモリやNAND Flashは搭載されているのだろう?と探し回っていたりしました。
購入
なにはともあれ、まずはBeagleBoardを購入します。
これは、現在、日本で購入する場合は、DigiKey日本語サイトからの購入が無難です。
価格は、約17,000円で、送料は無料です。ただし、税関手数料?が600円程度かかるようです。
現在、購入すると、Rev.Bのボードになります。これは、制限として、USB EHCIがうまく動きません。
Rev.Cでは直る予定だそうですが、2009/Q1の遅い時期にならないと手に入らないという感じのようです。
http://search.digikey.com/scripts/DkSearch/dksus.dll?pname?site=jp;lang=ja;name=296-23428-ND
ここで、注文をすると、UPSで海外から送られてきます。
注文ですが、個人として注文する場合は、ないかもしれませんが、法人名で購入した場合、確認の電話がかかってきます。
アメリカからの輸入になり、規制?を突破するために、用途等を聞かれます(電話は日本語でOKなのでご安心を)。
- 細かい用途、できれば、このボード上で動くアプリケーションの概要
- 軍事用途ではないことの確認
などを聞かれました。一応、どう答えるか、事前に考えておいた方がよいかもしれません。
これで、アメリカから、4〜5日程度でボードが届きます。しかし、これで、さあ、開発だ!というわけにはいきません。
BeagleBoardには、ケーブル等が全くついてきません。そのへんを用意する必要があります。
今回、別途用意をしたのは、
- 電源関連(ACアダプタ等)
- RS232C関連(IDC10←→DSub9pin変換、ストレートケーブル、USBシリアル変換)
- USB関連(USBハブ、A->MiniA変換ケーブル、USB-LANアダプタ)
- HDMI←→DVIケーブル
- SDカード
です。そのあたりについて、説明をしていきます。
電源関連
なにはともあれ、電源を用意します。
Beagle Boardは、USBからの給電でも動作可能なのですが、Rev.Bのボードでは、EHCIのほうのUSBが動作しません。そのため、OTGのポートを給電用に利用してしまうと、キーボード、マウスなどを接続するポートが無くなってしまいます。
したがって、今回は、DCジャックからの給電で動作させています。
これは、プラグの形状等(2.1mm径 センタープラス)だけ気をつけて、5VのACアダプタを買ってきます。秋葉原なら若松や千石などのパーツ屋さんに行けば、普通においてあります。
私は、手元にあるもので代用したので、モバイルクルーザー+USB-DCケーブル(2.1mm径)のものという組み合わせで給電しています。
シリアルケーブル(RS232C)
基本的に、シリアルコンソール経由での操作が大半を占めますので、必須です。
ただし、Beagle Boardには、PCを使ってるような人になじみ深いDSUB9ピンのコネクタなどは実装されていません。
ボード上にピンが立っているので、そこに接続する形のケーブルを用意する必要があります。
おそらく、普通の組み込み屋さんなら、さくっと自作してしまうのだとおもいますが、購入も可能です。
海外では、それ用のケーブルも販売しているようですが、ケーブル一本を通販で購入するのは、さすがに送料が高すぎて現実的ではないと思います。
PC向けマザーボードには、同じようにRS232Cのピンが立っているものが多いので、付属品としてIDC10コネクタのケーブルが販売されてて、今回はこれを流用しています。
実際に利用しているものは、千石電商にIDC-BBという型番でおいていたものです。
検索してみても、結構出てくるので、通販でも買えると思います。
コネクタさえ一緒なら、他のものを買ってもいいのですが、注意するのは、結線をちゃんと確認することです。
BeagleBoard側がどのようなピン配置になっているかは、ハードウェアマニュアルに詳しく載っています。
IDC-BBの場合、以下のようになっています。
DB-9 IDC-10 Pin 1 - Pin 1 Pin 2 - Pin 2 Pin 3 - Pin 3 Pin 4 - Pin 4 Pin 5 - Pin 5 Pin 6 - Pin 6 Pin 7 - Pin 7 Pin 8 - Pin 8 Pin 9 - Pin 9
これだと、ストレートに結線されていることが分かります。
とりあえず、このタイプを選ぶのがよいと思います。
次は、シリアルケーブルを用意します。
こちらは、Wikiには、Null Modem Cableという表記になっていますが、要はストレートクロス結線のものを用意します。
こちらも、千石電商で一緒に買いました。
#最終的に、相手側とTX/RXがうまく接続されればよいので、実際は、IDC-GB+クロスケーブルでも動きます。
最後に、PC側ですが、私は、MacBookProを利用しているため、RS232Cポートがないので、USB-シリアル変換ケーブルを用意しました。
また、なんらかのターミナルソフトが必要です。ここでは、ckermitを利用しています。
ここで、ひとつポイントがあります。
BeableBoardは、実際は、RS232Cと呼んではいますが、TX/RX(送受信用のピン),GNDしか使われません。
そのため、RS232Cのフローコントロールはなしに設定しないと、シリアルポートでの通信は動作しません。
これは、通常、ソフトウェア側で設定可能です。
しかし、私が利用していたUSBシリアルであるSUNTAC VS60-Rはどうもフローコントロールをなしに設定しても、CTSをチェックしてしまうようで、受信はできるが、送信はできないという状況に陥りました。
USBシリアルが原因でそうなっていることに気づくまで3時間以上はまってしまいました。
結局、Arvel SRC06-USBに交換することで、問題なく動作するようになりました。
もし、同じ状況になったら、疑ってみてください。
あ、SUNTAC VS60-Rなら、ドライバを入れなくても動作しましたが、Arvelのやつは別途インストールしました。
まずは、Macならターミナル等を立ち上げて、以下のような操作をおこないます。
・kermitの起動(kermit -l /dev/tty.usbserial-FTDCNAMX)
>set speed 115200
>set flow-control none
>set carrier-watch off
とコマンドをうち、
>connect
で、接続します。
この状態で、用意したケーブルを接続し、電源を入れます。
すると、以下のような表示になると思います。
bash-3.2# kermit -l /dev/tty.usbserial-FTDCNAMX C-Kermit 8.0.209, 17 Mar 2003, for Mac OS X 1.0 Copyright (C) 1985, 2003, Trustees of Columbia University in the City of New York. Type ? or HELP for help. (/Users/ku/) C-Kermit>set speed 115200 /dev/tty.usbserial-FTDCNAMX, 115200 bps (/Users/ku/) C-Kermit>set carrier-watch off (/Users/ku/) C-Kermit>set flow-control none (/Users/ku/) C-Kermit>connect Connecting to /dev/tty.usbserial-FTDCNAMX, speed 115200 Escape character: Ctrl-\ (ASCII 28, FS): enabled Type the escape character followed by C to get back, or followed by ? to see other options. ---------------------------------------------------- Texas Instruments X-Loader 1.4.2 (Aug 8 2008 - 16:59:05) Reading boot sector Booting from mmc U-Boot 2008.10-rc2 (Oct 2 2008 - 09:02:46) OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz OMAP3 Beagle board + LPDDR/NAND DRAM: 128 MB NAND: 256 MiB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0[return] OMAP3 beagleboard.org #
というような画面がターミナルに表示され、returnなどを押して、コンソールが操作できれば、シリアルコンソールはうまく動いているということになります。これで、とりあえず、第一段階突破です。
USB関連
Angstromのデモでは、とりあえず、EnlightmentというWindowManagerが立ち上がるので、キーボードとマウスをつないで操作する必要があります。それと、ネットワークも使うなら、BeagleBoardにはEthernetがないので、USB-LANアダプタも接続する必要があります。
それらを接続するために、まずは、USBハブを用意します。
ここでの注意点は、セルフパワーのものを用意することです。BeagleBoardのポートから給電される電流は非常に少ないので、USB-LANとかは確実に電力不足で直結しても動きません。
また、BeagleBoardに実装されているコネクタは、Mini-ABコネクタになります。ABコネクタは、A,Bどちらも挿せるということだそうです。今回は、Hostとして操作させるので、USB Aメス←→USB Mini Aのケーブルを買ってきて、USBのコネクタを変換する必要があります。
これも、千石電商にいけば、変換アダプタがおいていたので、それを購入するので良いと思います。
USB-LANは、Linuxで安定して動くものであれば、なんでもいいとは思います。
私は、手元にあったCorega FEther USB-TXCという製品を利用しています。これは、dm9000というモジュールで動作しました。NFSルートとかやるなら、100BASEのはやいものにしたほうがよいかも。
HDMI←→DVIケーブル
これは、そこらじゅうで売っているとおもうので、適当に用意します。
ちなみに、BeagleBoardではHDMIコネクタになっていますが、仕様としては満たしていません。単に、DVIのちっこいコネクタとして、流用しているだけのようです。
SDカード
容量はそこそこ大きめのほうがよいと思います。
今後、Debianなどをインストールして、Xもうごかすなら、1GBでは足りないかもしれないです。
私は、上海問屋の2GBのを使っていますが、問題なく動いています。
ここまでできると、開発に入る準備は完了です。
Angstromデモの起動
ここからは、とりあえず、なにか動かしてみようということで、デモイメージが公開されているAngstromのデモを動作させてみます。
SDカードのフォーマット
まず、SDカードからブートできるように、SDカードのフォーマットを行います。
ここからの操作は、なんからのLinux(今回はGentoo)上での操作を前提としています。fdiskが動けば、ほかのOSでもいけるかも。Linuxが手元にない場合、VMware等でLinuxをインストールするか、UbuntuやKNOPPIXなどのLiveCDを活用するとよいかもしれません。
SDカードは、カーネル等を置くFAT32のパーティションとユーザランドを配置するext3のパーティションの2つに分けます。
詳しい説明は、MMC boot formatというページでまとめられています。
一応、私がおこなった具体的な操作は以下になります。
/dev/sddがSDカードだとします。
最初に、パーティションテーブルをクリアします。
peng ~ # fdisk /dev/sdd Command (m for help): o Building a new DOS disklabel with disk identifier 0x226a3c58. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
SDカードの容量を確認します。
Command (m for help): p Disk /dev/sdd: 2041 MB, 2041577472 bytes ....
ここの2041577472 bytesの数字は、使うのでメモしておきます。
expertモードに入ります。
Command (m for help): x Expert command (m for help):
あんまりよく分かってないのですが、255 heads,63sectors,容量に応じたcylindersに変更します。
Expert command (m for help): h Number of heads (1-256, default 4): 255 Expert command (m for help): s Number of sectors (1-63, default 62): 63 Warning: setting sector offset for DOS compatiblity Expert command (m for help): c Number of cylinders (1-1048576, default 1011):248
容量に応じたという部分は、上の容量の数字を使って、
2041577472 / 255 / 63 / 512 という式で算出しています。
通常モードにもどり、あたらしいパーティションを作成します。
Expert command (m for help): r Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-15, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-15, default 15): 15
DOSパーティションなので、bootableフラグを設定し、FAT32にパーティションタイプを変更します。
Command (m for help): a Partition number (1-4): 1 Command (m for help): t Selected partition 1 Hex code (type L to list codes): c Changed system type of partition 1 to c (W95 FAT32 (LBA))
そして、のこりの領域をlinuxのパーティションに割り当てます。
Command (m for help): n Command action e extended p primary partition (1-4) Partition number (1-4): 2 First cylinder (52-245, default 52): Using default value 52 Last cylinder or +size or +sizeM or +sizeK (52-245, default 245): Using default value 245
これで、wを入力して、パーティションテーブルを書き込みます。
その後、それぞれのファイルシステムでフォーマットします。
# mkfs.msdos -F 32 /dev/sdd1 -n LABEL # mkfs.ext3 /dev/sdd2
これで、SDカードの準備は終了です。
Angstromデモイメージの書き込み
ここからAngstromのデモイメージ(rootfs, uImage, u-boot.bin, MLO)をダウンロードします。
そして、rootfs以外をFATのパーティションにコピーします。ただし、MLO最初にコピーする必要があります。
# wget 〜 # mount /dev/sdd1 /mnt/sdcard/p1 # cp MLO /mnt/sdcard/p1/ # cp u-boot.bin /mnt/sdard/p1/ # cp uImage /mnt/sdcard/p1/ # umount /mnt/sdcard/p1
という感じで実行します。
起動シーケンス
それぞれのファイルは、起動シーケンスなどの紹介などができれば、そこでまた詳しく説明すべきだとはおもいますが、簡単にだけ説明しておきます。
基本的に、BeagleBoardは、(On Chip Bootrom) -> X-Loader -> U-Boot -> Linuxという順で起動します。
- X-Loader → BeagleBoard On chip Bootromからロードされるstage2のBoot Loader(と呼んでいいのかどうかはよくわかりません。。。)
- U-Boot → こいつがNAND FlashやSDカードからLinuxカーネルをロードします。
X-Loaderが、いわゆる、NAND,SD,serialなどから、Bootloaderをロードし、起動する役割を担います。一応、U-Boot非依存になっているようなので、ほかのBootloaderをポーティングすることも可能かとは思います。
というわけで、今回は、SDにU-Boot,Linuxカーネルを入れておいて、X-Loaderには、ボード上のスイッチを押して、電源をいれることで、X-LoaderにSD上のU-Bootをロードしてね、と伝えることで、SDブートをしています。
Rootfsの配置
rootfsは、最新は、Angstrom-Beagleboard-demo-image-glibc-ipk-2008.1-test-20080920-beagleboard.rootfs.tar.bz2のようです。これを、ext3でフォーマットしたパーティションに展開します。
/mnt/sdcard/p2に、/dev/sdd2をマウントしているとして。
# tar jxpvf Angstrom-Beagleboard-demo-image-glibc-ipk-2008.1-test-20080920-beagleboard.rootfs.tar.bz2 -C /mnt/sdcard/p2
という感じ。
これで、umontすれば、セットアップは完了です。
boot
あとは、BeagleBoardにセットアップしたSDカードを挿して、電源を入れます。このとき、USR1のボタンを押したまま起動することで、SDからのbootが有効になります。
そして、うまくU-Bootが起動したら、コンソールに入ります。
そこで、
# setenv bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait' # setenv bootcmd 'mmcinit;fatload mmc 0 80300000 uImage;bootm 80300000' (もし、毎回、この設定で起動したいなら) # saveenv
と実行します。
そして、bootです。
# boot
これで、Linuxカーネルのロードが始まるはずです。
2198180 bytes read ## Booting kernel from Legacy Image at 80300000 ... Image Name: Linux-2.6.27 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2198116 Bytes = 2.1 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux............................................................................................................................................. done, booting the kernel. Linux version 2.6.27 (voodoo@voodoo-desktop) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-41) ) #1 Fri Oct 31 12:04:40 CDT 2008 CPU: ARMv7 Processor [411fc082] revision 2 (ARMv7), cr=00c5387f Machine: OMAP3 Beagle Board Memory policy: ECC disabled, Data cache writeback OMAP3430 ES2.1 SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000 CPU0: L1 I VIPT cache. Caches unified at level 2, coherent at level 3 CPU0: Level 1 cache is separate instruction and data CPU0: I cache: 16384 bytes, associativity 4, 64 byte lines, 64 sets, supports RA CPU0: D cache: 16384 bytes, associativity 4, 64 byte lines, 64 sets, supports RA WB WT CPU0: Level 2 cache is unified CPU0: unified cache: 262144 bytes, associativity 8, 64 byte lines, 512 sets, supports WA RA WB WT ....
Angstromは、初回起動にいろいろ準備をするようで、かなり時間がかかります。無事起動することを祈りながら待ちます。
そして、起動完了したら、シンプルなユーザ設定画面が表示されるはずです。
適当なユーザ名とパスワードを入力してください。
そうすると、Enlightmentが起動するはずです。
このデモイメージには、
- 画像編集ソフト(GIMP)
- Webブラウザ(GNOME Web Browser, Midori)
- ワープロソフト(AbiWord)
- 表計算ソフト(Gnumeric)
- 動画再生ツール(mplayer,omapfbplay)
などが含まれています。使ってみてください。動画再生などは、DSPをつかってない状態でも、そこそこの解像度(320×240)とかのMPEG-4なら再生できたりして、ちょっとびっくりしました。
ちなみに、私がつかったデモイメージではうまくUSB-LANが認識されませんでした。その場合、カーネルをほかのものにかえてみたり、自分でコンパイルすると解決するはずです。
最後に
今回は、ここまでで一旦、切らせていただきます。
ここまでだけでも、かなりの分量になってしまいましたが、これ以降、自分の造るアプリを動かすための開発環境構築などをおこなっていきます。ここからが本番です。
とりあえず、組み込み環境なので、ペリフェラルやSDのセットアップは大変ですが、Linuxが動いてしまえば、アプリ等はPCとあまり変わりません。これが、組み込みLinuxのメリットだと思います。
次回は、最初にも書きましたが、
- OpenEmbeddedの開発環境を使ってみる
- Gentooのcrossdevをつかって、独自のツールチェイン作成し、クロスコンパイルに挑戦
- カーネル再構築
あたりをご紹介できたらな、と考えています。
ひっじょーに長い記事になってしまいましたが、だれかひとりでも参考にしていただける人がいれば幸いです。
著者プロフィール
15 thoughts on “Beagle Board 事始め”
Comments are closed.
まずは一通り動作させるには非常に役立つ記事だと思います。
これからも役に立つ情報を期待しています。
Beagle Boardの日本語の情報を拡充しようと画策しているのですが、気持ちが先行してばかりで活動がいまいち進んでいませんでしたので、この記事を見て刺激になりました。
ついこの間、先輩がBeagle Boardの評価をしていて、ちょうど今回の記事と同じようにデモが動くところまでは見ていたので、興味深く読ませていただきました。
わたしがこの手の環境を作る場合、Windows+Linux(VMware)という感じで、たいていの作業はVMware上のLinuxで済ませてしまいます。
Linuxで動くシリアル通信ソフトウェアならば、minicomあたりがメジャーどころでしょうか。
minicomはインストール直後の状態だとハードウェアフローコントロールが有効になっているので、今回のケースでは設定を変えて、フローコントロールを無効にする必要がありそうです。もちろんボーレートを115200に設定することも必要ですね。
Windowsでシリアル通信をするなら、Windows標準のハイパーターミナルを使うか、Tera Termを使うことが多いです。
他の機械向け開発でOpenEmbeddedの環境を使っているのですが、今ひとつ使いこなせていないので、これからの記事も楽しみにしています。
あと、似たような感じで技術ノウハウを記事にしろと言われ続けているので、記事の書き方も参考にさせていただこうと思います。w
これから組込みのプログラムをすることになり、こちらの情報は色々勉強になります。
用語についていくつか分からないのですが、EVMというのはError Vector Magnitudeの略の認識で正しいのでしょうか?
今後も参考にさせていただきます。
yasさん > EVMはEValuation Moduleの略になります。評価および開発のための動作回路をつくる回路およびサポート部品を内蔵したプリント回路ボードをさします。BeagleBoardも一種のEVMであると言えます。
回答ありがとうございました。EVMの正式名をgoogleで探したのですが、なかなかうまい具合に見つからず質問させていただきました。
> Null Modem Cableという表記になっていますが、要はストレート結線のものを用意します。
どうやらNull Modem Cableは「クロスケーブル」だと思うんですが、どうでしょうか?
自分はここのページを見てはまっちゃったので確認された方がいいと思います。
貴ブログを拝見し、この通りにSDカードの設定を実行したのですが、Beagle Board に装着し
USERボタンを押しながら電源ON
ずらずら~と起動メッセージが出て、最後 以下の部分で止まってしまいました。
何が悪いのか解りません ご教授をお願い致します。
Disabling unused clock “gpt11_fck”
Disabling unused clock “gpt10_fck”
Disabling unused clock “dpll4_m6x2_ck”
Disabling unused clock “dpll3_m3x2_ck”
Disabling unused clock “sys_clkout1”
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
registered taskstats version 1
Console: switching to colour frame buffer device 80×30
clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000
clock: new_div = 9, new_rate = 48000000
twl4030_rtc twl4030_rtc: setting system clock to 2000-01-01 00:00:58 UTC (946684858)
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device “” or unknown-block(2,0)
Please append a correct “root=” boot option; here are the available partitions:
1f00 512 mtdblock0 (driver?)
1f01 1920 mtdblock1 (driver?)
1f02 128 mtdblock2 (driver?)
1f03 4096 mtdblock3 (driver?)
1f04 255488 mtdblock4 (driver?)
Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
ここでストップです。
SDカードの作成、設定は Ubuntu8.10 で シリアルケーブルは WindowsXP SP3 で
Tera Term で接続してます。
よろしくおねがいします。
Mild7さま>
# setenv bootargs ‘console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait’
上記、bootargsにinit=/initを追加してみてください。
# setenv bootargs ‘console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait init=/init’
動作すれば幸いです。
以上、お願いいたします。
コメントありがとうございます。再度、状況を記します。
# tar jxpvf Angstrom- ***** これを実行後 umount し
BeagleBoardにセットアップしたSDカードを挿して、電源を入れます。このとき、USR1のボタンを押したまま起動した時
この時に
Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
この状態でストップしてしまいます。
やり直しを数回しても同じです。
なんとか実現したいのです よろしくご指導くださいませ。
アドバイスありがとうございます。
Ctrl + C キーでコンソールに入るのが解らず でした。
beagleboard login: まで来たので 適当なユーザー名 パスを入れても
なぜか 繰り返し です。
何か制約があるのでしょうか??
The Angstrom Distribution beagleboard ttyS2
Angstrom 2009.X-test-20090305 beagleboard ttyS2
beagleboard login: mild7
Password:
Login incorrect
beagleboard login:
Login timed out after 60 seconds
.——-.
| | .-.
| | |—–.—–.—–.| | .—-..—–.—–.
| | | __ | —‘| ‘–.| .-‘| | |
| | | | | |— || –‘| | | ‘ | | | |
‘—‘—‘–‘–‘–. |—–”—-”–‘ ‘—–‘-‘-‘-‘
-‘ |
‘—‘
The Angstrom Distribution beagleboard ttyS2
Angstrom 2009.X-test-20090305 beagleboard ttyS2
beagleboard login:
このサイトは懇切丁寧でとても参考になりますね。最近Rev Cを手に入れ、このサイトを頼りにさせて頂きました。
ところで、直近コメントにレスポンスがついていませんが、もう解決されたのでしょうね。
(もし解決しているなら、報告するのがエチケットだと思いますが)
Linux(UNIX)を始めた方が良くはまる落とし穴で、ユーザー名とパスワードは自分で登録します。
最初はrootしかいません。パスワードもかかっていない(勿論ディストリビューションによって違うが)。
この場合は、rootで入れます。パスワードを設定するのをお忘れなく。まあ、ネットにつながなければ無害ですが。Enlightmentは一般ユーザーでないと最初駄目だったか。
da best. Keep it going! Thank you
エチケットを知らず申し訳ございません。