LinuxDev 板


LINE

http://wiki.debian.org/ArmEabiPort#ChoiceofminimumCPU 今天大概知道原因了,根据上面网址的说法似乎 EABI只能用在armv4t以上的指令集? 我的FA526刚好是最旧的armv4,看起来似乎是这边所造成的? 另外一点是arm-none-linux-gnueabi-gcc预设的版本是v5 ,所以在编译的时候要加上-march=armv4t的方式去指定指令集版本(like s3c2410) 好玩的地方是用arm-none-linux-gnueabi-gcc -march=armv4t的方式去编译 busybox,则编译出来的ELF tag会显示Tag_CPU_arch: v4T;但如果我用 -march=armv4去编译,虽然不会有错但是他的ELF tag却是会显示v5TE 似乎也说明了armv4真的不支援? 再来我不信邪,看了一下vmlinux的tag 却发现显示Tag_CPU_arch: v4 於是乎我把kernel_source/arch/arm/Makefile里面有关EABI的CFLAGS照抄 写了一支自己的hello world并且不link成执行档来看ELF TAG, 就发现他显示为v4了... 只是当我让他link出来执行档,该Tag又会变成v5TE,真不知道Kernel 那边linker是怎麽办到的XD ※ 引述《askacis (ASKA)》之铭言: : 文章有点长,还要请各位包含^^ : 小弟本来运作良好的平台环境如下: : CPU是ARM9系列(FA526) : Kernel 2.6.21 : arm-linux-gcc (GCC) 3.4.4 : busybox-1.13.4(static link) : Kernel Menuconfig中 : []Initial RAM filesystem and RAM disk 有开启 : 由於有另外一个平台(不同CPU)采用的编译器版本是arm-none-linux-gnueabi-gcc : 於是乎小弟兴起了想将我这个平台用这个编译器编译的想法 : 上网google了一下发现要用此编译器编译kernel config中需要开启 : Kernel Features ---> : [ ] Use the ARM EABI to compile the kernel : 以及 : Floating point emulation ---> : [ ] NWFPE math emulation : 当我将之开启,一开始不知为何在编译过程中最後linking的会发生__aeabi_llsl之类 : 的函式未定义的问题,後来在 /kernel_source/arch/arm/lib/ : 里面找到问题点: : 即是在这个资料夹里面有好几个档名一样的.C 及.S, C档只有函式宣告以及extern : 而.S档是函式真正的定义...所以我将所有的C档杀掉之後让make可以吃到真正的 : 函式之後可以成功建出zImage(不晓得这样做是对的吗?) : 当我开心的烧录并且开机之後进到要开始执行/init时(init_post())就没有反应了, : 我trace了一下发觉最後kernel是停在kernel_execve() : [kernel_source/arch/arm/kernel/sys_arm.c] : 里面的一段组合语言(似乎是在做跳转到userspace的动作?) : 我的/init是一个script 主要内容如下: : ###################################################### : #!/bin/busybox ash : /bin/busybox mount -t sysfs /dev/sys /sys : /bin/busybox mount -t proc /proc : /bin/busybox mount -t devpts /dev/pts : # Populate /dev according to /sys : /bin/busybox mdev -s : /bin/busybox --install -s : /linuxrc : exec /sbin/init "$@" </dev/console >/dev/console 2>&1 : ###################################################### : 执行档busybox我用arm-none-linux-gnueabi-gcc重build过,也试过 : 将另外一个平台上可以执行的busybox放到我的板子上结果也是不行 : 另外也试过自己用写一个简单的hello world用该编译器编译并命名为 : busybox放到板子上结果也是不行的... : 不晓得是因为kernel开了EABI的关系吗?板上如果有大大有相关的经验可以告诉我 : 大概是哪边出了问题,小弟感激不尽 ^^ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.244.105.125
1F:→ askacis:後来用arm-none-linux-gnueabi-gcc -v查到了,原来下armv4 12/10 17:25
2F:→ askacis:的时候 compiler在处理时还是会自动帮我link armv5函式库 12/10 17:26
3F:→ askacis:而kernel那边是因为gcc 下了-c参数,然後自己呼叫linker去 12/10 17:27
4F:→ askacis:做连结...总而言之,armv4在userspace看起来是没办法了.... 12/10 17:27
5F:→ askacis:後来还是解了XD,用下面的option去编译busybox就可以work了 12/11 17:28
6F:→ askacis:-march=armv4t -Wl,--fix-v4bx-interworking 12/11 17:28
7F:→ askacis: -Wa,--fix-v4bx 12/11 17:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP