imx6q的ubuntu自带gcc好强大,可以编译内核,不用交叉编译了
1. 以前买过一块某嵌的imx6q的开发板,好久没玩过,最近拿在手里,发现了一些令人惊喜的地方。进入自带的ubuntu系统后,运行了一下gcc -v,发现里面竟然自带gcc编译器,让人很兴奋,心想这样是不是
就不用再来个电脑给它编译程序了,是不是自己就能编译程序????,下图是gcc -v和cat /proc/cpuinfo的打印信息:
2. 怀着激动的心情,还是按着惯例来个了Hello world!,程序如下,编译可以生成:a.out,运行a.out发现真的可以打印出来!
心情更有点小激动了。
3.这样能编译通过,是不是把他自己的uboot代码放上来,也能编译通过呢???把开发板自带的uboot放到开发板上,试着编译
make mx6q_sabresd_android_config
make j4 //----imx6q是4核,应该可以用4线程编译,加快进度
再用另一个终端联到开发板,查看到cpuinfo信息,和top信息,分别截图如下:
最后也成功编译了,最后的截图放到了最后,看可以生成u-boot.bin
4. 既然开始了,那就再试试内核,感觉会通不过,不过还是试了试,把内核复制到开发板挂载的sd卡上。
先试着运行make clean 和 make distclean 发下没什么错误
再把配置文件复制过来:cp imx6_config .config
再试着运行make menuconfig命令,这下出错了,以为没戏了,毕竟用arm编译自己的内核怎么可行??
但仔细看错误原来是缺少ucurses库,常见错误,自己装一个试试,开发板网络配置好,可以ping通百度,说时板子可以上外网
运行了一下apt-get install ucurses,提示错误,按着网上的办法改成了apt-get install libncurses5-dev,可以安装成功
再次运行make menuconfig,神奇的出现了配置界面
然后按默认配置保存,再运行make uImage -j4,好像开始编译了。是不是很激动,imx6q四核的CPU不知道要编译多久
耐心等着吧
顺便又看了看imx6q cpu资源情况,好像运行cc1的四个线程都到了90%以上,满负荷运行
运行到后面的时候,提示缺少mkimage工具,这个好办,刚好编译完了u-boot,进到tools目录,复制了一个到/bin目录
/bin 目录已经在默认的环境变量里面,试了一下mkimage,截图如下,好像命令可以用
这就好办了,再重新make uImage一下,竟然成功生成了uImage内核,完成之后的信息,BogoMIPS又降回去了
总供耗时是从9:28-9:45,好像编译的也挺快的,不知道为什么这么快,可能是imx6q就是这么强大
5.既然内核都可以编译,强大的很呀!再试一个驱动,还是经典的hello.ko,程序如下,再编写一个简单的Makefile
运行完可以生成hello.ko,试着加载一下,
insmod hello.ko
再运行:dmesg,发现内核在最后一行打印了hello world ,可以加载,同样也可以卸载驱动。
6. 现在的疑问,这些都能运行,是不是说明以后再开发嵌入式的东西,可以不再依靠x86电脑做服务器,进行交叉编译了?
arm可以编译自己要运行的程序,这个太强大了吧?
7.以上用的u-boot和linux内核代码都是开发板自带的,就是目录改了一下。板子烧的镜像也是开发板自己的。
8.以上截图都是在windows7下面,用putty的ssh连到开发板上进行的。
9.整个过程中发现,imx6q里面装的ubuntu跟x86版的还真差不多,想安装的软件包基本都有arm版的,例如:
apt-get install samba4//samba服务器
apt-get install minicom //超级终端
这些都可以直接安装
10.整个编译过程,都是把源码放在tf卡上,再挂到imx6q上面编译的。tf卡是高速10-class的,这也可能是编译速度快的一个原因。
11.这个发现是不是可以来个cool,嘿嘿!!!! 直接在板子上开发程序,调试应该方便多了 superrf 发表于 2014-12-22 10:31
直接在板子上开发程序,调试应该方便多了
其实俺是做硬件的,业余喜欢摆弄一下开发板,偶然发现这个,觉得imx6q运行的ubuntu带GCC很高大上 {:biggrin:}我还以为arm上的都叫arm-linux-gcc了有点晕 nome 发表于 2014-12-22 10:40
我还以为arm上的都叫arm-linux-gcc了有点晕
因为是arm版本的ubuntu上面带的gcc,实质还是连到了arm-none-linux-gnueabi zengyi703 发表于 2014-12-22 10:44
因为是arm版本的ubuntu上面带的gcc,实质还是连到了arm-none-linux-gnueabi
{:handshake:} 哦 原来如此啊。。。 我靠,这么强大啊,牛逼。。。。 楼主,这个看起来很高端的样子 qufuta 发表于 2014-12-22 10:49
楼主,这个看起来很高端的样子
以前一直也自己想过这个问题,什么时候能实现arm给自己编译程序 POWER还是牛逼的 不是芯片牛,你要是8051能装Ubuntu,带gcc也能编译 以前在N900上编译qemu
完全没问题
只是吃顿饭回来还没编译好 任何一个跑linux的开发板都能编译,小小的舒梅派里面都带有。
这是常识吧。。。 我只想说,你真有耐心。他的四核比PC还是慢了太多太多,而且TF卡你这么搞很容易就坏掉了{:lol:} Jordan?? 发表于 2014-12-22 11:07
以前在N900上编译qemu
完全没问题
只是吃顿饭回来还没编译好
只是发现这个挺有意思的,原来其他CPU上面也有类似的编译器 biansf2001 发表于 2014-12-22 11:08
任何一个跑linux的开发板都能编译,小小的舒梅派里面都带有。
这是常识吧。。。 ...
刚搜了一下树莓派,确实也行,看来是我孤陋寡闻了 rtems 发表于 2014-12-22 11:14
我只想说,你真有耐心。他的四核比PC还是慢了太多太多,而且TF卡你这么搞很容易就坏掉了 ...
整个编译过程还是可以的,tf卡会不会坏,这个肯定会很浪费tf卡 zengyi703 发表于 2014-12-22 11:18
整个编译过程还是可以的,tf卡会不会坏,这个肯定会很浪费tf卡
TF/SD卡寿命有限,很容易坏掉,我有产品在用被折磨了好多年了.
当然偶尔玩玩肯定没事了.
这下就方便多了,交叉编译还是麻烦。 现在搞安卓的同事,改个底层代码,能编译一天一夜。 学习了,收藏备用。 交叉编译的方式估计再过两三年就会被废弃了。 gcc 编译的程序只能在ubuntu 上运行 我靠,还可以这样玩。不过感觉TF也没那么脆弱。 交叉编译有点复杂 不太适应 fengyunyu 发表于 2014-12-22 11:47
现在搞安卓的同事,改个底层代码,能编译一天一夜。
要这么久,太恐怖了吧,都不敢随便改代码了 浪里白条 发表于 2014-12-22 13:54
我靠,还可以这样玩。不过感觉TF也没那么脆弱。
还真可以这样玩,管tf用多久呢,不操那心,我是觉得没那么容易坏 zengyi703 发表于 2014-12-22 14:56
还真可以这样玩,管tf用多久呢,不操那心,我是觉得没那么容易坏
楼主怎么学的编译内核这些啊,我也是做硬件的,想朝LINUX驱动这方面转 浪里白条 发表于 2014-12-22 15:05
楼主怎么学的编译内核这些啊,我也是做硬件的,想朝LINUX驱动这方面转
没怎么正规的看过书,懂的也不多,都是遇到问题就网上找。
到现在对这些也只是有那么一点点了解,自己摸索的,毕竟只有业余时间弄 楼主这么以分享,我倒有个想法:公司以后开发的时候,开发使用的板子,内存和Flash配大容量; 直接在上面开发调试,软件成型了,产品上的就不需要了,是不? zengyi703 发表于 2014-12-22 15:31
没怎么正规的看过书,懂的也不多,都是遇到问题就网上找。
到现在对这些也只是有那么一点点了解,自己摸 ...
感谢回复,状态和您差不多,以后有问题还望您能指点下。 craigtao 发表于 2014-12-22 15:37
楼主这么以分享,我倒有个想法:公司以后开发的时候,开发使用的板子,内存和Flash配大容量; 直接在上面 ...
我觉得可以这么干,关键是不知道别的arm芯片上面跑的linux是不是也带编译器 浪里白条 发表于 2014-12-22 15:05
楼主怎么学的编译内核这些啊,我也是做硬件的,想朝LINUX驱动这方面转
都在说内核泛泛了解下即可,一般人也搞不了。驱动、应用选一,应用貌似前途比驱动好些。 zengyi703 发表于 2014-12-22 15:47
我觉得可以这么干,关键是不知道别的arm芯片上面跑的linux是不是也带编译器 ...
如果是应用的话,应该无所谓,关键是驱动什么的,不知道理解的对不对,。 浪里白条 发表于 2014-12-22 15:39
感谢回复,状态和您差不多,以后有问题还望您能指点下。
话说LZ的公司如果有搞linux的部门或项目组,转过去边学边干好些 fengyunyu 发表于 2014-12-22 15:51
都在说内核泛泛了解下即可,一般人也搞不了。驱动、应用选一,应用貌似前途比驱动好些。 ...
我们这边应用就是做Android程序开发,我不是很感兴趣、 fengyunyu 发表于 2014-12-22 15:54
话说LZ的公司如果有搞linux的部门或项目组,转过去边学边干好些
我也想转,不过老板可不愿意付给你工资让你去学新东西。 浪里白条 发表于 2014-12-22 16:07
我也想转,不过老板可不愿意付给你工资让你去学新东西。
公司做产品,一般总有老产品可以参考,修修改改,再临时报下佛教,慢慢就会了。以前有位同事,也不怎么会linux,但一心想搞linux,跳了几家公司,终于搞上linux了。 fengyunyu 发表于 2014-12-22 15:54
话说LZ的公司如果有搞linux的部门或项目组,转过去边学边干好些
这个当然可以,但是做硬件也没什么不好的。业余增加点软件知识
等遇到问题时,软件如果一直说是硬件问题,我也好有充足的理由反驳。 。。。。。。理论上所有Linux开发板都能装gcc。好处是定制的时候很方便,但开发绝对不行。 fengyunyu 发表于 2014-12-22 16:12
公司做产品,一般总有老产品可以参考,修修改改,再临时报下佛教,慢慢就会了。以前有位同事,也不怎么会 ...
嗯,我也想这么来搞,直接接手之前同事的工作。这样来得快,一个是要文档或者同事帮忙,一个是要老板给机会。 zengyi703 发表于 2014-12-22 17:00
这个当然可以,但是做硬件也没什么不好的。业余增加点软件知识
等遇到问题时,软件如果一直说是硬件问题 ...
哈哈,硬件工资没得搞LINUX的高啊,不过我始终觉得公司产品的核心一定是在硬件上。
软件修修补补总能弄好,硬件是要花钱才能烧出来的。 浪里白条 发表于 2014-12-22 17:22
哈哈,硬件工资没得搞LINUX的高啊,不过我始终觉得公司产品的核心一定是在硬件上。
软件修修补补总能弄好 ...
我倒觉得公司的核心一般都在软件上,硬件怎么都能搞出来,核心算法不是那么好出的 zengyi703 发表于 2014-12-22 17:24
我倒觉得公司的核心一般都在软件上,硬件怎么都能搞出来,核心算法不是那么好出的 ...
哈哈,那你们搞的产品还蛮复杂了。
我司的产品一般是QT+传感器应用,没什么核心的算法。 zengyi703 发表于 2014-12-22 17:24
我倒觉得公司的核心一般都在软件上,硬件怎么都能搞出来,核心算法不是那么好出的 ...
相当一部分是这样。越来越多的产品,软件工作量大于硬件。涉及到复杂算法的产品,就更不用说了。 感谢楼主分享哈~~欢迎有问题在本论坛中交流讨论哈~~ 编译内核是不到10分还是10小时?
如果是分的话,那很厉害了 小公司玩不起硬件,有个好的平台二次开发就好了 又当电脑又当实验板,爽!!!!!! 这个真的要标记一下了。 swap2013 发表于 2014-12-22 18:03
编译内核是不到10分还是10小时?
如果是分的话,那很厉害了
帖子上面有编译时间 avr-arm 发表于 2014-12-22 18:12
又当电脑又当实验板,爽!!!!!!
就是实现了这个效果,特别爽 brahen 发表于 2014-12-22 17:04
。。。。。。理论上所有Linux开发板都能装gcc。好处是定制的时候很方便,但开发绝对不行。 ...
理论上当然是 zengyi703 发表于 2014-12-22 19:29
帖子上面有编译时间
"从9:28-9:45"
有点不敢想象,台式机编译个内核也要上十分钟.
以前用2440编译过firefox, 一晚上也没编译完. swap2013 发表于 2014-12-22 19:35
"从9:28-9:45"
有点不敢想象,台式机编译个内核也要上十分钟.
这个是真的,我make clean;make distclean后,重新编译开始记时的
编译时加了-j4参数,用了四线程编译的,帖子中有CPU运行时占用率的截图 zengyi703 发表于 2014-12-22 19:39
这个是真的,我make clean;make distclean后,重新编译开始记时的
编译时加了-j4参数,用了四线程编译的 ...
这个i.mx6肯定比2440强很多, 没想到强这么多, 感觉赶上早几年的台式机了
多钱买的? swap2013 发表于 2014-12-22 19:35
"从9:28-9:45"
有点不敢想象,台式机编译个内核也要上十分钟.
刚开始我也以为要等好久 swap2013 发表于 2014-12-22 19:42
这个i.mx6肯定比2440强很多, 没想到强这么多, 感觉赶上早几年的台式机了
多钱买的? ...
taobao上面买了,你可以去找一下
另外2440也可以编译firefox?我表示有很大兴趣,能不能给一些相关资料?谢过了 swap2013 发表于 2014-12-22 19:35
"从9:28-9:45"
有点不敢想象,台式机编译个内核也要上十分钟.
提示一下2440用的编译工具也行,真好奇2440也能这么干? 在tegra 3的平板上弄过... 这种东西除了编译个hello world还能干什么?
这样说吧, 我在3年前的tegra 3上和5年前的一代Core i5上跑DMIPS, 单核性能差距大概是7倍...
粗略算一下, 这些嵌入式板子应该就是比图拉丁强那么一点点吧...
还忽略存储器 I/O子系统等等的性能... zengyi703 发表于 2014-12-22 19:46
taobao上面买了,你可以去找一下
另外2440也可以编译firefox?我表示有很大兴趣,能不能给一些相关资料? ...
2440记得是arm920T吧, 很久了, 没什么资料
当时误操作,把firefox的源码包下载到板子上去了, 顺手用gcc在板子上就编译了, 第二天早上去一看, 还没编译完就给关了.
xieyudi 发表于 2014-12-22 19:54
在tegra 3的平板上弄过... 这种东西除了编译个hello world还能干什么?
这样说吧, 我在3年前的tegra 3上和5 ...
确实不能干什么,就是有颗想折腾的心,哈哈!!! 新鲜事,头一回啊,再也不用X86的交叉编译了 感觉不实用,不过人生在于折腾嘛 编译速度快是4核的原因,同样c10的卡,用imx6 solo编译qt要两天。 zengyi703 发表于 2014-12-22 19:46
taobao上面买了,你可以去找一下
另外2440也可以编译firefox?我表示有很大兴趣,能不能给一些相关资料? ...
看mips快2G了
taobao上大多是1.2G, 你的也是吗? dawanpi 发表于 2014-12-22 21:02
编译速度快是4核的原因,同样c10的卡,用imx6 solo编译qt要两天。
两天时间,看来QT太庞大了。 当年上学的时候就干过这事,在qemu里面搞个GCC,那时候还没有编译好的版本,自己弄的源码去编译。
那时候只有一个低配Y450,T2300跑这玩意跑的累死了。
然后确实可以用,当时还傻不拉几的发了个微博,美其名曰去死吧交叉编译器,现在想想,其实也是折腾,没啥实际意义。
毕竟交叉编译器和原生编译器有啥区别呢?一点区别都没有,除了做驱动,大部分跑在userspace的程序,用交叉编译器反而更方便一点,毕竟挂载NFS的教程已经烂大街了。 fengyunyu 发表于 2014-12-22 21:31
两天时间,看来QT太庞大了。
哈哈,QT做LINUX界面用,慢慢的嵌入式这块Android的用的多了会被抛弃。 error_dan 发表于 2014-12-22 21:40
当年上学的时候就干过这事,在qemu里面搞个GCC,那时候还没有编译好的版本,自己弄的源码去编译。
那时候只 ...
Y450 记得当时是卖的很好的一个机器
450还是460我忘了
叫做彪悍的小Y zengyi703 发表于 2014-12-22 19:34
就是实现了这个效果,特别爽
这个对于搞单片机的来说,是一大进步,基本实现了一步跨越,就如同树莓派。
而对于计算机的来说,他们认为太正常了,理所当然。
站的角度不同,看到的问题也不同。 avr-arm 发表于 2014-12-22 21:57
这个对于搞单片机的来说,是一大进步,基本实现了一步跨越,就如同树莓派。
而对于计算机的来说,他们认 ...
其实就是个工具的问题。
侧面说明了,其实大部分的所谓搞单片机的工程师,居然卡在工具上。
你说的搞单片机的,在国外的专业分类里面一般叫ee,也就是电子工程师,搞计算机的,叫sc也就是计算机科学。
sc出身的人,往往理论功底更好,一旦搞定工具这块,ee出身的人除了多年累积的经验以外根本搞不过他们。
其实挺悲剧的。 error_dan 发表于 2014-12-22 21:40
当年上学的时候就干过这事,在qemu里面搞个GCC,那时候还没有编译好的版本,自己弄的源码去编译。
那时候只 ...
之前在易洛盟的社区里面看到有人说交叉编译偶尔会出现兼容的问题,不过没有仔细去找具体会有什么问题。 craigtao 发表于 2014-12-22 15:37
楼主这么以分享,我倒有个想法:公司以后开发的时候,开发使用的板子,内存和Flash配大容量; 直接在上面 ...
不可能把庞大的linux装进开发板中 ,这样就不叫嵌入式系统啦,交叉编译后的内核镜像非常的小 qs6361036 发表于 2014-12-23 08:38
不可能把庞大的linux装进开发板中 ,这样就不叫嵌入式系统啦,交叉编译后的内核镜像非常的小 ...
只是用来开发的那个板子这么弄,这样方便嘛,最后成型的产品肯定不能这么整的啊, dawanpi 发表于 2014-12-23 08:01
之前在易洛盟的社区里面看到有人说交叉编译偶尔会出现兼容的问题,不过没有仔细去找具体会有什么问题。 ...
确实会有偶尔兼容的现象 ,但是最好用 gcc-ARM-XXX 去编译,否则很容易出问题 craigtao 发表于 2014-12-23 08:39
只是用来开发的那个板子这么弄,这样方便嘛,最后成型的产品肯定不能这么整的啊, ...
用开发板编译linux内核 ,你会发现编译的很时间让你难以接受 craigtao 发表于 2014-12-23 08:39
只是用来开发的那个板子这么弄,这样方便嘛,最后成型的产品肯定不能这么整的啊, ...
尤其是编译QT的时候 ,PC机编译2个小时,开发板编译最少6个小时 qs6361036 发表于 2014-12-23 08:45
尤其是编译QT的时候 ,PC机编译2个小时,开发板编译最少6个小时
两个小时??什么Qt这么大的? craigtao 发表于 2014-12-23 08:46
两个小时??什么Qt这么大的?
编译QT库的时候 两个小时很正常啦 qs6361036 发表于 2014-12-23 08:49
编译QT库的时候 两个小时很正常啦
为什么啊??不就一个简单得图形,需要用两个小时? craigtao 发表于 2014-12-23 08:53
为什么啊??不就一个简单得图形,需要用两个小时?
QT库第一次编译需要很长的时间 。当然这个看你主机的配置 ,配置越高编译的越快 qs6361036 发表于 2014-12-23 08:58
QT库第一次编译需要很长的时间 。当然这个看你主机的配置 ,配置越高编译的越快 ...
我知道,我的意思是qt不是c++写的吗?编译速度这么慢? craigtao 发表于 2014-12-23 09:05
我知道,我的意思是qt不是c++写的吗?编译速度这么慢?
首先你得明白 ,QT是个庞大的库 craigtao 发表于 2014-12-23 09:05
我知道,我的意思是qt不是c++写的吗?编译速度这么慢?
这个库提供了很多类 ,给开发者调用 qs6361036 发表于 2014-12-23 09:17
首先你得明白 ,QT是个庞大的库
库庞大又不是每个都是用,C库也挺庞大的啊,但是用不着,编译的时候,编译器会选择用到的,可以看看链接与加载那本书, 这个好啊,以后再我开发板上试试! craigtao 发表于 2014-12-23 10:12
库庞大又不是每个都是用,C库也挺庞大的啊,但是用不着,编译的时候,编译器会选择用到的,可以看看链 ...
请你自己用QT做界面试试 。 请问你用vc编程 ,也是自己指定链接嘛 ,而不是直接使用微软提供的DLL库 ? qs6361036 发表于 2014-12-23 10:26
请你自己用QT做界面试试 。 请问你用vc编程 ,也是自己指定链接嘛 ,而不是直接使用微软提供的DLL库 ? ...
不是啊,是针对你说的Qt提供的库很庞大啊,庞大不一定都用上的啊。 我觉得编译时间长,不是库庞大的原因,只是个人猜想 error_dan 发表于 2014-12-22 22:23
其实就是个工具的问题。
侧面说明了,其实大部分的所谓搞单片机的工程师,居然卡在工具上。
工具确实是个问题,卡在工具上确实是不应该,但要是能做出更好的工具,也是不错滴 jungleyang 发表于 2014-12-23 10:18
这个好啊,以后再我开发板上试试!
有空可以玩玩,可能也仅限于玩玩,我觉得折腾折腾也不是什么坏事 linux启动后输出的调试信息,看起来眼晕。 这个真心牛,估计都可以拿来开发其它的单片机了 我擦,板子直接当编译器了啊 Ubuntu的好处嘛,一个apt-get,gcc就搞定了 有这么神奇吗 是挺cool的 也有一块,也再吃灰,回家也试试去,要是GCC能到开发板上,能省老多电了!
现在在国外有16核的了已经。 ijlc1314 发表于 2014-12-23 11:20
这个真心牛,估计都可以拿来开发其它的单片机了
要是可以就好了,不知道可以不可以 lzl000 发表于 2014-12-23 12:12
我擦,板子直接当编译器了啊
就是这个意思
页:
[1]
2