Difference between revisions of "Rockpi4/dev/usb-install"
m (Fixed labels on buttons according to here: https://forum.radxa.com/t/rock-pi-4b-unable-to-enter-maskrom/6725) |
|||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{rockpi4_header}} | {{rockpi4_header}} | ||
{{Languages|rockpi4/dev/usb-install}} | {{Languages|rockpi4/dev/usb-install}} | ||
− | [[rockpi4 | ROCK Pi 4]] > [[rockpi4/dev | Development]] > [[rockpi4/dev/usb-install | Install from USB OTG port]] | + | [[rockpi4 | ROCK Pi 4]] > [[rockpi4/dev | Development]] > [[rockpi4/dev/usb-install | Install image to eMMC from USB OTG port]] |
− | + | == Install image to eMMC from USB OTG port == | |
− | The PC | + | ROCK Pi 4 supports Maskrom mode, which is a special operation mode for CPU to wait for USB OTG port command. |
− | We use | + | The Linux/macOS PC tool we use to communicate with ROCK Pi 4 in Maskrom mode are the '''rkdeveloptool''' and '''RKDevTool'''. |
+ | We use tool rkdeveloptool in Linux/macOS and RKDevTool tool under Windows. | ||
=== Requirement === | === Requirement === | ||
* ROCK Pi 4 mainboard | * ROCK Pi 4 mainboard | ||
− | * eMMC module | + | ** ROCK Pi 4A |
+ | ** ROCK Pi 4A Plus | ||
+ | ** ROCK Pi 4B | ||
+ | ** ROCK Pi 4B Plus | ||
+ | ** ROCK Pi 4C | ||
+ | * eMMC on board or eMMC module | ||
* Power adapter | * Power adapter | ||
* '''USB Male A to Male A cable'''(important) USB C to USB A cable does not working on all PCs. [https://forum.radxa.com/t/otg-flashing-not-working/717 See discussion]. | * '''USB Male A to Male A cable'''(important) USB C to USB A cable does not working on all PCs. [https://forum.radxa.com/t/otg-flashing-not-working/717 See discussion]. | ||
=== Install Tools&Drivers === | === Install Tools&Drivers === | ||
+ | Please check this guide, [[rockpi4/install/rockchip-flash-tools | Install rockchip flash tools, rkdeveloptool/RKDevTool, under Windows/Linux/MacOS PC]]. | ||
− | + | === Boot the board to maskrom mode === | |
− | ==== | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | To boot ROCK Pi 4 into maskrom mode is simple: | |
− | + | ||
− | + | * 1. Power off the board | |
+ | * 2. Short-circuit SPI Nor Flash if there is one SPI Nor Flash on board. | ||
− | + | [[File:Spi_clk_gnd.jpg | 200px]] | |
− | + | * 3. Remove microSD card | |
− | + | * 4. Insert removable eMMC module ( Skip this when there in one eMMC on board) | |
− | + | * 5. Plug the USB Male A to Male A cable to ROCK Pi 4 OTG port(the upper USB3 port), the other side to PC | |
− | + | * 6. Press and hold the Maskrom key if your board is Plus version with soldered eMMC (1: Reset 2: Maskrom 3: Recovery) | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
[[File:Rockpi4bplus_key.jpg|400px]] | [[File:Rockpi4bplus_key.jpg|400px]] | ||
− | * | + | * 7. Power on the board and release the maskrom key(important) |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | * 8. Confirm that ROCK Pi 4 is in Maskrom mode . |
+ | ** For macOS host: lsusb result: '''Bus 000 Device 004: ID 2207:330c Fuzhou Rockchip Electronics Co., Ltd. Composite Device''' | ||
+ | ** For Linux host: lsusb result: '''Bus 001 Device 112: ID 2207:330c Fuzhou Rockchip Electronics Company''' | ||
+ | ** For Windows host: Open RKDevTool and you would see the device is in '''Found One MASKROM Device'''. | ||
+ | [[File:AndroidTool1.PNG | 800px]] | ||
Alternatively, if you are running Android and can access ADB, you can reboot the device to loader mode `adb reboot bootloader` then use the rkdeveloptool to reset the device into maskrom mode `rkdeveloptool rd 3` or Windows AndroidTool '''Switch''' button to go to maskrom mode. | Alternatively, if you are running Android and can access ADB, you can reboot the device to loader mode `adb reboot bootloader` then use the rkdeveloptool to reset the device into maskrom mode `rkdeveloptool rd 3` or Windows AndroidTool '''Switch''' button to go to maskrom mode. | ||
Line 146: | Line 54: | ||
On your PC, run the rkdeveloptool | On your PC, run the rkdeveloptool | ||
− | + | sudo rkdeveloptool ld # List the device | |
− | + | DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=305 Maskrom | |
− | Download the loader (flash helper) to init the ram and prepare the flashing environment etc. If you don't have it, you can download it from [https://dl.radxa.com/rockpi/images/loader/ here] | + | Download the loader (flash helper) to init the ram and prepare the flashing environment etc. If you don't have it, you can download it from [https://dl.radxa.com/rockpi/images/loader/rk3399_loader_v1.27.126.bin here] |
− | + | sudo rkdeveloptool db rk3399_loader_v1.27.126.bin | |
Write the GPT image to eMMC, start to write from offset '''0'''. | Write the GPT image to eMMC, start to write from offset '''0'''. | ||
− | + | sudo rkdeveloptool wl 0 /path/to/rockpi4b-xxx-gpt.img | |
Reboot the device | Reboot the device | ||
− | + | sudo rkdeveloptool rd | |
− | Now the device should boot the new image on eMMC | + | Now the device should boot the new image on eMMC. |
− | Please | + | Please note that when you want to erase eMMC on board, you can use these commands. |
− | + | dd if=/dev/zero of=./zero.img bs=1M count=64 | |
− | + | sudo rkdeveloptool db rk3399_loader_v1.27.126.bin | |
+ | sudo rkdeveloptool wl 0 zero.img | ||
</div> | </div> | ||
Line 176: | Line 85: | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
− | Double click the ''' | + | Double click the '''RKDevTool.exe''' and you will see the following interface: |
− | If your ROCK Pi is in maskrom mode and connects to PC, you can see that the program detect it, as the red box shown below: | + | If your ROCK Pi 4 is in maskrom mode and connects to PC, you can see that the program detect it, as the red box shown below: |
− | [[File:AndroidTool1.PNG | | + | [[File:AndroidTool1.PNG | 1000px]] |
===== Step 1: Select Loader ===== | ===== Step 1: Select Loader ===== | ||
Line 185: | Line 94: | ||
Next, click the button in the red box on the right last columns select the loader "rk3399_ loader_ xxxxx.bin ", | Next, click the button in the red box on the right last columns select the loader "rk3399_ loader_ xxxxx.bin ", | ||
− | [[File:AndroidTool8.PNG | | + | [[File:AndroidTool8.PNG | 1000px]] |
''Note:'' the loader (flash helper) is used to init the ram and prepare the flashing environment etc. If you don't have it, you can download it from [https://dl.radxa.com/rockpi/images/loader/ here] | ''Note:'' the loader (flash helper) is used to init the ram and prepare the flashing environment etc. If you don't have it, you can download it from [https://dl.radxa.com/rockpi/images/loader/ here] | ||
Line 194: | Line 103: | ||
''Note'': Normally the image name should ends with xxx-gpt.img. If the image name ends with xxx-rkupdate.img, you can not flash with this method. | ''Note'': Normally the image name should ends with xxx-gpt.img. If the image name ends with xxx-rkupdate.img, you can not flash with this method. | ||
− | |||
===== Step 3: Run ===== | ===== Step 3: Run ===== | ||
Line 200: | Line 108: | ||
Finally, click the "run" button in the red box below, and you will see the content in the red box on the right. When the progress reaches 100%, the download is completed. | Finally, click the "run" button in the red box below, and you will see the content in the red box on the right. When the progress reaches 100%, the download is completed. | ||
− | [[File:Androidtool5.PNG | | + | [[File:Androidtool5.PNG | 1000px]] |
</div> | </div> | ||
</div> | </div> | ||
Line 222: | Line 130: | ||
When the board is in maskrom mode, flash the partitions with the following command and offset: | When the board is in maskrom mode, flash the partitions with the following command and offset: | ||
− | rkdeveloptool db rk3399_loader_*.bin | + | sudo rkdeveloptool db rk3399_loader_*.bin |
− | rkdeveloptool wl 64 idbloader.img | + | sudo rkdeveloptool wl 64 idbloader.img |
− | rkdeveloptool wl 16384 uboot.img | + | sudo rkdeveloptool wl 16384 uboot.img |
− | rkdeveloptool wl 24576 trust.img | + | sudo rkdeveloptool wl 24576 trust.img |
− | rkdeveloptool wl 32768 boot.img | + | sudo rkdeveloptool wl 32768 boot.img |
− | rkdeveloptool wl 262144 rootfs.img | + | sudo rkdeveloptool wl 262144 rootfs.img |
</div> | </div> | ||
</div> | </div> | ||
Line 239: | Line 147: | ||
=== FAQ === | === FAQ === | ||
− | If you meet such these situations, you can try to change the bin file by [https://dl.radxa.com/rockpi/images/loader/ rk3399_loader_v1. | + | If you meet such these situations, you can try to change the bin file by [https://dl.radxa.com/rockpi/images/loader/rk3399_loader_v1.27.126.bin rk3399_loader_v1.27.126.bin] |
+ | |||
+ | [[File:error-loader1.png | 1000px]] | ||
− | + | [[File:error-loader2.png | 1000px]] | |
− | [[File:error-loader2.png | | + | |
=== Troubleshooting === | === Troubleshooting === | ||
* If you have issue with flashing via USB OTG, start a new post on the forum. https://forum.radxa.com/c/dev | * If you have issue with flashing via USB OTG, start a new post on the forum. https://forum.radxa.com/c/dev |
Latest revision as of 07:50, 14 January 2023
ROCK Pi 4 > Development > Install image to eMMC from USB OTG port
Contents
Install image to eMMC from USB OTG port
ROCK Pi 4 supports Maskrom mode, which is a special operation mode for CPU to wait for USB OTG port command. The Linux/macOS PC tool we use to communicate with ROCK Pi 4 in Maskrom mode are the rkdeveloptool and RKDevTool. We use tool rkdeveloptool in Linux/macOS and RKDevTool tool under Windows.
Requirement
- ROCK Pi 4 mainboard
- ROCK Pi 4A
- ROCK Pi 4A Plus
- ROCK Pi 4B
- ROCK Pi 4B Plus
- ROCK Pi 4C
- eMMC on board or eMMC module
- Power adapter
- USB Male A to Male A cable(important) USB C to USB A cable does not working on all PCs. See discussion.
Install Tools&Drivers
Please check this guide, Install rockchip flash tools, rkdeveloptool/RKDevTool, under Windows/Linux/MacOS PC.
Boot the board to maskrom mode
To boot ROCK Pi 4 into maskrom mode is simple:
- 1. Power off the board
- 2. Short-circuit SPI Nor Flash if there is one SPI Nor Flash on board.
- 3. Remove microSD card
- 4. Insert removable eMMC module ( Skip this when there in one eMMC on board)
- 5. Plug the USB Male A to Male A cable to ROCK Pi 4 OTG port(the upper USB3 port), the other side to PC
- 6. Press and hold the Maskrom key if your board is Plus version with soldered eMMC (1: Reset 2: Maskrom 3: Recovery)
- 7. Power on the board and release the maskrom key(important)
- 8. Confirm that ROCK Pi 4 is in Maskrom mode .
- For macOS host: lsusb result: Bus 000 Device 004: ID 2207:330c Fuzhou Rockchip Electronics Co., Ltd. Composite Device
- For Linux host: lsusb result: Bus 001 Device 112: ID 2207:330c Fuzhou Rockchip Electronics Company
- For Windows host: Open RKDevTool and you would see the device is in Found One MASKROM Device.
Alternatively, if you are running Android and can access ADB, you can reboot the device to loader mode `adb reboot bootloader` then use the rkdeveloptool to reset the device into maskrom mode `rkdeveloptool rd 3` or Windows AndroidTool Switch button to go to maskrom mode.
Begin Installation USB -> eMMC
Linux/macOS
On your PC, run the rkdeveloptool
sudo rkdeveloptool ld # List the device DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=305 Maskrom
Download the loader (flash helper) to init the ram and prepare the flashing environment etc. If you don't have it, you can download it from here
sudo rkdeveloptool db rk3399_loader_v1.27.126.bin
Write the GPT image to eMMC, start to write from offset 0.
sudo rkdeveloptool wl 0 /path/to/rockpi4b-xxx-gpt.img
Reboot the device
sudo rkdeveloptool rd
Now the device should boot the new image on eMMC.
Please note that when you want to erase eMMC on board, you can use these commands.
dd if=/dev/zero of=./zero.img bs=1M count=64 sudo rkdeveloptool db rk3399_loader_v1.27.126.bin sudo rkdeveloptool wl 0 zero.img
Windows
Double click the RKDevTool.exe and you will see the following interface: If your ROCK Pi 4 is in maskrom mode and connects to PC, you can see that the program detect it, as the red box shown below:
Step 1: Select Loader
Next, click the button in the red box on the right last columns select the loader "rk3399_ loader_ xxxxx.bin ",
Note: the loader (flash helper) is used to init the ram and prepare the flashing environment etc. If you don't have it, you can download it from here
Step 2: Select Image
Then click the right last columns to in the Image row and choose the image you want to flash.
Note: Normally the image name should ends with xxx-gpt.img. If the image name ends with xxx-rkupdate.img, you can not flash with this method.
Step 3: Run
Finally, click the "run" button in the red box below, and you will see the content in the red box on the right. When the progress reaches 100%, the download is completed.
Install by partitions(Advanced)
Linux/macOS
Sometimes we only want to update a partition of the image, for example only the boot partition to update kernel only. We can flash by partitions
| Part Number | Offset | Name | Description | | ----------- | ------ | ------- | -------------------------- | | 1 | 32KB | loader1 | First stage loader | | 2 | 8MB | loader2 | U-boot image | | 3 | 12MB | trust | ATF | | 4 | 16MB | boot | Kernel partition, bootable | | 5 | 128MB | rootfs | Rootfs |
When the board is in maskrom mode, flash the partitions with the following command and offset:
sudo rkdeveloptool db rk3399_loader_*.bin sudo rkdeveloptool wl 64 idbloader.img sudo rkdeveloptool wl 16384 uboot.img sudo rkdeveloptool wl 24576 trust.img sudo rkdeveloptool wl 32768 boot.img sudo rkdeveloptool wl 262144 rootfs.img
Windows
TBD.
FAQ
If you meet such these situations, you can try to change the bin file by rk3399_loader_v1.27.126.bin
Troubleshooting
- If you have issue with flashing via USB OTG, start a new post on the forum. https://forum.radxa.com/c/dev