|
|
(45 intermediate revisions by 3 users not shown) |
Line 5: |
Line 5: |
| | | |
| ==Make Image Files for S5P4418== | | ==Make Image Files for S5P4418== |
− | Refer to this repo: https://github.com/friendlyarm/sd-fuse_s5p4418 | + | Refer to this repo: https://github.com/friendlyarm/sd-fuse_s5p4418<br /> |
| + | <br /> |
| + | Example: <br /> |
| + | <syntaxhighlight lang="bash"> |
| + | mkdir test |
| + | cd test |
| + | git clone https://github.com/friendlyarm/sd-fuse_s5p4418 |
| + | cd sd-fuse_s5p4418/ |
| + | tar xzf /mnt/dvd/S5P4418/images-for-eflasher/friendlycore-images.tgz |
| + | tar xzf /mnt/dvd/S5P4418/images-for-eflasher/emmc-flasher-images.tgz |
| + | tar xzf /mnt/dvd/S5P4418/rootfs/rootfs-friendlycore-20190718.tgz |
| + | sed "s/\${BOARD}/XXYYZZ/g" friendlycore/rootfs/etc/rc.local -i |
| + | ./build-rootfs-img.sh friendlycore/rootfs friendlycore/rootfs.img |
| + | ./mk-emmc-image.sh friendlycore |
| + | dd if=out/s5p4418-eflasher-friendlycore-20190730.img of=/dev/sdX bs=32M |
| + | </syntaxhighlight> |
| | | |
| ==Make Image Files for S5P6818== | | ==Make Image Files for S5P6818== |
| Refer to this repo: https://github.com/friendlyarm/sd-fuse_s5p6818 | | Refer to this repo: https://github.com/friendlyarm/sd-fuse_s5p6818 |
| | | |
− | ==Make Linux ROM for H3== | + | ==Make Image Files for H3== |
− | If you have compiled a U-boot, Linux kernel and a file system, and want to make a your own Linux image (ROM) with these files you can refer to the following steps:<br>
| + | Refer to this repo: https://github.com/friendlyarm/sd-fuse_h3 |
− | Download a package "rom-maker-lite.tar.gz" : [https://pan.baidu.com/s/1DSd4XYXr1yGyQTdRNQNoOw download link], extract it in host PC running Ubuntu and you will get the following directorie:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | rom-maker-lite
| + | |
− | </syntaxhighlight>
| + | |
− | The "rom-maker-lite" directory has the script utilities which can be used to make a ROM that boots from an SD card.<br><br>
| + | |
− | | + | |
− | Currently the script utilities under the "rom-maker-lite" directory can be only used to make Linux ROMs for H3/H5. You can check its usage by running the "./mkimage.sh" script:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh
| + | |
− | Usage:
| + | |
− | $ apt-get install tree dosfstools
| + | |
− | $ ./mkimage.sh <prepare type> <partmap> <misc dir> <partition1 dir> <partition2 dir>
| + | |
− | prepare type:
| + | |
− | p1: prepare misc(bootloader) + partition1.img(fat32 boot) + partition2.img(ext4 rootfs)
| + | |
− | p2: prepare misc(bootloader) + partition1.img(fat32 boot) + partition2.img(ext4 rootfs) + partition3.img(fat32 eflashed material)
| + | |
− | p3: prepare misc(bootloader) + partition1.img(ext4 boot) + partition2.img(ext4 rootfs)
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | ::{| class="wikitable"
| + | |
− | |-
| + | |
− | |Parameter||Comment
| + | |
− | |-
| + | |
− | |<prepare type> || specifies a ROM type. For H3/H5 p1 means to make a FriendlyCore/Ubuntu/Debian ROM and p2 means to make an Eflasher ROM.
| + | |
− | |-
| + | |
− | |<partmap> || specifies a partmap that is needed for making a ROM. A partmap file specifies a ROM Image's partition and components. Different platforms or different BSPs for the same platform use different partmap files.
| + | |
− | |-
| + | |
− | |<misc dir> || specifies a bootloader's path for H3/H5.
| + | |
− | |-
| + | |
− | |<partition1 dir> || specifies the boot partition's path for H3/H5.
| + | |
− | |-
| + | |
− | |<partition2 dir> || specifies the rootfs's path for H3/H5.
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | <br>
| + | |
− | * <b>Make Uboot-2017 + Linux-4.14 ROM for H3</b>
| + | |
− | All FriendlyElec's H3 boards work with a Uboot-2017 + Linux-4.14 ROM. So the steps to generate a ROM based on a BSP are the same for all FriendlyElec boards.<br>
| + | |
− | If you have a bootable SD card with FriendlyCore the rootfs directory in the SD card should have all the files you need. Insert this SD card to a host PC, mount the SD card's rootfs directory (in our test it was mounted at /media/SD/rootfs) and make a ROM following the steps below:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh p1 partmap/h3_linux-4.14/partmap.txt misc/uboot-2017_h3/ part1/boot_linux-4.14_h3/ /media/SD/rootfs
| + | |
− | </syntaxhighlight>
| + | |
− | Replace the existing files under the directories (misc/uboot-2017_h3, part1/boot_linux-4.14_h3) with your new files. FriendlyElec will periodically update files. You can list all the files by commanding "tree":
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ tree misc/uboot-2017_h3/ part1/boot_linux-4.14_h3/
| + | |
− | misc/uboot-2017_h3/
| + | |
− | └── u-boot-sunxi-with-spl.bin
| + | |
− | part1/boot_linux-4.14_h3/
| + | |
− | ├── boot.cmd
| + | |
− | ├── boot.scr
| + | |
− | ├── rootfs.cpio.gz
| + | |
− | ├── sun8i-h2-plus-nanopi-duo.dtb
| + | |
− | ├── sun8i-h3-nanopi-duo2.dtb
| + | |
− | ├── sun8i-h3-nanopi-m1.dtb
| + | |
− | ├── sun8i-h3-nanopi-m1-plus.dtb
| + | |
− | ├── sun8i-h3-nanopi-neo-air.dtb
| + | |
− | ├── sun8i-h3-nanopi-neo-core.dtb
| + | |
− | ├── sun8i-h3-nanopi-neo.dtb
| + | |
− | └── zImage
| + | |
− | </syntaxhighlight>
| + | |
− | For all the FriendlyElec's H3 boards that works with Linux-4.14 BSP they use the same partmap file which is "partmap/h3_linux-4.14/partmap.txt".<br>
| + | |
− | After running the mkimage.sh script a "out/SD-bootable-p1" directory will be generated and it will have the following files:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ tree out/
| + | |
− | out/
| + | |
− | ├── SD-bootable-p1
| + | |
− | │ └── your_company
| + | |
− | │ ├── boot.img
| + | |
− | │ ├── info.conf
| + | |
− | │ ├── partmap.txt
| + | |
− | │ ├── rootfs.img
| + | |
− | │ └── u-boot-sunxi-with-spl.bin
| + | |
− | ├── SD-bootable-p1.img
| + | |
− | | + | |
− | </syntaxhighlight>
| + | |
− | The "part1/boot_linux-4.14_h3/" directory will be made to a boot.img, the "part2/rootfs_demo/" directory will be made to a rootfs.img and the SD-bootable-p1.img will be the new ROM.
| + | |
− | <!--
| + | |
− | 您可以通过如下命令迅速将其烧写到SD卡中以进行测试:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./tools/sd_update -d /dev/SD -p ./out/SD-bootable-p1/your_company/partmap.txt
| + | |
− | </syntaxhighlight>
| + | |
− | 注意: 请将/dev/sdX替换为实际的SD卡设备节点。
| + | |
− | -->
| + | |
− | You can use the win32diskimager utility under Windows or command "dd" under Linux to flash a SD-bootable-p1.img to an SD card.
| + | |
− | | + | |
− | <br>
| + | |
− | * <b>Make Uboot-2011 + Linux-3.4 ROM for H3</b>
| + | |
− | Let's take FriendlyElec's NanoPi M1 as an example, run the following command:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh p1 partmap/h3_linux-3.4/partmap.txt misc/uboot-2011_m1/ part1/boot_linux-3.4_m1/ part2/rootfs_demo/
| + | |
− | </syntaxhighlight>
| + | |
− | Replace the existing files under the directories with your new files.<br>
| + | |
− | For all the FriendlyElec's H3 boards that works with Linux-3.4 BSP they use the same partmap file which is "partmap/h3_linux-3.4/partmap.txt".<br>
| + | |
− | So if you want to make a ROM for a NanoPi M1 Plus you can run the following command:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh p1 partmap/h3_linux-3.4/partmap.txt misc/uboot-2011_m1-plus/ part1/boot_linux-3.4_m1-plus/ part2/rootfs_demo/
| + | |
− | </syntaxhighlight>
| + | |
− | This applies to the NanoPi NEO / NanoPi NEO Air too.
| + | |
− | | + | |
− | <br>
| + | |
− | * <b>Make Uboot-2017 + Linux-4.14 Eflasher ROM for H3</b>
| + | |
− | In order to make an Eflasher ROM you need to have an existing FriendlyCore ROM. A Uboot-2017 + Linux-4.14 FriendlyCore image has the following files:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ tree out/
| + | |
− | out/
| + | |
− | ├── SD-bootable-p1
| + | |
− | │ └── your_company
| + | |
− | │ ├── boot.img
| + | |
− | │ ├── info.conf
| + | |
− | │ ├── partmap.txt
| + | |
− | │ ├── rootfs.img
| + | |
− | │ └── u-boot-sunxi-with-spl.bin
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | If you have a bootable SD card with Eflasher, insert the SD card to a host PC, mount the SD card's rootfs directory(in our test it was mounted at the "/media/SD/rootfs-eflasher" directory) and run the following command to generate an Eflasher ROM:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh p2 partmap/h3_eflasher-4.14/partmap.txt misc/uboot-2017_h3/ part1/boot_linux-4.14_h3/ /media/SD/rootfs-eflasher out/SD-bootable-p1/
| + | |
− | </syntaxhighlight>
| + | |
− | After running the mkimage.sh script an "out/SD-bootable-p2" directory will be generated and it will have the following files:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ tree out/
| + | |
− | out/
| + | |
− | ├── SD-bootable-p1
| + | |
− | │ └── your_company
| + | |
− | │ ├── boot.img
| + | |
− | │ ├── info.conf
| + | |
− | │ ├── partmap.txt
| + | |
− | │ ├── rootfs.img
| + | |
− | │ └── u-boot-sunxi-with-spl.bin
| + | |
− | ├── SD-bootable-p1.img
| + | |
− | ├── SD-bootable-p2
| + | |
− | │ └── your_company
| + | |
− | │ ├── boot.img
| + | |
− | │ ├── friendlyarm.img
| + | |
− | │ ├── info.conf
| + | |
− | │ ├── partmap.txt
| + | |
− | │ ├── rootfs.img
| + | |
− | │ └── u-boot-sunxi-with-spl.bin
| + | |
− | └── SD-bootable-p2.img
| + | |
− | </syntaxhighlight>
| + | |
− | The SD-bootable-p2.img file will be the newly generated Eflasher ROM. What OS the "out/SD-bootable-p1/" contains will be the OS in this Eflasher ROM.
| + | |
− | <!--
| + | |
− | 通过如下命令迅速将其烧写到SD卡中以进行测试:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./tools/sd_update -d /dev/SD -p ./out/SD-bootable-p2/your_company/partmap.txt
| + | |
− | </syntaxhighlight>
| + | |
− | 注意: 请将/dev/sdX替换为实际的SD卡设备节点。
| + | |
− | -->
| + | |
− | You can use the win32diskimager utility under Windows or command "dd" under Linux to flash a SD-bootable-p2.img to an SD card.
| + | |
− | | + | |
− | ==Make Linux ROM for H5==
| + | |
− | If you have compiled a U-boot, Linux kernel and a file system, and want to make a your own Linux image (ROM) with these files you can refer to the following steps:<br>
| + | |
− | Download a package "rom-maker-lite.tar.gz" : [https://pan.baidu.com/s/1DSd4XYXr1yGyQTdRNQNoOw download link], extract it in host PC running Ubuntu and you will get the following directorie:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | rom-maker-lite
| + | |
− | </syntaxhighlight>
| + | |
− | The "rom-maker-lite" directory has the script utilities which can be used to make a ROM that boots from an SD card.<br><br>
| + | |
− | | + | |
− | Currently the script utilities under the "rom-maker-lite" directory can be only used to make Linux ROMs for H3/H5. You can check its usage by running the "./mkimage.sh" script:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh
| + | |
− | Usage:
| + | |
− | $ apt-get install tree dosfstools
| + | |
− | $ ./mkimage.sh <prepare type> <partmap> <misc dir> <partition1 dir> <partition2 dir>
| + | |
− | prepare type:
| + | |
− | p1: prepare misc(bootloader) + partition1.img(fat32 boot) + partition2.img(ext4 rootfs)
| + | |
− | p2: prepare misc(bootloader) + partition1.img(fat32 boot) + partition2.img(ext4 rootfs) + partition3.img(fat32 eflashed material)
| + | |
− | p3: prepare misc(bootloader) + partition1.img(ext4 boot) + partition2.img(ext4 rootfs)
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | ::{| class="wikitable"
| + | |
− | |-
| + | |
− | |Parameter||Comment
| + | |
− | |-
| + | |
− | |<prepare type> || specifies a ROM type. For H3/H5 p1 means to make a FriendlyCore/Ubuntu/Debian ROM and p2 means to make an Eflasher ROM.
| + | |
− | |-
| + | |
− | |<partmap> || specifies a partmap that is needed for making a ROM. A partmap file specifies a ROM Image's partition and components. Different platforms or different BSPs for the same platform use different partmap files.
| + | |
− | |-
| + | |
− | |<misc dir> || specifies a bootloader's path for H3/H5.
| + | |
− | |-
| + | |
− | |<partition1 dir> || specifies the boot partition's path for H3/H5.
| + | |
− | |-
| + | |
− | |<partition2 dir> || specifies the rootfs's path for H3/H5.
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | <br>
| + | |
− | * <b>Make Uboot-2017 + Linux-4.14 ROM for H5</b>
| + | |
− | All FriendlyElec's H5 boards work with a Uboot-2017 + Linux-4.14 ROM. So the steps to generate a ROM based on a BSP are the same for all FriendlyElec boards.
| + | |
− | If you have a bootable SD card with FriendlyCore the rootfs directory in the SD card should have all the files you need. Insert this SD card to a host PC, mount the SD card's rootfs directory (in our test it was mounted at /media/SD/rootfs) and make a ROM following the steps below
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh p1 partmap/h5_linux-4.14/partmap.txt misc/uboot-2017_h5/ part1/boot_linux-4.14_h5/ /media/SD/rootfs
| + | |
− | </syntaxhighlight>
| + | |
− | Replace the existing files under the directories (misc/uboot-2017_h5, part1/boot_linux-4.14_h5) with your new files. FriendlyElec will periodically update files. You can list all the files by commanding "tree":
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ tree misc/uboot-2017_h5/ part1/boot_linux-4.14_h5/
| + | |
− | misc/uboot-2017_h5/
| + | |
− | ├── sunxi-spl.bin
| + | |
− | └── u-boot.itb
| + | |
− | part1/boot_linux-4.14_h5/
| + | |
− | ├── boot.cmd
| + | |
− | ├── boot.scr
| + | |
− | ├── Image
| + | |
− | ├── overlays
| + | |
− | │ └── sun50i-h5-gpio-dvfs-overlay.dtb
| + | |
− | ├── rootfs.cpio.gz
| + | |
− | ├── sun50i-h5-nanopi-k1-plus.dtb
| + | |
− | ├── sun50i-h5-nanopi-neo2.dtb
| + | |
− | ├── sun50i-h5-nanopi-neo-core2.dtb
| + | |
− | └── sun50i-h5-nanopi-neo-plus2.dtb
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | For all the FriendlyElec's H5 boards that works with Linux-4.14 BSP they use the same partmap file which is "partmap/h5_linux-4.14/partmap.txt".<br>
| + | |
− | After running the mkimage.sh script a "out/SD-bootable-p1" directory will be generated and it will have the following files:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ tree out/
| + | |
− | out/
| + | |
− | ├── SD-bootable-p1
| + | |
− | │ └── your_company
| + | |
− | │ ├── boot.img
| + | |
− | │ ├── info.conf
| + | |
− | │ ├── partmap.txt
| + | |
− | │ ├── rootfs.img
| + | |
− | │ ├── sunxi-spl.bin
| + | |
− | │ └── u-boot.itb
| + | |
− | ├── SD-bootable-p1.img
| + | |
− | | + | |
− | </syntaxhighlight>
| + | |
− | The "part1/boot_linux-4.14_h5/" directory will be made to a boot.img, the "part2/rootfs_demo/" directory will be made to a rootfs.img and the SD-bootable-p1.img will be the new ROM.
| + | |
− | <!--
| + | |
− | 您可以通过如下命令迅速将其烧写到SD卡中以进行测试:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./tools/sd_update -d /dev/SD -p ./out/SD-bootable-p1/your_company/partmap.txt
| + | |
− | </syntaxhighlight>
| + | |
− | 注意: 请将/dev/sdX替换为实际的SD卡设备节点。
| + | |
− | -->
| + | |
− | You can use the win32diskimager utility under Windows or command "dd" under Linux to flash a SD-bootable-p2.img to an SD card.
| + | |
− | | + | |
− | <br>
| + | |
− | * <b>Make Uboot-2014 + Linux-3.10 ROM for H5</b>
| + | |
− | Let's take FriendlyElec's NanoPi NEO2 as an example, run the following command:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh p1 partmap/h5_linux-3.10/partmap.txt misc/uboot-2014_neo2/ part1/boot_linux-3.10_neo2/ part2/rootfs_demo/
| + | |
− | </syntaxhighlight>
| + | |
− | Replace the existing files under the directories with your new files.
| + | |
− | For all the FriendlyElec's H5 boards that works with Linux-3.10 BSP they use the same partmap file which is "partmap/h5_linux-3.10/partmap.txt".
| + | |
− | <br>
| + | |
− | * <b>Make Uboot-2017 + Linux-4.14 Eflasher ROM for H5</b>
| + | |
− | In order to make an Eflasher ROM you need to have an existing FriendlyCore ROM. A Uboot-2017 + Linux-4.14 FriendlyCore image has the following files:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ tree out/
| + | |
− | out/
| + | |
− | ├── SD-bootable-p1
| + | |
− | │ └── your_company
| + | |
− | │ ├── boot.img
| + | |
− | │ ├── info.conf
| + | |
− | │ ├── partmap.txt
| + | |
− | │ ├── rootfs.img
| + | |
− | │ ├── sunxi-spl.bin
| + | |
− | │ └── u-boot.itb
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | If you have a bootable SD card with Eflasher, insert the SD card to a host PC, mount the SD card's rootfs directory(in our test it was mounted at the "/media/SD/rootfs-eflasher" directory) and run the following command to generate an Eflasher ROM:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ ./mkimage.sh p2 partmap/h5_eflasher-4.14/partmap.txt misc/uboot-2017_h5/ part1/boot_linux-4.14_h5/ /media/SD/rootfs-eflasher out/SD-bootable-p1/
| + | |
− | </syntaxhighlight>
| + | |
− | After running the mkimage.sh script an "out/SD-bootable-p2" directory will be generated and it will have the following files:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ tree out/
| + | |
− | out/
| + | |
− | ├── SD-bootable-p1
| + | |
− | │ └── your_company
| + | |
− | │ ├── boot.img
| + | |
− | │ ├── info.conf
| + | |
− | │ ├── partmap.txt
| + | |
− | │ ├── rootfs.img
| + | |
− | │ ├── sunxi-spl.bin
| + | |
− | │ └── u-boot.itb
| + | |
− | ├── SD-bootable-p1.img
| + | |
− | ├── SD-bootable-p2
| + | |
− | │ └── your_company
| + | |
− | │ ├── boot.img
| + | |
− | │ ├── friendlyarm.img
| + | |
− | │ ├── info.conf
| + | |
− | │ ├── partmap.txt
| + | |
− | │ ├── rootfs.img
| + | |
− | │ ├── sunxi-spl.bin
| + | |
− | │ └── u-boot.itb
| + | |
− | └── SD-bootable-p2.img
| + | |
− | </syntaxhighlight>
| + | |
− | The SD-bootable-p2.img file will be the newly generated Eflasher ROM. What OS the "out/SD-bootable-p1/" contains will be the OS in this Eflasher ROM.
| + | |
− | | + | |
− | ==Update Log==
| + | |
− | ===Sep-14-2017===
| + | |
− | * Released English Version
| + | |
| | | |
− | ===Jan-30-2018=== | + | ==Make Image File for H5== |
− | * Updated Section 3
| + | Refer to this repo: https://github.com/friendlyarm/sd-fuse_h5 |