Radxa

From AD7ZJ Wiki
Jump to navigation Jump to search

These are cool little boards. Currently just some notes... the boot process is a little strange in that the kernel is not inside the filesystem but at a particular offset on the SD card (or onboard NAND flash). The kernel that came with the ubuntu server image I downloaded didn't support the WinTV tuner I wanted to use, so I downloaded their kernel source off github and did a make menuconfig to build in the modules I wanted. Once you have the kernel built, you turn it into a boot image that has initrd and such embedded in.

Use these instructions to build the kernel http://radxa.com/Rock/Booting_Linux

Parameter file on the SD card

View it by running dd if=/dev/mmcblk0 of=parameter.img count=$((0x2000)) skip=$((0x2000)) The parameter.img can be viewed with a text editor like vim.

It appears like the location can vary between boards, so good luck finding where it is if it's not in this spot. Once you have that you know where the boot.img should start. Look at the kernel parameters for where (boot) is. In this case it was at 0x0000a0000.

FIRMWARE_VER:1.0.0
MACHINE_MODEL:rock
MACHINE_ID:007
MANUFACTURER:RADXA
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3066
CHECK_MASK: 0x80
KERNEL_IMG: 0x60408000
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:console=ttyFIQ0 console=tty0 androidboot.console=ttyFIQ0 init=/sbin/init root=/dev/mmcblk0p1 rw rootfstype=ext4 mac_addr=de:ad:de:ad:be:ef initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00006000@0x0000a000(boot)

Writing boot image to SD card

dd if=boot.img of=/dev/mmcblk0 bs=512 conv=sync,fsync seek=$((0x2000+0xa000))


Eject the SD card and boot the radxa - with any luck you'll have the new kernel running!