Bump buildroot to version 2017-02
TG-3 #closed
This commit is contained in:
57
bsp/buildroot/board/lego/ev3/genimage.cfg
Normal file
57
bsp/buildroot/board/lego/ev3/genimage.cfg
Normal file
@@ -0,0 +1,57 @@
|
||||
# LEGO MINDSTORMS EV3 can boot from a 16MB flash or from a microSD card.
|
||||
# The U-Boot bootloader from the flash is always used, even when booting
|
||||
# from a microSD card.
|
||||
|
||||
# The Flash image
|
||||
|
||||
flash nor-16M-256 {
|
||||
pebsize = 4096
|
||||
numpebs = 4096
|
||||
minimum-io-unit-size = 256
|
||||
}
|
||||
|
||||
image flash.bin {
|
||||
flash {
|
||||
}
|
||||
flashtype = "nor-16M-256"
|
||||
partition uboot {
|
||||
image = "u-boot.bin"
|
||||
size = 320K
|
||||
}
|
||||
partition uimage {
|
||||
image = "uImage"
|
||||
size = 3M
|
||||
offset = 0x50000
|
||||
}
|
||||
partition rootfs {
|
||||
image = "rootfs.squashfs"
|
||||
size = 9600K
|
||||
offset = 0x350000
|
||||
}
|
||||
}
|
||||
|
||||
# The SD card image
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"uImage"
|
||||
}
|
||||
}
|
||||
size = 16M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
offset = 4M
|
||||
}
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext2"
|
||||
}
|
||||
}
|
||||
7
bsp/buildroot/board/lego/ev3/linux.fragment
Normal file
7
bsp/buildroot/board/lego/ev3/linux.fragment
Normal file
@@ -0,0 +1,7 @@
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=1
|
||||
CONFIG_BLK_DEV_RAM_SIZE=32768
|
||||
CONFIG_SQUASHFS=y
|
||||
CONFIG_SQUASHFS_LZ4=y
|
||||
CONFIG_SQUASHFS_LZO=y
|
||||
CONFIG_SQUASHFS_XZ=y
|
||||
14
bsp/buildroot/board/lego/ev3/post-image.sh
Executable file
14
bsp/buildroot/board/lego/ev3/post-image.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
|
||||
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
||||
|
||||
rm -rf "${GENIMAGE_TMP}"
|
||||
|
||||
genimage \
|
||||
--rootpath "${TARGET_DIR}" \
|
||||
--tmppath "${GENIMAGE_TMP}" \
|
||||
--inputpath "${BINARIES_DIR}" \
|
||||
--outputpath "${BINARIES_DIR}" \
|
||||
--config "${GENIMAGE_CFG}"
|
||||
@@ -4,8 +4,7 @@ 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.
|
||||
programmable brick.
|
||||
|
||||
The Lego Mindstorms EV3 brick comprises a Texas Instruments AM1808 SoC, with
|
||||
an ARM 926EJ-S main processor running at 300 MHz.
|
||||
@@ -16,11 +15,9 @@ See:
|
||||
|
||||
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.
|
||||
- https://github.com/ev3dev/ev3-kernel/
|
||||
- https://github.com/ev3dev/lego-linux-drivers/
|
||||
- http://www.ev3dev.org/
|
||||
|
||||
How it works
|
||||
============
|
||||
@@ -28,9 +25,13 @@ 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.
|
||||
The EV3 boots from an EEPROM. This loads whatever is on the built-in 16MB flash
|
||||
(usually U-Boot) and runs it. The U-Boot from the official LEGO firmware and
|
||||
mainline U-Boot will attempt to boot a Linux kernel from the external µSD card.
|
||||
It will try to load a uImage (and optional boot.scr) from the first µSD card
|
||||
partition, which must be formatted with a FAT filesystem. If no µSD is found or
|
||||
it does not contain a uImage file, then the EV3 will boot the uImage from the
|
||||
built-in 16MB flash.
|
||||
|
||||
How to build it
|
||||
===============
|
||||
@@ -57,75 +58,26 @@ Result of the build
|
||||
After building, you should obtain this tree:
|
||||
|
||||
output/images/
|
||||
├── boot.vfat
|
||||
├── flash.bin
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext3 -> rootfs.ext2
|
||||
├── rootfs.squashfs
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
└── uImage
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
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!
|
||||
You can use either flash.bin or the sdcard.img. To load flash.bin, use the
|
||||
official Lego Mindstorms EV3 programming software firmware update tool to load
|
||||
the image. To use sdcard.img, use a disk writing tool such as Etcher or dd to
|
||||
write the image to the µSD card.
|
||||
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user