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.