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

Rock/Booting Linux/zh cn

< Rock‎ | Booting Linux
Revision as of 07:17, 6 April 2014 by Naobsd (Talk | contribs)

开发要求

  • radxa rock (全版或者简版)
  • 64bit Linux (e.g. Ubuntu) 开发环境
  • micro USB 数据线
  • 5V/2A的电源

安装编译工具链

如果你的电脑没有安装工具链,那么可以按照以下命令安装ARM工具链,并编译相关的内核包:

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

获取源码

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

或者从下面的链接下载源码包,并解压该文件:

   https://github.com/linux-rockchip/rockchip-3.0/archive/radxa-rock/linux.zip
   或者 http://pan.baidu.com/s/1gdxbm8N (china)

编译内核

   cd rockchip-3.0
   make rk3188_radxa_rock_defconfig
   make -j8

生成的内核文件位置是在 arch/arm/boot/Image

编译内核模块

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

现在所以的内核模块都在 modules/lib/modules/3.0.36+/文件夹中。

生成 ramdisk

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

生成 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

完成。现在已经生成了RR的“boot.img”文件了。

修改 parameter 文件

linux的根文件系统(rootfs)可能处于不同的分区或者媒介中(比如nand、SD卡或者U盘 ),所以你需要告诉内核应该加载哪一个根文件系统。修改你的parameter文件的“root= ”这一行,指向你想加载的那个根文件系统所存放的分区。比如:

   root=/dev/block/mtd/by-name/linuxroot        # rootfs 在名叫“linuxroot”的nand分区中
   root=/dev/mmcblk0p1          # rootfs 在SD卡第一分区中
   root=/dev/sda1                # rootfs 在U盘或者移动硬盘第一分区
   root=LABEL=linuxroot         # rootfs在标签为“linuxroot”分区,这个分区可能是SD卡、U盘或者移动硬盘。