Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Difference between revisions of "Rock/Booting Linux"

(Get the source code)
Line 4: Line 4:
  
 
=== Requirement ===
 
=== Requirement ===
* a radxa rock board(full version or lite version)
+
 
 +
* a radxa rock board (check your [[Rock/hardware revision|hardware revision]])
 
* a desktop/laptop running Linux(64bit preferred)
 
* a desktop/laptop running Linux(64bit preferred)
 
* 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
 
* 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 the toolchain ===
 +
 
Install ARM toolchain and building kernel related packages if you don't have them on your host.  
 
Install ARM toolchain and building kernel related packages if you don't have them on your host.  
 +
 
     sudo apt-get install gcc-arm-linux-gnueabihf build-essential lzop libncurses5-dev libssl-dev
 
     sudo apt-get install gcc-arm-linux-gnueabihf build-essential lzop libncurses5-dev libssl-dev
 
     export ARCH=arm
 
     export ARCH=arm
Line 16: Line 19:
 
=== Get the source code ===
 
=== Get the source code ===
  
     git clone -b radxa-rock/linux https://github.com/linux-rockchip/rockchip-3.0.git
+
     git clone -b radxa/stable-3.0 https://github.com/linux-rockchip/kernel_rockchip.git
  
 
or download from this link and unzip it:
 
or download from this link and unzip it:
    https://github.com/linux-rockchip/rockchip-3.0/archive/radxa-rock/linux.zip
 
  
or, you may try work-in-progess kernel based on Android 4.4.2 SDK
+
     https://codeload.github.com/linux-rockchip/kernel_rockchip/zip/radxa/stable-3.0
     git clone -b radxa/radxa-dev-kk https://github.com/linux-rockchip/kernel_rockchip.git
+
 
+
for Rock Pro
+
    git clone -b radxa/stable-3.0 https://github.com/linux-rockchip/kernel_rockchip.git
+
  
 
=== Build the kernel ===
 
=== Build the kernel ===
  
     cd rockchip-3.0
+
     cd kernel_rockchip
     make rk3188_radxa_rock_defconfig
+
     make radxa_rock_pro_linux_defconfig
 
     make -j8
 
     make -j8
 +
 
The kernel will be at '''arch/arm/boot/Image'''
 
The kernel will be at '''arch/arm/boot/Image'''
  
if you cloned radxa-rock/android-kk branch, use rk3188_radxa_rock_linux_defconfig instead of rk3188_radxa_rock_defconfig
+
if your Rock is full or lite, use radxa_rock_linux_defconfig instead of radxa_rock_pro_linux_defconfig
     make rk3188_radxa_rock_linux_defconfig
+
 
 +
     make radxa_rock_linux_defconfig
  
 
=== Build the kernel modules ===
 
=== Build the kernel modules ===
 +
 
     mkdir modules
 
     mkdir modules
 
     export INSTALL_MOD_PATH=./modules
 
     export INSTALL_MOD_PATH=./modules
 
     make modules && make modules_install
 
     make modules && make modules_install
 
     cd ..
 
     cd ..
 +
 
Now you have all the kernel modules in '''modules/lib/modules/3.0.36+/'''.
 
Now you have all the kernel modules in '''modules/lib/modules/3.0.36+/'''.
  

Revision as of 02:28, 1 September 2014

Requirement

  • a radxa rock board (check your hardware revision)
  • a desktop/laptop running Linux(64bit preferred)
  • 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 packages if you don't have them on your host.

   sudo apt-get install gcc-arm-linux-gnueabihf build-essential lzop libncurses5-dev libssl-dev
   export ARCH=arm
   export CROSS_COMPILE=arm-linux-gnueabihf-

Get the source code

   git clone -b radxa/stable-3.0 https://github.com/linux-rockchip/kernel_rockchip.git

or download from this link and unzip it:

   https://codeload.github.com/linux-rockchip/kernel_rockchip/zip/radxa/stable-3.0

Build the kernel

   cd kernel_rockchip
   make radxa_rock_pro_linux_defconfig
   make -j8

The kernel will be at arch/arm/boot/Image

if your Rock is full or lite, use radxa_rock_linux_defconfig instead of radxa_rock_pro_linux_defconfig

   make radxa_rock_linux_defconfig

Build the kernel modules

   mkdir modules
   export INSTALL_MOD_PATH=./modules
   make modules && make modules_install
   cd ..

Now you have all the kernel modules in modules/lib/modules/3.0.36+/.

Generate the ramdisk

   git clone https://github.com/radxa/initrd.git
   make -C initrd

Generate the boot.img

Install mkbootimg

   git clone https://github.com/neo-technologies/rockchip-mkbootimg.git
   cd rockchip-mkbootimg
   make
   sudo make install
   cd ..

Make boot.img

   mkbootimg --kernel rockchip-3.0/arch/arm/boot/Image --ramdisk initrd.img -o boot.img

Done. Now we have the kernel boot.img for RR.

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.