編譯uCLinux失敗。

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

編譯uCLinux失敗。

文章suskind » 週三 5月 03, 2006 1:30 am

因為,實驗室的嵌入式系統開發版,不外借,所以小弟打算自行編譯uClinux後,在skyeye上面運行。

系統資源:
Debian Sid(GCC-4.0、Kernel 2.6.16)
arm-elf-tools-20030314.sh
uCLinux-dist-20051110

作法:
代碼: 選擇全部
#sh arm-elf-tools-20030314.sh

代碼: 選擇全部
#tar -zxvf uClinux-dist-20051110.tar.gz

代碼: 選擇全部
#make xconfig


Vendor------>Samsung 4510B
Kernel Version------>linux-2.4.x
Libc Version------>uC-libc

代碼: 選擇全部
#make dep

代碼: 選擇全部
#make


就會出現錯誤訊息:
代碼: 選擇全部
make[2]: Entering directory `/home/ARMEmbedded/uClinux-dist/linux-2.4.x/arch/armnommu/nwfpe'
make all_targets
make[3]: Entering directory `/home/ARMEmbedded/uClinux-dist/linux-2.4.x/arch/armnommu/nwfpe'
rm -f math-emu.o
arm-elf-ar rcs math-emu.o
make[3]: Leaving directory `/home/ARMEmbedded/uClinux-dist/linux-2.4.x/arch/armnommu/nwfpe'
make[2]: Leaving directory `/home/ARMEmbedded/uClinux-dist/linux-2.4.x/arch/armnommu/nwfpe'
arm-elf-ld -p -X -T arch/armnommu/vmlinux.lds arch/armnommu/kernel/head-armv.o arch/armnommu/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \
                --start-group \
                arch/armnommu/kernel/kernel.o arch/armnommu/mm/mm.o arch/armnommu/mach-snds100/snds100.o kernel/kernel.o mmnommu/mmnommu.o fs/fs.o ipc/ipc.o \
                 drivers/char/char.o drivers/serial/serial.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o \
                net/network.o \
                arch/armnommu/lib/lib.a /home/ARMEmbedded/uClinux-dist/linux-2.4.x/lib/lib.a /usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a \
                --end-group \
                -o linux
drivers/block/block.o: In function `blk_dev_init':
/home/ARMEmbedded/uClinux-dist/linux-2.4.x/drivers/block/ll_rw_blk.c:1523: undefined reference to `romfs_data'
make[1]: *** [linux] Error 1
make[1]: Leaving directory `/home/ARMEmbedded/uClinux-dist/linux-2.4.x'
make: *** [linux] Error 1


請問,小弟有什麼地方做錯嗎? :-)
suskind
可愛的小學生
可愛的小學生
 
文章: 26
註冊時間: 週三 3月 01, 2006 8:19 am

文章suskind » 週三 5月 03, 2006 1:45 am

其實,後來我有找過相關的資料,我發現,對岸的朋友在編譯Samsung 4510B時,都會先對uCLinux的Source code作更改。

原因不外乎是,4510B是一塊即將停產的晶片,所以,即使uCLinux原始碼,對於該晶片的資料有誤,多半也沒有更正了。

奇怪的是,不管是「說法」還是「做法」,都只有在對岸找的到。台灣這邊是否都是,直接拿編譯好的成品來使用呢?

參考過對岸的資料:
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=50742&highlight=4510B

還是有錯誤,但是原作者說,有error不要緊,所以我就沒有把錯誤訊息記下來了。
不過,我倒是在/images裡面找到romfs.img檔案。

請各位學長指教 :-)
suskind
可愛的小學生
可愛的小學生
 
文章: 26
註冊時間: 週三 3月 01, 2006 8:19 am

文章chinajz » 週三 5月 03, 2006 9:41 am

你试试用uClinux-dist-20050311.tar.gz包,s3c4510b和s3c44b0x以linux 2.4.x编译,除了出现很好解决的两个小错误,很顺利通过。
相识是缘
chinajz
可愛的小學生
可愛的小學生
 
文章: 20
註冊時間: 週四 3月 24, 2005 12:37 am
來自: 江苏,盐城

文章suskind » 週四 5月 04, 2006 2:57 pm

抱歉,

我在論壇上看的文章,也都是使用舊版的uCLinux來編譯的,

但是,
我不知道要到那兒去抓各種版本(或特定版本的uClinux)?

小弟已經Google過了...
還是找不到,目前只能使用uCLinux官方網站提供的最新版本。

還請各位學長開釋 :-)
suskind
可愛的小學生
可愛的小學生
 
文章: 26
註冊時間: 週三 3月 01, 2006 8:19 am

文章slashliu » 週日 5月 21, 2006 12:08 am

請問..我也是沒法完成compile, 難道一定要用RedHat 6.2才行嗎??
我的環境
RedHat EX4
arm-elf-tools-20030314.sh
uCLinux-dist-20051110
slashliu
可愛的小學生
可愛的小學生
 
文章: 2
註冊時間: 週三 5月 03, 2006 11:00 pm
來自: Taiwan

文章senyao » 週一 6月 05, 2006 10:29 am

有個建議
代碼:
#make dep

*****************************
#make lib_only
#make user_only
#make romfs
#make image(此步驟會有erro,don't care

*****************************
代碼:
#make
senyao
可愛的小學生
可愛的小學生
 
文章: 1
註冊時間: 週一 6月 05, 2006 10:18 am

文章senyao2 » 週二 6月 13, 2006 5:34 pm

更正一下,請在#make xconfig之前輸入

# export PATH=/usr/local/gnu-2.95.3/bin:$PATH

此行即可
senyao2
 


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron