[FE training-materials-updates] Update Buildroot labs to Buildroot 2015.08

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Sep 28 14:29:42 CEST 2015


Repository : git://git.free-electrons.com/training-materials.git
On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=1cd6f055a94dd309a7a19e6f9c122b3bf1be6d54

>---------------------------------------------------------------

commit 1cd6f055a94dd309a7a19e6f9c122b3bf1be6d54
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date:   Mon Sep 28 14:29:42 2015 +0200

    Update Buildroot labs to Buildroot 2015.08
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>


>---------------------------------------------------------------

1cd6f055a94dd309a7a19e6f9c122b3bf1be6d54
 ...onfig-ensure-kconfig-base-and-fragment-fi.patch | 89 ---------------------
 ...config-move-the-kconfig-fixups-to-a-macro.patch | 41 ----------
 ...onfig-run-the-kconfig-fixups-after-exitin.patch | 60 ---------------
 ...onfig-allow-saving-config-to-a-non-existi.patch | 90 ----------------------
 labs/buildroot-appdev/buildroot-appdev.tex         |  4 +-
 labs/buildroot-basic/buildroot-basic.tex           | 16 ++--
 .../buildroot-new-packages.tex                     | 18 ++++-
 .../hashes-on-sourceforge.dia                      | 84 ++++++++++----------
 labs/buildroot-rootfs/buildroot-rootfs.tex         | 14 +---
 9 files changed, 69 insertions(+), 347 deletions(-)

diff --git a/lab-data/buildroot/buildroot-rootfs/buildroot/0001-core-pkg-kconfig-ensure-kconfig-base-and-fragment-fi.patch b/lab-data/buildroot/buildroot-rootfs/buildroot/0001-core-pkg-kconfig-ensure-kconfig-base-and-fragment-fi.patch
deleted file mode 100644
index 88be11a..0000000
--- a/lab-data/buildroot/buildroot-rootfs/buildroot/0001-core-pkg-kconfig-ensure-kconfig-base-and-fragment-fi.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From d1d7f84e805e18d927889b30e7cb90b610db24ec Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-Date: Sat, 13 Jun 2015 18:46:34 +0200
-Subject: [PATCH] core/pkg-kconfig: ensure kconfig base and fragment files
- exist
-
-Even though we do have a dependency chain back to each of the kconfig
-base and fragment files:
-
-    $$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
-
-we can't rely on it to ensure they are all present, because they all have
-this rule:
-
-    $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES): | $(1)-patch
-
-but since this rule has no prerequisite (only build-order, but that does
-not count in this case) and no recipe, make will believe each missing
-file to be a PHONY target, and will always run targets that depend on
-it:
-    https://www.gnu.org/software/make/manual/make.html#Force-Targets
-
-So, that means a missing kconfig base or fragment file would always
-cause the rule to generate .config to be run at each invocation, which
-in turn would cause a rebuild of the kernel, which is clearly not what
-we want.
-
-Since this is expected make behaviour, we can well end up with a missing
-Kconfig base or fragment. To avoid continuously rebuilding the kernel in
-that case, we must check those files exist by ourselves, and error out
-if any one of them is missing.
-
-One would expect we check for them right in their dependency rule, like
-so:
-
-    $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES): | $(1)-patch
-        [ -f $(@) ] || {echo Missing $(@) >&2; exit 1; }
-
-but that does not work, as only the first target is tested for. That
-check msut be turned into a loop explicitly testing all files, like so:
-
-    $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES): | $(1)-patch
-        for f in $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES); do \
-            [ -f $(@) ] || {echo Missing $$$${f} >&2; exit 1; }; \
-        done
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-Cc: Floris Bos <bos at je-eigen-domein.nl>
-Cc: Thomas De Schampheleire <patrickdepinguin at gmail.com>
-Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
----
- package/pkg-kconfig.mk | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
-index ec58d69..d3c411f 100644
---- a/package/pkg-kconfig.mk
-+++ b/package/pkg-kconfig.mk
-@@ -41,6 +41,26 @@ ifndef $(2)_KCONFIG_FILE
- $$(error Internal error: no value specified for $(2)_KCONFIG_FILE)
- endif
- 
-+# The config file as well as the fragments could be in-tree, so before
-+# depending on them the package should be extracted (and patched) first.
-+#
-+# Since those files only have a order-only dependency, make would treat
-+# any missing one as a "force" target:
-+#   https://www.gnu.org/software/make/manual/make.html#Force-Targets
-+# and would forcibly any rule that depend on those files, causing a
-+# rebuild of the kernel each time make is called.
-+#
-+# So, we provide a recipe that checks all of those files exist, to
-+# overcome that standard make behaviour.
-+#
-+$$($(2)_KCONFIG_FILE): | $(1)-patch
-+	for f in $$($(2)_KCONFIG_FILE); do \
-+		if [ ! -f "$$$${f}" ]; then \
-+			printf "Kconfig fragment '%s' for '%s' does not exist\n" "$$$${f}" "$(1)"; \
-+			exit 1; \
-+		fi; \
-+	done
-+
- # The .config file is obtained by copying it from the specified source
- # configuration file, after the package has been patched.
- $$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) | $(1)-patch
--- 
-2.1.0
-
diff --git a/lab-data/buildroot/buildroot-rootfs/buildroot/0002-core-pkg-kconfig-move-the-kconfig-fixups-to-a-macro.patch b/lab-data/buildroot/buildroot-rootfs/buildroot/0002-core-pkg-kconfig-move-the-kconfig-fixups-to-a-macro.patch
deleted file mode 100644
index 5d23701..0000000
--- a/lab-data/buildroot/buildroot-rootfs/buildroot/0002-core-pkg-kconfig-move-the-kconfig-fixups-to-a-macro.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From c3fbd3753851a21fe9edf08eb417bd550b000009 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-Date: Sat, 13 Jun 2015 18:46:35 +0200
-Subject: [PATCH] core/pkg-kconfig: move the kconfig fixups to a macro
-
-The same fixups will have to be done after leaving the configurators,
-so we want to commonalise that code.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-Cc: Thomas De Schampheleire <patrickdepinguin at gmail.com>
-Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
----
- package/pkg-kconfig.mk | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
-index d3c411f..9288450 100644
---- a/package/pkg-kconfig.mk
-+++ b/package/pkg-kconfig.mk
-@@ -68,11 +68,15 @@ $$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) | $(1)-patch
- 
- # In order to get a usable, consistent configuration, some fixup may be needed.
- # The exact rules are specified by the package .mk file.
--$$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/.config
-+define $(2)_FIXUP_DOT_CONFIG
- 	$$($(2)_KCONFIG_FIXUP_CMDS)
- 	@yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
- 		$$($(2)_KCONFIG_OPTS) oldconfig
--	$$(Q)touch $$@
-+	$$(Q)touch $$($(2)_DIR)/.stamp_kconfig_fixup_done
-+endef
-+
-+$$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/.config
-+	$$(call $(2)_FIXUP_DOT_CONFIG)
- 
- # Before running configure, the configuration file should be present and fixed
- $$($(2)_TARGET_CONFIGURE): $$($(2)_DIR)/.stamp_kconfig_fixup_done
--- 
-2.1.0
-
diff --git a/lab-data/buildroot/buildroot-rootfs/buildroot/0003-core-pkg-kconfig-run-the-kconfig-fixups-after-exitin.patch b/lab-data/buildroot/buildroot-rootfs/buildroot/0003-core-pkg-kconfig-run-the-kconfig-fixups-after-exitin.patch
deleted file mode 100644
index 3c94824..0000000
--- a/lab-data/buildroot/buildroot-rootfs/buildroot/0003-core-pkg-kconfig-run-the-kconfig-fixups-after-exitin.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 23c50a963a66d43bb9470a1888ce4590ce50f6e1 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-Date: Sat, 13 Jun 2015 18:46:36 +0200
-Subject: [PATCH] core/pkg-kconfig: run the kconfig fixups after exiting
- configurators
-
-After we exit the configurators, we need to re-run the kconfig fixups to
-ensure the user is not able to override them in the configurators.
-
-Currently, we schedule that "for later", by removing the corresponding
-stamp file, so make will run the fixups "later".
-
-This means the user has access to the un-fixed .config file, which he
-might decide to copy and use as a reference (not too bad, since we'd run
-the fixups anyway; but not clean either).
-
-Note that we still remove the stamp file before running the fixups, in
-case any one of those fixups breaks, so we don't want to believe the
-fixups have been applied; the fixup macro will touch that file anyway.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-Cc: Thomas De Schampheleire <patrickdepinguin at gmail.com>
-Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
----
- package/pkg-kconfig.mk | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
-index 9288450..fceff51 100644
---- a/package/pkg-kconfig.mk
-+++ b/package/pkg-kconfig.mk
-@@ -82,11 +82,24 @@ $$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/.config
- $$($(2)_TARGET_CONFIGURE): $$($(2)_DIR)/.stamp_kconfig_fixup_done
- 
- # Configuration editors (menuconfig, ...)
-+#
-+# Apply the kconfig fixups right after exiting the configurators, so
-+# that the user always sees a .config file that is clean wrt. our
-+# requirements.
-+#
-+# Because commands in $(1)_FIXUP_KCONFIG are probably using $(@D), we
-+# fake it for the configurators (otherwise it is set to just '.', i.e.
-+# the current directory where make is run, which happens to be in
-+# $(TOPDIR), because the target of the rule is not an actual file, so
-+# does not have any path component).
-+#
-+$$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS)): @D=$$($(2)_DIR)
- $$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS)): $$($(2)_DIR)/.stamp_kconfig_fixup_done
- 	$$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
- 		$$($(2)_KCONFIG_OPTS) $$(subst $(1)-,,$$@)
- 	rm -f $$($(2)_DIR)/.stamp_{kconfig_fixup_done,configured,built}
- 	rm -f $$($(2)_DIR)/.stamp_{target,staging}_installed
-+	$$(call $(2)_FIXUP_DOT_CONFIG)
- 
- # Target to copy back the configuration to the source configuration file
- $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
--- 
-2.1.0
-
diff --git a/lab-data/buildroot/buildroot-rootfs/buildroot/0004-core-pkg-kconfig-allow-saving-config-to-a-non-existi.patch b/lab-data/buildroot/buildroot-rootfs/buildroot/0004-core-pkg-kconfig-allow-saving-config-to-a-non-existi.patch
deleted file mode 100644
index 495f509..0000000
--- a/lab-data/buildroot/buildroot-rootfs/buildroot/0004-core-pkg-kconfig-allow-saving-config-to-a-non-existi.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 47fde9fb42c51cd652b9a8b2ae010f4b674b77ed Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-Date: Sat, 13 Jun 2015 18:46:37 +0200
-Subject: [PATCH] core/pkg-kconfig: allow saving config to a non-existing
- custom config file
-
-A very interesting use-case for a kconfig-based package is to create a
-custom (def)config file based on one bundled with the package itself,
-like described in PR-8156:
-
-    make menuconfig
-     -> enable kernel, use an in-tree defconfig, save and exit
-    make linux-menuconfig
-     -> enable/disable whatever option, save and exit
-    make menuconfig
-     -> change to use a custom defconfig file, set a path, save and exit
-    make linux-update-config
-     -> should save to the new custom defconfig file
-
-However, that is currently not possible, because the dependency chain
-when saving the configuration goes back up to the (newly-set!) custom
-(def)config file, which does not exist.
-
-So, we break the dependency chain so that saving the configuration does
-not depend on that file. Instead, we use a terminal rule that checks
-that the configuration has indeed been done, and fails if not.
-
-Closes #8156.
-
-Reported-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
-Cc: Thomas De Schampheleire <patrickdepinguin at gmail.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
----
- package/pkg-kconfig.mk | 31 +++++++++++++++++++++++++++----
- 1 file changed, 27 insertions(+), 4 deletions(-)
-
-diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
-index fceff51..a19e7f9 100644
---- a/package/pkg-kconfig.mk
-+++ b/package/pkg-kconfig.mk
-@@ -83,9 +83,10 @@ $$($(2)_TARGET_CONFIGURE): $$($(2)_DIR)/.stamp_kconfig_fixup_done
- 
- # Configuration editors (menuconfig, ...)
- #
--# Apply the kconfig fixups right after exiting the configurators, so
--# that the user always sees a .config file that is clean wrt. our
--# requirements.
-+# We need to apply the configuration fixups right after a configuration
-+# editor exits, so that it is possible to save the configuration right
-+# after exiting an editor, and so the user always sees a .config file
-+# that is clean wrt. our requirements.
- #
- # Because commands in $(1)_FIXUP_KCONFIG are probably using $(@D), we
- # fake it for the configurators (otherwise it is set to just '.', i.e.
-@@ -101,8 +102,30 @@ $$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS)): $$($(2)_DIR)/.stamp_kconfig_fixup_
- 	rm -f $$($(2)_DIR)/.stamp_{target,staging}_installed
- 	$$(call $(2)_FIXUP_DOT_CONFIG)
- 
-+# Saving back the configuration
-+#
-+# Ideally, that should directly depend on $$($(2)_DIR)/.stamp_kconfig_fixup_done,
-+# but that breaks the use-case in PR-8156 (from a clean tree):
-+#   make menuconfig           <- enable kernel, use an in-tree defconfig, save and exit
-+#   make linux-menuconfig     <- enable/disable whatever option, save and exit
-+#   make menuconfig           <- change to use a custom defconfig file, set a path, save and exit
-+#   make linux-update-config  <- should save to the new custom defconfig file
-+#
-+# Because of that use-case, saving the configuration can *not* directly
-+# depend on the stamp file, because it itself depends on the .config,
-+# which in turn depends on the (newly-set an non-existent) custom
-+# defconfig file.
-+#
-+# Instead, we use an PHONY rule that will catch that situation.
-+#
-+$(1)-check-configuration-done:
-+	@if [ ! -f $$($(2)_DIR)/.stamp_kconfig_fixup_done ]; then \
-+		echo "$(1) is not yet configured"; \
-+		exit 1; \
-+	fi
-+
- # Target to copy back the configuration to the source configuration file
--$(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
-+$(1)-update-config: $(1)-check-configuration-done
- 	cp --preserve=timestamps -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
- 
- endef # inner-kconfig-package
--- 
-2.1.0
-
diff --git a/labs/buildroot-appdev/buildroot-appdev.tex b/labs/buildroot-appdev/buildroot-appdev.tex
index b6b25a0..d64f3cb 100644
--- a/labs/buildroot-appdev/buildroot-appdev.tex
+++ b/labs/buildroot-appdev/buildroot-appdev.tex
@@ -20,8 +20,8 @@ following contents:
 #include <stdio.h>
 
 int main(void) {
-	printf("Hello World\n");
-	return 0;
+        printf("Hello World\n");
+        return 0;
 }
 \end{verbatim}
 
diff --git a/labs/buildroot-basic/buildroot-basic.tex b/labs/buildroot-basic/buildroot-basic.tex
index 189a75e..aba00eb 100644
--- a/labs/buildroot-basic/buildroot-basic.tex
+++ b/labs/buildroot-basic/buildroot-basic.tex
@@ -42,18 +42,18 @@ git clone http://git.buildroot.net/git/buildroot.git
 \end{verbatim}
 
 In the worst case, if neither work, you can download the Buildroot
-tarball \code{buildroot-2015.02.tar.bz2} from
+tarball \code{buildroot-2015.08.1.tar.bz2} from
 \code{http://buildroot.org/downloads/} and extract it. However in this
 case, you won't be able to use {\em Git} to visualize your changes and
 keep track of them.
 
 Go into the newly created \code{buildroot} directory.
 
-We're going to start a branch from the {\em 2015.02} Buildroot
+We're going to start a branch from the {\em 2015.08.1} Buildroot
 release, with which this training has been tested.
 
 \begin{verbatim}
-git checkout -b felabs 2015.02
+git checkout -b felabs 2015.08.1
 \end{verbatim}
 
 \section{Configuring Buildroot}
@@ -149,8 +149,8 @@ Now, let's do the configuration:
 
   \item By default, the most recent Linux kernel version available at
     the time of the Buildroot release is used. In our case, we want to
-    use a specific version: \code{4.0}. So select \code{Custom
-      version} as the \code{Kernel version}, and enter \code{4.0} in
+    use a specific version: \code{4.2}. So select \code{Custom
+      version} as the \code{Kernel version}, and enter \code{4.2} in
     the \code{Kernel version} text field that appears.
 
   \item Now, we need to define which kernel configuration to
@@ -158,7 +158,7 @@ Now, let's do the configuration:
     the kernel sources themselves, called a {\em defconfig}. To
     identify which {\em defconfig} to use, you can look in the kernel
     sources directly, at
-    \url{http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/configs/?id=v4.0}. In
+    \url{http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/configs/?id=v4.2}. In
     practice, for this platform, it is not trivial to find which one
     to use: the AM335x processor is supported in the Linux kernel as
     part of the support for many other Texas Instruments processors:
@@ -180,8 +180,8 @@ Now, let's do the configuration:
     describe the hardware. The BeagleBone Black is in this situation,
     so you'll have to enable the \code{Build a Device Tree Blob}
     option. At
-    \url{http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/?id=v4.0},
-    you can see the list of all Device Tree files available in the 4.0
+    \url{http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/?id=v4.2},
+    you can see the list of all Device Tree files available in the 4.2
     Linux kernel (note: the Device Tree files for boards use the
     \code{.dts} extension). The one for the BeagleBone Black is
     \code{am335x-boneblack.dts}. Even if talking about Device Tree is
diff --git a/labs/buildroot-new-packages/buildroot-new-packages.tex b/labs/buildroot-new-packages/buildroot-new-packages.tex
index bbc98fe..eb0c30b 100644
--- a/labs/buildroot-new-packages/buildroot-new-packages.tex
+++ b/labs/buildroot-new-packages/buildroot-new-packages.tex
@@ -160,7 +160,7 @@ However, this patch relies on the Linux kernel {\em joystick
   interface}, that we need to enable. Go to the Linux kernel
 configuration using \code{make linux-menuconfig}, and enable
 \code{CONFIG_INPUT_JOYDEV}. Exit, and make sure to save your kernel
-configuration safely using \code{make linux-update-config}. Restart
+configuration safely using \code{make linux-update-defconfig}. Restart
 the overall build by running \code{make}.
 
 Then reflash your kernel image and root filesystem on the SD card,
@@ -172,14 +172,24 @@ able to control it using the Nunchuk joystick, and fire with the
 
 To finalize the package, add the missing {\em hash file}, so that
 people building this package can be sure they are building the same
-source code. Once the {\em hash file} is added, rebuild the package
-completely by doing \code{make ninvaders-dirclean all}.
+source code. To know the hash, SourceForge provides this information:
+go to the {\em nInvaders} download page, and next to the file name,
+there is a small information icon that will provide the MD5 and SHA1
+hashes. Add both hashes to the hash file.
+
+\begin{center}
+\includegraphics[width=\textwidth]{labs/buildroot-new-packages/hashes-on-sourceforge.pdf}
+\end{center}
+
+Once the {\em hash file} is added, rebuild the package completely by
+doing \code{make ninvaders-dirclean all}.
 
 Look at the build output, and before the \code{ninvaders 0.1.1
   Extracting} step, you should see a message like this:
 
 \begin{verbatim}
-ninvaders-0.1.1.tar.gz: OK (sha256: bfbc5c37870....)
+ninvaders-0.1.1.tar.gz: OK (sha1: ....)
+ninvaders-0.1.1.tar.gz: OK (md5: ....)
 \end{verbatim}
 
 \section{Testing package removal}
diff --git a/slides/sysdev-dev-environment/linux-as-development-os.dia b/labs/buildroot-new-packages/hashes-on-sourceforge.dia
similarity index 73%
copy from slides/sysdev-dev-environment/linux-as-development-os.dia
copy to labs/buildroot-new-packages/hashes-on-sourceforge.dia
index b1bfa9d..c3e16ad 100644
--- a/slides/sysdev-dev-environment/linux-as-development-os.dia
+++ b/labs/buildroot-new-packages/hashes-on-sourceforge.dia
@@ -62,22 +62,22 @@
       </dia:composite>
     </dia:attribute>
   </dia:diagramdata>
-  <dia:layer name="Arrière-plan" visible="true" active="true">
+  <dia:layer name="Background" visible="true" active="true">
     <dia:object type="Standard - Image" version="0" id="O0">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.25,2.75"/>
+        <dia:point val="5.85,7.05895"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="8.2,2.7;19.85,14.35"/>
+        <dia:rectangle val="5.8,7.00895;24.5622,12.3522"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="8.25,2.75"/>
+        <dia:point val="5.85,7.05895"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="11.550001144409178"/>
+        <dia:real val="18.66224479675293"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="11.550001144409178"/>
+        <dia:real val="5.2432084083557129"/>
       </dia:attribute>
       <dia:attribute name="draw_border">
         <dia:boolean val="false"/>
@@ -86,63 +86,57 @@
         <dia:boolean val="true"/>
       </dia:attribute>
       <dia:attribute name="file">
-        <dia:string>#./tux.png#</dia:string>
+        <dia:string>#/tmp/Untitled.png#</dia:string>
       </dia:attribute>
     </dia:object>
-    <dia:object type="Standard - Image" version="0" id="O1">
+    <dia:object type="Standard - Box" version="0" id="O1">
       <dia:attribute name="obj_pos">
-        <dia:point val="40.08,5.97"/>
+        <dia:point val="22.9254,10.0832"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="40.03,5.92;45.35,11.24"/>
+        <dia:rectangle val="22.8754,10.0332;23.6887,10.9622"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="40.08,5.97"/>
+        <dia:point val="22.9254,10.0832"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="5.2199997901916504"/>
+        <dia:real val="0.71327058333092452"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="5.2199978828430185"/>
+        <dia:real val="0.82893608333053237"/>
       </dia:attribute>
-      <dia:attribute name="draw_border">
+      <dia:attribute name="border_width">
+        <dia:real val="0.10000000149011612"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#cc1f1a"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
         <dia:boolean val="false"/>
       </dia:attribute>
-      <dia:attribute name="keep_aspect">
-        <dia:boolean val="true"/>
+      <dia:attribute name="line_style">
+        <dia:enum val="1"/>
       </dia:attribute>
-      <dia:attribute name="file">
-        <dia:string>#./tux.png#</dia:string>
+      <dia:attribute name="dashlength">
+        <dia:real val="0.10000000000000014"/>
       </dia:attribute>
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O2">
       <dia:attribute name="obj_pos">
-        <dia:point val="20.2,8.55"/>
+        <dia:point val="23.2724,12.7628"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="19.1974,6.02669;40.7026,11.0233"/>
+        <dia:rectangle val="22.9171,10.8004;23.6407,12.8131"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="20.2,8.55"/>
-        <dia:point val="39.7,8.5"/>
+        <dia:point val="23.2724,12.7628"/>
+        <dia:point val="23.2821,10.9122"/>
       </dia:attribute>
       <dia:attribute name="numcp">
-        <dia:int val="1"/>
+        <dia:int val="2"/>
       </dia:attribute>
       <dia:attribute name="line_color">
-        <dia:color val="#add8e6"/>
-      </dia:attribute>
-      <dia:attribute name="line_width">
-        <dia:real val="2"/>
-      </dia:attribute>
-      <dia:attribute name="start_arrow">
-        <dia:enum val="22"/>
-      </dia:attribute>
-      <dia:attribute name="start_arrow_length">
-        <dia:real val="0.5"/>
-      </dia:attribute>
-      <dia:attribute name="start_arrow_width">
-        <dia:real val="0.5"/>
+        <dia:color val="#cc1f1a"/>
       </dia:attribute>
       <dia:attribute name="end_arrow">
         <dia:enum val="22"/>
@@ -153,33 +147,37 @@
       <dia:attribute name="end_arrow_width">
         <dia:real val="0.5"/>
       </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="1" to="O1" connection="6"/>
+      </dia:connections>
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O3">
       <dia:attribute name="obj_pos">
-        <dia:point val="29.45,8.9"/>
+        <dia:point val="23.1953,13.4375"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="29.45,7.85;30.6775,9.1675"/>
+        <dia:rectangle val="20.7753,12.8425;25.6153,14.39"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#:-)#</dia:string>
+            <dia:string>#Click here to
+see the hashes#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
-            <dia:font family="Liberation Sans" style="0" name="Courier"/>
+            <dia:font family="sans" style="0" name="Helvetica"/>
           </dia:attribute>
           <dia:attribute name="height">
-            <dia:real val="1.411111056804657"/>
+            <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="29.45,8.9"/>
+            <dia:point val="23.1953,13.4375"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="0"/>
+            <dia:enum val="1"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
diff --git a/labs/buildroot-rootfs/buildroot-rootfs.tex b/labs/buildroot-rootfs/buildroot-rootfs.tex
index 4373b9a..848b747 100644
--- a/labs/buildroot-rootfs/buildroot-rootfs.tex
+++ b/labs/buildroot-rootfs/buildroot-rootfs.tex
@@ -271,14 +271,7 @@ build log, you should see the file \code{wiichuck.c} being compiled.
 However, the change of the configuration has only been made in the
 build directory of the Linux kernel, which gets removed when you do a
 \code{make clean}. Since we want to make this configuration
-persistent, we have to do a few more steps. It turns out unfortunately
-that Buildroot 2015.02 had a bug that prevented from doing the
-following steps properly. So you first need to apply a few patches to
-your Buildroot tree:
-
-\begin{verbatim}
-git am $HOME/buildroot-labs/buildroot-rootfs/buildroot/*.patch
-\end{verbatim}
+persistent, we have to do a few more steps.
 
 Then you can actually save your kernel configuration to a custom file:
 
@@ -296,9 +289,10 @@ Then you can actually save your kernel configuration to a custom file:
 
 \item Exit \code{menuconfig}
 
-\item Run \code{make linux-update-config}. This will update the
+\item Run \code{make linux-update-defconfig}. This will generate the
   configuration file in
-  \code{board/felabs/beagleboneblack/linux.config}. In this file,
+  \code{board/felabs/beagleboneblack/linux.config}. It will be a {\em
+    minimal} configuration file (i.e a {\em defconfig}). In this file,
   verify that the option \code{CONFIG_JOYSTICK_WIICHUCK} is properly
   set to \code{y}.
 




More information about the training-materials-updates mailing list