chipset rk3288
Linux can be either stored in internal memory or on sd card
Custom bootloader is required to try to load system from microSD before loading internal system.
- Download 'create-sdcard' tooling and extract
- Download rkflashkit from https://github.com/linuxerwang/rkflashkit
- build
./waf configure
- run:
- GUI
sudo ./run.py
- cli
sudo ./run.py --help
- GUI
- build
- Backup partition layout an partitions using rkflashkit
- Flash 'uboot' partition using rkflashkit with
RK3288Loader_uboot_V2.17.02.bin
loader distributed with 'create-sdcard'
- Download and extract 'create-sdcard'
- Download and extract Linuxium
- Replace
linux-rfs.img
increate-sdcard
directory by simlink tolinuxium-ubuntu1410-rfs.img
- If your sdcard is reporting in system as
/dev/mmcblk0
- Then you might need to create simlink
ln -s /dev/mmcblk0p1 /dev/mmcblk01
because of bug insgdisk
/create-scdard
- Then you might need to create simlink
- Run
sudo create-linux-sdcard
-
based on observations of
create-linux-sdcard
from create-sdcard -
it uses GPT
-
the is only one ext4 partition, other sections are located before that partition and not presented as actual GPT partitions
-
parameters partitions start at address 0x2000, it contains addressed of other partitions:
- boot
- kernel
- resources
-
content of 'parameters' partition can be checked out by (first 100 bytes)
sudo cat /dev/mmcblk0 | dd skip=$((0x2000)) | head -c 100 | hexdump -C
-
content of other partitions can be viewed by
sudo cat /dev/mmcblk0 | dd skip=$((0x2000+<partition_start>)) | head -c 100 | hexdump -C
where is address of beginning of the partition as stated in parameters partitions
-
partitions in parameters format:
- written in line beginning wiht
CMDLINE:
- format:<partition_length>@<partition_start>(<partition_name>)
- to get real partition start address
0x2000
has to be added
- written in line beginning wiht
- https://github.com/OlegKyiashko/RK29kitchen/blob/master/src/img_maker.c
- https://github.com/neo-technologies/rockchip-mkbootimg
Reading flash information
Loading partition information
MACHINE_MODEL:rk30sdk
MACHINE_ID:007
MANUFACTURER:RK30SDK
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3066
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
#KERNEL_IMG: 0x62008000
#FDT_NAME: rk-kernel.dtb
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:console=ttyFIQ0 androidboot.hardware=rk30board androidboot.console=ttyFIQ0 board.ap_has_alsa=0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00180000@0x00092000(system),0x00002000@0x00212000(metadata),0x00400000@0x00214000(userdata),0x00020000@0x00614000(radical_update),-@0x00634000(user)
Partitions:
uboot (0x00002000 @ 0x00002000) 4 MiB
misc (0x00002000 @ 0x00004000) 4 MiB
resource (0x00008000 @ 0x00006000) 16 MiB
kernel (0x00008000 @ 0x0000E000) 16 MiB
boot (0x00010000 @ 0x00016000) 32 MiB
recovery (0x00010000 @ 0x00026000) 32 MiB
backup (0x0001A000 @ 0x00036000) 52 MiB
cache (0x00040000 @ 0x00050000) 128 MiB
kpanic (0x00002000 @ 0x00090000) 4 MiB
system (0x00180000 @ 0x00092000) 768 MiB
metadata (0x00002000 @ 0x00212000) 4 MiB
userdata (0x00400000 @ 0x00214000) 2048 MiB
radical_update (0x00020000 @ 0x00614000) 64 MiB
user (0x016EB000 @ 0x00634000) 11734 MiB
Done!