软件环境

  • lubuntu 13.10 amd64版 / Ubuntu Server 13.10 amd64版
  • 虚拟机20G硬盘,1G内存

为这篇教程,我全新安装多次lubuntu/ubuntu,验证过每个命令,保证能编译出一个能用的内核

安装依赖的库/工具

打开控制台,执行

sudo apt-get install -y g++-arm-linux-gnueabihf vim make u-boot-tools libusb-1.0-0-dev openssh-server pkg-config
sudo apt-get install -y texinfo ccache zlib1g-dev gawk bison flex gettext uuid-dev lib32stdc++6 curl wget ncurses-dev

下载内核源码

推荐从百度网盘下载 pcduino内核源码打包下载

里面的均为github官网代码库的打包, 非git版删掉了.git目录,源码内容完全一样

从github下载(建议网速可以的才使用)

git clone https://github.com/pcduino/kernel.git
cd kernel
git submodule init
git submodule update       #会下载全志的sun4i内核源码, 慢慢等吧

开始编译

打开shell,开始耗cpu吧!!

tar xf pcduino_kernel_20131127_nogit.gz   #如果是百度网盘下载的,就需要先解压咯,git下载的就无视这句了

cd kernel
make clean

cd sunxi-tools
make clean
cd ..

./configure pcduino
make hwpack

最后输出的信息类似

  INSTALL output/lib/firmware/mts_gsm.fw
  INSTALL output/lib/firmware/mts_edge.fw
  INSTALL output/lib/firmware/edgeport/boot.fw
  INSTALL output/lib/firmware/edgeport/boot2.fw
  INSTALL output/lib/firmware/edgeport/down.fw
  INSTALL output/lib/firmware/edgeport/down2.fw
  INSTALL output/lib/firmware/edgeport/down3.bin
  INSTALL output/lib/firmware/whiteheat_loader.fw
  INSTALL output/lib/firmware/whiteheat.fw
  INSTALL output/lib/firmware/keyspan_pda/keyspan_pda.fw
  INSTALL output/lib/firmware/keyspan_pda/xircom_pgs.fw
  DEPMOD  3.4.29+
make[1]: Leaving directory `/home/wendal/kernel/linux-sunxi'
cd /home/wendal/kernel/build/sun4i_defconfig-linux && arm-linux-gnueabihf-objcopy -R .note.gnu.build-id -S -O binary vmlinux bImage
#git submodule init
#git submodule update cedarx-libs
scripts/mk_hwpack.sh /home/wendal/kernel/output/pcduino_a10_hwpack_20131215.tar.xz
Debian/Ubuntu hwpack
Done.

编译好的压缩包在output目录中,有日期标记,例如pcduino_a10_hwpack_20131215.tar.xz

自定义内核

跟大多数A10的板子一样,你可以修改2个配置文件(ps: android的话还有个分区文件)

第一个是内核配置文件,也就是编译内核时常见的.config文件

#编译成功后可以找到,但编译之前是没有的,可见这不是真正的配置文件
find -name .config
>> ./build/sun4i_defconfig-linux/.config

#真正的配置文件在
find -name sun4i_defconfig
>> ./patch/linux-sunxi/arch/arm/configs/sun4i_defconfig

所以,需要先在build/sun4i_defconfig-linux/进行配置,然后覆盖回去

cd build/sun4i_defconfig-linux/
make menuconfig
# ... ... 配置你需要的选项
#..........

#然后把配置直接覆盖回去,不然下一次build的时候依然是老的
cp .config ../../patch/linux-sunxi/arch/arm/configs/sun4i_defconfig

另外一个是uboot的配置,这个文件有很多很多好东西,看文档吧Fex指南

./sunxi-boards/sys_config/a10/pcduino.fex

More?

我上传了一个ubuntu的vbox磁盘镜像, 用vbox新建一个虚拟机,选择这个文件作为主磁盘启动,即可拥有pcduino编译环境!

镜像地址(还在上传中…)



blog comments powered by Disqus

Published

2013-12-15

Categories


Tags

Fork me on GitHub