Message ID | 20220205215558.30751-1-kuzminov.sergey81@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [v2] configs/orangepi_zero_defconfig: switch to extlinux | expand |
Hi Sergey, below I give you a better example of commit log, and the dealing with V1->V2 series. > Il giorno 5 feb 2022, alle ore 22:56, Sergey Kuzminov <kuzminov.sergey81@gmail.com> ha scritto: > > Changes: > v1: Please Remove this line ^^^ > - Exclude FAT partition, it is no longer needed for U-Boot. > - Switch the rootfs partition from MBR to GPT for partition-uuid to work. > - Switch to extlinux, this is convenient for debugging. > - Create common scenarios for multiple boards to create an SD image: board/orangepi/common. > > v2: Remove this ^^^ line > - Fix typo in first line of changes (s/he/it). This too ^^^ > - Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y. Here we need an explanation of the reason why, what this implies. > - Exclude one boot option from extlinux.conf. This ^^^ too > > Signed-off-by: Sergey Kuzminov <kuzminov.sergey81@gmail.com> —- V1->V2: * improved commit log * removed commented line in extlinux.conf * removed one boot option from extlinux.conf > --- So as you can see, commit log doesn’t mention the patch version, while after the 3 dashes you can write in general whatever you want because it won’t be part of commit log and it’s usually used to report V1->V2 version etc. > board/orangepi/common/extlinux.conf | 4 +++ > board/orangepi/common/genimage.cfg | 23 +++++++++++++++ > board/orangepi/common/post-build.sh | 34 +++++++++++++++++++++ > board/orangepi/orangepi-zero/boot.cmd | 9 ------ > board/orangepi/orangepi-zero/genimage.cfg | 36 ----------------------- > configs/orangepi_zero_defconfig | 11 ++++--- > 6 files changed, 66 insertions(+), 51 deletions(-) > create mode 100644 board/orangepi/common/extlinux.conf > create mode 100644 board/orangepi/common/genimage.cfg > create mode 100755 board/orangepi/common/post-build.sh > delete mode 100644 board/orangepi/orangepi-zero/boot.cmd > delete mode 100644 board/orangepi/orangepi-zero/genimage.cfg > > diff --git a/board/orangepi/common/extlinux.conf b/board/orangepi/common/extlinux.conf > new file mode 100644 > index 0000000000..12f496b1fa > --- /dev/null > +++ b/board/orangepi/common/extlinux.conf > @@ -0,0 +1,4 @@ > +LABEL default > + kernel /boot/%LINUXIMAGE% > + devicetreedir /boot > + append root=PARTUUID=%PARTUUID% rootwait console=${console} rootfstype=ext4 quiet panic=10 > diff --git a/board/orangepi/common/genimage.cfg b/board/orangepi/common/genimage.cfg > new file mode 100644 > index 0000000000..fa0d988991 > --- /dev/null > +++ b/board/orangepi/common/genimage.cfg > @@ -0,0 +1,23 @@ > +image sdcard.img { > + partition u-boot { > + in-partition-table = false > + image = "u-boot-sunxi-with-spl.bin" > + offset = 8K > + size = 1000K # 1MB - 8KB(offset) - 16KB(GPT) > + } > + > + hdimage { > + partition-table-type = gpt > + gpt-location = 1008K # 1MB - 16KB(GPT) > + gpt-no-backup = true > + # After writing the image to the SD card, > + # backup GPT data structures at the end of the disk: > + # gdisk /dev/mmcblk0 then press the buttons: x, e, w, y Why don’t you make this part ^^^ automatic with a script or you simply use genimage itself? What it’s expected as board defconfig is something that you burn a sdcard with the sdcard.img file and that’s it. So here you need to make it automatic. So we wait for V3 with the commit log form you read above and requested changes. Thank you! Best regards —- Giulio Benetti Benetti Engineering sas > + } > + > + partition rootfs { > + offset = 1M > + image = "rootfs.ext4" > + partition-uuid = %PARTUUID% > + } > +} > diff --git a/board/orangepi/common/post-build.sh b/board/orangepi/common/post-build.sh > new file mode 100755 > index 0000000000..296f94b174 > --- /dev/null > +++ b/board/orangepi/common/post-build.sh > @@ -0,0 +1,34 @@ > +#!/bin/sh > + > +linux_image() > +{ > + if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then > + echo "uImage" > + elif grep -Eq "^BR2_LINUX_KERNEL_IMAGE=y$" ${BR2_CONFIG}; then > + echo "Image" > + elif grep -Eq "^BR2_LINUX_KERNEL_IMAGEGZ=y$" ${BR2_CONFIG}; then > + echo "Image.gz" > + else > + echo "zImage" > + fi > +} > + > +generic_getty() > +{ > + if grep -Eq "^BR2_TARGET_GENERIC_GETTY=y$" ${BR2_CONFIG}; then > + echo "" > + else > + echo "s/\s*console=\S*//" > + fi > +} > + > +PARTUUID="$($HOST_DIR/bin/uuidgen)" > + > +install -d "$TARGET_DIR/boot/extlinux/" > + > +sed -e "$(generic_getty)" \ > + -e "s/%LINUXIMAGE%/$(linux_image)/g" \ > + -e "s/%PARTUUID%/$PARTUUID/g" \ > + "board/orangepi/common/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf" > + > +sed "s/%PARTUUID%/$PARTUUID/g" "board/orangepi/common/genimage.cfg" > "$BINARIES_DIR/genimage.cfg" > diff --git a/board/orangepi/orangepi-zero/boot.cmd b/board/orangepi/orangepi-zero/boot.cmd > deleted file mode 100644 > index d094a64fe5..0000000000 > --- a/board/orangepi/orangepi-zero/boot.cmd > +++ /dev/null > @@ -1,9 +0,0 @@ > -setenv fdt_high ffffffff > - > -part uuid mmc 0:2 uuid > -setenv bootargs console=ttyS0,115200 root=PARTUUID=${uuid} rootwait > - > -fatload mmc 0 $kernel_addr_r zImage > -fatload mmc 0 $fdt_addr_r sun8i-h2-plus-orangepi-zero.dtb > - > -bootz $kernel_addr_r - $fdt_addr_r > diff --git a/board/orangepi/orangepi-zero/genimage.cfg b/board/orangepi/orangepi-zero/genimage.cfg > deleted file mode 100644 > index 32f5454ae6..0000000000 > --- a/board/orangepi/orangepi-zero/genimage.cfg > +++ /dev/null > @@ -1,36 +0,0 @@ > -# Minimal SD card image for the OrangePi Zero > -# > -image boot.vfat { > - vfat { > - files = { > - "zImage", > - "sun8i-h2-plus-orangepi-zero.dtb", > - "boot.scr" > - } > - } > - size = 10M > -} > - > -image sdcard.img { > - hdimage { > - } > - > - partition u-boot { > - in-partition-table = "no" > - image = "u-boot-sunxi-with-spl.bin" > - offset = 8K > - size = 1016K # 1MB - 8KB > - } > - > - partition boot { > - partition-type = 0xC > - bootable = "true" > - image = "boot.vfat" > - } > - > - partition rootfs { > - partition-type = 0x83 > - image = "rootfs.ext4" > - size = 512M > - } > -} > diff --git a/configs/orangepi_zero_defconfig b/configs/orangepi_zero_defconfig > index 5aaa1566c5..96f0c3f600 100644 > --- a/configs/orangepi_zero_defconfig > +++ b/configs/orangepi_zero_defconfig > @@ -20,10 +20,13 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y > BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-orangepi-zero" > BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero/linux-extras.fragment" > BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y > +BR2_LINUX_KERNEL_INSTALL_TARGET=y > > # Filesystem > BR2_TARGET_ROOTFS_EXT2=y > BR2_TARGET_ROOTFS_EXT2_4=y > +BR2_TARGET_ROOTFS_EXT2_SIZE="63M" > +BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y > # BR2_TARGET_ROOTFS_TAR is not set > > # Bootloader > @@ -39,16 +42,12 @@ BR2_TARGET_UBOOT_SPL=y > BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" > > # Required tools to create the SD image > -BR2_PACKAGE_HOST_UBOOT_TOOLS=y > -BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y > -BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-zero/boot.cmd" > -BR2_PACKAGE_HOST_DOSFSTOOLS=y > BR2_PACKAGE_HOST_GENIMAGE=y > -BR2_PACKAGE_HOST_MTOOLS=y > > # Image > +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh" > BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" > -BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-zero/genimage.cfg" > +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" > > # Wireless driver and firmware > BR2_PACKAGE_XR819_XRADIO=y > -- > 2.34.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
Hi Giulio, 06.02.2022 01:18, Giulio Benetti: > Hi Sergey, > > below I give you a better example of commit log, > and the dealing with V1->V2 series. > >> Il giorno 5 feb 2022, alle ore 22:56, Sergey Kuzminov <kuzminov.sergey81@gmail.com> ha scritto: >> >> Changes: >> v1: > > Please Remove this line ^^^ > >> - Exclude FAT partition, it is no longer needed for U-Boot. >> - Switch the rootfs partition from MBR to GPT for partition-uuid to work. >> - Switch to extlinux, this is convenient for debugging. >> - Create common scenarios for multiple boards to create an SD image: board/orangepi/common. >> >> v2: > Remove this ^^^ line >> - Fix typo in first line of changes (s/he/it). > This too ^^^ >> - Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y. > Here we need an explanation of the reason why, what this implies. >> - Exclude one boot option from extlinux.conf. > This ^^^ too >> >> Signed-off-by: Sergey Kuzminov <kuzminov.sergey81@gmail.com> > —- > V1->V2: > * improved commit log > * removed commented line in extlinux.conf > * removed one boot option from extlinux.conf >> --- > > So as you can see, commit log doesn’t mention the patch version, while after the 3 dashes you > can write in general whatever you want because it won’t be part of commit log and it’s usually used > to report V1->V2 version etc. Changes: * Exclude FAT partition, it is no longer needed for U-Boot. * Switch the rootfs partition from MBR to GPT for partition-uuid to work. * Switch to extlinux, this is convenient for debugging. * Create common scenarios for multiple boards to create an SD image: board/orangepi/common. * Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y, remount root filesystem read-write during boot. --- V1->V2: * improved commit log * removed commented line in extlinux.conf * removed one boot option from extlinux.conf V2->V3: * improved commit log That's right? >> +++ b/board/orangepi/common/genimage.cfg >> @@ -0,0 +1,23 @@ >> +image sdcard.img { >> + partition u-boot { >> + in-partition-table = false >> + image = "u-boot-sunxi-with-spl.bin" >> + offset = 8K >> + size = 1000K # 1MB - 8KB(offset) - 16KB(GPT) >> + } >> + >> + hdimage { >> + partition-table-type = gpt >> + gpt-location = 1008K # 1MB - 16KB(GPT) >> + gpt-no-backup = true >> + # After writing the image to the SD card, >> + # backup GPT data structures at the end of the disk: >> + # gdisk /dev/mmcblk0 then press the buttons: x, e, w, y > > Why don’t you make this part ^^^ automatic with a script or you simply use genimage itself? > > What it’s expected as board defconfig is something that you burn a sdcard with the sdcard.img file and that’s it. So here you need to make it automatic. > > So we wait for V3 with the commit log form you read above and requested changes. The problem is that it is not possible to create an sdcard.img image with the correct GPT structure. The second copy of the GPT must be at the end of the disk, and the size of sdcard.img will not match the SD card. Will work and so, with one copy of GPT. But the disk utilities may issue a warning about the absence of a second copy of the GPT. You can correct the situation only after writing sdcard.img to the SD card, or during the first loading of the board in a separate script. This is out of scope for this patch.
Hi Sergey, On 06/02/22 00:04, Sergey Kuzminov wrote: > Hi Giulio, > > 06.02.2022 01:18, Giulio Benetti: >> Hi Sergey, >> >> below I give you a better example of commit log, >> and the dealing with V1->V2 series. >> >>> Il giorno 5 feb 2022, alle ore 22:56, Sergey Kuzminov <kuzminov.sergey81@gmail.com> ha scritto: >>> >>> Changes: >>> v1: >> >> Please Remove this line ^^^ >> >>> - Exclude FAT partition, it is no longer needed for U-Boot. >>> - Switch the rootfs partition from MBR to GPT for partition-uuid to work. >>> - Switch to extlinux, this is convenient for debugging. >>> - Create common scenarios for multiple boards to create an SD image: board/orangepi/common. >>> >>> v2: >> Remove this ^^^ line >>> - Fix typo in first line of changes (s/he/it). >> This too ^^^ >>> - Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y. >> Here we need an explanation of the reason why, what this implies. >>> - Exclude one boot option from extlinux.conf. >> This ^^^ too >>> >>> Signed-off-by: Sergey Kuzminov <kuzminov.sergey81@gmail.com> >> —- >> V1->V2: >> * improved commit log >> * removed commented line in extlinux.conf >> * removed one boot option from extlinux.conf >>> --- >> >> So as you can see, commit log doesn’t mention the patch version, while after the 3 dashes you >> can write in general whatever you want because it won’t be part of commit log and it’s usually used >> to report V1->V2 version etc. > > Changes: > * Exclude FAT partition, it is no longer needed for U-Boot. > * Switch the rootfs partition from MBR to GPT for partition-uuid to work. > * Switch to extlinux, this is convenient for debugging. > * Create common scenarios for multiple boards to create an SD image: > board/orangepi/common. > * Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y, remount root filesystem > read-write during boot. > > --- > V1->V2: > * improved commit log > * removed commented line in extlinux.conf > * removed one boot option from extlinux.conf > > V2->V3: > * improved commit log > > That's right? Yes, this works for me now > >>> +++ b/board/orangepi/common/genimage.cfg >>> @@ -0,0 +1,23 @@ >>> +image sdcard.img { >>> + partition u-boot { >>> + in-partition-table = false >>> + image = "u-boot-sunxi-with-spl.bin" >>> + offset = 8K >>> + size = 1000K # 1MB - 8KB(offset) - 16KB(GPT) >>> + } >>> + >>> + hdimage { >>> + partition-table-type = gpt >>> + gpt-location = 1008K # 1MB - 16KB(GPT) >>> + gpt-no-backup = true >>> + # After writing the image to the SD card, >>> + # backup GPT data structures at the end of the disk: >>> + # gdisk /dev/mmcblk0 then press the buttons: x, e, w, y >> >> Why don’t you make this part ^^^ automatic with a script or you simply use genimage itself? >> >> What it’s expected as board defconfig is something that you burn a sdcard with the sdcard.img file and that’s it. So here you need to make it automatic. >> >> So we wait for V3 with the commit log form you read above and requested changes. > > The problem is that it is not possible to create an sdcard.img image > with the correct GPT structure. The second copy of the GPT must be at > the end of the disk, and the size of sdcard.img will not match the SD > card. Will work and so, with one copy of GPT. But the disk utilities may > issue a warning about the absence of a second copy of the GPT. You can > correct the situation only after writing sdcard.img to the SD card, or > during the first loading of the board in a separate script. This is out > of scope for this patch. Ok, so please remove those 3 commented lines since I think the board actually works without those additional commands, correct? Otherwise, it this doesn't work on target without gdisk commands, you need to add a post-image.sh script to launch those commands. Thank you! Best regards
06.02.2022 02:13, Giulio Benetti пишет: > Hi Sergey, > > On 06/02/22 00:04, Sergey Kuzminov wrote: >> Hi Giulio, >> >> 06.02.2022 01:18, Giulio Benetti: >>> Hi Sergey, >>> >>> below I give you a better example of commit log, >>> and the dealing with V1->V2 series. >>> >>>> Il giorno 5 feb 2022, alle ore 22:56, Sergey Kuzminov >>>> <kuzminov.sergey81@gmail.com> ha scritto: >>>> >>>> Changes: >>>> v1: >>> >>> Please Remove this line ^^^ >>> >>>> - Exclude FAT partition, it is no longer needed for U-Boot. >>>> - Switch the rootfs partition from MBR to GPT for partition-uuid to >>>> work. >>>> - Switch to extlinux, this is convenient for debugging. >>>> - Create common scenarios for multiple boards to create an SD image: >>>> board/orangepi/common. >>>> >>>> v2: >>> Remove this ^^^ line >>>> - Fix typo in first line of changes (s/he/it). >>> This too ^^^ >>>> - Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y. >>> Here we need an explanation of the reason why, what this implies. >>>> - Exclude one boot option from extlinux.conf. >>> This ^^^ too >>>> >>>> Signed-off-by: Sergey Kuzminov <kuzminov.sergey81@gmail.com> >>> —- >>> V1->V2: >>> * improved commit log >>> * removed commented line in extlinux.conf >>> * removed one boot option from extlinux.conf >>>> --- >>> >>> So as you can see, commit log doesn’t mention the patch version, >>> while after the 3 dashes you >>> can write in general whatever you want because it won’t be part of >>> commit log and it’s usually used >>> to report V1->V2 version etc. >> >> Changes: >> * Exclude FAT partition, it is no longer needed for U-Boot. >> * Switch the rootfs partition from MBR to GPT for partition-uuid to work. >> * Switch to extlinux, this is convenient for debugging. >> * Create common scenarios for multiple boards to create an SD image: >> board/orangepi/common. >> * Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y, remount root filesystem >> read-write during boot. >> >> --- >> V1->V2: >> * improved commit log >> * removed commented line in extlinux.conf >> * removed one boot option from extlinux.conf >> >> V2->V3: >> * improved commit log >> >> That's right? > > Yes, this works for me now > >> >>>> +++ b/board/orangepi/common/genimage.cfg >>>> @@ -0,0 +1,23 @@ >>>> +image sdcard.img { >>>> + partition u-boot { >>>> + in-partition-table = false >>>> + image = "u-boot-sunxi-with-spl.bin" >>>> + offset = 8K >>>> + size = 1000K # 1MB - 8KB(offset) - 16KB(GPT) >>>> + } >>>> + >>>> + hdimage { >>>> + partition-table-type = gpt >>>> + gpt-location = 1008K # 1MB - 16KB(GPT) >>>> + gpt-no-backup = true >>>> + # After writing the image to the SD card, >>>> + # backup GPT data structures at the end of the disk: >>>> + # gdisk /dev/mmcblk0 then press the buttons: x, e, w, y >>> >>> Why don’t you make this part ^^^ automatic with a script or you >>> simply use genimage itself? >>> >>> What it’s expected as board defconfig is something that you burn a >>> sdcard with the sdcard.img file and that’s it. So here you need to >>> make it automatic. >>> >>> So we wait for V3 with the commit log form you read above and >>> requested changes. >> >> The problem is that it is not possible to create an sdcard.img image >> with the correct GPT structure. The second copy of the GPT must be at >> the end of the disk, and the size of sdcard.img will not match the SD >> card. Will work and so, with one copy of GPT. But the disk utilities may >> issue a warning about the absence of a second copy of the GPT. You can >> correct the situation only after writing sdcard.img to the SD card, or >> during the first loading of the board in a separate script. This is out >> of scope for this patch. > > Ok, so please remove those 3 commented lines since I think the board > actually works without those additional commands, correct? Yes. > > Otherwise, it this doesn't work on target without gdisk commands, you > need to add a post-image.sh script to launch those commands. > > Thank you! > Best regards
Hi Sergey, > Il giorno 6 feb 2022, alle ore 00:17, Sergey Kuzminov <kuzminov.sergey81@gmail.com> ha scritto: > > 06.02.2022 02:13, Giulio Benetti пишет: >> Hi Sergey, >>> On 06/02/22 00:04, Sergey Kuzminov wrote: >>> Hi Giulio, >>> >>> 06.02.2022 01:18, Giulio Benetti: >>>> Hi Sergey, >>>> >>>> below I give you a better example of commit log, >>>> and the dealing with V1->V2 series. >>>> >>>>> Il giorno 5 feb 2022, alle ore 22:56, Sergey Kuzminov <kuzminov.sergey81@gmail.com> ha scritto: >>>>> >>>>> Changes: >>>>> v1: >>>> >>>> Please Remove this line ^^^ >>>> >>>>> - Exclude FAT partition, it is no longer needed for U-Boot. >>>>> - Switch the rootfs partition from MBR to GPT for partition-uuid to work. >>>>> - Switch to extlinux, this is convenient for debugging. >>>>> - Create common scenarios for multiple boards to create an SD image: board/orangepi/common. >>>>> >>>>> v2: >>>> Remove this ^^^ line >>>>> - Fix typo in first line of changes (s/he/it). >>>> This too ^^^ >>>>> - Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y. >>>> Here we need an explanation of the reason why, what this implies. >>>>> - Exclude one boot option from extlinux.conf. >>>> This ^^^ too >>>>> >>>>> Signed-off-by: Sergey Kuzminov <kuzminov.sergey81@gmail.com> >>>> —- >>>> V1->V2: >>>> * improved commit log >>>> * removed commented line in extlinux.conf >>>> * removed one boot option from extlinux.conf >>>>> --- >>>> >>>> So as you can see, commit log doesn’t mention the patch version, while after the 3 dashes you >>>> can write in general whatever you want because it won’t be part of commit log and it’s usually used >>>> to report V1->V2 version etc. >>> >>> Changes: >>> * Exclude FAT partition, it is no longer needed for U-Boot. >>> * Switch the rootfs partition from MBR to GPT for partition-uuid to work. >>> * Switch to extlinux, this is convenient for debugging. >>> * Create common scenarios for multiple boards to create an SD image: >>> board/orangepi/common. >>> * Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y, remount root filesystem >>> read-write during boot. >>> >>> --- >>> V1->V2: >>> * improved commit log >>> * removed commented line in extlinux.conf >>> * removed one boot option from extlinux.conf >>> >>> V2->V3: >>> * improved commit log >>> >>> That's right? >> Yes, this works for me now >>> >>>>> +++ b/board/orangepi/common/genimage.cfg >>>>> @@ -0,0 +1,23 @@ >>>>> +image sdcard.img { >>>>> + partition u-boot { >>>>> + in-partition-table = false >>>>> + image = "u-boot-sunxi-with-spl.bin" >>>>> + offset = 8K >>>>> + size = 1000K # 1MB - 8KB(offset) - 16KB(GPT) >>>>> + } >>>>> + >>>>> + hdimage { >>>>> + partition-table-type = gpt >>>>> + gpt-location = 1008K # 1MB - 16KB(GPT) >>>>> + gpt-no-backup = true >>>>> + # After writing the image to the SD card, >>>>> + # backup GPT data structures at the end of the disk: >>>>> + # gdisk /dev/mmcblk0 then press the buttons: x, e, w, y >>>> >>>> Why don’t you make this part ^^^ automatic with a script or you simply use genimage itself? >>>> >>>> What it’s expected as board defconfig is something that you burn a sdcard with the sdcard.img file and that’s it. So here you need to make it automatic. >>>> >>>> So we wait for V3 with the commit log form you read above and requested changes. >>> >>> The problem is that it is not possible to create an sdcard.img image >>> with the correct GPT structure. The second copy of the GPT must be at >>> the end of the disk, and the size of sdcard.img will not match the SD >>> card. Will work and so, with one copy of GPT. But the disk utilities may >>> issue a warning about the absence of a second copy of the GPT. You can >>> correct the situation only after writing sdcard.img to the SD card, or >>> during the first loading of the board in a separate script. This is out >>> of scope for this patch. >> Ok, so please remove those 3 commented lines since I think the board actually works without those additional commands, correct? > > Yes. Perfect, so you can send the V3 patch. Please remember to keep my Reviewed-by and Tested-by after your SoB that I’ve given you on V1 patch. You can follow patchwork here: https://patchwork.ozlabs.org/project/buildroot/list/ You should also subscribe to patchwork and mark your V1 and V2 patches as superseded. Thank you Giulio > >> Otherwise, it this doesn't work on target without gdisk commands, you need to add a post-image.sh script to launch those commands. >> Thank you! >> Best regards >
diff --git a/board/orangepi/common/extlinux.conf b/board/orangepi/common/extlinux.conf new file mode 100644 index 0000000000..12f496b1fa --- /dev/null +++ b/board/orangepi/common/extlinux.conf @@ -0,0 +1,4 @@ +LABEL default + kernel /boot/%LINUXIMAGE% + devicetreedir /boot + append root=PARTUUID=%PARTUUID% rootwait console=${console} rootfstype=ext4 quiet panic=10 diff --git a/board/orangepi/common/genimage.cfg b/board/orangepi/common/genimage.cfg new file mode 100644 index 0000000000..fa0d988991 --- /dev/null +++ b/board/orangepi/common/genimage.cfg @@ -0,0 +1,23 @@ +image sdcard.img { + partition u-boot { + in-partition-table = false + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1000K # 1MB - 8KB(offset) - 16KB(GPT) + } + + hdimage { + partition-table-type = gpt + gpt-location = 1008K # 1MB - 16KB(GPT) + gpt-no-backup = true + # After writing the image to the SD card, + # backup GPT data structures at the end of the disk: + # gdisk /dev/mmcblk0 then press the buttons: x, e, w, y + } + + partition rootfs { + offset = 1M + image = "rootfs.ext4" + partition-uuid = %PARTUUID% + } +} diff --git a/board/orangepi/common/post-build.sh b/board/orangepi/common/post-build.sh new file mode 100755 index 0000000000..296f94b174 --- /dev/null +++ b/board/orangepi/common/post-build.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +linux_image() +{ + if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then + echo "uImage" + elif grep -Eq "^BR2_LINUX_KERNEL_IMAGE=y$" ${BR2_CONFIG}; then + echo "Image" + elif grep -Eq "^BR2_LINUX_KERNEL_IMAGEGZ=y$" ${BR2_CONFIG}; then + echo "Image.gz" + else + echo "zImage" + fi +} + +generic_getty() +{ + if grep -Eq "^BR2_TARGET_GENERIC_GETTY=y$" ${BR2_CONFIG}; then + echo "" + else + echo "s/\s*console=\S*//" + fi +} + +PARTUUID="$($HOST_DIR/bin/uuidgen)" + +install -d "$TARGET_DIR/boot/extlinux/" + +sed -e "$(generic_getty)" \ + -e "s/%LINUXIMAGE%/$(linux_image)/g" \ + -e "s/%PARTUUID%/$PARTUUID/g" \ + "board/orangepi/common/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf" + +sed "s/%PARTUUID%/$PARTUUID/g" "board/orangepi/common/genimage.cfg" > "$BINARIES_DIR/genimage.cfg" diff --git a/board/orangepi/orangepi-zero/boot.cmd b/board/orangepi/orangepi-zero/boot.cmd deleted file mode 100644 index d094a64fe5..0000000000 --- a/board/orangepi/orangepi-zero/boot.cmd +++ /dev/null @@ -1,9 +0,0 @@ -setenv fdt_high ffffffff - -part uuid mmc 0:2 uuid -setenv bootargs console=ttyS0,115200 root=PARTUUID=${uuid} rootwait - -fatload mmc 0 $kernel_addr_r zImage -fatload mmc 0 $fdt_addr_r sun8i-h2-plus-orangepi-zero.dtb - -bootz $kernel_addr_r - $fdt_addr_r diff --git a/board/orangepi/orangepi-zero/genimage.cfg b/board/orangepi/orangepi-zero/genimage.cfg deleted file mode 100644 index 32f5454ae6..0000000000 --- a/board/orangepi/orangepi-zero/genimage.cfg +++ /dev/null @@ -1,36 +0,0 @@ -# Minimal SD card image for the OrangePi Zero -# -image boot.vfat { - vfat { - files = { - "zImage", - "sun8i-h2-plus-orangepi-zero.dtb", - "boot.scr" - } - } - size = 10M -} - -image sdcard.img { - hdimage { - } - - partition u-boot { - in-partition-table = "no" - image = "u-boot-sunxi-with-spl.bin" - offset = 8K - size = 1016K # 1MB - 8KB - } - - partition boot { - partition-type = 0xC - bootable = "true" - image = "boot.vfat" - } - - partition rootfs { - partition-type = 0x83 - image = "rootfs.ext4" - size = 512M - } -} diff --git a/configs/orangepi_zero_defconfig b/configs/orangepi_zero_defconfig index 5aaa1566c5..96f0c3f600 100644 --- a/configs/orangepi_zero_defconfig +++ b/configs/orangepi_zero_defconfig @@ -20,10 +20,13 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-orangepi-zero" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero/linux-extras.fragment" BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y # Filesystem BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="63M" +BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y # BR2_TARGET_ROOTFS_TAR is not set # Bootloader @@ -39,16 +42,12 @@ BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" # Required tools to create the SD image -BR2_PACKAGE_HOST_UBOOT_TOOLS=y -BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y -BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/orangepi/orangepi-zero/boot.cmd" -BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_GENIMAGE=y -BR2_PACKAGE_HOST_MTOOLS=y # Image +BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" -BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-zero/genimage.cfg" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg" # Wireless driver and firmware BR2_PACKAGE_XR819_XRADIO=y
Changes: v1: - Exclude FAT partition, it is no longer needed for U-Boot. - Switch the rootfs partition from MBR to GPT for partition-uuid to work. - Switch to extlinux, this is convenient for debugging. - Create common scenarios for multiple boards to create an SD image: board/orangepi/common. v2: - Fix typo in first line of changes (s/he/it). - Add BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y. - Exclude one boot option from extlinux.conf. Signed-off-by: Sergey Kuzminov <kuzminov.sergey81@gmail.com> --- board/orangepi/common/extlinux.conf | 4 +++ board/orangepi/common/genimage.cfg | 23 +++++++++++++++ board/orangepi/common/post-build.sh | 34 +++++++++++++++++++++ board/orangepi/orangepi-zero/boot.cmd | 9 ------ board/orangepi/orangepi-zero/genimage.cfg | 36 ----------------------- configs/orangepi_zero_defconfig | 11 ++++--- 6 files changed, 66 insertions(+), 51 deletions(-) create mode 100644 board/orangepi/common/extlinux.conf create mode 100644 board/orangepi/common/genimage.cfg create mode 100755 board/orangepi/common/post-build.sh delete mode 100644 board/orangepi/orangepi-zero/boot.cmd delete mode 100644 board/orangepi/orangepi-zero/genimage.cfg