Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Difference between revisions of "Rockpi4/dev/usb-install"

< Rockpi4‎ | dev
m (Fixed labels on buttons according to here: https://forum.radxa.com/t/rock-pi-4b-unable-to-enter-maskrom/6725)
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]]
  
Rock PI supports Maskrom mode, which is a special operation mode for CPU to wait for USB OTG port command.
+
== Install image to eMMC from USB OTG port ==
The PC tools we use to communicate with rock PI in Maskrom mode are the '''rkdevelopment tool''' and '''AndroidTool tool'''.  
+
ROCK Pi 4 supports Maskrom mode, which is a special operation mode for CPU to wait for USB OTG port command.  
We use '''the rkdevelopment tool in Linux/macOS ''' and '''the AndroidTool tool under Windows'''.
+
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
+
* eMMC module or eMMC on board
 
* 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]].
  
<div class="toccolours mw-collapsible" style="width:800px; overflow:auto;">
 
==== Windows ====
 
<div class="mw-collapsible-content">
 
=====Step 1:Install Android tool=====
 
The tool is provided in a compressed package. First, download the compressed package of this tool, and click the download link [https://dl.radxa.com/tools/windows/AndroidTool_Release_v2.69.zip (AndroidTool_Release_v2.69.zip)]. After downloading, unzip it. Installation is complete.
 
 
=====Step 2:Install driver=====
 
Using the RK driver assistant tool to install the driver.
 
 
There’s no need to connect your Rockchip device during this procedure just download and extract [https://dl.radxa.com/tools/windows/DriverAssitant_v5.0.zip RKDriverAssistant.zip]
 
 
Then double click on DriverInstall.exe in the RKDriverAssistant directory to start the utility. If you installed the Rockchip USB drivers for any other Rockchip devices already, make sure you click “Uninstall Driver” first.
 
 
[[File:RK_Driver_Assistant_Install_Uninstall.jpg]]
 
 
Then click “Install Driver”, the driver has finish installing.
 
 
</div>
 
</div>
 
 
<div class="toccolours mw-collapsible" style="width:800px; overflow:auto;">
 
 
==== Linux====
 
<div class="mw-collapsible-content">
 
For Linux, we build the rkdeveloptool from source code.
 
 
To build rkdeveloptool on a Debian based Linux distribution, follow the instruction below:
 
 
Install build dependency:
 
  sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf
 
 
Clone the source code and build:
 
  git clone https://github.com/rockchip-linux/rkdeveloptool
 
  cd rkdeveloptool
 
  autoreconf -i
 
  ./configure
 
  make
 
 
If you encounter compile error like below
 
    ./configure: line 4269: syntax error near unexpected token `LIBUSB1,libusb-1.0'
 
    ./configure: line 4269: `PKG_CHECK_MODULES(LIBUSB1,libusb-1.0)'
 
 
 
You should install pkg-config libusb-1.0
 
    sudo apt-get install pkg-config libusb-1.0
 
 
Then re-run
 
    autoreconf -i
 
    ./configure
 
    make
 
 
Now you have rkdeveloptool executable at the current directory.
 
  sudo cp rkdeveloptool /usr/local/bin/
 
</div>
 
</div>
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 
==== MacOS ====
 
<div class="mw-collapsible-content">
 
For macOS, we build the rkdeveloptool from source code.
 
 
To build rkdeveloptool on macOS, you need [https://brew.sh/ homebrew](or similar package manager) to install required packages.
 
 
Install build dependency:
 
 
    brew install automake autoconf libusb lsusb
 
 
Clone the source code and build:
 
 
    git clone https://github.com/rockchip-linux/rkdeveloptool
 
    cd rkdeveloptool
 
    autoreconf -i
 
    ./configure
 
    make
 
 
If you encounter compile error like below
 
    ./configure: line 4269: syntax error near unexpected token `LIBUSB1,libusb-1.0'
 
    ./configure: line 4269: `PKG_CHECK_MODULES(LIBUSB1,libusb-1.0)'
 
 
 
You should install pkg-config libusb-1.0
 
    brew install pkg-config
 
 
Then re-run
 
    autoreconf -i
 
    ./configure
 
    make
 
 
Now you have rkdeveloptool executable at the current directory.
 
 
    sudo cp rkdeveloptool /usr/local/bin/
 
</div>
 
</div>
 
 
=== Boot the board to maskrom mode ===
 
=== Boot the board to maskrom mode ===
  
To boot ROCK Pi into maskrom mode is simple:
+
To boot ROCK Pi 4 into maskrom mode is simple:
  
 
* 1. Power off the board  
 
* 1. Power off the board  
** remove microSD card
+
** Remove microSD card
** if your board has removable eMMC module, remove it
+
** Remove eMMC module If your board has one removable eMMC module
** if your board is Plus version with soldered eMMC, press and hold the maskrom key. (1: Reset 2: Maskrom 3: Recovery)
+
** 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]]
  
 
* 2. Plug the USB Male A to Mail A cable to ROCK Pi 4 OTG port(the upper USB3 port), the other side to PC
 
* 2. Plug the USB Male A to Mail A cable to ROCK Pi 4 OTG port(the upper USB3 port), the other side to PC
* 3. Power on the board, release the maskrom key(important)
+
* 3. Power on the board and release the maskrom key(important)
  
** 4. For Linux/macOS
+
* 4. 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 | 1000px]]
  
Now on your Linux PC, '''lsusb''' command show show the following usb devices
+
* 5. Now plug the eMMC module and proceed the next step to flash. (Only for removable eMMC module)
 
+
    Bus 003 Device 005: ID 2207:330c
+
 
+
** 4. For Windows
+
 
+
Open device manager in your Windows PC, check the Device Manager:
+
 
+
[[File:RK_Driver_Assistant_Install_Usb_driver.png]]
+
 
+
It means the device is in '''maskrom mode''' now.
+
 
+
* 5. Now plug the eMMC module and proceed the next step to flash.
+
  
 
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 176: Line 77:
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
  
Double click the '''AndroidTool.exe''' and you will see the following interface:
+
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 | 600px]]
+
[[File:AndroidTool1.PNG | 1000px]]
  
 
===== Step 1: Select Loader =====
 
===== Step 1: Select Loader =====
Line 185: Line 86:
 
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 | 600px]]
+
[[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 95:
  
 
''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 100:
 
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 | 600px]]
+
[[File:Androidtool5.PNG | 1000px]]
 
</div>
 
</div>
 
</div>
 
</div>
Line 241: Line 141:
 
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.20.119.bin]
 
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.20.119.bin]
  
[[File:error-loader1.png | 500px]]
+
[[File:error-loader1.png | 1000px]]
[[File:error-loader2.png | 500px]]
+
[[File:error-loader2.png | 1000px]]
  
 
=== 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

Revision as of 01:58, 9 January 2022

    ROCK Pi 4 >  Development >  Install image to eMMC from USB OTG port

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
  • eMMC module or eMMC on board
  • 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
    • Remove microSD card
    • Remove eMMC module If your board has one removable eMMC module
    • Press and hold the Maskrom key if your board is Plus version with soldered eMMC (1: Reset 2: Maskrom 3: Recovery)

Rockpi4bplus key.jpg

  • 2. Plug the USB Male A to Mail A cable to ROCK Pi 4 OTG port(the upper USB3 port), the other side to PC
  • 3. Power on the board and release the maskrom key(important)
  • 4. 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.

AndroidTool1.PNG

  • 5. Now plug the eMMC module and proceed the next step to flash. (Only for removable eMMC module)

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

   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

   rkdeveloptool db rk3399_loader_vxxxx.bin

Write the GPT image to eMMC, start to write from offset 0.

   rkdeveloptool wl 0 /path/to/rockpi4b-xxx-gpt.img

Reboot the device

   rkdeveloptool rd

Now the device should boot the new image on eMMC

Please notice that when you want to erase eMMC on board, you can use this command. Get zero.img from here.

   rkdeveloptool db rk3399_loader_vxxxx.bin
   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:

AndroidTool1.PNG

Step 1: Select Loader

Next, click the button in the red box on the right last columns select the loader "rk3399_ loader_ xxxxx.bin ",

AndroidTool8.PNG

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.

Androidtool5.PNG

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:

   rkdeveloptool db rk3399_loader_*.bin
   rkdeveloptool wl 64 idbloader.img
   rkdeveloptool wl 16384 uboot.img
   rkdeveloptool wl 24576 trust.img
   rkdeveloptool wl 32768 boot.img
   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.20.119.bin

Error-loader1.png Error-loader2.png

Troubleshooting