BBW fails to boot

Hi all,

I have an old BBW that I wanted to revive. It boots fine with the SD card that came with it. It boots well with an old SD that I built following come old instructions, pre-dates DTS.

Now, I’ve tried to build it following the instructions on: https://eewiki.net/display/linuxonarm/BeagleBone
It fails to boot. I think something is wrong regarding the bootloader, either the way I built it or the instructions might be wrong for this old platform.

Anyways, here is what I get on minicom before it dies:

U-Boot SPL 2016.07-rc2-dirty (Jun 26 2016 - 03:11:33)
No AC power, disabling frequency switch
Trying to boot from MMC1
Expected Linux image is not found. Trying to start U-boot

U-Boot 2016.07-rc2-dirty (Jun 26 2016 - 03:11:33 -0400)

Watchdog enabled
I2C: ready
DRAM: 256 MiB

The symptoms of its death, it disconnects the /dev/ttyUSB0 and the LED is off.

Any idea where what I might be doing wrong? I build on Ubuntu 16.04

Thanks,
-Hesham

I’ve been using the prebuilt debian 8 images on a BBW without problems, so like you said, it must be something in the build process.

I have not tried this myself, but just thinking about it:

1> Bad “burn” to SD card?

2> /boot/uEnv.txt has some options that are trying making U-Boot try to look for an image on a BBB eMMC rather than SD card.

–David

've been using the prebuilt debian 8 images on a BBW without problems, so like you said, it must be something in the build process.

I have not tried this myself, but just thinking about it:
1> Bad “burn” to SD card?
2> /boot/uEnv.txt has some options that are trying making U-Boot try to look for an image on a BBB eMMC rather than SD card.

–David

It is unlikely that either of those are the problem.

@ Hesham

lets see the results of

$ ls /boot/

and

$ cat /boot/uEnv.txt

So . . .

$ ls /media/rootfs/boot

and

$ cat /media/rootfs/boot/uEnv.txt

In case the above was nto clear :wink:

An old BBW is going to have an ancient (in computer time-scale)
boot-loader. I recommend you flash the on-board eMMC with a new boot
loader. You can do this manually if you really want to (and know
how), but the easiest way would be to use a recent console image
flasher like:

http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flasher:.28console.29.28BeagleBone_Black.2FGreen_eMMC.29

...assuming you don't mind trashing whatever is in the eMMC, of course!

BBW has no emmc :slight_smile:

Of course! <doh!>
You can tell how long it's been since I booted my BBW. :blush:

Anyway, there have been lots of changes with the boot loader since the
BBW, and I'd recommend starting with a working console image with a
recent kernel and u-Boot, with the console images probably being the
best starting point if you're wanting to craft your own image.

The ROM boot code of the AM335x hasn't changed, but there are very
specific constraints on what makes a bootable uSD image (specifically
the MLO boot-loader and it's location on the physical media). The
easiest way to deal with the constraints is to start with a working image.

U-Boot SPL 2016.07-rc2-dirty (Jun 26 2016 - 03:11:33)
No AC power, disabling frequency switch
Trying to boot from MMC1
Expected Linux image is not found. Trying to start U-boot

U-Boot 2016.07-rc2-dirty (Jun 26 2016 - 03:11:33 -0400)

Watchdog enabled
I2C: ready
DRAM: 256 MiB

So, I just expect that this is a pathing issue. It could be something else, but I’d double check pathing first. Also, if he skipped the step of echoing uname-r into /boot/uEnv.txt. It would act the same. Hence why I wanted to see the contents of /boot, and /boot/uEnv.txt :wink:

I’d also like to point out that it’s really easy to mess up using Robert’s guide. Not because of the guide per se, but because of the amount of steps required in order to achieve the end goal.

I’ve found it beneficial to copy paste each command into a text file as I do them so I can be absolutely sure what I’ve done.

Hi William,

Thanks for your reply.

ls /boot :
dtbs uboot uEnv.txt vmlinuz-4.4.13-bone-rt-r11

cat /boot/uEnv.txt :
uname_r=4.4.13-bone-rt-r11

It’s depressing as the webpage seems to indicate the directions are valid for BBW. It’s not something unheard of to support ancient platforms. It’s Linux after all, where it makes old HW works :slight_smile:

Thanks all,
-Hesham

One of the changes that I have noticed in the guide, when I visited recently after a long absence is that how much of the details are hidden inside the build script. It’s less educational this way!

I have a question though, is the small text means it has jump from MLO to u-boot already and the failure inside u-boot or there is a possibility that it didn’t see the u-boot?

Hi Charles,

I’m open to try older builds. Can you point me to a working older instructions that can help me get this board booting?

Thanks,
-Hesham

By my reckoning you’re missing a few files. You’re missing an initrd, and a System.map* file. You’re also missing SOH.sh, and the config file. The config file is probably not required, but I’m unsure of the SOC.sh file. However, judging by your error message. You’ve built with using an initrd in mind, yet you do not have one. However, I’m not sure of a fix, unless you skipped some steps from the guide. As I haven’t built my own kernel in over a year using Robert guide . . . so I’m not 100% up to speed on what all he’s doing now.

However. For most intents and purposes. The BBW, and BBB are very alike. I’d say exactly, but obviously the BBW does not have a few thing the BBB does. The BBW also has JTAG. But I think the biggest difference is DDR voltage difference. Which would not be the reason for this issue. Besides, I happen to know that uboot checks for, and detects this. The board file is also slightly different.

Anyhow, the point is, that anything that runs on the BBB should technically run on the BBW too.

william@beaglebone:~$ ls /boot
SOC.sh config-4.4.8-ti-r22 initrd.img-4.4.8-ti-r22 uboot
System.map-4.4.8-ti-r22 config-4.4.9-bone-rt-r10 initrd.img-4.4.9-bone-rt-r10 vmlinuz-4.4.8-ti-r22
System.map-4.4.9-bone-rt-r10 dtbs uEnv.txt vmlinuz-4.4.9-bone-rt-r10

Hesham, you followed the guide exactly ? Or did you make any modifications. Such as changing the partition structure, putting files in different locations, or leaving steps outs ? Just looking at that guide, which is very similar to the BBB guide mind you( possibly exactly alike baring eMMC ) . . .One thing I noticed missing was the first stage uEnv.txt file. I assumed that is now included in the rootfs Robert tells you to use . . . but I do not know that for a fact.

Anyway, if there is a /uEnv.txt file ( root of the rootfs ) it should have a suitable, and valid path for files needed at system up. Also, I think but am not 100% sure. That you can comment out the path for the initrd file, and then this problem should go away. However, I’d prefer Robert to comment on that as it has been a while for me . . .

I stopped at :

capemgr: v4.1.x+

I don’t have/plan to use capes. Is this fatal?

You should show us all your debug output at once. It’s too hard to troubleshoot based on only one debug line. Unless it’s really obvious.

Or wait, my bad I see what you mean now. Let me look

Ok, no nothing there s critical for booting your board. capemgr is still installed, it only the device overlays that are not installed.

So, can you show us what the file /uEnv.txt contains ? Not /bootuEnv.txt, but /uEnv.txt. Thats the first stage uboot environment file, thats super important for booting the board.

There is nothing but the /boot/uEnv.txt that I sent you earlier. Also, there is no initrd.img as well in the tree.
I followed the steps in the eewiki page but this is what I got!

Hesham,

I think at this point, the safest thing to do is to get the newest standalone( non flasher ) console image, boot it, and observe the serial debug output.

After that, check out the file structure, and perhaps rip out some needed files to put into your system.

Question though. Is there a specific reason why you’re compiling your own kernel ? If not, it may be best to just use the latest console image, and strip that down to something smaller if that’s what you need.