2012/10/09

シリアルから扱えるよう、Pandaboardのgettyを有効にしてみた

前回まででPandaBoardが起動するようにはなったのですが、シリアルの通信は途絶えてしまいシェルが起動するという事にはなりませんでした。

HDMIは使わないので、サーバーとして扱えるようにネットワークとシリアルを有効にするところまでです。

環境

ベースにしているrootfsは前回と同様にL24.9-PandaBoard_validation_environment.tar.gzです。

MLOとu-boot.imgをgitから準備をして起動するようにはなりました。

現状

で、起動はするものの、runlevelを聞いてきたところで数字は打つものの処理が止まってしまいます。

runleveの入力後に処理が停止する様子


...
Enter runlevel: 2
INIT: Entering runlevel: 2
INIT: no more processes left in this runlevel
...

まぁgettyを起動させれば良いのでしょうと、いうわけでSDカードをUbuntu 12.04 LTSに差し、認識された/dev/sdd2/mnt/mmc2にマウントして、/mnt/mmc2/etc/inittabファイルを編集したりしました。

ここら辺の強調したデバイス名やらは環境に依存して変化するので読み替えて下さい。

/etc/inittabを変更して、ちょっとだけ改善

ちょっとだけ進んだところ


...
Enter runlevel: 2
INIT: Entering runlevel: 2

.-------.                                           
|       |                  .-.                      
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution (none) ttyO2

Angstrom 2010.4-test-20100406 (none) ttyO2

(none) login: root
Login incorrect

よくよくみると、いろいろマニュアルに問題があるようなので、そこら辺をまとめておきます。

inittabファイルの書式について

Minimal-FSの/etc/inittabは次のようになっていました。

null::sysinit:/bin/mount -t proc proc /proc
null::sysinit:/bin/mount -t sysfs sysfs /sys
null::sysinit:/bin/mount -t usbfs usbfs /proc/bus/usb
null::sysinit:/bin/mount -o remount,rw /
null::sysinit:/etc/init.d/udev

ttyO2::respawn:/bin/sh

ここで最後の行でtty02tty2のように数字を除いて指定する必要がありました。

ここを修正すると起動後にrunlevelを入力させた後にシェルが起動します。

まぁMinimal-FSはapt-getもないので、本当にどうしようもないのですが、とりあえずこれでrootでログインする事が可能になります。

別の文書ではboot.scrでカーネルパラメータを指定するような指定もありましたが、デフォルトのkernelパラメータは次のようになっています。

kernelパラメータ

Kernel command line: console=ttyO2,115200n8 vram=16M root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait

もしこのパラメータを変更する必要があれば、mkimageコマンドを使ってboot.scrファイルを生成します。 今回は試したものの必要ないので、boot.scrファイルは使っていません。

FAQによれば、コマンドラインは次のようになっています。

http://omappedia.org/wiki/PandaBoard_FAQより抜粋


Step-1: create a boot.scr.txt like:
fatload mmc 0 0x80300000 uImage
echo Booting from mmc0 ...
setenv bootargs console=ttyO2,115200n8 noinitrd init=/sbin/init root=/dev/mmcblk0p2 rootwait rw loglevel=8
bootm 80300000

Step-2: run:
mkimage -A arm -T script -O linux -C none -a 0 -e 0 -n "boot.scr" -d boot.scr.txt boot.scr

mkimageコマンドは手元のUbuntu 12.04 LTS上で実行していますが、 ここら辺はuboot-mkimage-0.4当りをキーワードに検索すれば関連する情報が探せるかと思います。

さいごに

rootでログインができたので、必要そうな情報をコピーしておきます。

ネットワークカード
# ip addr
1: lo: <LOOPBACK> mtu 16436 qdisc noop 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: usb0: <BROADCAST,MULTICAST> mtu 1492 qdisc noop qlen 1000
    link/ether 22:17:88:b7:fc:59 brd ff:ff:ff:ff:ff:ff
/proc/cpuinfo

この情報をみるとOMAP4460としては認識されていないのかなと思えます。 あとでちゃんとしたkernelを使って検証することにしましょう。

# cat /proc/cpuinfo 
Processor       : ARMv7 Processor rev 10 (v7l)
processor       : 0
BogoMIPS        : 1396.94

processor       : 1
BogoMIPS        : 1363.33

Features        : swp half thumb fastmult vfp edsp thumbee neon vfpv3 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 10

Hardware        : OMAP4430 Panda Board
Revision        : 0020
Serial          : 0000000000000000

さいごに

ここら辺でMinimal-FSは止めて、Ubuntu 12.04 (precise) を動作させてみようと思います。

0 件のコメント: