6 This is the buildroot basic board support for the Lego Mindstorms EV3
7 programmable brick. No support for sensors and drivers is provided for the
10 The Lego Mindstorms EV3 brick comprises a Texas Instruments AM1808 SoC, with
11 an ARM 926EJ-S main processor running at 300 MHz.
13 - https://en.wikipedia.org/wiki/Lego_Mindstorms_EV3
14 - http://www.lego.com/en-us/mindstorms/products/ev3/31313-mindstorms-ev3/
15 - http://www.ti.com/product/am1808
17 The buildroot configuration uses the Linux kernel of the ev3dev project.
19 - http://botbench.com/blog/2013/07/31/lego-mindstorms-ev3-source-code-available/
20 - https://github.com/mindboards/ev3sources
22 Note that the EV3 configuration uses gcc 4.7, as the boot is broken with gcc
31 The u-boot on-board the EV3 brick has provision to boot a Linux kernel from the
32 external µSD card. It will try to load a uImage from the first µSD card
33 partition, which must be formatted with a FAT filesystem.
41 The lego_ev3_defconfig configuration provides basic support to boot on the Lego
42 Mindstorms EV3 programmable brick:
44 $ make lego_ev3_defconfig
49 Note: you will need to have access to the network, since Buildroot will
50 download the packages' sources.
57 After building, you should obtain this tree:
61 ├── rootfs.ext3 -> rootfs.ext2
68 The following µSD card layout is recommended:
70 - First partition formated with a FAT filesystem, containing the uImage.
71 - Second partition formatted as ext2 or ext3, containing the root filesystem.
73 Create the SDcard partition table
74 ----------------------------------
76 Determine the device associated to the SD card :
78 $ cat /proc/partitions
80 Let's assume it is /dev/mmcblk0 :
82 $ sudo fdisk /dev/mmcblk0
84 Delete all previous partitions by creating a new disklabel with 'o', then
85 create the new partition table, using these options, pressing enter after each
91 Using the 'p' option, the SD card's partition must look like this :
93 Device Boot Start End Blocks Id System
94 /dev/mmcblk0p1 2048 22527 10240 c W95 FAT32 (LBA)
95 /dev/mmcblk0p2 22528 546815 262144 83 Linux
97 Then write the partition table using 'w' and exit.
99 Make partition one a DOS partition :
101 $ sudo mkfs.vfat /dev/mmcblk0p1
103 Install the binaries to the SDcard
104 ----------------------------------
106 Remember your binaries are located in output/images/, go inside that directory :
110 Copy the Linux kernel:
112 $ sudo mkdir /mnt/sdcard
113 $ sudo mount /dev/mmcblk0p1 /mnt/sdcard
114 $ sudo cp uImage /mnt/sdcard
115 $ sudo umount /mnt/sdcard
119 $ sudo dd if=rootfs.ext3 of=/dev/mmcblk0p2 bs=1M
127 Eject your µSD card, insert it in your Lego EV3, and power it up.
129 To have a serial console, you will need a proper USB to Lego serial port
130 adapter plugged into the EV3 sensors port 1.
132 - http://botbench.com/blog/2013/08/15/ev3-creating-console-cable/
133 - http://botbench.com/blog/2013/08/05/mindsensors-ev3-usb-console-adapter/
135 The serial port config to use is 115200/8-N-1.