orangepi_pc_plus: new board and its drivers
cover orangepi_pc_plus: new board and its drivers
Hi all,
This patchset adds support for orange-pi-pc-plus board and its wireless driver. In fact this board is a variant of orangepi-pc board. It adds 8GB eMMC and Realtek RTL8189FTV SDIO WiFi chip. On the other hand, this variant has a separate support in U-Boot and kernel. So it looks like it makes sense to create a separate entry for this board in buildroot.
Patches are rebased on top of the up-to-date master branch.
Regards,
Sergey
Sergey Matyukevich (3):
board/orangepi: add support for orangepi-pc-plus board
rtl8189fs: new package
orangepi-pc-plus: enable WiFi support
DEVELOPERS | 1 board/orangepi/orangepi-pc-plus/boot.cmd | 8 +++ board/orangepi/orangepi-pc-plus/genimage.cfg | 36 ++++++++++++++++ board/orangepi/orangepi-pc-plus/linux-extras.config | 8 +++ board/orangepi/orangepi-pc-plus/post-build.sh | 1 board/orangepi/orangepi-pc-plus/post-image.sh | 1 board/orangepi/orangepi-pc-plus/readme.txt | 29 +++++++++++++ configs/orangepi_pc_plus_defconfig | 44 ++++++++++++++++++++ package/Config.in | 1 package/rtl8189fs/Config.in | 10 ++++ package/rtl8189fs/rtl8189fs.hash | 2 package/rtl8189fs/rtl8189fs.mk | 17 +++++++ 12 files changed, 158 insertions(+)
PATCH 1/3 board/orangepi: add support for orangepi-pc-plus board
This board is a variant of orangepi-pc board. It adds 8GB eMMC and Realtek RTL8189FTV SDIO WiFi chip. This variant has a separate support in U-Boot and kernel. So it makes sense to create a separate entry
for this board in buildroot.
Board support package includes the following components:
- mainline u-boot 2017.09
- mainline kernel 4.13.11
--- board/orangepi/orangepi-pc-plus/boot.cmd | 8 +++++ board/orangepi/orangepi-pc-plus/genimage.cfg | 36 ++++++++++++++++++++ .../orangepi/orangepi-pc-plus/linux-extras.config | 8 +++++ board/orangepi/orangepi-pc-plus/post-build.sh | 1 + board/orangepi/orangepi-pc-plus/post-image.sh | 1 + board/orangepi/orangepi-pc-plus/readme.txt | 29 +++++++++++++++++ configs/orangepi_pc_plus_defconfig | 38 ++++++++++++++++++++++ 7 files changed, 121 insertions(+) create mode 100644 board/orangepi/orangepi-pc-plus/boot.cmd create mode 100644 board/orangepi/orangepi-pc-plus/genimage.cfg create mode 100644 board/orangepi/orangepi-pc-plus/linux-extras.config create mode 120000 board/orangepi/orangepi-pc-plus/post-build.sh create mode 120000 board/orangepi/orangepi-pc-plus/post-image.sh create mode 100644 board/orangepi/orangepi-pc-plus/readme.txt create mode 100644 configs/orangepi_pc_plus_defconfig
board/orangepi/orangepi-pc-plus/boot.cmd new file +8 -0
@@ -0,0 +1,8 @@ +setenv fdt_high ffffffff + +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun8i-h3-orangepi-pc-plus.dtb + +bootz $kernel_addr_r - $fdt_addr_r
board/orangepi/orangepi-pc-plus/genimage.cfg new file +36 -0
@@ -0,0 +1,36 @@ +# Minimal SD card image for the OrangePi PC Plus +# +image boot.vfat { + vfat { + files = { + "zImage", + "sun8i-h3-orangepi-pc-plus.dtb", + "boot.scr" + } + } + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8192 + size = 1040384 # 1MB - 8192 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +}
board/orangepi/orangepi-pc-plus/linux-extras.config new file +8 -0
@@ -0,0 +1,8 @@ +# wireless core +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_CFG80211_WEXT=y + +# wireless drivers +CONFIG_WLAN=y
board/orangepi/orangepi-pc-plus/post-build.sh new file +1 -0
@@ -0,0 +1 @@ +../post-build.sh
board/orangepi/orangepi-pc-plus/post-image.sh new file +1 -0
@@ -0,0 +1 @@ +../post-image.sh
board/orangepi/orangepi-pc-plus/readme.txt new file +29 -0
@@ -0,0 +1,29 @@ +OrangePi PC Plus + +Intro +===== + +This default configuration will allow you to start experimenting with the +buildroot environment for the OrangePi PC Plus. With the current configuration +it will bring-up the board, and allow access through the serial console. + +How to build it +=============== + +Configure Buildroot: + + $ make orangepi_pc_plus_defconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX
configs/orangepi_pc_plus_defconfig new file +38 -0
@@ -0,0 +1,38 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_13=y +BR2_TARGET_GENERIC_HOSTNAME="OrangePi_PC_Plus" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi PC Plus" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepi-pc-plus/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/orangepi/orangepi-pc-plus/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.13.11" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-pc-plus" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-pc-plus/linux-extras.config" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.09" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_pc_plus" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# wireless tools +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
Signature · 1 line
2.11.0
Thomas Petazzoni
AppliedPATCH 1/3 board/orangepi: add support for orangepi-pc-plus board
Hello,
Quoted 10 lines · Sergey Matyukevich
This board is a variant of orangepi-pc board. It adds 8GB eMMC and Realtek RTL8189FTV SDIO WiFi chip. This variant has a separate support in U-Boot and kernel. So it makes sense to create a separate entry
for this board in buildroot.Board support package includes the following components:
- mainline u-boot 2017.09
- mainline kernel 4.13.11Signed-off-by Sergey Matyukevich <[email protected]>
I've applied, after adding an entry to the DEVELOPERS file. One comment, though.
Quoted 4 lines
board/orangepi/orangepi-pc-plus/boot.cmd | 8 +++++ board/orangepi/orangepi-pc-plus/genimage.cfg | 36 ++++++++++++++++++++ .../orangepi/orangepi-pc-plus/linux-extras.config | 8 +++++ board/orangepi/orangepi-pc-plus/post-build.sh | 1 +
This common post-build script only generates the U-Boot script. Could you move the boards that use this post-build script to instead use BR2_TARGET_UBOOT_BOOT_SCRIPT ?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/3 board/orangepi: add support for orangepi-pc-plus board
Hello Thomas,
Quoted 15 lines · Sergey Matyukevich
Quoted 10 lines
This board is a variant of orangepi-pc board. It adds 8GB eMMC and Realtek RTL8189FTV SDIO WiFi chip. This variant has a separate support in U-Boot and kernel. So it makes sense to create a separate entry
for this board in buildroot.Board support package includes the following components:
- mainline u-boot 2017.09
- mainline kernel 4.13.11Signed-off-by Sergey Matyukevich <[email protected]>I've applied, after adding an entry to the DEVELOPERS file. One comment, though.
Quoted 8 lines
Quoted 4 lines
board/orangepi/orangepi-pc-plus/boot.cmd | 8 +++++ board/orangepi/orangepi-pc-plus/genimage.cfg | 36 ++++++++++++++++++++ .../orangepi/orangepi-pc-plus/linux-extras.config | 8 +++++ board/orangepi/orangepi-pc-plus/post-build.sh | 1 +This common post-build script only generates the U-Boot script. Could you move the boards that use this post-build script to instead use
BR2_TARGET_UBOOT_BOOT_SCRIPT?
Sure, will do this cleanup with orangepi/pcduino boards as soon as I complete MacchiatoBin pieces.
Regards,
Sergey
PATCH 2/3 rtl8189fs: new package
In reply to Sergey MatyukevichThis package adds the rtl8189fs WiFi driver. The driver is sourced from jwrdegoede's and icenowy's work on GitHub:
repo: https://github.com/jwrdegoede/rtl8189ES_linux.git
branch: rtl8189fs
Driver is known to support Realtek RTL8189FTV chip.
--- DEVELOPERS | 1 + package/Config.in | 1 + package/rtl8189fs/Config.in | 10 ++++++++++ package/rtl8189fs/rtl8189fs.hash | 2 ++ package/rtl8189fs/rtl8189fs.mk | 17 +++++++++++++++++ 5 files changed, 31 insertions(+) create mode 100644 package/rtl8189fs/Config.in create mode 100644 package/rtl8189fs/rtl8189fs.hash create mode 100644 package/rtl8189fs/rtl8189fs.mk
DEVELOPERS +1 -0
@@ -1473,6 +1473,7 @@ F: package/mpir/ N: Sergey Matyukevich <[email protected]> F: package/xr819-xradio/ +F: package/rtl8189fs/ N: Sergio Prado <[email protected]> F: package/libgdiplus/
package/Config.in +1 -0
@@ -483,6 +483,7 @@ endmenu source "package/rtl8188eu/Config.in" source "package/rtl8723bs/Config.in" source "package/rtl8821au/Config.in" + source "package/rtl8189fs/Config.in" source "package/sane-backends/Config.in" source "package/sdparm/Config.in" source "package/setserial/Config.in"
package/rtl8189fs/Config.in new file +10 -0
@@ -0,0 +1,10 @@ +config BR2_PACKAGE_RTL8189FS + bool "rtl8189fs" + depends on BR2_LINUX_KERNEL + help + Wireless driver rtl8189fs. + + https://github.com/jwrdegoede/rtl8189ES_linux.git + +comment "rtl8189fs needs a Linux kernel to be built" + depends on !BR2_LINUX_KERNEL
package/rtl8189fs/rtl8189fs.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally calculated +sha256 50ca09d97b22001184231b746d7133e500d3e3998a23a8ea5c3b4da72c4f72c0 rtl8189fs-04b44d437b20f28ba83fcaecc0bdab7f7647fd11.tar.gz
package/rtl8189fs/rtl8189fs.mk new file +17 -0
@@ -0,0 +1,17 @@ +################################################################################ +# +# rtl8189fs +# +################################################################################ + +RTL8189FS_VERSION = 04b44d437b20f28ba83fcaecc0bdab7f7647fd11 +RTL8189FS_SITE = $(call github,jwrdegoede,rtl8189ES_linux,$(RTL8189FS_VERSION)) +RTL8189FS_LICENSE = GPL-2.0 + +RTL8189FS_MODULE_MAKE_OPTS = \ + CONFIG_RTL8189FS=m \ + KVER=$(LINUX_VERSION_PROBED) \ + KSRC=$(LINUX_DIR) + +$(eval $(kernel-module)) +$(eval $(generic-package))
Signature · 1 line
2.11.0
Thomas Petazzoni
AppliedPATCH 2/3 rtl8189fs: new package
Hello,
Quoted 8 lines · Sergey Matyukevich
This package adds the rtl8189fs WiFi driver. The driver is sourced from jwrdegoede's and icenowy's work on GitHub:
repo: https://github.com/jwrdegoede/rtl8189ES_linux.git branch: rtl8189fsDriver is known to support Realtek RTL8189FTV chip.
Signed-off-by Sergey Matyukevich <[email protected]>
Quoted 10 lines
--- DEVELOPERS | 1 + package/Config.in | 1 + package/rtl8189fs/Config.in | 10 ++++++++++ package/rtl8189fs/rtl8189fs.hash | 2 ++ package/rtl8189fs/rtl8189fs.mk | 17 +++++++++++++++++ 5 files changed, 31 insertions(+) create mode 100644 package/rtl8189fs/Config.in create mode 100644 package/rtl8189fs/rtl8189fs.hash create mode 100644 package/rtl8189fs/rtl8189fs.mk
Applied to master, thanks.
I wonder how many out of tree Realtek drivers are needed to support all those Wifi chips. We already have:
package/rtl8188eu
package/rtl8189fs
package/rtl8723bs
package/rtl8723bu
package/rtl8821au
What's next ? :-)
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 3/3 orangepi-pc-plus: enable WiFi support
In reply to Sergey MatyukevichMake WiFi work out of the box on orangepi-pc-plus:
- add rtl8xx firmware
- add rtl8189fs driver
- add mdev for module autoloading
--- configs/orangepi_pc_plus_defconfig | 6 ++++++ 1 file changed, 6 insertions(+)
configs/orangepi_pc_plus_defconfig +6 -0
@@ -1,6 +1,7 @@ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_VFPV4=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_13=y BR2_TARGET_GENERIC_HOSTNAME="OrangePi_PC_Plus" BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi PC Plus"
@@ -29,6 +30,11 @@ BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y +# wireless driver and firmware +BR2_PACKAGE_RTL8189FS=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y + # wireless tools BR2_PACKAGE_IW=y BR2_PACKAGE_WIRELESS_TOOLS=y
Signature · 1 line
2.11.0
Thomas Petazzoni
AppliedPATCH 3/3 orangepi-pc-plus: enable WiFi support
Hello,
Quoted 9 lines · Sergey Matyukevich
Make WiFi work out of the box on orangepi-pc-plus:
- add rtl8xx firmware
- add rtl8189fs driver
- add mdev for module autoloadingSigned-off-by Sergey Matyukevich <[email protected]>--- configs/orangepi_pc_plus_defconfig | 6 ++++++ 1 file changed, 6 insertions(+)
Applied to master, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 3/3 orangepi-pc-plus: enable WiFi support
In reply to Sergey MatyukevichQuoted 23 lines · Sergey Matyukevich
Make WiFi work out of the box on orangepi-pc-plus:
- add rtl8xx firmware
- add rtl8189fs driver
- add mdev for module autoloadingSigned-off-by Sergey Matyukevich <[email protected]>--- configs/orangepi_pc_plus_defconfig | 6 ++++++ 1 file changed, 6 insertions(+)configs/orangepi_pc_plus_defconfig +1
-0@@ -1,6 +1,7 @@ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_VFPV4=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_13=y BR2_TARGET_GENERIC_HOSTNAME="OrangePi_PC_Plus" BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi PC Plus"
configs/orangepi_pc_plus_defconfig BR2_PACKAGE_HOST_GENIMAGE=y · line 37
Quoted 8 lines
configs/orangepi_pc_plus_defconfig +5
-0@@ -29,6 +30,11 @@ BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y +# wireless driver and firmware +BR2_PACKAGE_RTL8189FS=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +
I'm trying to understand here about minimal defconfig vs custom selection of packages, like adding qt5 on this patch[1]. Does wifi here not considered as custom config? if ie true if should be orangepi_pc_plus_wif_defconfig?
[1] https://patchwork.ozlabs.org/patch/839237/
thanks!
Signature · 4 lines
Jagan Teki Senior Linux Kernel Engineer | Amarula Solutions U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH 3/3 orangepi-pc-plus: enable WiFi support
Hello,
Quoted 10 lines · Jagan Teki
configs/orangepi_pc_plus_defconfig BR2_PACKAGE_HOST_GENIMAGE=y · line 37
Quoted 5 lines
configs/orangepi_pc_plus_defconfig +5
-0+# wireless driver and firmware +BR2_PACKAGE_RTL8189FS=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +I'm trying to understand here about minimal defconfig vs custom selection of packages, like adding qt5 on this patch[1]. Does wifi here not considered as custom config? if ie true if should be
orangepi_pc_plus_wif_defconfig?
As usual, the boundaries are not 100% strict and fixed. However, we have considered for a number of boards that have WiFi support that it makes sense to enable the relevant driver and firmware to enable WiFi.
This is quite different from Qt5: for WiFi, there is basically no other option than using this firmware and this driver. For graphics, you may want to use Qt5. But you may also want to use X11, or Wayland/Weston, or, etc. So Qt5 is a lot less "the obvious thing that everybody will obviously want to use on this board".
Also, installing this firmware file and building this driver probably adds 20 seconds to the build time of the defconfig. It's not exactly the same for Qt5 :-)
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com