|
@@ -0,0 +1,135 @@
|
|
|
+Lego Mindstorms EV3
|
|
|
+
|
|
|
+Intro
|
|
|
+=====
|
|
|
+
|
|
|
+This is the buildroot basic board support for the Lego Mindstorms EV3
|
|
|
+programmable brick. No support for sensors and drivers is provided for the
|
|
|
+moment.
|
|
|
+
|
|
|
+The Lego Mindstorms EV3 brick comprises a Texas Instruments AM1808 SoC, with
|
|
|
+an ARM 926EJ-S main processor running at 300 MHz.
|
|
|
+See:
|
|
|
+- https://en.wikipedia.org/wiki/Lego_Mindstorms_EV3
|
|
|
+- http://www.lego.com/en-us/mindstorms/products/ev3/31313-mindstorms-ev3/
|
|
|
+- http://www.ti.com/product/am1808
|
|
|
+
|
|
|
+The buildroot configuration uses the Linux kernel of the ev3dev project.
|
|
|
+See:
|
|
|
+- http://botbench.com/blog/2013/07/31/lego-mindstorms-ev3-source-code-available/
|
|
|
+- https://github.com/mindboards/ev3sources
|
|
|
+
|
|
|
+Note that the EV3 configuration uses gcc 4.7, as the boot is broken with gcc
|
|
|
+4.8.
|
|
|
+
|
|
|
+How it works
|
|
|
+============
|
|
|
+
|
|
|
+Boot process :
|
|
|
+--------------
|
|
|
+
|
|
|
+The u-boot on-board the EV3 brick has provision to boot a Linux kernel from the
|
|
|
+external µSD card. It will try to load a uImage from the first µSD card
|
|
|
+partition, which must be formatted with a FAT filesystem.
|
|
|
+
|
|
|
+How to build it
|
|
|
+===============
|
|
|
+
|
|
|
+Configure Buildroot
|
|
|
+-------------------
|
|
|
+
|
|
|
+The lego_ev3_defconfig configuration provides basic support to boot on the Lego
|
|
|
+Mindstorms EV3 programmable brick:
|
|
|
+
|
|
|
+ $ make lego_ev3_defconfig
|
|
|
+
|
|
|
+Build everything
|
|
|
+----------------
|
|
|
+
|
|
|
+Note: you will need to have access to the network, since Buildroot will
|
|
|
+download the packages' sources.
|
|
|
+
|
|
|
+ $ make
|
|
|
+
|
|
|
+Result of the build
|
|
|
+-------------------
|
|
|
+
|
|
|
+After building, you should obtain this tree:
|
|
|
+
|
|
|
+ output/images/
|
|
|
+ ├── rootfs.ext2
|
|
|
+ ├── rootfs.ext3 -> rootfs.ext2
|
|
|
+ └── uImage
|
|
|
+
|
|
|
+
|
|
|
+Prepare your SDcard
|
|
|
+===================
|
|
|
+
|
|
|
+The following µSD card layout is recommended:
|
|
|
+
|
|
|
+- First partition formated with a FAT filesystem, containing the uImage.
|
|
|
+- Second partition formatted as ext2 or ext3, containing the root filesystem.
|
|
|
+
|
|
|
+Create the SDcard partition table
|
|
|
+----------------------------------
|
|
|
+
|
|
|
+Determine the device associated to the SD card :
|
|
|
+
|
|
|
+ $ cat /proc/partitions
|
|
|
+
|
|
|
+Let's assume it is /dev/mmcblk0 :
|
|
|
+
|
|
|
+ $ sudo fdisk /dev/mmcblk0
|
|
|
+
|
|
|
+Delete all previous partitions by creating a new disklabel with 'o', then
|
|
|
+create the new partition table, using these options, pressing enter after each
|
|
|
+one:
|
|
|
+
|
|
|
+ * n p 1 2048 +10M t c
|
|
|
+ * n p 2 22528 +256M
|
|
|
+
|
|
|
+Using the 'p' option, the SD card's partition must look like this :
|
|
|
+
|
|
|
+Device Boot Start End Blocks Id System
|
|
|
+/dev/mmcblk0p1 2048 22527 10240 c W95 FAT32 (LBA)
|
|
|
+/dev/mmcblk0p2 22528 546815 262144 83 Linux
|
|
|
+
|
|
|
+Then write the partition table using 'w' and exit.
|
|
|
+
|
|
|
+Make partition one a DOS partition :
|
|
|
+
|
|
|
+ $ sudo mkfs.vfat /dev/mmcblk0p1
|
|
|
+
|
|
|
+Install the binaries to the SDcard
|
|
|
+----------------------------------
|
|
|
+
|
|
|
+Remember your binaries are located in output/images/, go inside that directory :
|
|
|
+
|
|
|
+ $ cd output/images
|
|
|
+
|
|
|
+Copy the Linux kernel:
|
|
|
+
|
|
|
+ $ sudo mkdir /mnt/sdcard
|
|
|
+ $ sudo mount /dev/mmcblk0p1 /mnt/sdcard
|
|
|
+ $ sudo cp uImage /mnt/sdcard
|
|
|
+ $ sudo umount /mnt/sdcard
|
|
|
+
|
|
|
+Copy the rootfs :
|
|
|
+
|
|
|
+ $ sudo dd if=rootfs.ext3 of=/dev/mmcblk0p2 bs=1M
|
|
|
+ $ sync
|
|
|
+
|
|
|
+It's Done!
|
|
|
+
|
|
|
+Finish
|
|
|
+======
|
|
|
+
|
|
|
+Eject your µSD card, insert it in your Lego EV3, and power it up.
|
|
|
+
|
|
|
+To have a serial console, you will need a proper USB to Lego serial port
|
|
|
+adapter plugged into the EV3 sensors port 1.
|
|
|
+See:
|
|
|
+- http://botbench.com/blog/2013/08/15/ev3-creating-console-cable/
|
|
|
+- http://botbench.com/blog/2013/08/05/mindsensors-ev3-usb-console-adapter/
|
|
|
+
|
|
|
+The serial port config to use is 115200/8-N-1.
|