Beagleboard-xM user.scrの作り方(手順)
今回もbeagleboard-xM関係です。
前回に引き続き付属SDに収められたファイルの作成にチャレンジしています。
前回のu-bootまでの作成に続いて今回はuser.scrです。
実はここまでは割と簡単だったのですが、user.scr(付属SD収録)については作り方の情報が全くと言っていいほど見つからず大変苦労しました。
(付属SDと同じ)user.scrを作るところまでの手順をご紹介します。
1.mkimageをインストール
# sudo apt-get install uboot-mkimage
※後のedituserscrスクリプトが内部で使うコマンドです
2.user.cmdをダウンロード
# git clone git://git.openembedded.net/openembedded userscript
userscript/openembedded/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmdを使います
3.user.cmdのpatchを保存
http://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg09427.htmlを開いてpatchをコピーして保存(仮にpatch.fileとしておきます)します。
保存したpatchを一部修正します
---
recipes/angstrom/angstrom-uboot-scripts.bb | 2 +-
.../beagleboard-validation-user.cmd | 6 ++++++
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/recipes/angstrom/angstrom-uboot-scripts.bb
b/recipes/angstrom/angstrom-uboot-scripts.bb
index 020a7af..497bd79 100644
--- a/recipes/angstrom/angstrom-uboot-scripts.bb
+++ b/recipes/angstrom/angstrom-uboot-scripts.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Various uboot scripts"
-PR = "r10"
+PR = "r11"
DEPENDS = "u-boot-mkimage-native"
diff --git
a/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd
b/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd
index 971b96e..7a7939a 100644
--- a/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd
+++ b/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd
@@ -1,4 +1,8 @@
+led 1 off
mmc init
+setenv dvimode 1024x768mr...@60
+setenv vram 16M omapfb.vram=0:8M,1:4M,2:4M
+setenv console tty0 console=ttyS2,115200n8
if test "${beaglerev}" = "AxBx"; then
setenv rdaddr 0x81000000
setenv optargs mem=...@0x80000000 musb_hdrc.fifomode=5
@@ -12,6 +16,8 @@ setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=...@0x80000000 mem=3...@0x88000000
fi
run loadramdisk
+led 0 off
run loaduimage
+led 1 on
run ramboot
---
※リンクのpatchは “initrd=${rdaddr},128M”の前に改行が入っていますが、削除してください(上記patchをコピーしておくとよいと思います。
4.patch当て
# cd userscript
# patch -p1 < patch.file
5.edituserscr のダウンロード
# git clone git://gitorious.org/beagleboard-validation/scripts.git script
--- 9/27追記 ---
下記忘れていたので追記します。
edituserscrではSDカードないのuser.scrを編集しようとしますが私の環境ではディスク上に作るだけなので次のように書き換えました。
#!/bin/sh
TMPFILE=/tmp/$(basename $0).$$.cmd
#if [ ! -e /media/mmcblk0p1/user.scr ]; then ←コメントアウト
#mount /dev/mmcblk0p1 /media/mmcblk0p1 ←コメントアウト
#fi ←コメントアウト
do_mkimage () {
echo Building script \""$1\"" - $2
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "$1" -d $TMPFILE $2
}
dd if=/media/mmcblk0p1/user.scr of=$TMPFILE bs=1 skip=72
if [ x$EDITOR = x ]; then
EDITOR=nano
fi
$EDITOR $TMPFILE
cat $TMPFILE
echo "Is this correct? [N/y] "
read p
if [ x$p = x'y' ]; then
do_mkimage "Hand edited" /tmp/myuser.scr
#cp /media/mmcblk0p1/user.scr /media/mmcblk0p1/last.scr ←コメントアウト
echo "Replacing previous user.scr with newly created version"
#cp /tmp/myuser.scr /media/mmcblk0p1/user.scr ←コメントアウト
cp /tmp/myuser.scr user.scr ←追記
else
echo "Leaving existing user.scr in place"
fi
--- ここまで ---
6.user.scrの作成
# cd ~
# cp userscript/openembedded/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd script/user.cmd
ここでuser.cmdを開いて内容を全選択してコピーしておきます(Cntri+A、Cntrl+C)
# cd script
# ./edituserscr script script.bin ←引数はよくわかっていないので適当です。が、問題なさそう
ここでエディターのnanoが起動するので、先ほどコピーしたスクリプトを貼りすけてCtrl+Oで保存してCtrl+Xで終了します。
これで、user.scrができていると思います
7.動作
もとのuser.scrはバックアップしてuser.scrを上書きして起動させます。
これで問題なくangstromが起動てきていると思います。
ここまで
参考までにuser.cmdを載せておきます。
---パッチ前---
mmc init
if test "${beaglerev}" = "AxBx"; then
setenv rdaddr 0x81000000
setenv optargs mem=80M@0x80000000 musb_hdrc.fifomode=5
elif test "${beaglerev}" = "Cx"; then
setenv rdaddr 0x88000000
setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=80M@0x80000000 mem=128M@0x88000000 musb_hdrc.fifomode=5
else
setenv rdaddr 0x88000000
setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=80M@0x80000000 mem=384M@0x88000000
fi
run loadramdisk
run loaduimage
run ramboot
---パッチ後---
led 1 off
mmc init
setenv dvimode 1024x768mr...@60
setenv vram 16M omapfb.vram=0:8M,1:4M,2:4M
setenv console tty0 console=ttyS2,115200n8
if test "${beaglerev}" = "AxBx"; then
setenv rdaddr 0x81000000
setenv optargs mem=80M@0x80000000 musb_hdrc.fifomode=5
elif test "${beaglerev}" = "Cx"; then
setenv rdaddr 0x88000000
setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=80M@0x80000000 mem=128M@0x88000000 musb_hdrc.fifomode=5
else
setenv rdaddr 0x88000000
setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=80M@0x80000000 mem=384M@0x88000000
fi
run loadramdisk
led 0 off
run loaduimage
led 1 on
run ramboot
前回に引き続き付属SDに収められたファイルの作成にチャレンジしています。
前回のu-bootまでの作成に続いて今回はuser.scrです。
実はここまでは割と簡単だったのですが、user.scr(付属SD収録)については作り方の情報が全くと言っていいほど見つからず大変苦労しました。
(付属SDと同じ)user.scrを作るところまでの手順をご紹介します。
1.mkimageをインストール
# sudo apt-get install uboot-mkimage
※後のedituserscrスクリプトが内部で使うコマンドです
2.user.cmdをダウンロード
# git clone git://git.openembedded.net/openembedded userscript
userscript/openembedded/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmdを使います
3.user.cmdのpatchを保存
http://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg09427.htmlを開いてpatchをコピーして保存(仮にpatch.fileとしておきます)します。
保存したpatchを一部修正します
---
recipes/angstrom/angstrom-uboot-scripts.bb | 2 +-
.../beagleboard-validation-user.cmd | 6 ++++++
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/recipes/angstrom/angstrom-uboot-scripts.bb
b/recipes/angstrom/angstrom-uboot-scripts.bb
index 020a7af..497bd79 100644
--- a/recipes/angstrom/angstrom-uboot-scripts.bb
+++ b/recipes/angstrom/angstrom-uboot-scripts.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Various uboot scripts"
-PR = "r10"
+PR = "r11"
DEPENDS = "u-boot-mkimage-native"
diff --git
a/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd
b/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd
index 971b96e..7a7939a 100644
--- a/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd
+++ b/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd
@@ -1,4 +1,8 @@
+led 1 off
mmc init
+setenv dvimode 1024x768mr...@60
+setenv vram 16M omapfb.vram=0:8M,1:4M,2:4M
+setenv console tty0 console=ttyS2,115200n8
if test "${beaglerev}" = "AxBx"; then
setenv rdaddr 0x81000000
setenv optargs mem=...@0x80000000 musb_hdrc.fifomode=5
@@ -12,6 +16,8 @@ setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=...@0x80000000 mem=3...@0x88000000
fi
run loadramdisk
+led 0 off
run loaduimage
+led 1 on
run ramboot
---
※リンクのpatchは “initrd=${rdaddr},128M”の前に改行が入っていますが、削除してください(上記patchをコピーしておくとよいと思います。
4.patch当て
# cd userscript
# patch -p1 < patch.file
5.edituserscr のダウンロード
# git clone git://gitorious.org/beagleboard-validation/scripts.git script
--- 9/27追記 ---
下記忘れていたので追記します。
edituserscrではSDカードないのuser.scrを編集しようとしますが私の環境ではディスク上に作るだけなので次のように書き換えました。
#!/bin/sh
TMPFILE=/tmp/$(basename $0).$$.cmd
#if [ ! -e /media/mmcblk0p1/user.scr ]; then ←コメントアウト
#mount /dev/mmcblk0p1 /media/mmcblk0p1 ←コメントアウト
#fi ←コメントアウト
do_mkimage () {
echo Building script \""$1\"" - $2
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "$1" -d $TMPFILE $2
}
dd if=/media/mmcblk0p1/user.scr of=$TMPFILE bs=1 skip=72
if [ x$EDITOR = x ]; then
EDITOR=nano
fi
$EDITOR $TMPFILE
cat $TMPFILE
echo "Is this correct? [N/y] "
read p
if [ x$p = x'y' ]; then
do_mkimage "Hand edited" /tmp/myuser.scr
#cp /media/mmcblk0p1/user.scr /media/mmcblk0p1/last.scr ←コメントアウト
echo "Replacing previous user.scr with newly created version"
#cp /tmp/myuser.scr /media/mmcblk0p1/user.scr ←コメントアウト
cp /tmp/myuser.scr user.scr ←追記
else
echo "Leaving existing user.scr in place"
fi
--- ここまで ---
6.user.scrの作成
# cd ~
# cp userscript/openembedded/recipes/angstrom/angstrom-uboot-scripts/beagleboard-validation-user.cmd script/user.cmd
ここでuser.cmdを開いて内容を全選択してコピーしておきます(Cntri+A、Cntrl+C)
# cd script
# ./edituserscr script script.bin ←引数はよくわかっていないので適当です。が、問題なさそう
ここでエディターのnanoが起動するので、先ほどコピーしたスクリプトを貼りすけてCtrl+Oで保存してCtrl+Xで終了します。
これで、user.scrができていると思います
7.動作
もとのuser.scrはバックアップしてuser.scrを上書きして起動させます。
これで問題なくangstromが起動てきていると思います。
ここまで
参考までにuser.cmdを載せておきます。
---パッチ前---
mmc init
if test "${beaglerev}" = "AxBx"; then
setenv rdaddr 0x81000000
setenv optargs mem=80M@0x80000000 musb_hdrc.fifomode=5
elif test "${beaglerev}" = "Cx"; then
setenv rdaddr 0x88000000
setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=80M@0x80000000 mem=128M@0x88000000 musb_hdrc.fifomode=5
else
setenv rdaddr 0x88000000
setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=80M@0x80000000 mem=384M@0x88000000
fi
run loadramdisk
run loaduimage
run ramboot
---パッチ後---
led 1 off
mmc init
setenv dvimode 1024x768mr...@60
setenv vram 16M omapfb.vram=0:8M,1:4M,2:4M
setenv console tty0 console=ttyS2,115200n8
if test "${beaglerev}" = "AxBx"; then
setenv rdaddr 0x81000000
setenv optargs mem=80M@0x80000000 musb_hdrc.fifomode=5
elif test "${beaglerev}" = "Cx"; then
setenv rdaddr 0x88000000
setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=80M@0x80000000 mem=128M@0x88000000 musb_hdrc.fifomode=5
else
setenv rdaddr 0x88000000
setenv ramroot /dev/ram0 rw ramdisk_size=131072 initrd=${rdaddr},128M
setenv optargs mem=80M@0x80000000 mem=384M@0x88000000
fi
run loadramdisk
led 0 off
run loaduimage
led 1 on
run ramboot