Difference between revisions of "Rockpi4/dev/usb-install"
(→Install rkdeveloptool) |
(→Install by partitions(optional)) |
||
Line 83: | Line 83: | ||
Now the device should boot the new image on eMMC | 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 | 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 08:18, 7 December 2018
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.
Contents
Requirement
- ROCK Pi 4 mainboard
- eMMC module
- Power adapter
- USB Male A to Male A cable(important)
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
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
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
- If you have issue with flashing via USB OTG, start a new post on the forum. https://forum.radxa.com/c/dev