如何编译pcDuino的内核

在这篇文章里,我们详细讨论如何编译pcDuino内核。

下文中所谈到的命令,除非另外标明,都是在X86 PC上运行。

1. 下载pcDuino 内核源代码。

$ git clone https://github.com/pcduino/kernel.git

注意事项:

  • 这一步我们只是下载了编译的环境。
  • 在编译的过程中,我们需要 https://github.com/linux-sunxi/上面的子模块。
  • 这些子模块的源代码,将在运行”make”的时候自动下载。

2. 在X86电脑上安装编译需要的软件包和交叉工具链。

在X86 Ubuntu电脑上,用以下命令安装需要的软件包和交叉工具链。

$ sudo apt-get install build-essential git u-boot-tools texinfo texlive ccache zlib1g-dev gawk
$ sudo apt-get install bison flex gettext uuid-dev ia32-libs

下载推荐的linaro工具链(选择 “arm hf crosscompiler for Linux”):

https://launchpad.net/linaro-toolchain-binaries/+download

$ tar jzxf gcc-linaro-arm-linux-gnueabihf-xxx_linux.tar.bz2 -C your-path
$ export PATH=$PATH:your-path/gcc-linaro-arm-linux-gnueabihf-xxx_linux/bin

3. 编译内核

在 kernel/ 目录下运行’make’.  不要在其他目录下运行该命令。

$ cd kernel/
$ make

如果不发生错误, 将生成以下的镜像文件:

  • pcduino_a10_hwpack_YYYYMMDD.tar.xz ( includes uboot for mmc-boot, kernel, and driver modules ).
  • pcduino_a10_kernel_livesuit_YYYYMMDD.img ( kernel image update by livesuit )

4. 更新pcDuino内核

下面的命令将在pcDuino上运行。

a) nand启动:

$ tar xvf pcduino_a10_hwpack_YYYYMMDD.tar.xz -C /tmp
$ sudo mount /dev/nanda /boot
$ sudo cp /tmp/kernel/* /boot -f
$ sudo mv /lib/modules/3.4.29+ /lib/modules/3.4.29_old
$ sudo cp /tmp/rootfs/lib/modules/3.4.29+ /lib/modules/ -ar
$ sudo sync
$ sudo umount /boot/
$ sudo reboot

b) mmc SD card 启动:

$ tar xvf pcduino_a10_hwpack_YYYYMMDD.tar.xz -C /tmp
$ sudo mount /dev/mmcblk0p1 /boot
$ sudo cp /tmp/kernel/* /boot -f
$ sudo mv /lib/modules/3.4.29+ /lib/modules/3.4.29_old
$ sudo cp /tmp/rootfs/lib/modules/3.4.29+ /lib/modules/ -ar
$ sudo sync
$ sudo umount /boot/
$ sudo reboot

注意事项:

Hardwarelibs 可以从老的文件系统中拷贝:

$ sudo cp /lib/modules/3.4.29+_old/kernel/drivers/hardwarelib/ /lib/modules/3.4.29+/kernel/drivers/ -ar

5. 定制内核:

用以下命令定制内核参数:

 

$ cd kernel/build/sun4i_defconfig-linux/
$ make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
$ mv .config ./../patch/linux-sunxi/arch/arm/configs/sun4i_defconfig -f

你可能感兴趣的:(liunx,arduino,pcduino,minipc)