Skip to content

Instantly share code, notes, and snippets.

@17twenty
Last active March 25, 2023 13:41
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • 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.

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