Difference between revisions of "Rock/Booting Linux/zh cn"
< Rock | Booting Linux
PeiYao Wang (Talk | contribs) (Created page with "=== 开发要求 === * radxa rock (全版或者简版) * 64bit Linux (e.g. Ubuntu) 开发环境 * micro USB 数据线 * 5V/2A的电源") |
(→开发要求) |
||
Line 4: | Line 4: | ||
* micro USB 数据线 | * micro USB 数据线 | ||
* 5V/2A的电源 | * 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 wip/rockchip-3.0-radxa-rock https://github.com/linux-rockchip/rockchip-3.0.git | ||
+ | |||
+ | 或者从下面的链接下载源码包,并解压该文件: | ||
+ | https://github.com/linux-rockchip/rockchip-3.0/archive/wip/rockchip-3.0-radxa-rock.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盘或者移动硬盘。 |
Revision as of 04:09, 29 March 2014
开发要求
- 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 wip/rockchip-3.0-radxa-rock https://github.com/linux-rockchip/rockchip-3.0.git
或者从下面的链接下载源码包,并解压该文件:
https://github.com/linux-rockchip/rockchip-3.0/archive/wip/rockchip-3.0-radxa-rock.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盘或者移动硬盘。