Carrying on from my last post, with advice from Alexander Graf on #opensuse-arm, I was able to put together a reasonable looking pre-built openSUSE 12.2 image for the Gumstix Overo. This is currently in home:tserong:branches:openSUSE:12.2:ARM on OBS, and will presumably remain there until next time I’m able to hack on this.
The two things that needed doing were:
- A u-boot-omap3overo package, which is u-boot-omap4panda with an extra spec file and a small patch to add some load addresses and make the default environment boot off ext2 instead of FAT:
Index: u-boot-2012.04.01/include/configs/omap3_overo.h
===================================================================
--- u-boot-2012.04.01.orig/include/configs/omap3_overo.h
+++ u-boot-2012.04.01/include/configs/omap3_overo.h
@@ -148,6 +148,8 @@
#define CONFIG_EXTRA_ENV_SETTINGS \
"loadaddr=0x82000000\0" \
+ "kerneladdr=0x80200000\0" \
+ "ramdiskaddr=0x81000000\0" \
"console=ttyO2,115200n8\0" \
"mpurate=500\0" \
"optargs=\0" \
@@ -175,10 +177,10 @@
"omapdss.def_disp=${defaultdisplay} " \
"root=${nandroot} " \
"rootfstype=${nandrootfstype}\0" \
- "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+ "loadbootscript=ext2load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
"bootscript=echo Running bootscript from mmc ...; " \
"source ${loadaddr}\0" \
- "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
+ "loaduimage=ext2load mmc ${mmcdev} ${loadaddr} uImage\0" \
"mmcboot=echo Booting from mmc ...; " \
"run mmcargs; " \
"bootm ${loadaddr}\0" \
- A JeOS-overo image, which is just another KIWI file for the base ARM JeOS image with a few tweaks to make it use my u-boot-omap3 overo package and the right kernel. To give an idea, the diff between JeOS-panda.kiwi and JeOS-overo.kiwi is:
--- JeOS-panda.kiwi 2012-09-24 22:47:28.448247822 +1000
+++ JeOS-overo.kiwi 2012-09-24 22:49:16.844588795 +1000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<image schemaversion="5.3" name="openSUSE-12.2-ARM-panda">
+<image schemaversion="5.3" name="openSUSE-12.2-ARM-overo">
<!--
*****************************************************************************
*****************************************************************************
@@ -13,11 +13,11 @@
<author>Marcus Schäfer</author>
<contact>ms@novell.com</contact>
<specification>
- openSUSE 12.2 image for ARM (panda) boards
+ openSUSE 12.2 image for ARM (overo) boards
</specification>
</description>
<preferences>
- <type image="oem" filesystem="ext3" boot="oemboot/suse-12.2" bootloader="uboot" bootkernel="omap4panda" kernelcmdline="console=ttyO2 vram=16M">
+ <type image="oem" filesystem="ext3" boot="oemboot/suse-12.2" bootloader="uboot" kernelcmdline="console=ttyO2 vram=12M">
<oemconfig>
<oem-swapsize>500</oem-swapsize>
</oemconfig>
@@ -35,6 +35,9 @@
<user pwd="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root"/>
</users>
<repository type="rpm-md">
+ <source path="obs://home:tserong:branches:openSUSE:12.2:ARM/standard"/>
+ </repository>
+ <repository type="rpm-md">
<source path="obs://openSUSE:12.2:ARM/standard"/>
</repository>
<!-- dont remove qemu binfmt helpers from initrd -->
@@ -44,7 +47,7 @@
</strip>
<packages type="bootstrap">
<package name="kernel-omap2plus" bootinclude="true"/>
- <package name="u-boot-omap4panda"/>
+ <package name="u-boot-omap3overo"/>
<package name="aaa_base"/>
<package name="aaa_base-extras"/>
<package name="branding-openSUSE"/>
I couldn’t specify bootkernel="omap3overo"
because that profile doesn’t exist in kiwi. Leaving this out, combined with the reference to my repository and <package name="kernel-omap2plus" bootinclude="true"/>
miraculously gave me the right kernel.
To actually get it running, first the image went onto a MicroSD card:
# xzcat openSUSE-12.2-ARM-overo.armv7l-1.12.1-Build1.17.3.raw.xz | dd bs=4M of=/dev/mmcblk0
# sync
Then the card went into the Overo, power was applied and it immediately failed to boot, because X-Loader couldn’t read the boot sector on the MicroSD.
Texas Instruments X-Loader 1.4.4ss (Oct 20 2010 - 10:10:28)
OMAP3530-GP ES3.1
Board revision: 0
Reading boot sector
Error: reading boot sector
Loading u-boot.bin from nand
U-Boot 2010.09 (Oct 20 2010 - 10:11:49)
OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 720 mHz
Gumstix Overo board + LPDDR/NAND
I2C: ready
DRAM: 256 MiB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Board revision: 0
Tranceiver detected on mmc2
timed out in wait_for_bb: I2C_STAT=1000
timed out in wait_for_bb: I2C_STAT=1000
timed out in wait_for_pin: I2C_STAT=1000
I2C read: I/O error
Unrecognized expansion board
Die ID #529e0004000000000403a1f303025013
Net: smc911x-0
Hit any key to stop autoboot: 0
Overo #
But, the old u-boot in my Overo’s NAND is sufficiently advanced that it can read from an ext2 partition, so I was able to do this:
Overo # mmc init
mmc1 is available
Overo # setenv kerneladdr 0x80200000
Overo # setenv ramdiskaddr 0x81000000
Overo # ext2load mmc1 0:1 ${loadaddr} boot.scr
Loading file "boot.scr" from mmc1 device 0:1 (xxa1)
541 bytes read
Overo # run bootscript
Running bootscript from mmc ...
## Executing script at 82000000
kerneladdr=0x80200000
ramdiskaddr=0x81000000
Loading file "boot/linux.vmx" from mmc device 0:1 (xxa1)
4063704 bytes read
Loading file "boot/initrd.uboot" from mmc device 0:1 (xxa1)
38289754 bytes read
## Booting kernel from Legacy Image at 80200000 ...
Image Name: Linux-3.4.6-2.10-omap2plus
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4063640 Bytes = 3.9 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 81000000 ...
Image Name: Initrd
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 38289690 Bytes = 36.5 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.4.6-2.10-omap2plus (abuild@build14) (gcc version 4.7.1 20120723 [gcc-4_7-branch revision 189773] (SUSE Linux) ) #2 SMP Sat Sep 8 06:38:16 UTC 2012
[ 0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[ 0.000000] Machine: Gumstix Overo
...
And away we go! Interestingly while KIWI is doings its bootstrap thing, I got a bunch of I/O errors:
...
[ 9.048309] mmc0: new high speed SDHC card at address 0001
[ 9.061431] mmcblk0: mmc0:0001 00000 7.41 GiB
[ 9.075683] mmcblk0: p1 p2
[ 9.162902] mmc1: new SDIO card at address 0001
setterm: cannot (un)set powersave mode: Invalid argument
Loading KIWI OEM Boot-System...
-------------------------------
Creating device nodes with udev
[ 11.118896] udevd[168]: starting version 182
udevd[172]: ctx=0x4ae4d8 path=/lib/modules/3.4.6-2.10-omap2plus/kernel/drivers/net/wireless/libertas/libertas.ko error=No such file or directory
^M
[ 11.648712] twl4030_usb twl4030_usb: Initialized TWL4030 USB module
[ 4.950012] Including oem partition info file
[ 5.145965] Searching for boot device...
[ 16.582397] end_request: I/O error, dev mtdblock0, sector 0
[ 16.588317] Buffer I/O error on device mtdblock0, logical block 0
[ 16.595031] uncorrectable error :
[ 16.598480] end_request: I/O error, dev mtdblock0, sector 8
[ 16.604522] Buffer I/O error on device mtdblock0, logical block 1
[ 16.611145] uncorrectable error :
[ 16.614562] end_request: I/O error, dev mtdblock0, sector 16
[ 16.620727] Buffer I/O error on device mtdblock0, logical block 2
[ 16.627349] end_request: I/O error, dev mtdblock0, sector 24
[ 16.633300] Buffer I/O error on device mtdblock0, logical block 3
[ 16.640106] end_request: I/O error, dev mtdblock0, sector 0
[ 16.645996] Buffer I/O error on device mtdblock0, logical block 0
[ 17.727172] kjournald starting. Commit interval 5 seconds
[ 17.733154] EXT3-fs (mmcblk0p1): mounted filesystem with ordered data mode
modprobe: FATAL: Could not read '/lib/modules/3.4.6-2.10-omap2plus/kernel/fs/fat/vfat.ko': No such file or directory
(...modprobe error repeated several times...)
[ 20.200988] end_request: I/O error, dev mtdblock0, sector 0
[ 20.206939] Buffer I/O error on device mtdblock0, logical block 0
[ 20.213684] uncorrectable error :
[ 20.217102] end_request: I/O error, dev mtdblock0, sector 8
[ 20.223175] Buffer I/O error on device mtdblock0, logical block 1
[ 20.229827] uncorrectable error :
[ 20.233245] end_request: I/O error, dev mtdblock0, sector 16
[ 20.239410] Buffer I/O error on device mtdblock0, logical block 2
[ 20.246032] end_request: I/O error, dev mtdblock0, sector 24
[ 20.251983] Buffer I/O error on device mtdblock0, logical block 3
[ 20.258880] end_request: I/O error, dev mtdblock0, sector 0
[ 20.264770] Buffer I/O error on device mtdblock0, logical block 0
[ 9.848419] Found boot device: /dev/mmcblk0
[ 12.598419] Repartition the disk according to real geometry [ parted ]
[ 16.442352] Repartition the disk according to real geometry [ parted ]
[ 30.380310] mmcblk0: p1 p2 p3
[ 20.821899] Activating swap space on /dev/mmcblk0p3
[ 21.109192] Filesystem of OEM system is: ext3 -> /dev/mmcblk0p2
[ 21.243927] Resize EXT3 filesystem to full partition space...
/dev/mmcblk0p2: clean, 17708/49056 files, 119867/195839 blocks
Resizing the filesystem on /dev/mmcblk0p2 to 1776688 (4k) blocks.
Begin pass 1 (max = 49)
Extending the inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mmcblk0p2 is now 1776688 blocks long.
[ 99.565460] kjournald starting. Commit interval 5 seconds
[ 99.578399] EXT3-fs (mmcblk0p2): using internal journal
[ 99.584350] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
[ 100.448394] kjournald starting. Commit interval 5 seconds
[ 100.458648] EXT3-fs (mmcblk0p1): using internal journal
[ 100.464263] EXT3-fs (mmcblk0p1): mounted filesystem with ordered data mode
[ 108.013458] kjournald starting. Commit interval 5 seconds
[ 108.025207] EXT3-fs (mmcblk0p1): using internal journal
[ 108.030761] EXT3-fs (mmcblk0p1): mounted filesystem with ordered data mode
/dev/mmcblk0p1: LABEL="BOOT" UUID="6505f4d4-6000-4609-899f-9b6634916922" SEC_TYPE="ext2" TYPE="ext3"
[ 98.791229] Creating boot loader configuration
[ 101.126831] Activating Image: [/dev/mmcblk0p2]
Anyway, it did boot successfully after that and I was able to log in, poke around a bit, and reboot. During reboot I got a couple of kernel oopses, same as (or presumably the same as) with my previous manually constructed image:
[ 353.409118] Restarting system.
[ 353.412963] Internal error: Oops: 80000007 [#1] SMP ARM
[ 353.418640] Modules linked in: af_packet autofs4 dm_mod omapdrm(C) drm_kms_helper snd_soc_twl4030 snd_soc_core drm regmap_spi libertas_sdio snd_pcm fb_sys_fops sysimgblt sysfillrect libertas syscopyarea snd_timer snd cfg80211 soundcore snd_page_alloc rfkill twl4030_wdt lib80211 twl4030_usb
[ 353.446960] CPU: 0 Tainted: G C (3.4.6-2.10-omap2plus #2)
[ 353.454162] PC is at 0x0
[ 353.456970] LR is at smp_send_stop+0x50/0xe4
[ 353.461639] pc : [<00000000>] lr : [<c0019378>] psr: 600f0013
[ 353.461669] sp : cc82be60 ip : 00000000 fp : 00012fc0
[ 353.474060] r10: c07dd930 r9 : cc82a000 r8 : 4321fedc
[ 353.479766] r7 : 45584543 r6 : cc82be64 r5 : c07a8ee0 r4 : 000f4241
[ 353.486846] r3 : 00000000 r2 : 00000000 r1 : 00000006 r0 : cc82be64
[ 353.493927] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 353.501647] Control: 10c5387d Table: 838b4019 DAC: 00000015
[ 353.507904] Process systemd-shutdow (pid: 1, stack limit = 0xcc82a2f8)
[ 353.514984] Stack: (0xcc82be60 to 0xcc82c000)
[ 353.519744] be60: 00000000 00000000 00000000 00000000 cc82a000 c00152f4 00000000 00000000
[ 353.528656] be80: 01234567 c0051dd4 cc82bea8 c86a9dd8 0000002b 00000005 002dc6c0 00000000
[ 353.537536] bea0: 0112a880 00000000 c0a868c8 c0071e48 c07a8f58 00000000 c2c56078 cc81ed4c
[ 353.546417] bec0: c0a868c8 cc8bbaf8 c000e788 fffffffe 00000000 c050db8c cc8ca01c cc81eac0
[ 353.555328] bee0: cc82a000 c07a9ce8 00000000 c0788880 c8539580 cc82a000 cc82bfac c050ad08
[ 353.564208] bf00: cc82bf24 c0069e08 00000001 c07a9ce8 c07a9ce8 00000000 c0013e60 c0788880
[ 353.573089] bf20: 42cb86f0 00000052 c0788880 c0788880 00000000 00000000 c0786398 c0788880
[ 353.582000] bf40: c53df680 c5377284 c080c5bc c0013fc8 cc82a000 00000000 00012fc0 c538e400
[ 353.590881] bf60: c538e400 c538e800 c07e44d8 c011c050 00000001 00000000 00000000 00000000
[ 353.599761] bf80: 00000024 c0013fc8 cc82a000 00000000 00000000 00000000 00000058 c0013fc8
[ 353.608673] bfa0: 00000000 c0013e00 00000000 00000000 fee1dead 28121969 01234567 45584543
[ 353.617553] bfc0: 00000000 00000000 00000000 00000058 00000000 00000000 00000000 00012fc0
[ 353.626434] bfe0: b6eda2b0 be862944 0000b7dc b6eda2d0 600f0010 fee1dead 00fbff04 107ffe00
[ 353.635437] [<c0019378>] (smp_send_stop+0x50/0xe4) from [<c00152f4>] (machine_restart+0xc/0x4c)
[ 353.644958] [<c00152f4>] (machine_restart+0xc/0x4c) from [<c0051dd4>] (sys_reboot+0x174/0x1f4)
[ 353.654357] [<c0051dd4>] (sys_reboot+0x174/0x1f4) from [<c0013e00>] (ret_fast_syscall+0x0/0x30)
[ 353.663818] Code: bad PC value
[ 353.667480] ---[ end trace a8f4050048b60a4e ]---
[ 353.690063] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 353.690093]
[ 353.700286] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 353.709259] pgd = c0004000
[ 353.712341] [00000000] *pgd=00000000
[ 353.716308] Internal error: Oops: 80000007 [#2] SMP ARM
[ 353.721984] Modules linked in: af_packet autofs4 dm_mod omapdrm(C) drm_kms_helper snd_soc_twl4030 snd_soc_core drm regmap_spi libertas_sdio snd_pcm fb_sys_fops sysimgblt sysfillrect libertas syscopyarea snd_timer snd cfg80211 soundcore snd_page_alloc rfkill twl4030_wdt lib80211 twl4030_usb
[ 353.750274] CPU: 0 Tainted: G D C (3.4.6-2.10-omap2plus #2)
[ 353.757476] PC is at 0x0
[ 353.760253] LR is at smp_send_stop+0x50/0xe4
[ 353.764923] pc : [<00000000>] lr : [<c0019378>] psr: 600f0113
[ 353.764953] sp : cc82bbd0 ip : 00000000 fp : cc82a000
[ 353.777374] r10: fffffffc r9 : cc81eac0 r8 : cc82bc83
[ 353.783050] r7 : c078c040 r6 : cc82bbd4 r5 : c07a8ee0 r4 : 000f4241
[ 353.790130] r3 : 00000000 r2 : 00000000 r1 : 00000006 r0 : cc82bbd4
[ 353.797210] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 353.804962] Control: 10c5387d Table: 838b4019 DAC: 00000015
[ 353.811187] Process systemd-shutdow (pid: 1, stack limit = 0xcc82a2f8)
[ 353.818267] Stack: (0xcc82bbd0 to 0xcc82c000)
[ 353.823028] bbc0: c078c040 00000000 c0819230 c07dde04
[ 353.831939] bbe0: cc81eac0 c05025b8 fffffffc cc82bc14 cc81eac0 c07dde04 c07dde04 cc81eac0
[ 353.840820] bc00: c078c040 cc82bc83 fffffffc c0042358 c0651090 0000000b 00000000 cc82dc00
[ 353.849700] bc20: c0817a58 cc82bc38 cc82a000 00000001 fffffff8 cc81ed18 cc82bc38 cc82bc38
[ 353.858612] bc40: cc82bc83 cc82be18 c0817a58 cc82a000 00000001 cc82bc83 fffffff8 fffffffc
[ 353.867492] bc60: cc82a000 c0017e3c cc82a2f8 0000000b 5d383536 00000000 00000008 bf000000
[ 353.876373] bc80: 627c3694 50206461 61762043 0065756c 00000000 c3a11000 cc82be18 00000000
[ 353.885284] bca0: c8539580 80000007 cc82be18 00000000 00000000 00000028 cc82a000 00000000
[ 353.894165] bcc0: c8539580 80000007 cc82be18 00000000 00000000 00000028 cc82a000 c05023e4
[ 353.903045] bce0: cc81eac0 c050d8c4 00000000 00000000 00000000 cc892c08 c0313000 c85395b8
[ 353.911956] bd00: 00010000 00000000 c0820022 600f0093 00000022 c030bf84 cc892c00 00000004
[ 353.920837] bd20: 00000005 00000010 c07a891c c03138c0 cc82bd5c c00659a8 00050000 00000001
[ 353.929718] bd40: 00000000 c07f5acc c0819680 000064bc c07dbcec 00000007 c050d6fc c07ae574
[ 353.938629] bd60: 00000000 cc82be18 cc82a000 c07dd930 00012fc0 c0008408 000064de 000064de
[ 353.947509] bd80: c0819680 600f0093 ffffff96 00000000 000064de c003e93c 00000019 000064de
[ 353.956390] bda0: 00000052 0000000f cc82be14 cc82be14 00000028 c0819732 00000000 c0819747
[ 353.965301] bdc0: c07dbcec c003eeb0 00000000 c0819732 2d177fff 0000002c 48d331bb 00000052
[ 353.974182] bde0: 00000003 c0819680 00000000 3b9aca00 10624dd3 600f0013 00000010 0088de08
[ 353.983062] be00: 00000000 600f0013 ffffffff cc82be4c 4321fedc c050c1b8 cc82be64 00000006
[ 353.991973] be20: 00000000 00000000 000f4241 c07a8ee0 cc82be64 45584543 4321fedc cc82a000
[ 354.000854] be40: c07dd930 00012fc0 00000000 cc82be60 c0019378 00000000 600f0013 ffffffff
[ 354.009735] be60: 00000000 00000000 00000000 00000000 cc82a000 c00152f4 00000000 00000000
[ 354.018646] be80: 01234567 c0051dd4 cc82bea8 c86a9dd8 0000002b 00000005 002dc6c0 00000000
[ 354.027526] bea0: 0112a880 00000000 c0a868c8 c0071e48 c07a8f58 00000000 c2c56078 cc81ed4c
[ 354.036437] bec0: c0a868c8 cc8bbaf8 c000e788 fffffffe 00000000 c050db8c cc8ca01c cc81eac0
[ 354.045318] bee0: cc82a000 c07a9ce8 00000000 c0788880 c8539580 cc82a000 cc82bfac c050ad08
[ 354.054199] bf00: cc82bf24 c0069e08 00000001 c07a9ce8 c07a9ce8 00000000 c0013e60 c0788880
[ 354.063110] bf20: 42cb86f0 00000052 c0788880 c0788880 00000000 00000000 c0786398 c0788880
[ 354.071990] bf40: c53df680 c5377284 c080c5bc c0013fc8 cc82a000 00000000 00012fc0 c538e400
[ 354.080871] bf60: c538e400 c538e800 c07e44d8 c011c050 00000001 00000000 00000000 00000000
[ 354.089752] bf80: 00000024 c0013fc8 cc82a000 00000000 00000000 00000000 00000058 c0013fc8
[ 354.098663] bfa0: 00000000 c0013e00 00000000 00000000 fee1dead 28121969 01234567 45584543
[ 354.107543] bfc0: 00000000 00000000 00000000 00000058 00000000 00000000 00000000 00012fc0
[ 354.116424] bfe0: b6eda2b0 be862944 0000b7dc b6eda2d0 600f0010 fee1dead 00fbff04 107ffe00
[ 354.125396] [<c0019378>] (smp_send_stop+0x50/0xe4) from [<c05025b8>] (panic+0x98/0x1cc)
[ 354.134124] [<c05025b8>] (panic+0x98/0x1cc) from [<c0042358>] (do_exit+0x6f4/0x7f8)
[ 354.142486] [<c0042358>] (do_exit+0x6f4/0x7f8) from [<c0017e3c>] (die+0x294/0x320)
[ 354.150756] [<c0017e3c>] (die+0x294/0x320) from [<c05023e4>] (__do_kernel_fault.part.8+0x54/0x74)
[ 354.160430] [<c05023e4>] (__do_kernel_fault.part.8+0x54/0x74) from [<c050d8c4>] (do_page_fault+0x1c8/0x3ac)
[ 354.171020] [<c050d8c4>] (do_page_fault+0x1c8/0x3ac) from [<c0008408>] (do_PrefetchAbort+0x34/0x9c)
[ 354.180877] [<c0008408>] (do_PrefetchAbort+0x34/0x9c) from [<c050c1b8>] (__pabt_svc+0x38/0x80)
[ 354.190185] Exception stack(0xcc82be18 to 0xcc82be60)
[ 354.195678] be00: cc82be64 00000006
[ 354.204589] be20: 00000000 00000000 000f4241 c07a8ee0 cc82be64 45584543 4321fedc cc82a000
[ 354.213470] be40: c07dd930 00012fc0 00000000 cc82be60 c0019378 00000000 600f0013 ffffffff
[ 354.222381] [] (__pabt_svc+0x38/0x80) from [] (smp_send_stop+0x50/0xe4)
[ 354.231506] [] (smp_send_stop+0x50/0xe4) from [] (machine_restart+0xc/0x4c)
[ 354.241027] [] (machine_restart+0xc/0x4c) from [] (sys_reboot+0x174/0x1f4)
[ 354.250427] [] (sys_reboot+0x174/0x1f4) from [] (ret_fast_syscall+0x0/0x30)
[ 354.259857] Code: bad PC value
[ 354.263519] ---[ end trace a8f4050048b60a4f ]---
[ 354.268707] Fixing recursive fault but reboot is needed!
[ 354.383544] omap_i2c omap_i2c.3: timeout waiting for bus ready
So ignoring that for the moment, on the second boot (after KIWI had done its magic to finish setting up the MMC card), my new u-boot loaded. Note though that it’s still using the old environment variables at this point (which try to “fatload” in “loadbootscript”, which isn’t going to work), so that needed resetting:
U-Boot SPL 2012.04.01 (Sep 24 2012 - 12:48:02)
OMAP SD/MMC: 0
mkimage signature not found - ih_magic = ea000014
U-Boot 2012.04.01 (Sep 24 2012 - 12:48:02)
OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 720 mHz
Gumstix Overo board + LPDDR/NAND
I2C: ready
DRAM: 256 MiB
NAND: 256 MiB
MMC: OMAP SD/MMC: 0
In: serial
Out: serial
Err: serial
Board revision: 0
Tranceiver detected on mmc2
No EEPROM on expansion board
Die ID #529e0004000000000403a1f303025013
Net: smc911x-0
Hit any key to stop autoboot: 0
Overo # nand erase 240000 20000
NAND erase: device 0 offset 0x240000, size 0x20000
Erasing at 0x240000 -- 100% complete.
OK
Overo # reset
resetting ...
Third time, we can see the new default environment:
U-Boot SPL 2012.04.01 (Sep 24 2012 - 12:48:02)
OMAP SD/MMC: 0
mkimage signature not found - ih_magic = ea000014
U-Boot 2012.04.01 (Sep 24 2012 - 12:48:02)
OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 720 mHz
Gumstix Overo board + LPDDR/NAND
I2C: ready
DRAM: 256 MiB
NAND: 256 MiB
MMC: OMAP SD/MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Board revision: 0
Tranceiver detected on mmc2
No EEPROM on expansion board
Die ID #529e0004000000000403a1f303025013
Net: smc911x-0
Hit any key to stop autoboot: 0
Overo # printenv
baudrate=115200
bootcmd=if mmc rescan ${mmcdev}; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else run nan
dboot; fi; fi; else run nandboot; fi
bootdelay=5
bootscript=echo Running bootscript from mmc ...; source ${loadaddr}
console=ttyO2,115200n8
defaultdisplay=dvi
dieid#=529e0004000000000403a1f303025013
dvimode=1024x768MR-16@60
ethact=smc911x-0
kerneladdr=0x80200000
loadaddr=0x82000000
loadbootscript=ext2load mmc ${mmcdev} ${loadaddr} boot.scr
loaduimage=ext2load mmc ${mmcdev} ${loadaddr} uImage
mmcargs=setenv bootargs console=${console} ${optargs} mpurate=${mpurate} vram=${vram} omapfb.mode=dvi:${dvimode} omapdss.def_disp=${defaultdisplay} root=${mmcroot} rootfstype=${mmcrootfstype}
mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${loadaddr}
mmcdev=0
mmcroot=/dev/mmcblk0p2 rw
mmcrootfstype=ext3 rootwait
mpurate=500
nandargs=setenv bootargs console=${console} ${optargs} mpurate=${mpurate} vram=${vram} omapfb.mode=dvi:${dvimode} omapdss.def_disp=${defaultdisplay} root=${nandroot} rootfstype=${nandrootfstype}
nandboot=echo Booting from nand ...; run nandargs; nand read ${loadaddr} 280000 400000; bootm ${loadaddr}
nandroot=ubi0:rootfs ubi.mtd=4
nandrootfstype=ubifs
ramdiskaddr=0x81000000
stderr=serial
stdin=serial
stdout=serial
vram=12M
Environment size: 1363/131068 bytes
Overo # saveenv
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x240000 -- 100% complete.
Writing to Nand... done
Overo # reset
resetting ...
Fourth time’s the charm. Straight into loading the kernel and initrd without any manual intervention required:
U-Boot SPL 2012.04.01 (Sep 24 2012 - 12:48:02)
OMAP SD/MMC: 0
mkimage signature not found - ih_magic = ea000014
U-Boot 2012.04.01 (Sep 24 2012 - 12:48:02)
OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 720 mHz
Gumstix Overo board + LPDDR/NAND
I2C: ready
DRAM: 256 MiB
NAND: 256 MiB
MMC: OMAP SD/MMC: 0
In: serial
Out: serial
Err: serial
Board revision: 0
Tranceiver detected on mmc2
No EEPROM on expansion board
Die ID #529e0004000000000403a1f303025013
Net: smc911x-0
Hit any key to stop autoboot: 0
Loading file "boot.scr" from mmc device 0:1 (xxa1)
625 bytes read
Running bootscript from mmc ...
## Executing script at 82000000
kerneladdr=0x80200000
ramdiskaddr=0x81000000
Loading file "uImage" from mmc device 0:1 (xxa1)
4063704 bytes read
Loading file "initrd" from mmc device 0:1 (xxa1)
9087228 bytes read
## Booting kernel from Legacy Image at 80200000 ...
Image Name: Linux-3.4.6-2.10-omap2plus
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4063640 Bytes = 3.9 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 81000000 ...
Image Name: Initrd
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 9087164 Bytes = 8.7 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.4.6-2.10-omap2plus (abuild@build14) (gcc version 4.7.1 20120723 [gcc-4_7-branch revision 189773] (SUSE Linux) ) #2 SMP Sat Sep 8 06:38:16 UTC 2012
[ 0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[ 0.000000] Machine: Gumstix Overo
...
Then after a little while…
Welcome to openSUSE 12.2 "Mantis" - Kernel 3.4.6-2.10-omap2plus (ttyO2).
linux login: root
Password: *****
Last login: Sat Jan 1 01:07:59 on ttyO2
This is the Lime-JeOS 12.2 SuSE Linux System.
To upgrade your system call:
zypper refresh
zypper install -t product openSUSE-12.2
Have a lot of fun...
linux:~ # uname -a
Linux linux 3.4.6-2.10-omap2plus #2 SMP Sat Sep 8 06:38:16 UTC 2012 armv7l armv7l armv7l GNU/Linux
linux:~ # uptime
02:01am up 0:01, 1 user, load average: 2.23, 0.77, 0.27
So I call that reasonable success. At least now I have a documented point to start from next time. Oh, and that little red LED? It’s a heartbeat indicator. So long as it’s blinking, the kernel hasn’t crashed.