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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP