BeagleBoard DE Ubuntu (起動後のupdate作業)
BeagleBoard に Ubuntu11.10 インストール後の起動後にする事HowTo
SDカードへのubuntuのイメージの入れ方等はBeagleBoard DE Ubuntu (SDカードにイメージのインストール) - emblogを参照してください。
基本は、elinux.org(BeagleBoardUbuntu)に書いてある通りだったりする。
***構成***
使用Host PC OS : Ubuntu12.04
使用Beagleboard : BeagleBoard C4 (xMじゃないよw)
USBハブ : USB2.0ハブ4ポート(¥700ぐらい)
USB/LAN変換 : USB2.0 有線LANアダプタ(¥1,000ぐらい)
BeagleBoard用シリアルケーブル : BBC01(¥1,600ぐらい 高!)
SDカード : 8GbyteSDカード(最小で4GBは欲しい)
何はともあれ起動させる。
を接続します。
シリアル通信設定
Tera Term等のシリアル通信できるソフトを用意します。
シリアルポート設定
ボーレート 115,200bps
データ 8bit
パリティ none(なし)
ストップbit 1bit
フロー制御 none(なし)
に設定しておき、シリアルケーブルを事前に接続しておきます。
火入れ
USERボタンを押しながら、USBminiBケーブルをPCに接続して電源供給させてみます。
下記に起動時のkernel起動前までのログを表示しておきます。
USERボタンを何故押しながら起動させるの?
beagleboardのOMAP3530(beagle board Ver.C4の場合)は、I/OのSYS_BOOT0~6のポートのbit設定にて内部ROM(たしか書き換え不可じゃなかったかな?)に書き込んでいるbooterが第一,第二のbooterであるx-loader,u-bootを読み出す先の順番を変更できます。
デフォルトの状態では、
SYS_BOOT0 H
SYS_BOOT1 H
SYS_BOOT2 H
SYS_BOOT3 H
SYS_BOOT4 L
SYS_BOOT5 (USERボタン downで H)
SYS_BOOT6 H
となっていますので、
- USERボタンを押さない時 b100 1111 (NAND USB UART3 MMC1)
- USERボタンを押している時 b110 1111 (USB UART MMC1 NAMD)
となり、USERボタンを押さない時には、
通常はNANDからx-loader/u-bootが読み出されます。
今回は、SDカードからの起動させる為に、USERボタンを押し
NANDより先にMMC1からbooterを読み出すようにしました。
(マニュアルの5.14 User/Boot Button参照)
(起動ログ)
40W <- [40Wと表示されればOKです。これが出たときにUSERボタンを離してください。] U-Boot SPL 2011.12-00005-g0a44c98 (Feb 13 2012 - 18:49:45) Texas Instruments Revision detection unimplemented OMAP SD/MMC: 0 reading u-boot.img reading u-boot.img U-Boot 2011.12-00005-g0a44c98 (Feb 13 2012 - 18:49:45) OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 720 mHz OMAP3 Beagle board + LPDDR/NAND I2C: ready DRAM: 256 MiB NAND: 256 MiB MMC: OMAP SD/MMC: 0 In: serial Out: serial Err: serial Beagle Rev C4 timed out in wait_for_pin: I2C_STAT=0 I2C read: I/O error Unrecognized expansion board: 0 timed out in wait_for_pin: I2C_STAT=0 I2C read: I/O error Unrecognized expansion board: 0 Die ID #13f400040000000004036abc07007018 Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 2,1,0 <- [ここで、何かを押せばu-bootで止まります。] The user button is currently NOT pressed. SD/MMC found on device 0 reading uEnv.txt 796 bytes read Loaded environment from uEnv.txt Importing environment from mmc ... reading uImage 3014528 bytes read reading uInitrd 3087353 bytes read Booting from mmc ... ## Booting kernel from Legacy Image at 80300000 ... Image Name: 3.2.3-x4 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3014464 Bytes = 2.9 MiB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 81600000 ... Image Name: initramfs Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size: 3087289 Bytes = 2.9 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel.
Kernel起動後
ログインする
初期でのログイン名とパスワードは
login name : ubuntu
password : temppwd
となっていますので、これでログインしてみます。
Ubuntu 11.10 omap ttyO2 omap login: ubuntu <- ログイン名(デフォルト ubuntu)を入力 Password: temppwd <- パスワード(デフォルト temppwd)を入力 Welcome to Ubuntu 11.10 (GNU/Linux 3.2.3-x4 armv7l) * Documentation: https://help.ubuntu.com/ The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. ubuntu@omap:~$
ネットワークに接続してみる。
とりあえず、ubuntuのアップデートを行いたいので
ネットワークに接続します。
今回は、DHCPにてさくっと接続させます。
sudoをつけて、rootの特権レベルで実行させます。
$ sudo dhclient eth0 [sudo] password for ubuntu: ****** <- password(デフォルトならtemppwd を入れる。)
接続できたか確認してみる。
$ ifconfig eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55 inet addr:172.16.0.1 Bcast:172.16.0.255 Mask:255.255.255.0 <- IPアドレスが割振られていればOKかと思います。 inet6 addr: ffff::1111:ffff:1111:20b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1198 (1.1 KB) TX bytes:1382 (1.3 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
ubuntuのアップグレード
とりあえず、パッケージリストを取得・更新する
$ sudo apt-get update
インストール済みのパッケージをアップグレードする
$ sudo apt-get upgrade
その他いろいろ作業する前に入れておきたいものを入れる。
- 検索するファイルを含むパッケージをよく探すので
$ sudo apt-get install apt-file
パッケージが入ったら
$ sudo apt-file update
- わたし、vim派なので真っ先にいれる(これがないと、きついっす)
$ sudo apt-get install vim
- 後述のkernelupdateに使用するので、 HTTPやFTP経由にてファイル
取得をするためのwgetを入れる。
$ sudo apt-get install wget
- いちいちシリアルで接続するのもめんどくさいのでSSHも入れる
$ sudo apt-get install ssh
- Windowsから接続も行いたいのでsambaも入れる。
$ sudo apt-get install samba
ネットワーク接続の設定を行う。
起動してから、dhclientコマンドにて毎回ネットワーク接続しても
いいのですが、めんどくちゃいので自動でDHCP接続をするようにします。
/etc/network/interfacesを編集する
$ sudo vim /etc/network/interfaces
で開いて
(書き換え前)
auto lo iface lo inet loopback # The primary network interface #auto eth0 #iface eth0 inet dhcp # Example to keep MAC address between reboots #hwaddress ether DE:AD:BE:EF:CA:FE
上記の
#auto eth0
#iface eth0 inet dhcp
の"#"を消して上書きします。
※vimでのファイルの編集・保存について
ファイルの編集 キーボードのiを押して挿入モードにて編集する。
ファイルの保存 ESCを押してから:wqにてファイルを上書き保存します。
(書き換え後)
auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp # Example to keep MAC address between reboots #hwaddress ether DE:AD:BE:EF:CA:FE
これで一旦再起動します。
kernelのアップデート
ここまでは、主にUbuntuのパッケージ関連をいじってきましたが次はkernelのアップデートを行います。
Ubuntu のイメージをインストール時に作成したkernelは最新版でないので最新版に上げます。
アップデート用の作業ディレクトリの作成
/opt/ディレクトリに./LatestKernelImageを作成してこのディレクトリで作業を行います。
ディレクトリを作成します。
$ sudo mkdir -p /etc/LatestKernelImage
/optディレクトリに移動し、./LatestKernelImageの所有者を変更します。
$ cd /opt/ $ sudo chown ubuntu:ubuntu ./LatestKernelImage
所有者の変更ができたか確認してみる。
$ ls -l drwxr-xr-x 2 ubuntu ubuntu 4096 2012-03-XX XX:XX LatestKernelImage
kernelのupdate(uImageを上書きする)
環境変数として、DIST名をUpdateするUbuntuのバージョンを入れる。
Ubuntu10.04なら、lucid
Ubuntu10.10なら、maverick
Ubuntu11.04なら、natty
Ubuntu11.10なら、oneiric
Ubuntu12.04なら、precise
を入れる。
export DIST=oneiric
環境変数として、ARCH名で、アーキテクチャ名を入れる。
export ARCH=armel
環境変数として、BOARD名で、使用しているボード名を入れる。
Beagleboardや、Pandaboardなら、omap
BeagleBoneなら、omap-psp
export BOARD=omap
インストールで使用するシェルスクリプトのリストを取得します。
$ wget http://rcn-ee.net/deb/${DIST}-${ARCH}/LATEST-${BOARD} --2012-03-XX XX:XX:XX-- http://rcn-ee.net/deb/oneiric-armel/LATEST-omap Resolving rcn-ee.net... 69.163.149.169 Connecting to rcn-ee.net|69.163.149.169|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 229 [text/plain] Saving to: `LATEST-omap' 100%[======================================>] 229 --.-K/s in 0s 2012-03-XX XX:XX:XX (916 KB/s) - `LATEST-omap' saved [229/229]
インストールで使用するシェルスクリプトを取得します。
$ wget $(cat ./LATEST-${BOARD} | grep STABLE | awk '{print $3}') --2012-03-XX XX:XX:XX-- http://rcn-ee.net/deb/oneiric-armel/v3.2.10-x6/install-me.sh Resolving rcn-ee.net... 69.163.149.169 Connecting to rcn-ee.net|69.163.149.169|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3095 (3.0K) [application/x-sh] Saving to: `install-me.sh' 100%[======================================>] 3,095 --.-K/s in 0.001s 2012-03-XX XX:XX:XX (4.21 MB/s) - `install-me.sh' saved [3095/3095]
インストールします。
$ /bin/bash install-me.sh
以下のインストール時のログを添付します。
Mounting Fat partition Downloading Recommended Kernel --2012-03-XX XX:XX:XX-- http://rcn-ee.net/deb/oneiric-armel/v3.2.10-x6/linux-image-3.2.10-x6_1.0oneiric_armel.deb Resolving rcn-ee.net... 69.163.149.169 Connecting to rcn-ee.net|69.163.149.169|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 16501650 (16M) [application/x-debian-package] Saving to: `/tmp/deb/linux-image-3.2.10-x6_1.0oneiric_armel.deb' 100%[======================================>] 16,501,650 257K/s in 76s 2012-03-XX XX:XX:XX (213 KB/s) - `/tmp/deb/linux-image-3.2.10-x6_1.0oneiric_armel.deb' saved [16501650/16501650] Installing linux-image Selecting previously deselected package linux-image-3.2.10-x6. (Reading database ... 14190 files and directories currently installed.) Unpacking linux-image-3.2.10-x6 (from .../linux-image-3.2.10-x6_1.0oneiric_armel.deb) ... Setting up linux-image-3.2.10-x6 (1.0oneiric) ... update-initramfs: Generating /boot/initrd.img-3.2.10-x6 Backing up Previous uImage and uInitrd `/tmp/boot/uImage' -> `/tmp/boot/uImage_old' `/tmp/boot/uInitrd' -> `/tmp/boot/uInitrd_old' Creating uImage from vmlinuz Image Name: 3.2.10-x6 Created: Tue Mar XX XX:XX:XX 2012 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3016696 Bytes = 2945.99 kB = 2.88 MB Load Address: 80008000 Entry Point: 80008000 Creating uInitrd Image Name: initramfs Created: Tue Mar XX XX:XX:XX 2012 Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size: 3097714 Bytes = 3025.11 kB = 2.95 MB Load Address: 00000000 Entry Point: 00000000 -rwxr-xr-x 1 root root 2.9M 2012-03-XX XX:XX /tmp/boot/uImage -rwxr-xr-x 1 root root 2.9M 2012-03-XX XX:XX /tmp/boot/uImage_old -rwxr-xr-x 1 root root 3.0M 2012-03-XX XX:XX /tmp/boot/uInitrd -rwxr-xr-x 1 root root 3.0M 2012-03-XX XX:XX /tmp/boot/uInitrd_old Please Reboot $
次は、日本語や時間の設定・x11デスクトップ環境構築までを記載する予定・・・。。
おまけ
毎度、USERボタンを押してだとしんどかったりするので
NANDにはいっているX-loderとU-bootの書き換えを行います。
X-loader/u-bootのアップグレード
※注意
ここで利用するSDカードは、上記で用いているKernel Imsgeの入っている
SDカードを利用しないでください。
上書きされて、起動できなくなり涙目になります。 by涙目になった人よりw
母艦(PC)にてファイルを取得しSDカードにファイルを入れる。
ファイルをgitから取得する
$ cd $ git clone git://github.com/RobertCNelson/flash-omap.git $ cd ./flash-omap
SDカードにインストールする
$ sudo ./mk_mmc.sh --mmc /dev/sdb --uboot beagle_cx
ここで、記載している/dev/sdbがSDカードの場所になります。
人によっては、/dev/sdcだったり/dev/mmcblk0しますので
実行する前に一度かくにんしてみてください。
NANDのデータを消去する。
u-bootの実行でとめます。
・・・ Hit any key to stop autoboot: 0 <- ここでEnterなどを押してautobootを止めます。 OMAP3 beagleboard.org # <- このプロンプトがu-bootのプロンプトになります。
NANDの消去の実行
nand erase 260000 20000
完了したら、ここで電源を落とします。
x-load/u-bootのNANDの書き込み
SDカードをいれてておきます。
USERボタンを押しながら電源投入。
そのままUSERボタンをホールド状態にする。
u-bootのカウントダウンが0になれば、USERボタンを離す。
コマンドプロンプトの点滅が出れば、update完了です。
起動時のログが変わっていることを確認してみましょう。
わたしの場合は、この様にへんこうされました。
(旧)
U-Boot 2009.11-rc1-00601-g3aa4b51 (Jan 05 2010 - 20:56:38)
(新)
U-Boot SPL 2011.12-00005-g0a44c98 (Feb 13 2012 - 18:49:45)