下载制作交叉编译的工具:wget http://www.kegel.com/crosstool/crosstool-0.43.tar.gz
1、通过终端安装程序sudo apt-get install ***时出错:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成,解决的办法其实很简单:
在终端中敲入以下两句
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
2、制作交叉编译工具链时发生的错误
(1)、以root用户执行./demo-arm-softfloat.sh,会发生以下错误。必须以普通用户执行。
+ case x$PREFIX in
+ case x$USER in
+ abort 'Don'\''t run all.sh or crosstool.sh as root, it'\''s dangerous'
+ echo 'Don'\''t' run all.sh or crosstool.sh as root, 'it'\''s' dangerous
Don't run all.sh or crosstool.sh as root, it's dangerous
+ exec false
(2)、以普通用户执行./demo-arm-softfloat.sh时,过程中会发生权限限制问题, 以sudo mkdir代替。创建的目录或文件必须可读可写.
(3)、. Upatch gcc-3.4.5.tar.gz时出错的问题
bzip2(stdin) is not a bzip2 file
tar:child returned status
重新下载成gcc-3.4.5.tar.gz后解决。
(4)、编译过程中出现如下问题:
configure: error:
*** These critical programs are missing or too old: as ld
*** Check the INSTALL file for required versions.
出现这种情况是因为Ubuntu默认所安装的binutils版本为binutils-2.20,当binutils太新的时候,crosstool只好将它当成太老的版本,报告说too old; as ld. 于是我们需要重新编译安装一个老版本的binutils,2.19或者2.18都可以被crosstool所识别,这里拿binutils-2.18举例。但还有一个问题,Ubuntu10.04默认安装的gcc版本是gcc-4.4.3,跟binutils-2.20一样,太高版本的gcc对语法要求更为严格,这样会导致binutils-2.18无法轻松的编译通过,于是我们需要编译安装一个老版本的gcc, 4.1的版本可以编译成功binutils-2.18.
解决办法:
下载binutils-2.18:http://ftp.gnu.org/gnu/binutils/
tar xvfj binutils-2.18
./configure --prefix=/home/david/share/tmp/binutils --disable-nls
//一定要进到binutils2.8目录下执行这行命令。
//--prefix后面的是生成可执行文件存放的位置可以自己定义
Make all
Make install //如果这句不行,在执行这句前先make一下。
cd /usr/bin
sudo rm as ld
sudo ln -sf /home/david/share/tmp/binutils/bin/ld ld
sudo ln -sf /home/david/share/tmp/binutils/bin/as as
ld –v //如果看到版本号是2.18 就说明编译对了。
as –v
Binutils-2.18. Binutils 是一组开发工具,包括连接器、汇编器和其他用于目标文件和档案的工具。
(5)、VirtualBox 提示虚拟硬盘空间不足( Host system reported disk full.)
http://blog.csdn.net/ch_984326013/article/details/6704997
主要因为fat32只支持最大文件为4GB.
如何升级到NTFS:1.单击开始→运行 2.打开窗口以后,在光标的提示符下输入“convert X:/FS:NTFS”,然后回车。注意在“convert”的后面有一个空格。 3.接着系统会要求你输入X盘的卷标,然后回车。(卷标在“我的电脑”中点X盘,然后看它的属性可以找到。)(或者运行,输入cmd,在打开的工具中输入“vol”命令就可以看见c盘的卷标,如果想看其他的盘,例如D盘,则先输入d:,然后在输入vol 即可。)工作界面这样就可简单地转换分区格式为NTFS了。这个方法只用于FAT32转为NTFS,不能将NTFS转为FAT32。
(6)、如下问题:uses hardware FP, whereas u-boot uses software FP
编译器不支持software FP.需要重新制作编译器