现在市场的主流是Linux.WINCE已经渐渐没有市场了!至少我所在公司已经在渐渐淡化WINCE,逐步的向Linux和Android的方向去发展!Linux的开发分为很多种:
1. Linux Device Driver的开发,这个属于较为底层的开发
2. Linux Application的卡发,这个不得不提现在很流行的Android的application的开发,这是一种类java的开发!还有其他许多的开发则是使用的C/C++.这里我使用开发语言的种类来区分的!当然还有其它的区分方法,我也没有去了解
言归正传,今天我们要搭建一个学习Linux Device Driver的开发环境.
1.安装Ubuntu 10.04
这部分的内容我就不多说了!可以参考相关的安装教程。
2.下载Linux的源码包www.kernel.org
这里我是下载的linux-2.6.38.4.tar.bz将这个源码包拷贝到/usr/src/的目录下
tar -jxvf linux-2.6.38.bz2
3.构建编译的环境
sudo apt-get update
sudo apt-get build-essential diffstat texinfo texi2html subversion gawk imagemagick help2man git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev zip curl libncurses5-dev libreadline5-dev
在安装sun-java6-jdk的时候需要在菜单栏的system->adminstration->Software Sources->Other Sources将第一个勾选上然后Close.
4.接下来就可以进行编译安装了
#cd /usr/src/linux-2.6.38.4
#sudo make(这是一个较为漫长的过程)
#sudo make bzImage
#sudo make modules
#sudo make modules_install
#sudo make
#cd /boot
#sudo mkinitramfs -o initrd.img-2.6.38.4 /lib/modules/2.6.38.4/
#cd grub
#sudo gedit grub.cfg
编辑这个文件
找到###BEGIN /etc/grub.d/10_linux ###
将menuentry 复制一份.放在所有menuentry的最前端!修改里面的内容:
linux /boot/vmliuz-2.6.38.4
initrd /boot/initrd.img-2.6.38.4
这两个文件就是在/boot下面生成的那两个文件
5.重新启动
#uname -a
看下新的linux的版本是不是2.6.38.4