iTOP 4412安装嵌入式linux编译环境

本文苦逼,只是给自己留个记录,接下来再出问题的话好回来找解决办法

买了块开发板,提供的编译环境要求必须要是 win7 64bit  ubuntu 12.04。正好我电脑装了win8.1 64bit ubuntu16.04,没办法只好自己重新安装编译环境了。

第一步,设置共享文件夹,试过了好多方法,没成功;临时找到个解决办法,通过优盘拷贝。

第二步,将讯为提供的交叉编译工具arm-linux-gcc-4.3.2.tar.gz拷贝到linux系统里,解压缩。通过vim .bashrc命令打开.bashrc这个文件,在最后面添加上以下路径

export PATH=$PATH:/具体存放交叉编译工具的路径/bin

esc -> :x

然后再在terminal里执行source .bashrc完成刚才的更改。

有一个确认修改正确忆否的方法,在terminal里输入  arm-none-linux-gnueabi-gcc -v,查看具体的输出,如果没有提示说“not such file or directory”的话,那么就说明安装成功了。

如果路径什么都是正确的话,仍然提示“not such file or directory”,这时候可以使用file arm-none-linux-gnueabi-gcc查看交叉编译工具是32位的还是64位的,如果是的话,那么就需要安装兼容包;大致命令如下:

apt-get install libc6:i386 libgcc1:i386 gcc-4.3-base:i386:

ia32-libs
libstdc++5:i386 libstdc++6:i386

这时候拷贝itop提供的一些demo程序,修改makefile里的配置路径后可以进行编译了。这一步算是完成了,只是目前手头没有板子就没有办法确认程序的好坏了。

第三步,因为第一步的共享文件夹没有设置成功,就考虑使用SSH来交换文件。也很悲催,windows上的SSH链接时提示服务器不支持策略,所以就百度了下,从一个论坛里发现新版本的SSH没有配置相应的策略,需要修改配置文件。具体方法如下:

问题已经解决了,修改ssh的配置文件 /etc/ssh/sshd_config

在末尾添加:

Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc

MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96

KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org

重启sshd服务(service sshd restart)后,即可正常连接。

终于可以不使用优盘拷贝了,OY.


第五步,接下来开始编译内核,通过SSH把源码拷贝到虚拟机里,解压缩后输入make zImage,出现的问题和解决办法如下

问题:

Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/opt/ARM/mini6410/linux/linux-2.6.38/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:916: recipe for target 'kernel' failed
make: *** [kernel] Error 2

按照下面的处理就好了,这段代码好像是perl语言,汗,没学过,照葫芦画瓢吧

1、删除
@val = @{$canned_values{$hz}};
if (!defined(@val)) {
@val = compute_values($hz);
}
2、output前面加入
$cv = $canned_values{$hz};
@val = defined($cv) ? @$cv : compute_values($hz);


嵌入式LInux开发环境的构筑果然是个难点啊,问题不断,接下来又出了BUG了,看提示应该是编译器的BUG了。

cc       net/netfilter/core.o

net/netfilter/core.c:In function 'nf_hook_slow':

net/netfilter/core.c:197:error:could not split insn

please submit a full bug report.with preprocessed source if appropriate

这个问题很苦逼啊,搜索了很多网页,都说是优化选项O2的问题,改来改去都没成功。

最后,从网上下了一个arm-2009q3这个交叉编译工具,按图索骥的配置后,编译成功了。苦逼的程序员,linux资源太多了,太乱了。还要继续苦逼下去啊

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值