Skip to contentSkip to conversation

Fun with Minnowboard Turot

PATCH Superseded Ezequiel Garcia 3 participants 19 messages Apr 12, 2016 – Apr 13, 2016

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover Fun with Minnowboard Turot

Recently got myself a Minnowboard Turot board and have been goofing around with it. The Minnowboard Turot is compatible with the Minnowboard MAX board, so I've reused the defconfig and board stuff.

These four patches are the result of some experiments; first two patches use genimage to generate an SD card image.

The third patch extends the Minnowboard MAX kernel config, so the system has more capabilities.

The last patch adds a graphical defconfig. I believe this is a quite cool board, and it's nice to show how easy we can produce a graphical X-based platform using Buildroot.

Feedback welcome!

Ezequiel Garcia (4):
board/minnowboard-max: Rework to generate SD card image board/minnowboard: Rework to generate SD card image board/minnowboard-max: Add more peripherals and features to the kernel board/minnowboard-max: Add a X-based graphical defconfig

 board/minnowboard-max/asound.conf           |   2 +
 board/minnowboard-max/genimage.cfg          |  34 ++++
 board/minnowboard-max/linux.config          |  17 ++
 board/minnowboard-max/post-build.sh         |  20 +++
 board/minnowboard-max/post-image.sh         |  13 ++
 board/minnowboard-max/readme.txt            |  39 ++---
 board/minnowboard-max/startx                | 239 ++++++++++++++++++++++++++++
 board/minnowboard/genimage.cfg              |  34 ++++
 board/minnowboard/post-image.sh             |  13 ++
 board/minnowboard/readme.txt                |  39 ++---
 configs/minnowboard_defconfig               |   8 +
 configs/minnowboard_max_defconfig           |   8 +
 configs/minnowboard_max_graphical_defconfig |  78 +++++++++
 13 files changed, 490 insertions(+), 54 deletions(-)
 create mode 100644 board/minnowboard-max/asound.conf
 create mode 100644 board/minnowboard-max/genimage.cfg
 create mode 100755 board/minnowboard-max/post-image.sh
 create mode 100755 board/minnowboard-max/startx
 create mode 100644 board/minnowboard/genimage.cfg
 create mode 100755 board/minnowboard/post-image.sh
 create mode 100644 configs/minnowboard_max_graphical_defconfig
Signature · 1 line
2.7.0
#1 lore raw

PATCH 1/4 board/minnowboard-max: Rework to generate SD card image

Let's rework the board and config files to use genimage to generate the SD card image directly.

---
 board/minnowboard-max/genimage.cfg  | 34 ++++++++++++++++++++++++++++++++
 board/minnowboard-max/post-image.sh | 13 +++++++++++++
 board/minnowboard-max/readme.txt    | 39 ++++++++++++-------------------------
 configs/minnowboard_max_defconfig   |  8 ++++++++
 4 files changed, 67 insertions(+), 27 deletions(-)
 create mode 100644 board/minnowboard-max/genimage.cfg
 create mode 100755 board/minnowboard-max/post-image.sh
board/minnowboard-max/genimage.cfg new file +34 -0
new file mode 100644
index 000000000000..6cf787430752
@@ -0,0 +1,34 @@
+# Create an image of the efi partition
+image efi-part.vfat {
+	vfat {
+		file startup.nsh {
+			image = "efi-part/startup.nsh"
+		}
+		file EFI {
+			image = "efi-part/EFI"
+		}
+		file bzImage {
+			image = "bzImage"
+		}
+	}
+	size=10M
+}
+
+# Create the sdcard image, pulling in
+#  * the image created by buildroot
+#  * the efi-partition created above
+image sdcard.img {
+	hdimage {
+	}
+
+	partition boot {
+		partition-type = 0xEF
+		image = "efi-part.vfat"
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		image = "rootfs.ext4"
+		size = 512M
+	}
+}
board/minnowboard-max/post-image.sh new file +13 -0
new file mode 100755
index 000000000000..e90dd6b8cf10
@@ -0,0 +1,13 @@
+#!/bin/sh -e
+
+GENIMAGE_CFG="board/minnowboard-max/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}"
board/minnowboard-max/readme.txt +12 -27
index 5f52369b97d6..dfad2aba2123 100644
@@ -1,40 +1,25 @@
-Prepare the SD card for the Minnow Board MAX
+How to get started with the Minnow Board MAX
 ============================================
 
- 1. Partition the SD card with a GPT partition table
+1. Build
 
-    sudo cgdisk /dev/mmcblk0
+  Apply the defconfig:
 
-    Create two partitions:
+  $ make minnowboard_max_defconfig
 
-     a) First partition of a few dozens of megabytes, which will be
-        used to store the bootloader and the kernel image. Type must
-        be EF00 (EFI partition).
+  Add any additional packages required and build:
 
-     b) Second partition of any size, which will be used to store the
-        root filesystem. Type must be 8300 (Linux filesystem)
+  $ make
 
- 2. Prepare the boot partition
+2. Write the SD card
 
-    We will format it, mount it, copy the EFI data generated by
-    Buildroot, and the kernel image.
+  The build process will create a SD card image in output/images.
+  Write the image to an mSD card, insert into the Minnowboard MAX
+  and power the board on.
 
-    sudo mkfs.vfat -F 32 -n boot /dev/mmcblk0p1
-    sudo mount /dev/mmcblk0p1 /mnt
-    sudo cp -a output/images/efi-part/* /mnt/
-    sudo cp output/images/bzImage /mnt/
-    sudo umount /mnt
+  $ dd if=output/images/sdcard.img of=/dev/mmcblk0; sync
 
- 3. Prepare the root partition
-
-    We will format it, mount it, and extract the root filesystem.
-
-    sudo mkfs.ext4 -L root /dev/mmcblk0p2
-    sudo mount /dev/mmcblk0p2 /mnt
-    sudo tar -C /mnt -xf output/images/rootfs.tar
-    sudo umount /mnt
-
- 4. Enjoy
+3. Enjoy
 
 Additional information about this board can be found at
 http://www.minnowboard.org/ or http://wiki.minnowboard.org/MinnowBoard_MAX
configs/minnowboard_max_defconfig +8 -0
index 98996db958ff..47f7d4e96a55 100644
@@ -5,9 +5,12 @@ BR2_x86_atom=y
 # Misc
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard-max/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard-max/post-image.sh"
 
 # Linux headers same as kernel, a 4.4 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
 
 # Needed for ethernet
 BR2_PACKAGE_LINUX_FIRMWARE=y
@@ -23,3 +26,8 @@ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard-max/linux.config"
 # Bootloader
 BR2_TARGET_GRUB2=y
 BR2_TARGET_GRUB2_X86_64_EFI=y
+
+# Filesystem image
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
Signature · 1 line
2.7.0
#2 lore raw

PATCH 1/4 board/minnowboard-max: Rework to generate SD card image

Quoted 4 lines · Ezequiel Garcia

Let's rework the board and config files to use genimage to generate the SD card image directly.

Quoted 3 lines
---
  board/minnowboard-max/genimage.cfg  | 34 ++++++++++++++++++++++++++++++++
  board/minnowboard-max/post-image.sh | 13 +++++++++++++

If you feel up to it: I think it would be nice to add an fs/genimage infra
that runs genimage at the end of the build with a user-specified config file. All the post-image scripts we have for the defconfigs are identical.

Regards,
Arnout

Quoted 5 lines
  board/minnowboard-max/readme.txt    | 39 ++++++++++++-------------------------
  configs/minnowboard_max_defconfig   |  8 ++++++++
  4 files changed, 67 insertions(+), 27 deletions(-)

create mode 100644 board/minnowboard-max/genimage.cfg create mode 100755 board/minnowboard-max/post-image.sh

[snip]

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#3 lore raw

PATCH 1/4 board/minnowboard-max: Rework to generate SD card image

Quoted 10 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

Quoted 4 lines · Ezequiel Garcia

Let's rework the board and config files to use genimage to generate the SD card image directly.

Quoted 8 lines
Quoted 3 lines

---
board/minnowboard-max/genimage.cfg | 34 ++++++++++++++++++++++++++++++++ board/minnowboard-max/post-image.sh | 13 +++++++++++++

If you feel up to it: I think it would be nice to add an fs/genimage
infra that runs genimage at the end of the build with a user-specified config file. All the post-image scripts we have for the defconfigs are identical.

Yes, I also think the time has come to add support for this. Perhaps we should also add explicit sub options to pull in the needed dependencies (E.G. host-dosfstools/mtools for vfat, host-mtd for jffs2/ubifs, .. which isn't directly obvious).

Signature · 1 line
Bye, Peter Korsgaard
#4 lore raw

PATCH 1/4 board/minnowboard-max: Rework to generate SD card image

Quoted 14 lines · Peter Korsgaard
Quoted 13 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

Quoted 4 lines · Ezequiel Garcia

Let's rework the board and config files to use genimage to generate the SD card image directly.

Quoted 3 lines

---
board/minnowboard-max/genimage.cfg | 34 ++++++++++++++++++++++++++++++++ board/minnowboard-max/post-image.sh | 13 +++++++++++++

Quoted 6 lines
Quoted 4 lines

If you feel up to it: I think it would be nice to add an fs/genimage
infra that runs genimage at the end of the build with a user-specified config file. All the post-image scripts we have for the defconfigs are identical.

Yes, I also think the time has come to add support for this.

I've just sent a patchset :-)

Quoted 5 lines

Perhaps we
should also add explicit sub options to pull in the needed dependencies (E.G. host-dosfstools/mtools for vfat, host-mtd for jffs2/ubifs, .. which isn't directly obvious).

Yeah, I thought about this, but went for the KISS (lazy?) option: just keep the stuff as it is, and add the infra to make only the genimage call.

Signature · 2 lines
Ezequiel Garc?a, VanguardiaSur
www.vanguardiasur.com.ar
#5 lore raw

PATCH 1/4 board/minnowboard-max: Rework to generate SD card image

In reply to Ezequiel Garcia
Quoted 12 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Ezequiel" == Ezequiel Garcia <[email protected]> writes:

Let's rework the board and config files to use genimage to generate the SD card image directly.

configs/minnowboard_max_defconfig +0 -0
index 98996db958ff..47f7d4e96a55 100644

configs/minnowboard_max_defconfig BR2_x86_atom=y · line 13

Quoted 9 lines
configs/minnowboard_max_defconfig +3 -0
@@ -5,9 +5,12 @@ BR2_x86_atom=y
 # Misc
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard-max/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard-max/post-image.sh"
 
 # Linux headers same as kernel, a 4.4 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y

The vfat handling also uses mcopy, so we also need BR2_PACKAGE_HOST_MTOOLS=y.

Committed with that fixed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#6 lore raw

PATCH 2/4 board/minnowboard: Rework to generate SD card image

In reply to Ezequiel Garcia

Let's rework the board and config files to use genimage to generate the SD card image directly.

---
 board/minnowboard/genimage.cfg  | 34 ++++++++++++++++++++++++++++++++++
 board/minnowboard/post-image.sh | 13 +++++++++++++
 board/minnowboard/readme.txt    | 39 ++++++++++++---------------------------
 configs/minnowboard_defconfig   |  8 ++++++++
 4 files changed, 67 insertions(+), 27 deletions(-)
 create mode 100644 board/minnowboard/genimage.cfg
 create mode 100755 board/minnowboard/post-image.sh
board/minnowboard/genimage.cfg new file +34 -0
new file mode 100644
index 000000000000..6cf787430752
@@ -0,0 +1,34 @@
+# Create an image of the efi partition
+image efi-part.vfat {
+	vfat {
+		file startup.nsh {
+			image = "efi-part/startup.nsh"
+		}
+		file EFI {
+			image = "efi-part/EFI"
+		}
+		file bzImage {
+			image = "bzImage"
+		}
+	}
+	size=10M
+}
+
+# Create the sdcard image, pulling in
+#  * the image created by buildroot
+#  * the efi-partition created above
+image sdcard.img {
+	hdimage {
+	}
+
+	partition boot {
+		partition-type = 0xEF
+		image = "efi-part.vfat"
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		image = "rootfs.ext4"
+		size = 512M
+	}
+}
board/minnowboard/post-image.sh new file +13 -0
new file mode 100755
index 000000000000..428baa5e5599
@@ -0,0 +1,13 @@
+#!/bin/sh -e
+
+GENIMAGE_CFG="board/minnowboard/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}"
board/minnowboard/readme.txt +12 -27
index 62ffa92e0b83..3a24fdc162b8 100644
@@ -1,40 +1,25 @@
-Prepare the SD card for the Minnow Board
+How to get started with the MinnowBoard
 ========================================
 
- 1. Partition the SD card with a GPT partition table
+1. Build
 
-    sudo cgdisk /dev/mmcblk0
+  Apply the defconfig:
 
-    Create two partitions:
+  $ make minnowboard_defconfig
 
-     a) First partition of a few dozens of megabytes, which will be
-        used to store the bootloader and the kernel image. Type must
-        be EF00 (EFI partition).
+  Add any additional packages required and build:
 
-     b) Second partition of any size, which will be used to store the
-        root filesystem. Type must be 8300 (Linux filesystem)
+  $ make
 
- 2. Prepare the boot partition
+2. Write the SD card
 
-    We will format it, mount it, copy the EFI data generated by
-    Buildroot, and the kernel image.
+  The build process will create a SD card image in output/images.
+  Write the image to an mSD card, insert into the MinnowBoard
+  and power the board on.
 
-    sudo mkfs.vfat -F 32 -n boot /dev/mmcblk0p1
-    sudo mount /dev/mmcblk0p1 /mnt
-    sudo cp -a output/images/efi-part/* /mnt/
-    sudo cp output/images/bzImage /mnt/
-    sudo umount /mnt
+  $ dd if=output/images/sdcard.img of=/dev/mmcblk0; sync
 
- 3. Prepare the root partition
-
-    We will format it, mount it, and extract the root filesystem.
-
-    sudo mkfs.ext3 -L root /dev/mmcblk0p2
-    sudo mount /dev/mmcblk0p2 /mnt
-    sudo tar -C /mnt -xf output/images/rootfs.tar
-    sudo umount /mnt
-
- 4. Enjoy
+3. Enjoy
 
 Additional information about this board can be found at
 http://www.minnowboard.org/.
configs/minnowboard_defconfig +8 -0
index 3091957f35dc..3a5e18ea0ceb 100644
@@ -5,9 +5,12 @@ BR2_x86_atom=y
 # Misc
 BR2_TARGET_GENERIC_GETTY_PORT="ttyPCH0"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard/post-image.sh"
 
 # Linux headers same as kernel, a 3.8 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_8=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
 
 # Linux kernel
 BR2_LINUX_KERNEL=y
@@ -20,3 +23,8 @@ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard/linux-3.8.config"
 # Bootloader
 BR2_TARGET_GRUB2=y
 BR2_TARGET_GRUB2_I386_EFI=y
+
+# Filesystem image
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
Signature · 1 line
2.7.0
#7 lore raw

PATCH 2/4 board/minnowboard: Rework to generate SD card image

Quoted 4 lines · Ezequiel Garcia

Let's rework the board and config files to use genimage to generate the SD card image directly.

Instead of this patch, wouldn't it be nicer to unify the minnowboard and
minnowboard-max directories? Or at least, make the genimage.cfg, post-image.sh and readme.txt a symlink to the -max equivalent (grub.cfg and linux.config are different).

Regards,
Arnout

Quoted 8 lines
---
  board/minnowboard/genimage.cfg  | 34 ++++++++++++++++++++++++++++++++++
  board/minnowboard/post-image.sh | 13 +++++++++++++
  board/minnowboard/readme.txt    | 39 ++++++++++++---------------------------
  configs/minnowboard_defconfig   |  8 ++++++++
  4 files changed, 67 insertions(+), 27 deletions(-)

create mode 100644 board/minnowboard/genimage.cfg create mode 100755 board/minnowboard/post-image.sh

[snip]

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#8 lore raw

PATCH 2/4 board/minnowboard: Rework to generate SD card image

Quoted 5 lines · Arnout Vandecappelle
Quoted 4 lines · Ezequiel Garcia

Let's rework the board and config files to use genimage to generate the SD card image directly.

Quoted 8 lines
Quoted 1 line

Instead of this patch, wouldn't it be nicer to unify the minnowboard and
minnowboard-max directories? Or at least, make the genimage.cfg, post-image.sh and readme.txt a symlink to the -max equivalent (grub.cfg and linux.config are different).

Yeah, that's a good idea. I'll see what I can do.

Signature · 2 lines
Ezequiel Garc?a, VanguardiaSur
www.vanguardiasur.com.ar
#9 lore raw

PATCH 3/4 board/minnowboard-max: Add more peripherals and features to the kernel

In reply to Ezequiel Garcia

This commit enables support for:
* HDMI audio
* Support for user-provided EDID firmware
(useful to workaround broken monitors)
* Evdev interface
* System V IPC (required by ALSA)
* POSIX message queue
* fhandle syscall
* cgroups

The options are quite common and make the system more useful.

---
 board/minnowboard-max/linux.config | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
board/minnowboard-max/linux.config +17 -0
index abb7fdce9861..f80170b9b81d 100644
@@ -1,4 +1,8 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_FHANDLE=y
 CONFIG_NO_HZ=y
+CONFIG_CGROUPS=y
 CONFIG_SMP=y
 CONFIG_X86_INTEL_LPSS=y
 CONFIG_MATOM=y
@@ -13,12 +17,15 @@ CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
 CONFIG_INET=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_ATA=y
 CONFIG_SATA_AHCI=y
 CONFIG_ATA_PIIX=y
 CONFIG_NETDEVICES=y
 CONFIG_R8169=y
+CONFIG_INPUT_EVDEV=y
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_DW=y
@@ -33,7 +40,15 @@ CONFIG_GPIOLIB=y
 CONFIG_GPIO_SYSFS=y
 CONFIG_AGP=y
 CONFIG_DRM=y
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
 CONFIG_DRM_I915=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_INTEL=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_NOP_USB_XCEIV=y
@@ -44,3 +59,5 @@ CONFIG_MMC_SDHCI_ACPI=y
 CONFIG_PWM=y
 CONFIG_PWM_LPSS=y
 CONFIG_EXT4_FS=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_TMPFS_POSIX_ACL=y
Signature · 1 line
2.7.0
#10 lore raw

PATCH 3/4 board/minnowboard-max: Add more peripherals and features to the kernel

Quoted 9 lines · Ezequiel Garcia

This commit enables support for:
* HDMI audio
* Support for user-provided EDID firmware
(useful to workaround broken monitors)
* Evdev interface
* System V IPC (required by ALSA)
* POSIX message queue
* fhandle syscall
* cgroups

Why cgroups?

Quoted 22 lines

The options are quite common and make the system more useful.

---
  board/minnowboard-max/linux.config | 17 +++++++++++++++++
  1 file changed, 17 insertions(+)
board/minnowboard-max/linux.config +4 -0
index abb7fdce9861..f80170b9b81d 100644
@@ -1,4 +1,8 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_FHANDLE=y
  CONFIG_NO_HZ=y
+CONFIG_CGROUPS=y
  CONFIG_SMP=y
  CONFIG_X86_INTEL_LPSS=y
  CONFIG_MATOM=y

board/minnowboard-max/linux.config CONFIG_NET=y · line 21

Quoted 5 lines
board/minnowboard-max/linux.config +2 -0
@@ -13,12 +17,15 @@ CONFIG_NET=y
  CONFIG_PACKET=y
  CONFIG_UNIX=y
  CONFIG_INET=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y

This is added automatically by Buildroot. That said, it's better if it's
already in the defconfig.

Quoted 27 lines
board/minnowboard-max/linux.config +9 -0
  CONFIG_CHR_DEV_SG=y
  CONFIG_ATA=y
  CONFIG_SATA_AHCI=y
  CONFIG_ATA_PIIX=y
  CONFIG_NETDEVICES=y
  CONFIG_R8169=y
+CONFIG_INPUT_EVDEV=y
  CONFIG_SERIAL_8250=y
  CONFIG_SERIAL_8250_CONSOLE=y
  CONFIG_SERIAL_8250_DW=y
@@ -33,7 +40,15 @@ CONFIG_GPIOLIB=y
  CONFIG_GPIO_SYSFS=y
  CONFIG_AGP=y
  CONFIG_DRM=y
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
  CONFIG_DRM_I915=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_INTEL=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
  CONFIG_USB=y
  CONFIG_USB_XHCI_HCD=y
  CONFIG_NOP_USB_XCEIV=y

board/minnowboard-max/linux.config CONFIG_MMC_SDHCI_ACPI=y · line 62

Quoted 4 lines
board/minnowboard-max/linux.config +1 -0
@@ -44,3 +59,5 @@ CONFIG_MMC_SDHCI_ACPI=y
  CONFIG_PWM=y
  CONFIG_PWM_LPSS=y
  CONFIG_EXT4_FS=y
+CONFIG_AUTOFS4_FS=y

Why?

board/minnowboard-max/linux.config CONFIG_MMC_SDHCI_ACPI=y · line 63

Quoted 1 line
board/minnowboard-max/linux.config +1 -0
+CONFIG_TMPFS_POSIX_ACL=y

Why?

Regards,
Arnout

Quoted 1 line
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#11 lore raw

PATCH 3/4 board/minnowboard-max: Add more peripherals and features to the kernel

Quoted 13 lines · Arnout Vandecappelle
Quoted 10 lines · Ezequiel Garcia

This commit enables support for:
* HDMI audio
* Support for user-provided EDID firmware
(useful to workaround broken monitors)
* Evdev interface
* System V IPC (required by ALSA)
* POSIX message queue
* fhandle syscall
* cgroups

Quoted 2 lines

Why cgroups?

Well, in fact... the commit log is not correct. My initial intention was to add IPC (required by ALSA), HDMI audio and evdev.

As you can imagine, the goal was to play supertuxkart.

The rest of the configs got added by Buildroot, because of the systemd presence:

$ cat linux/linux.mk
[..]
        $(if $(BR2_PACKAGE_SYSTEMD),
                $(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS,$(@D)/.config)
                $(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER,$(@D)/.config)
                $(call KCONFIG_ENABLE_OPT,CONFIG_FHANDLE,$(@D)/.config)
                $(call KCONFIG_ENABLE_OPT,CONFIG_AUTOFS4_FS,$(@D)/.config)
                $(call KCONFIG_ENABLE_OPT,CONFIG_TMPFS_POSIX_ACL,$(@D)/.config)
                $(call
KCONFIG_ENABLE_OPT,CONFIG_TMPFS_POSIX_XATTR,$(@D)/.config))

Same goes for devtmpfs, but that's a different matter. I suppose I was originally working with BR2_ROOTFS_DEVICE_CREATION_STATIC=y and so carried the options (not needed with systemd of course).

They options got here because I manually added the new options and updated the config from a defconfig using savedefconfig.

Anyway: I don't care at all about them, I just want audio and evdev :-)

Regarding using systemd, I'll reply to the other patch.

Quoted 87 lines
Quoted 23 lines

The options are quite common and make the system more useful.

---
  board/minnowboard-max/linux.config | 17 +++++++++++++++++
  1 file changed, 17 insertions(+)
board/minnowboard-max/linux.config +4 -0
index abb7fdce9861..f80170b9b81d 100644
@@ -1,4 +1,8 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_FHANDLE=y
  CONFIG_NO_HZ=y
+CONFIG_CGROUPS=y
  CONFIG_SMP=y
  CONFIG_X86_INTEL_LPSS=y
  CONFIG_MATOM=y

board/minnowboard-max/linux.config CONFIG_NET=y · line 21

Quoted 5 lines
board/minnowboard-max/linux.config +2 -0
@@ -13,12 +17,15 @@ CONFIG_NET=y
  CONFIG_PACKET=y
  CONFIG_UNIX=y
  CONFIG_INET=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y

This is added automatically by Buildroot. That said, it's better if it's
already in the defconfig.

Quoted 27 lines
board/minnowboard-max/linux.config +9 -0
  CONFIG_CHR_DEV_SG=y
  CONFIG_ATA=y
  CONFIG_SATA_AHCI=y
  CONFIG_ATA_PIIX=y
  CONFIG_NETDEVICES=y
  CONFIG_R8169=y
+CONFIG_INPUT_EVDEV=y
  CONFIG_SERIAL_8250=y
  CONFIG_SERIAL_8250_CONSOLE=y
  CONFIG_SERIAL_8250_DW=y
@@ -33,7 +40,15 @@ CONFIG_GPIOLIB=y
  CONFIG_GPIO_SYSFS=y
  CONFIG_AGP=y
  CONFIG_DRM=y
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
  CONFIG_DRM_I915=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_HDA_INTEL=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
  CONFIG_USB=y
  CONFIG_USB_XHCI_HCD=y
  CONFIG_NOP_USB_XCEIV=y

board/minnowboard-max/linux.config CONFIG_MMC_SDHCI_ACPI=y · line 62

Quoted 4 lines
board/minnowboard-max/linux.config +1 -0
@@ -44,3 +59,5 @@ CONFIG_MMC_SDHCI_ACPI=y
  CONFIG_PWM=y
  CONFIG_PWM_LPSS=y
  CONFIG_EXT4_FS=y
+CONFIG_AUTOFS4_FS=y

Why?

board/minnowboard-max/linux.config CONFIG_MMC_SDHCI_ACPI=y · line 63

Quoted 1 line
board/minnowboard-max/linux.config +1 -0
+CONFIG_TMPFS_POSIX_ACL=y

Why?

Regards,
Arnout

Quoted 2 lines

--

Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
Signature · 2 lines
Ezequiel Garc?a, VanguardiaSur
www.vanguardiasur.com.ar
#12 lore raw

PATCH 3/4 board/minnowboard-max: Add more peripherals and features to the kernel

Quoted 19 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Ezequiel" == Ezequiel Garcia <[email protected]> writes:

Quoted 13 lines · Arnout Vandecappelle
Quoted 10 lines · Ezequiel Garcia

This commit enables support for:
* HDMI audio
* Support for user-provided EDID firmware
(useful to workaround broken monitors)
* Evdev interface
* System V IPC (required by ALSA)
* POSIX message queue
* fhandle syscall
* cgroups

Quoted 2 lines

Why cgroups?

Quoted 7 lines

Well, in fact... the commit log is not correct. My initial intention was to add IPC (required by ALSA), HDMI audio and evdev.

As you can imagine, the goal was to play supertuxkart.

The rest of the configs got added by Buildroot, because of the systemd presence:

Ok, will you send a new version with only the needed changes?

Thanks.

Signature · 1 line
Bye, Peter Korsgaard
#13 lore raw

PATCH 3/4 board/minnowboard-max: Add more peripherals and features to the kernel

Quoted 22 lines · Peter Korsgaard
Quoted 21 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Ezequiel" == Ezequiel Garcia <[email protected]> writes:

Quoted 13 lines · Arnout Vandecappelle
Quoted 10 lines · Ezequiel Garcia

This commit enables support for:
* HDMI audio
* Support for user-provided EDID firmware
(useful to workaround broken monitors)
* Evdev interface
* System V IPC (required by ALSA)
* POSIX message queue
* fhandle syscall
* cgroups

Quoted 2 lines

Why cgroups?

Well, in fact... the commit log is not correct. My initial intention was to add IPC (required by ALSA), HDMI audio and evdev.

Quoted 7 lines
Quoted 4 lines

As you can imagine, the goal was to play supertuxkart.

The rest of the configs got added by Buildroot, because of the systemd presence:

Ok, will you send a new version with only the needed changes?

Yup.

Signature · 2 lines
Ezequiel Garc?a, VanguardiaSur
www.vanguardiasur.com.ar
#14 lore raw

PATCH 4/4 board/minnowboard-max: Add a X-based graphical defconfig

In reply to Ezequiel Garcia

This commit adds a new defconfig to build a X-based graphical system for the MinnowboardMax board.

* The 'openbox' windows manager is chosen because it's simple and lightweigth.

* Basic X apps are enabled (such as xrandr, xterm), so we can at least get a console and change video mode.

* ALSA default configuration is provided, so HDMI audio works out-of-the-box.

* Systemd is chosen as the init system because... you know ;)

* ... and finally, OpenGL support is provided.

Tested on Minnoboard Turot (which is Minnowboard Max compatible).

---
 board/minnowboard-max/asound.conf           |   2 +
 board/minnowboard-max/post-build.sh         |  20 +++
 board/minnowboard-max/startx                | 239 ++++++++++++++++++++++++++++
 configs/minnowboard_max_graphical_defconfig |  78 +++++++++
 4 files changed, 339 insertions(+)
 create mode 100644 board/minnowboard-max/asound.conf
 create mode 100755 board/minnowboard-max/startx
 create mode 100644 configs/minnowboard_max_graphical_defconfig
board/minnowboard-max/asound.conf new file +2 -0
new file mode 100644
index 000000000000..8947748052e5
@@ -0,0 +1,2 @@
+defaults.pcm.card 0
+defaults.pcm.device 3
board/minnowboard-max/post-build.sh +20 -0
index 9f86d390f2ef..9156233404f8 100755
@@ -1,2 +1,22 @@
 #!/bin/sh
+
+# Install grub config to the EFI part template
 cp board/minnowboard-max/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg
+
+# Tell systemd we want a login shell on tty0
+ln -sf ${TARGET_DIR}/usr/lib/systemd/system/getty at .service ${TARGET_DIR}/etc/systemd/system/getty.target.wants/getty at tty0.service
+
+# Setup xinitrc
+echo "exec /usr/bin/openbox-session" > ${TARGET_DIR}/root/.xinitrc
+
+# Fixup startx so it doesn't start X on the controlling
+# virtual console. Apparently, this is a bug and we are
+# affected for our lack of a Display Manager.
+# See https://bugs.freedesktop.org/show_bug.cgi?id=87762
+#
+# I haven't found a way to do this without hacking startx
+# itself, so...
+cp board/minnowboard-max/startx ${TARGET_DIR}/usr/bin/startx
+
+# Customize ALSA: the HDMI PCM is at card=0, device=3 (i.e. hw:0,3)
+cp board/minnowboard-max/asound.conf ${TARGET_DIR}/etc/asound.conf
board/minnowboard-max/startx new file +239 -0

239 lines not on this page · raw message

configs/minnowboard_max_graphical_defconfig new file +78 -0

78 lines not on this page · raw message

Signature · 1 line
2.7.0
#15 lore raw

PATCH 4/4 board/minnowboard-max: Add a X-based graphical defconfig

Quoted 6 lines · Ezequiel Garcia

This commit adds a new defconfig to build a X-based graphical system for the MinnowboardMax board.

* The 'openbox' windows manager is chosen because it's simple and lightweigth.

Quoted 7 lines

* Basic X apps are enabled (such as xrandr, xterm), so we can at least get a console and change video mode.

* ALSA default configuration is provided, so HDMI audio works out-of-the-box.

* Systemd is chosen as the init system because... you know ;)

I'm not sure I agree with this one. Even though I like systemd myself, I
really don't think it belongs here.

Quoted 12 lines

* ... and finally, OpenGL support is provided.

Tested on Minnoboard Turot (which is Minnowboard Max compatible).

---
  board/minnowboard-max/asound.conf           |   2 +
  board/minnowboard-max/post-build.sh         |  20 +++
  board/minnowboard-max/startx                | 239 ++++++++++++++++++++++++++++
  configs/minnowboard_max_graphical_defconfig |  78 +++++++++
  4 files changed, 339 insertions(+)
Quoted 3 lines

create mode 100644 board/minnowboard-max/asound.conf create mode 100755 board/minnowboard-max/startx create mode 100644 configs/minnowboard_max_graphical_defconfig

To distinguish between the minimal and the demo defconfigs, perhaps we can
call it minnowboard_max-graphical_defconfig?

board/minnowboard-max/asound.conf line 2

Quoted 9 lines
board/minnowboard-max/asound.conf new file +2 -0
new file mode 100644
index 000000000000..8947748052e5
@@ -0,0 +1,2 @@
+defaults.pcm.card 0
+defaults.pcm.device 3

This should be in an fs-overlay directory and use an fs-overlay.

board/minnowboard-max/post-build.sh line 7

Quoted 12 lines
board/minnowboard-max/post-build.sh +5 -0
index 9f86d390f2ef..9156233404f8 100755
@@ -1,2 +1,22 @@
  #!/bin/sh
+
+# Install grub config to the EFI part template
  cp board/minnowboard-max/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg
+
+# Tell systemd we want a login shell on tty0
+ln -sf ${TARGET_DIR}/usr/lib/systemd/system/getty at .service ${TARGET_DIR}/etc/systemd/system/getty.target.wants/getty at tty0.service

This should also use fs-overlay. It's anyway wrong in its current incarnation,
because you refer to ${TARGET_DIR} in the symlink itself... BTW I prefer relative symlinks.

Also, this should only be done for the big build, not for the minimal build,
so somehow you must distinguish between them. Same below. The fs-overlay is the simplest way to do that.

board/minnowboard-max/post-build.sh line 10

Quoted 3 lines
board/minnowboard-max/post-build.sh +3 -0
+
+# Setup xinitrc
+echo "exec /usr/bin/openbox-session" > ${TARGET_DIR}/root/.xinitrc

Put this in the fs-overlay.

board/minnowboard-max/post-build.sh line 18

Quoted 8 lines
board/minnowboard-max/post-build.sh +8 -0
+
+# Fixup startx so it doesn't start X on the controlling
+# virtual console. Apparently, this is a bug and we are
+# affected for our lack of a Display Manager.
+# See https://bugs.freedesktop.org/show_bug.cgi?id=87762
+#
+# I haven't found a way to do this without hacking startx
+# itself, so...

This comment should be in the startx script itself.

board/minnowboard-max/post-build.sh line 21

Quoted 3 lines
board/minnowboard-max/post-build.sh +3 -0
+cp board/minnowboard-max/startx ${TARGET_DIR}/usr/bin/startx
+
+# Customize ALSA: the HDMI PCM is at card=0, device=3 (i.e. hw:0,3)

Same here.

Quoted 6 lines
board/minnowboard-max/post-build.sh +1 -0
+cp board/minnowboard-max/asound.conf ${TARGET_DIR}/etc/asound.conf
board/minnowboard-max/startx new file +0 -0
new file mode 100755
index 000000000000..3ed32a494654

[snip]

Quoted 30 lines
configs/minnowboard_max_graphical_defconfig new file +24 -0
new file mode 100644
index 000000000000..d66581d925b6
@@ -0,0 +1,78 @@
+# Architecture
+BR2_x86_64=y
+BR2_x86_atom=y
+
+# Toolchain
+BR2_OPTIMIZE_2=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y
+BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
+BR2_GLIBC_VERSION_2_23=y
+BR2_BINUTILS_VERSION_2_26_X=y
+BR2_GCC_VERSION_5_X=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+BR2_ENABLE_LOCALE_PURGE=y
+
+# System config
+BR2_INIT_SYSTEMD=y
+BR2_SYSTEM_BIN_SH_BASH=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
+BR2_SYSTEM_DHCP="enp2s0"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard-max/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard-max/post-image.sh"
+
+# Linux
+BR2_LINUX_KERNEL=y

configs/minnowboard_max_graphical_defconfig line 34

Quoted 10 lines
configs/minnowboard_max_graphical_defconfig new file +10 -0
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard-max/linux.config"
+
+# Packages
+BR2_PACKAGE_ALSA_UTILS=y
+BR2_PACKAGE_ALSA_UTILS_APLAY=y
+BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
+BR2_PACKAGE_GREP=y

Not sure why we would want this. Doesn't it require BUSYBOX_SHOW_OTHERS?

configs/minnowboard_max_graphical_defconfig line 47

Quoted 13 lines
configs/minnowboard_max_graphical_defconfig new file +13 -0
+BR2_PACKAGE_GLMARK2=y
+BR2_PACKAGE_MESA3D_DEMOS=y
+BR2_PACKAGE_FB_TEST_APP=y
+BR2_PACKAGE_MESA3D=y
+BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST=y
+BR2_PACKAGE_MESA3D_DRI_DRIVER_I965=y
+BR2_PACKAGE_XORG7=y
+BR2_PACKAGE_XSERVER_XORG_SERVER=y
+BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX=y
+BR2_PACKAGE_XAPP_XDM=y
+BR2_PACKAGE_XAPP_XINIT=y
+BR2_PACKAGE_XAPP_XRANDR=y
+BR2_PACKAGE_XAPP_XSM=y

Don't we need a terminal as well?

configs/minnowboard_max_graphical_defconfig line 49

Quoted 2 lines
configs/minnowboard_max_graphical_defconfig new file +2 -0
+BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV=y
+BR2_PACKAGE_XDRIVER_XF86_INPUT_JOYSTICK=y

Not sure if joystick is that useful.

configs/minnowboard_max_graphical_defconfig line 62

Quoted 13 lines
configs/minnowboard_max_graphical_defconfig new file +13 -0
+BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD=y
+BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y
+BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL=y
+BR2_PACKAGE_XTERM=y
+BR2_PACKAGE_OPENBOX=y
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
+BR2_PACKAGE_IMLIB2=y
+BR2_PACKAGE_IMLIB2_JPEG=y
+BR2_PACKAGE_IMLIB2_PNG=y
+BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
+BR2_PACKAGE_STARTUP_NOTIFICATION=y
+BR2_PACKAGE_COREUTILS=y

Why?

configs/minnowboard_max_graphical_defconfig line 63

Quoted 1 line
configs/minnowboard_max_graphical_defconfig new file +1 -0
+BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS=y

Why?

configs/minnowboard_max_graphical_defconfig line 64

Quoted 1 line
configs/minnowboard_max_graphical_defconfig new file +1 -0
+BR2_PACKAGE_UTIL_LINUX_MORE=y

Why?

configs/minnowboard_max_graphical_defconfig line 65

Quoted 1 line
configs/minnowboard_max_graphical_defconfig new file +1 -0
+BR2_PACKAGE_LESS=y

I'd like to reorder the packages to put all the X stuff together with a
comment above and, and then all the dev stuff (like bash and less) with a comment.

Regards,
Arnout

Quoted 14 lines
configs/minnowboard_max_graphical_defconfig new file +13 -0
+
+# Filesystem image
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+
+# Bootloader
+BR2_TARGET_GRUB2=y
+BR2_TARGET_GRUB2_X86_64_EFI=y
+
+# Host packages
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#16 lore raw

PATCH 4/4 board/minnowboard-max: Add a X-based graphical defconfig

Quoted 11 lines · Arnout Vandecappelle
Quoted 10 lines · Ezequiel Garcia

This commit adds a new defconfig to build a X-based graphical system for the MinnowboardMax board.

* The 'openbox' windows manager is chosen because it's simple and lightweigth.

* Basic X apps are enabled (such as xrandr, xterm), so we can at least get a console and change video mode.

Quoted 9 lines
Quoted 4 lines

* ALSA default configuration is provided, so HDMI audio works out-of-the-box.

* Systemd is chosen as the init system because... you know ;)

I'm not sure I agree with this one. Even though I like systemd myself, I
really don't think it belongs here.

OK, we can get rid of it. I agree it doesn't belong here.

Quoted 18 lines
Quoted 13 lines

* ... and finally, OpenGL support is provided.

Tested on Minnoboard Turot (which is Minnowboard Max compatible).

---
  board/minnowboard-max/asound.conf           |   2 +
  board/minnowboard-max/post-build.sh         |  20 +++
  board/minnowboard-max/startx                | 239
++++++++++++++++++++++++++++
  configs/minnowboard_max_graphical_defconfig |  78 +++++++++
  4 files changed, 339 insertions(+)
Quoted 3 lines

create mode 100644 board/minnowboard-max/asound.conf create mode 100755 board/minnowboard-max/startx create mode 100644 configs/minnowboard_max_graphical_defconfig

Quoted 3 lines

To distinguish between the minimal and the demo defconfigs, perhaps we can
call it minnowboard_max-graphical_defconfig?

Sure.

Quoted 58 lines

board/minnowboard-max/asound.conf line 2

Quoted 10 lines
board/minnowboard-max/asound.conf new file +2 -0
new file mode 100644
index 000000000000..8947748052e5
@@ -0,0 +1,2 @@
+defaults.pcm.card 0
+defaults.pcm.device 3

This should be in an fs-overlay directory and use an fs-overlay.

Quoted 14 lines
board/minnowboard-max/post-build.sh +2 -0
index 9f86d390f2ef..9156233404f8 100755
@@ -1,2 +1,22 @@
  #!/bin/sh
+
+# Install grub config to the EFI part template
  cp board/minnowboard-max/grub.cfg

${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg

board/minnowboard-max/post-build.sh +3 -0
+
+# Tell systemd we want a login shell on tty0
+ln -sf ${TARGET_DIR}/usr/lib/systemd/system/getty at .service
Quoted 1 line

${TARGET_DIR}/etc/systemd/system/getty.target.wants/getty at tty0.service

This should also use fs-overlay. It's anyway wrong in its current
incarnation, because you refer to ${TARGET_DIR} in the symlink itself... BTW I prefer relative symlinks.

Also, this should only be done for the big build, not for the minimal
build, so somehow you must distinguish between them. Same below. The fs-overlay is the simplest way to do that.

board/minnowboard-max/post-build.sh line 10

Quoted 3 lines
board/minnowboard-max/post-build.sh +3 -0
+
+# Setup xinitrc
+echo "exec /usr/bin/openbox-session" > ${TARGET_DIR}/root/.xinitrc

Put this in the fs-overlay.

board/minnowboard-max/post-build.sh line 18

Quoted 8 lines
board/minnowboard-max/post-build.sh +8 -0
+
+# Fixup startx so it doesn't start X on the controlling
+# virtual console. Apparently, this is a bug and we are
+# affected for our lack of a Display Manager.
+# See https://bugs.freedesktop.org/show_bug.cgi?id=87762
+#
+# I haven't found a way to do this without hacking startx
+# itself, so...

This comment should be in the startx script itself.

Quoted 7 lines

board/minnowboard-max/post-build.sh line 21

Quoted 3 lines
board/minnowboard-max/post-build.sh +3 -0
+cp board/minnowboard-max/startx ${TARGET_DIR}/usr/bin/startx
+
+# Customize ALSA: the HDMI PCM is at card=0, device=3 (i.e. hw:0,3)

Same here.

OK, I'll add a fs-graphical-overlay dir, and use it in this defconfig.

Quoted 45 lines
Quoted 6 lines
board/minnowboard-max/post-build.sh +1 -0
+cp board/minnowboard-max/asound.conf ${TARGET_DIR}/etc/asound.conf
board/minnowboard-max/startx new file +0 -0
new file mode 100755
index 000000000000..3ed32a494654

[snip]

Quoted 36 lines
configs/minnowboard_max_graphical_defconfig new file +29 -0
new file mode 100644
index 000000000000..d66581d925b6
@@ -0,0 +1,78 @@
+# Architecture
+BR2_x86_64=y
+BR2_x86_atom=y
+
+# Toolchain
+BR2_OPTIMIZE_2=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y
+BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
+BR2_GLIBC_VERSION_2_23=y
+BR2_BINUTILS_VERSION_2_26_X=y
+BR2_GCC_VERSION_5_X=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+BR2_ENABLE_LOCALE_PURGE=y
+
+# System config
+BR2_INIT_SYSTEMD=y
+BR2_SYSTEM_BIN_SH_BASH=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
+BR2_SYSTEM_DHCP="enp2s0"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard-max/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard-max/post-image.sh"
+
+# Linux
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard-max/linux.config"
+
Quoted 9 lines

configs/minnowboard_max_graphical_defconfig line 34

Quoted 5 lines
configs/minnowboard_max_graphical_defconfig new file +5 -0
+# Packages
+BR2_PACKAGE_ALSA_UTILS=y
+BR2_PACKAGE_ALSA_UTILS_APLAY=y
+BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
+BR2_PACKAGE_GREP=y

Not sure why we would want this. Doesn't it require BUSYBOX_SHOW_OTHERS?

I think some X or openbox script was using a feature from GNU grep, and I wanted to remove some minor error/warning.

Quoted 8 lines
Quoted 8 lines
configs/minnowboard_max_graphical_defconfig new file +8 -0
+BR2_PACKAGE_GLMARK2=y
+BR2_PACKAGE_MESA3D_DEMOS=y
+BR2_PACKAGE_FB_TEST_APP=y
+BR2_PACKAGE_MESA3D=y
+BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST=y
+BR2_PACKAGE_MESA3D_DRI_DRIVER_I965=y
+BR2_PACKAGE_XORG7=y
+BR2_PACKAGE_XSERVER_XORG_SERVER=y
Quoted 9 lines

configs/minnowboard_max_graphical_defconfig line 47

Quoted 5 lines
configs/minnowboard_max_graphical_defconfig new file +5 -0
+BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX=y
+BR2_PACKAGE_XAPP_XDM=y
+BR2_PACKAGE_XAPP_XINIT=y
+BR2_PACKAGE_XAPP_XRANDR=y
+BR2_PACKAGE_XAPP_XSM=y

Don't we need a terminal as well?

We have one, you are missing:

BR2_PACKAGE_XTERM=y

Quoted 6 lines

configs/minnowboard_max_graphical_defconfig line 49

Quoted 2 lines
configs/minnowboard_max_graphical_defconfig new file +2 -0
+BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV=y
+BR2_PACKAGE_XDRIVER_XF86_INPUT_JOYSTICK=y

Not sure if joystick is that useful.

OK, I'll remove it.

Quoted 24 lines

configs/minnowboard_max_graphical_defconfig line 62

Quoted 13 lines
configs/minnowboard_max_graphical_defconfig new file +13 -0
+BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD=y
+BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y
+BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL=y
+BR2_PACKAGE_XTERM=y
+BR2_PACKAGE_OPENBOX=y
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
+BR2_PACKAGE_IMLIB2=y
+BR2_PACKAGE_IMLIB2_JPEG=y
+BR2_PACKAGE_IMLIB2_PNG=y
+BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
+BR2_PACKAGE_STARTUP_NOTIFICATION=y
+BR2_PACKAGE_COREUTILS=y

Why?

configs/minnowboard_max_graphical_defconfig line 63

Quoted 1 line
configs/minnowboard_max_graphical_defconfig new file +1 -0
+BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS=y

Why?

configs/minnowboard_max_graphical_defconfig line 64

Quoted 1 line
configs/minnowboard_max_graphical_defconfig new file +1 -0
+BR2_PACKAGE_UTIL_LINUX_MORE=y

Why?

Quoted 8 lines

configs/minnowboard_max_graphical_defconfig line 65

Quoted 1 line
configs/minnowboard_max_graphical_defconfig new file +1 -0
+BR2_PACKAGE_LESS=y

I'd like to reorder the packages to put all the X stuff together with a
comment above and, and then all the dev stuff (like bash and less) with a comment.

Sure.

Regarding the less, more, coreutils, etc... I routinely replace these because I found them more useful than busybox's.

I'll remove them, as they don't add anything of value if the goal is to provide a "minimal with audio, and 3D graphics" config.

Signature · 2 lines
Ezequiel Garc?a, VanguardiaSur
www.vanguardiasur.com.ar
#17 lore raw

PATCH 4/4 board/minnowboard-max: Add a X-based graphical defconfig

Quoted 2 lines · Ezequiel Garcia
Quoted 1 line · Arnout Vandecappelle

On 04/12/16 07:29, Ezequiel Garcia wrote:

[snip]

Quoted 27 lines
Quoted 19 lines

board/minnowboard-max/post-build.sh line 10

Quoted 3 lines
board/minnowboard-max/post-build.sh +3 -0
+
+# Setup xinitrc
+echo "exec /usr/bin/openbox-session" > ${TARGET_DIR}/root/.xinitrc

Put this in the fs-overlay.

board/minnowboard-max/post-build.sh line 18

Quoted 8 lines
board/minnowboard-max/post-build.sh +8 -0
+
+# Fixup startx so it doesn't start X on the controlling
+# virtual console. Apparently, this is a bug and we are
+# affected for our lack of a Display Manager.
+# See https://bugs.freedesktop.org/show_bug.cgi?id=87762
+#
+# I haven't found a way to do this without hacking startx
+# itself, so...

This comment should be in the startx script itself.

Quoted 7 lines

board/minnowboard-max/post-build.sh line 21

Quoted 3 lines
board/minnowboard-max/post-build.sh +3 -0
+cp board/minnowboard-max/startx ${TARGET_DIR}/usr/bin/startx
+
+# Customize ALSA: the HDMI PCM is at card=0, device=3 (i.e. hw:0,3)

Same here.

Quoted 1 line

OK, I'll add a fs-graphical-overlay dir, and use it in this defconfig.

Call it fs-overlay-graphical.

[snip]

Quoted 8 lines
Quoted 5 lines
Quoted 1 line

+BR2_PACKAGE_GREP=y

Not sure why we would want this. Doesn't it require BUSYBOX_SHOW_OTHERS?

I think some X or openbox script was using a feature from GNU grep, and I wanted to remove some minor error/warning.

In that case, the package involved should probably select GNU grep (and
SHOW_OTHERS).

[snip]

Quoted 21 lines
Quoted 12 lines
Quoted 1 line

+BR2_PACKAGE_COREUTILS=y

Why?

Quoted 1 line

+BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS=y

Why?

Quoted 1 line

+BR2_PACKAGE_UTIL_LINUX_MORE=y

Why?

Quoted 8 lines
Quoted 1 line

+BR2_PACKAGE_LESS=y

I'd like to reorder the packages to put all the X stuff together with a
comment above and, and then all the dev stuff (like bash and less) with a comment.

Quoted 4 lines

Sure.

Regarding the less, more, coreutils, etc... I routinely replace these because I found them more useful than busybox's.

I agree for less (and bash and vi BTW), but I never found any use for more
(but I actually never use more, less is better) and coreutils.

Quoted 3 lines

I'll remove them, as they don't add anything of value if the goal is to provide a "minimal with audio, and 3D graphics" config.

Than bash should probably be removed as well, except if there is some script
that depends on bash.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle      arnout dot vandecappelle at essensium dot com
Senior Embedded Software Architect . . . . . . +32-478-010353 (mobile)
Essensium, Mind division . . . . . . . . . . . . . . http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium . . . . . BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#18 lore raw

PATCH 4/4 board/minnowboard-max: Add a X-based graphical defconfig

In reply to Arnout Vandecappelle
Quoted 12 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

Quoted 9 lines · Ezequiel Garcia

This commit adds a new defconfig to build a X-based graphical system for the MinnowboardMax board.

* The 'openbox' windows manager is chosen because it's simple and lightweigth.

* Basic X apps are enabled (such as xrandr, xterm), so we can at least get a console and change video mode.

Quoted 7 lines
Quoted 4 lines

* ALSA default configuration is provided, so HDMI audio works out-of-the-box.

* Systemd is chosen as the init system because... you know ;)

I'm not sure I agree with this one. Even though I like systemd
myself, I really don't think it belongs here.

Agreed.

Signature · 1 line
Bye, Peter Korsgaard