Skip to content

Instantly share code, notes, and snippets.

@17twenty
Last active November 5, 2024 04:35
Show Gist options
  • Save 17twenty/6925066 to your computer and use it in GitHub Desktop.
Save 17twenty/6925066 to your computer and use it in GitHub Desktop.
Setting up your sdcard and u-boot's uEnv.txt for Beaglebone Black
# Find your micro SD card using lsblk - you're going to want to set your DISK parameter to it.
export DISK=/dev/mmcblk0
sudo dd if=/dev/zero of=${DISK} bs=1M count=16
sudo sfdisk --in-order --Linux --unit M ${DISK} <<-__EOF__
1,48,0xE,*
,,,-
__EOF__
# If using mmcblkX or similar - you need the partition so...
sudo mkfs.vfat -F 16 ${DISK}p1 -n boot
sudo mkfs.ext4 ${DISK}p2 -L rootfs
# If your disk is set to the more traditional /dev/sdX use
sudo mkfs.vfat -F 16 ${DISK}1 -n boot
sudo mkfs.ext4 ${DISK}2 -L rootfs
sudo mkdir -p /media/boot/
sudo mkdir -p /media/rootfs/
# Again, for DISK=/dev/mmcblk0
sudo mount ${DISK}p1 /media/boot/
sudo mount ${DISK}p2 /media/rootfs/
# Or for DISK=/dev/sdX
sudo mount ${DISK}1 /media/boot/
sudo mount ${DISK}2 /media/rootfs/
sudo cp -v /path/to/u-boot/MLO /media/boot/
sudo cp -v /path/to/u-boot/u-boot.img /media/boot/
# You'll want to create a uEnv.txt to enable TFTP loading...
sudo vim /media/boot/uEnv.txt
ipaddr=10.0.0.3
serverip=10.0.0.1
kernel_file=zImage
console=ttyO0,115200n8
loadzimage=tftp ${loadaddr} ${kernel_file}
loadfdt=tftp ${fdtaddr} ${fdtfile}
my_bootargs=setenv bootargs console=${console} ${optargs}
uenvcmd=run loadzimage; run loadfdt; run my_bootargs; bootz ${loadaddr} - ${fdtaddr}
# Copy across your kernel and Device Tree
sudo mkdir -p /media/rootfs/boot
sudo cp -v /path/to/kernel/arch/arm/boot/zImage /media/rootfs/boot/
sudo cp -v /path/to/kernel/arch/arm/boot/dts/am335x-boneblack.dtb /media/rootfs/boot/
# Setup for NFS
ipaddr=10.0.0.3
serverip=10.0.0.1
kernel_file=zImage
console=ttyO0,115200n8
loadzimage=tftp ${loadaddr} ${kernel_file}
loadfdt=tftp ${fdtaddr} ${fdtfile}
my_bootargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs rw nfsroot=${serverip}:/home/fedora/rootdir ip=${ipaddr}:::::eth0
uenvcmd=run loadzimage; run loadfdt; run my_bootargs; bootz ${loadaddr} - ${fdtaddr}
# Setup for booting from MMC
kernel_file=zImage
bootdir=/boot
mmcdev=1
mmcpart=2
loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${kernel_file}
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/${fdtfile}
console=ttyO0,115200n8
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait fixrtc
mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}
uenvcmd=run loadzimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
@17twenty
Copy link
Author

17twenty commented Dec 9, 2013

Fixed to reflect change of mmcdev to 1, not 0! Urgh!

@hoang408
Copy link

I got stuck on line 31 - sudo cp -v /path/to/u-boot/MLO /media/boot/
with this error message:
cp : cannot stat '/path/to/u-boot/MLO': No such file or directory

Please help.

@rokadvednt03
Copy link

has MLO generated? find the MLO using the grep command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment