开发环境:Ubuntu 10.04,linux-2.6.26.5 开发步骤: 1.安装和下载可能用到的软件包。 sudo apt-get install bison flex build-essential patch libncurese5-dev //libncurese5-dev在10.04中似乎apt-get找不到,但是新力得里看得到的 也可以把这些软件的deb报下下来,然后 sudo dpkg -i *.deb 2. 降低gcc的版本 Ubuntu默认的gcc是4.4的,版本高也是问题(对此实在是无语,真要命)但并不需要卸载4.4,因为我们在终端输入的gcc只是gcc-4.4的软连接,把这个软连接指向4.1就行了。两种方法: (a).直接apt-get安装 sudo apt-get install gcc-4.1 安装后gcc被覆盖,指向了gcc-4.1。 (b).下载软件包 gcc-4.1_4.1.2-23Ubuntu3_i386.deb gcc-4.1-base_4.1.2-23Ubuntu3_i386.deb cpp-4.1_4.1.2-23Ubuntu3_i386.deb 然后sudo dpkg -i *.deb安装 安装好后修改软连接 sudo rm /usr/bin/gcc sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc 3. 修改sh版本 运行:ls -la /bin/sh 可以看到/bin/sh的链接是dash,运行以下命令: sudo dpkg-reconfigure dash 选择no以删除dash 可以再运行一下ls -la /bin/sh 可以看到它现在指向了bash,别还以为是dash,别看错哦~ 4. 新建安装文件夹crosstool和downloads,最好是在/home/lnux下,一旦建立就不要移动了。 mkdir /home/linux/downloads,将crosstoll-0.43.tar.gz拷入。除此之外,还有其他下面要用到的源码包,如果没有的话下面会自动下载。 5.解压crosstool-0.43. cd /home/linux/downloads tar -zxvf crosstool-0.43.tar.gz cd crosstool-0.43 这个目录下有很多脚本和配置文件,每一个支持的处理器都有对应的脚本。我们现在选用的demo-arm-softfloat.sh是建立支持软浮点的arm交叉编译工具链 6.修改 demo-arm-softfloat.sh vim demo-arm-softfloat.sh 修改这两句: TARBALLS_DIR=$HOME/downloads RESULT_TOP=/opt/crosstool 为: TARBALLS_DIR=/home/linux/downloads //下面运行时用的软件包自动下载会保存在这里 RESULT_TOP=/home/linux/crosstool // 生成的工具链会保存在这里。这个文件以后不要移动 7.修改gcc-3.4.5-glibc-2.3.6.dat vim gcc-3.4.5-glibc-2.3.6.dat 只要修改LINUX_DIR=linux-2.6.26.5这一句,指定你要的内核版本,如果downloads里有的话会自动去读,没有会下载放在downloads里。 8. 执行demo-arm-softfloat.sh ./demo-arm-softfloat.sh 这里要很长时间,半小时左右,机子好点十几分钟也可以的。 我在这里出错了,错误代码: These critical programs are missing or too old: as ld........... 上网查了以后说是binutils版本为2.20,太高了,要降到2.19(寒阿),有人修改configure文件,进到里面把2.XX的限制改掉,但是这样有未知的危险,还有一种可行的就是直接安装binutils2.19这种比较可行。 9.修改环境变量 sudo vim /etc/bash.bashrc 在末尾添加: export PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin: 10.重新打开一个终端执行:arm-softfloat-linux-gnu-gcc -v 显示: Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long Thread model: posix gcc version 3.4.5 则表示构建成功。 11.恢复gcc和sh sudo rm /usr/bin/gcc sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc 重新安装dash sudo dpkg-reconfigure dash 选择“是”重新安装dash. |
|