Rock/Booting Linux
Contents
Requirement
- a radxa rock board(full version or lite version)
- a desktop/laptop running Windows(XP 32/64bit, Windows 7 32/64 bit)
- a micro usb cable, one side plugged in to the OTG port of radxa rock, the other side plugged in to the usb port on desktop/laptop
Install the toolchain
Install ARM toolchain and building kernel related pacakges if you don't have them on your host.
sudo apt-get install gcc-arm-linux-gnueabihf sudo apt-get install lzop libncurses5-dev export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf-
Build the kernel
git clone -b wip/rockchip-3.0-radxa-rock https://github.com/linux-rockchip/rockchip-3.0.git make rk3188_radxa_rock_defconfig make
Generate the ramdisk
git clone https://github.com/radxa/initrd.git cd initrd find . ! -path "./.git*" | cpio -H newc -ov > ../initrd.img cd ..
Generate the boot.img
wget http://dl.radxa.com/rock/tools/linux/mkbootimg sudo apt-get install lib32stdc++6 chmod +x mkbootimg ./mkbootimg --kernel rockchip-3.0/arch/arm/boot/Image --ramdisk initrd.img -o boot.img
Modify the parameter
The linux rootfs maybe in the different partition or media(nand or uSD card or USB disk), so you need to tell the kernel which is the right rootfs to mount. So change the root= command line in your parameter to the rootfs you want to mount. The examples are:
root=/dev/block/mtd/by-name/linuxroot # rootfs in the nand partition named "linuxroot" root=/dev/mmcblk0p1 # rootfs in the uSD card first partition root=/dev/sda1 # rootfs in the U disk or the USB hard drive first partition root=LABEL=linuxroot # rootfs in the partition with label "linuxroot", can be in uSD, U disk or USB hard drive.
Next step
Now you refer flash the image to flash the generated boot.img to "boot" partition parameter to "parameter" partition of your radxa rock board. And download a prebuilt rootfs or make your own rootfs. You will get linux system boot into ramdisk and then switch root to real rootfs.