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
(Requirement)
(4 intermediate revisions by 2 users not shown)
Line 9: Line 9:
 
* eMMC module
 
* eMMC module
 
* Power adapter
 
* Power adapter
* '''USB Male A to Male A cable'''(important)
+
* '''USB Male A to Male A cable'''(important) USB-C has been seen as not working, an adaptor for USB-C to USB-A has worked. [https://forum.radxa.com/t/otg-flashing-not-working/717 See discussion].
  
=== Install rkdeveloptool ===
+
=== Make sure rkdeveloptool is set up on host computer ===
==== Linux Host====
+
==== Linux====
 
To build rkdeveloptool on a debain based Linux distribution, follow the instruction below:
 
To build rkdeveloptool on a debain based Linux distribution, follow the instruction below:
  
Line 24: Line 24:
 
   ./configure
 
   ./configure
 
   make
 
   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.
 
Now you have rkdeveloptool executable at the current directory.
 
   sudo cp rkdeveloptool /usr/local/bin/
 
   sudo cp rkdeveloptool /usr/local/bin/
 +
 +
==== MacOS ====
 +
 +
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
 +
 +
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/
  
 
=== Boot the board to maskrom mode ===
 
=== Boot the board to maskrom mode ===
Line 63: Line 109:
 
Now the device should boot the new image on eMMC
 
Now the device should boot the new image on eMMC
  
==== Install by partitions(optional) ====
+
=== Install by partitions(optional) ===
 
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
 
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
 +
 +
<pre>
 +
| 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                    |
 +
</pre>
 +
 +
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
  
 
=== 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 02:04, 1 April 2019

    ROCK Pi 4 >  Development >  Install from USB OTG port

ROCK Pi supports maskrom mode, which is a special running mode the CPU is waiting for command from USB OTG port. The PC tool we use to communicate with ROCK Pi in maskrom mode is rkdevelop tool, an open source tool by Rockchip.

Requirement

  • ROCK Pi 4 mainboard
  • eMMC module
  • Power adapter
  • USB Male A to Male A cable(important) USB-C has been seen as not working, an adaptor for USB-C to USB-A has worked. See discussion.

Make sure rkdeveloptool is set up on host computer

Linux

To build rkdeveloptool on a debain based Linux distribution, follow the instruction below:

Install build dependecy:

 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/

MacOS

To build rkdeveloptool on macOS, you need homebrew(or similar package manager) to install required packages.

Install build dependency:

   brew install automake autoconf libusb

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/

Boot the board to maskrom mode

To boot ROCK Pi into maskrom mode is simple, you don't need to press any key

  • Power off the board and remove any bootable storage media, remove microSD card, remove eMMC module.
  • Plug the USB Male A to Mail A cable to ROCK Pi 4 OTG port(the upper USB3 port), the other side to PC
  • Power on the board

Now on your Linux PC, lsusb command show show the following usb devices

   Bus 003 Device 005: ID 2207:330c

It means the device is in maskrom mode now.

  • Now plug the eMMC module and proceed the next step to flash.

Install to eMMC via USB

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

Install by partitions(optional)

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

Troubleshooting