Op 27 jul. 2014, om 03:19 heeft Khem Raj <raj.k...@gmail.com> het volgende 
geschreven:

> On Sat, Jul 26, 2014 at 3:39 PM, Mark Ruys <m...@paracas.nl> wrote:
>> 
>> Op 21 jul. 2014, om 13:35 heeft Koen Kooi <k...@dominion.thruhere.net> het 
>> volgende geschreven:
>> 
>>> 
>>> Op 20 jul. 2014, om 00:34 heeft Mark Ruys <m...@paracas.nl> het volgende 
>>> geschreven:
>>> 
>>>> I'm trying to build a Angstrom v2013.12 SD card to boot from. This is what 
>>>> I did essentially:
>>>> 
>>>> git clone git://github.com/Angstrom-distribution/setup-scripts.git
>>>> cd setup-scripts
>>>> 
>>>> MACHINE=beagleboard ./oebb.sh config beagleboard
>>>                                                                    
>>> ^^^^^^^^^^^^^
>>> That says 'board', not 'bone'
>> 
>> Ah, well, that says it all.
>> 
>> After some effort, I've created my own eMMC flash SD-card based on Angstrom 
>> v2013.12. I tweaked the kernel so I have WATCHDOG_NOWAYOUT using 'bitbake -c 
>> menuconfig virtual/kernel'. As I don't trust SD-cards for reliable 24h 
>> operation, I want my BeagleBone to boot from eMMC under all circumstances. 
>> For this I altered the u-Boot bootcmd script. Indeed the eMMC u-Boot always 
>> runs the zImage kernel from eMMC at /dev/mmcblk1, regardless whether an 
>> SD-card is inserted or not:
>> 

>> But to my surprise, this kernel still wants to mount the SD-card 
>> (/dev/mmcblk0) as rootfs. I'm not sure if I ask the right mailing list this 
>> question..., but does anyone knows how to let the kernel mount eMMC as the 
>> root fs, and not try to use the SD-card? This isn't a kernel build config 
>> option, is it?
> 
> There could be that option for selecting root is passed from
> bootloader environment. You might be able to cook a u-boot script to
> boot from eMMC if there already is not one.

Yes indeed. This has nothing to do with Angstrom, just a u-Boot configuration 
issue. This is what worked for me perfectly:

#define CONFIG_BOOTCOMMAND \
        "gpio set 53; " \
        "i2c mw 0x24 1 0x3e; " \
        "run findfdt; " \
        "setenv mmcdev 1; setenv bootpart 1:2; " \
        "mmc dev 0; if mmc rescan; then setenv mmcroot /dev/mmcblk1p2 ro; fi; " 
\
        "run mmcboot;" \
        "run nandboot;"

So I set mmcdev to 1 (and bootpart alike). This makes sure the BeagleBone will 
always load the kernel from eMMC, regardless if a SD-card is present or 
mountable.
And I test whether /dev/mmcblk0 is mountable (this is the SD-card). If this is 
the case, I give the kernel root=/dev/mmcblk1p2 as a boot option.

Now I have a BeagleBone which always boots from eMMC regardless what's in the 
SD slot :)

Mark

_______________________________________________
Angstrom-distro-devel mailing list
Angstrom-distro-devel@linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel

Reply via email to