欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
uClinux 2.6 porting s3c44B0 based on uClinux-armsys-050101.tar.gz|uClinux, ARM7, S3C44B0
uClinux 2.6  porting s3c44B0 based on uClinux-armsys-050101.tar.gz  

uClinux 2.6  porting s3c44B0 based on uClinux-armsys-050101.tar.gz

荊瀟影      2006.9.28

(E-mail:huazjxy@126.com)

目錄:

1.檢查linux 各編譯工具版本

2.立宇泰2.4內核編譯

32.6.9內核及補丁下載

42.6.9內核編譯過(guò)程

5.結語(yǔ)

 

開(kāi)發(fā)板:FSIIsc344b0 board ,CPU:SC344B0   RAM:8M  FALSH:2M 不帶網(wǎng)卡

 

1.     檢查linux 各編譯工具版本

root登陸linux,打開(kāi)終端,使用命令gcc –v 檢查下gcc的版本及是否存在.,如果不存在(我裝的Redhat 9.0就遇到了這樣的情況),則需要重新安裝gcc.對于新手而言,去下個(gè)gcc版本再重新安裝,并不簡(jiǎn)單,至少我這樣的菜鳥(niǎo)就不會(huì ).(linux 才剛剛接觸).網(wǎng)上搜索了下搜到篇好文章:

http:/bbs.chinaunix.net/viewthread.php?tid=596499

上面提到了一種方法: (2)更好的方法就是在X-window下選主菜單──>;“系統設置──>;“添加/刪除應用程序──>;“開(kāi)發(fā)工具中的gcc并安裝它.

安裝過(guò)程中毫無(wú)懸念,電腦會(huì )自動(dòng)提醒你插入相應的安裝盤(pán).

2.立宇泰2.4內核編譯

準備好uClinux-armsys-050101.tar.gzarm-elf-tools-20030314.sh

uClinux-armsys-050101.tar.gz解壓縮,

運行解壓命令:

#tar xvzf uClinux-armsys-050101.tar.gz

解壓結束將會(huì )在/root下生成uClinux-dist目錄.

2.1.安裝編譯環(huán)境

下面開(kāi)始配置編譯環(huán)境,arm-elf-tools-20030314.sh拷貝到/root,運行安裝:

#sh arm-elf-tools-20030314.sh

 

2.2.配置和裁剪uClinux

 

#cd uClinux-dist

#make menuconfig

此時(shí)將出現圖象界面,可以對其相應的配置和裁減.進(jìn)入uClinux配置(uClinux v3.1.0 Configuration),選中”Kernel/Libarary /Defaults Selection->”.其中有兩個(gè)選項要選取:內核設置和用戶(hù)選項設置:

[*]Customize Kernel Settings

[*]Customize Vendor/User Settings

選中這兩項,按下ESC鍵退出,在詢(xún)問(wèn)是否保存時(shí),選擇yes并回車(chē).

終端將進(jìn)入內核配置選單.我們在配置uClinux可以根據自己的需要,對相應的選項進(jìn)行自由選擇.

 

2.3.編譯uClinux

 

按下面步驟對uClinux源碼包進(jìn)行編譯:

make dep ……………………建立依賴(lài)關(guān)系

make clean……………………清除舊的編譯結果

make lib_only………………編譯庫

make user_only………………編譯用戶(hù)程序

make romfs……………………產(chǎn)生romfs

make image……………………產(chǎn)生映象文件

make………………………………編譯內核

注意事項:在上面六個(gè)步驟的編譯中,不建議在 make dep后就直接make了,一般建議一步步來(lái),make clean下可以避免網(wǎng)上有些朋友出現的死機現象。 make image的過(guò)程中會(huì )出現兩個(gè)錯誤,這個(gè)兩個(gè)錯誤大概是交叉編譯工具的某個(gè)庫被復制時(shí)出的錯誤,沒(méi)有什么大的影響,不用去管。繼續下一步make編譯內核。

這樣就在uClinux-dist 目錄下將生成三個(gè)文件:image.ram、image.romromfs.img就是我們用來(lái)下載和燒錄的映象文件。下載燒錄這些映象文件,啟動(dòng)和運行uClinuxOK了。因為linux環(huán)境下對中文支持很差,只能夠換到windows環(huán)境下寫(xiě)這篇東西,不能夠將一些相應指令的運行情況給Copy下來(lái),請見(jiàn)諒。但我這樣記憶書(shū)寫(xiě)的,基本沒(méi)有問(wèn)題。

 

32.6.9內核及補丁下載

 

因為2.4內核的編譯,因為立宇泰的uClinux-armsys-050101.tar.gz補丁做的很好,基本不會(huì )出現問(wèn)題,對于新學(xué)者來(lái)說(shuō),起個(gè)了解整個(gè)過(guò)程的作用這將是無(wú)比重要的。接著(zhù)我們來(lái)探討下2.6內核的移植問(wèn)題。

 

S3C44B0 CPU 2.6內核的官方網(wǎng)站是http:/opensrc.sec.samsung.com/, 看了網(wǎng)站的資料后,我們首先要做的就是下載最新的內核來(lái)試試看.其中下面的文章值得一讀.

http:/opensrc.sec.samsung.com/document/Getting_Familiar_with_uClinuxARM2_6.html

 

最新內核編譯

http:/opensrc.sec.samsung.com

/下載補丁linux-2.6.11.8-hsc0.patch.gz

www.kernel.org

下載linux-2.6.11.8.tar.gz.

 

[root@jingxiaoying]# tar zxvf linux-2.6.11.8.tar.gz

[root@jingxiaoying ]# cd linux-2.6.11.8

[root@jingxiaoyinglinux-2.6.11.8]# patch -p1 < ../linux-2.6.11.8-hsc0.patch

[root@jingxiaoyinglinux-2.6.11.8]# ARCH=arm CROSS_COMPILE=arm-elf- make menuconfig

[root@jingxiaoyinglinux-2.6.11.8]# ARCH=arm CROSS_COMPILE=arm-elf- make

CC arch/arm/kernel/asm-offsets.s

In file included from arch/arm/kernel/asm-offsets.c:13:

include/linux/sched.h: In function `arch_pick_mmap_layout‘:

include/linux/sched.h:1174: `TASK_UNMAPPED_BASE‘ undeclared (first use in this function)

include/linux/sched.h:1174: (Each undeclared identifier is reported only once

include/linux/sched.h:1174: for each function it appears in.)

make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1

make: *** [arch/arm/kernel/asm-offsets.s] Error 2

include/asm/arch/memory.h中增加TASK_UNMAPPED_BASE定義

[root@jingxiaoyinglinux-2.6.11.8]# ARCH=arm CROSS_COMPILE=arm-elf- make

usr/initramfs_data.S: Assembler messages:

usr/initramfs_data.S:29: Error: Unknown pseudo-op: `.incbin‘

make[1]: *** [usr/initramfs_data.o] Error 1

make: *** [usr] Error 2

 

這個(gè)編譯器不支持.incbin的緣故, 下載新的編譯器

我現在使用的是arm-elf-tools-20030314.sh.下載新的編譯器:

http:/opensrc.sec.samsung.com/download/arm-elf-tools-20040427.sh

并安裝后,重新編譯:

 

[root@jingxiaoyinglinux-2.6.11.8]# ARCH=arm CROSS_COMPILE=arm-elf- make

arch/arm/mach-s3c44b0x/time.c: In function `s3c44b0x_time_init‘:

arch/arm/mach-s3c44b0x/time.c:95: `gettimeoffset‘ undeclared (first use in this function)

arch/arm/mach-s3c44b0x/time.c:95: (Each undeclared identifier is reported only once

arch/arm/mach-s3c44b0x/time.c:95: for each function it appears in.)

arch/arm/mach-s3c44b0x/time.c:99: warning: implicit declaration of function `s3c44b0x_clear_pb‘

arch/arm/mach-s3c44b0x/time.c:100: warning: implicit declaration of function `s3c44b0x_unmask_irq‘

make[1]: *** [arch/arm/mach-s3c44b0x/time.o] Error 1

make: *** [arch/arm/mach-s3c44b0x] Error 2

[root@jingxiaoyinglinux-2.6.11.8]#

 

現在注釋掉gettimeoffset = s3c44b0x_gettimeoffset,編譯:

[root@jingxiaoyinglinux-2.6.11.8]# ARCH=arm CROSS_COMPILE=arm-elf- make

CC arch/arm/mach-s3c44b0x/driver/rtl8019.o

arch/arm/mach-s3c44b0x/driver/rtl8019.c: In function `nic_8019_open‘:

arch/arm/mach-s3c44b0x/driver/rtl8019.c:218: `MOD_INC_USE_COUNT‘ undeclared (first use in this function)

arch/arm/mach-s3c44b0x/driver/rtl8019.c:218: (Each undeclared identifier is reported only once

arch/arm/mach-s3c44b0x/driver/rtl8019.c:218: for each function it appears in.)

arch/arm/mach-s3c44b0x/driver/rtl8019.c:216: warning: unused variable `j‘

arch/arm/mach-s3c44b0x/driver/rtl8019.c: In function `nic_8019_stop‘:

arch/arm/mach-s3c44b0x/driver/rtl8019.c:286: `MOD_DEC_USE_COUNT‘ undeclared (first use in this function)

arch/arm/mach-s3c44b0x/driver/rtl8019.c: In function `nic_8019_start_xmit‘:

arch/arm/mach-s3c44b0x/driver/rtl8019.c:296: warning: unused variable `priv‘

make[2]: *** [arch/arm/mach-s3c44b0x/driver/rtl8019.o] Error 1

make[1]: *** [arch/arm/mach-s3c44b0x/driver] Error 2

make: *** [arch/arm/mach-s3c44b0x] Error 2

[root@jingxiaoyinglinux-2.6.11.8]#

 

注釋掉MOD_DEC_USE_COUNTMOD_INC_USE_COUNT

 

GEN .version

CHK include/linux/compile.h

UPD include/linux/compile.h

CC init/version.o

LD init/built-in.o

LD .tmp_vmlinux1

arch/arm/mach-s3c44b0x/built-in.o(.text+0x170): In function `v3_dma_clean_range‘:

: multiple definition of `v3_flush_user_cache_range‘

arch/arm/mm/built-in.o(.text+0x1480): first defined here

arch/arm/mach-s3c44b0x/built-in.o(.text+0x170): In function `v3_dma_clean_range‘:

: multiple definition of `v3_flush_user_cache_all‘

arch/arm/mm/built-in.o(.text+0x1480): first defined here

arch/arm/mach-s3c44b0x/built-in.o(.text+0x170): In function `v3_dma_clean_range‘:

: multiple definition of `v3_coherent_kern_range‘

arch/arm/mm/built-in.o(.text+0x148c): first defined here

arch/arm/mach-s3c44b0x/built-in.o(.init.data+0x0): multiple definition of `v3_cache_fns‘

arch/arm/mm/built-in.o(.init.data+0x70): first defined here

/usr/local/bin/arm-elf-ld.real: Warning: size of symbol `v3_cache_fns‘ changed from 36 in arch/arm/mm/built-in.o to 32 in arch/arm/mach-s3c44b0x/built-in.o

arch/arm/mach-s3c44b0x/built-in.o(.text+0x170): In function `v3_dma_clean_range‘:

: multiple definition of `v3_dma_flush_range‘

arch/arm/mm/built-in.o(.text+0x1490): first defined here

arch/arm/mach-s3c44b0x/built-in.o(.text+0x170): In function `v3_dma_clean_range‘:

: multiple definition of `v3_flush_kern_cache_all‘

arch/arm/mm/built-in.o(.text+0x1480): first defined here

arch/arm/mach-s3c44b0x/built-in.o(.text+0x170): In function `v3_dma_clean_range‘:

: multiple definition of `v3_flush_kern_dcache_page‘

arch/arm/mm/built-in.o(.text+0x1490): first defined here

arch/arm/mach-s3c44b0x/built-in.o(.text+0x170): In function `v3_dma_clean_range‘:

: multiple definition of `v3_dma_inv_range‘

arch/arm/mm/built-in.o(.text+0x1490): first defined here

arch/arm/mach-s3c44b0x/built-in.o(.text+0x170): In function `v3_dma_clean_range‘:

: multiple definition of `v3_dma_clean_range‘

arch/arm/mm/built-in.o(.text+0x1498): first defined here

kernel/built-in.o(.text+0x1cfb4): In function `kallsyms_expand_symbol‘:

: undefined reference to `kallsyms_names‘

kernel/built-in.o(.text+0x1cfb8): In function `kallsyms_expand_symbol‘:

: undefined reference to `kallsyms_token_index‘

kernel/built-in.o(.text+0x1cfbc): In function `kallsyms_expand_symbol‘:

: undefined reference to `kallsyms_token_table‘

kernel/built-in.o(.text+0x1d020): In function `kallsyms_get_symbol_type‘:

: undefined reference to `kallsyms_names‘

kernel/built-in.o(.text+0x1d024): In function `kallsyms_get_symbol_type‘:

: undefined reference to `kallsyms_token_index‘

kernel/built-in.o(.text+0x1d028): In function `kallsyms_get_symbol_type‘:

: undefined reference to `kallsyms_token_table‘

kernel/built-in.o(.text+0x1d07c): In function `get_symbol_offset‘:

: undefined reference to `kallsyms_markers‘

kernel/built-in.o(.text+0x1d080): In function `get_symbol_offset‘:

: undefined reference to `kallsyms_names‘

kernel/built-in.o(.text+0x1d0fc): In function `kallsyms_lookup_name‘:

: undefined reference to `kallsyms_num_syms‘

kernel/built-in.o(.text+0x1d100): In function `kallsyms_lookup_name‘:

: undefined reference to `kallsyms_addresses‘

kernel/built-in.o(.text+0x1d300): In function `kallsyms_lookup‘:

: undefined reference to `kallsyms_addresses‘

kernel/built-in.o(.text+0x1d318): In function `kallsyms_lookup‘:

: undefined reference to `kallsyms_num_syms‘

kernel/built-in.o(.text+0x1d450): In function `get_ksymbol_mod‘:

: undefined reference to `kallsyms_num_syms‘

kernel/built-in.o(.text+0x1d4a4): In function `get_ksymbol_core‘:

: undefined reference to `kallsyms_addresses‘

kernel/built-in.o(.text+0x1d570): In function `update_iter‘:

: undefined reference to `kallsyms_num_syms‘

make: *** [.tmp_vmlinux1] Error 1

[root@jingxiaoyinglinux-2.6.11.8]#

 

一直不太明白上面的錯誤,實(shí)在搞不定了.而且后面試了其他的方法,但都有不定的錯誤.實(shí)在不行,于是另尋辦法.

 

3.22.6.9內核

 

經(jīng)過(guò)網(wǎng)上資料的查詢(xún)和閱讀,還是覺(jué)得2.6.9內核比較容易,因為網(wǎng)站上有2.6.9uclinux補丁.具體是:

http:/opensrc.sec.samsung.com/download/linux-2.6.9-uc0-hsc0.patch.gz

 

因此我們從www.kernel.org

上下載了linux-2.6.9.tar.bz2.

www.uclinux.org

上下載了linux-2.6.9-uc0.patch,這樣呢我們就有了3個(gè)文件.

 

-rw-r--r-- 1 root root 36261440 2004-10-19 linux-2.6.9.tar.bz2

-rw-r--r-- 1 root root 357214 2004-11-23 linux-2.6.9-uc0-hsc0.patch

-rw-r--r-- 1 root root 1231190 2004-10-28 linux-2.6.9-uc0.patch

 

 

然后我們從頭開(kāi)始做. 另一個(gè)需要的就是uclinux-dist,我們使用uClinux-armsys-050101.tar.gz,因為我們用這個(gè)版本已經(jīng)可以跑2.4內核了.

 

42.6.9內核編譯過(guò)程

開(kāi)始行動(dòng),將下載的補丁和2.6.9內核包全部解壓縮,命令也好,手動(dòng)也行。在/root下建一個(gè)新的文件夾uC44B0將以前2.4內核移植時(shí)的uClinux-dist通過(guò)指令:

#cp uClinux-dist  uC44B0

#cd uC44B0

#rm rf linux-2.6.x/此指令的作用是在uClinux下建一個(gè)linux-2.6.x 的文件夾。也可以手動(dòng)實(shí)現。

#mv linux-2.6.9  linux2.6.x/linux2.6.9內核包給放到linux-2.6.x目錄下。

#cd linux-2.6.x

#patch –p1 <.../../linux-2.6.9-uc0.patch

#patch –p1 <.../../linux-2.6.9-uc0-hsc0.patch

按照2.4內核的編譯方法,增加Vendor 的文件:

#cd ../回到uC44B0目錄

#cp inux-2.6.x/arch/armnommu/configs/s3c44b0x_defconfig  uC44b0/uClinux-dist /Vendors/samsung44b0/config.linux-2.6.x/此指令的效果是將linux-2.6.x下的s3c44b0x_defconfig給復制到uClinux-dist 下的vendors/sansung44b0下。建議手動(dòng)操作,要用指令先手動(dòng)熟悉下路徑。

 

這樣前面的準備工作也做的差不多了,開(kāi)始make menuconfig,進(jìn)入配置界面,這時(shí)做法和2.4內核編譯時(shí)相同。

后面的步驟也一致。

按下面步驟對uClinux源碼包進(jìn)行編譯:

make dep ……………………建立依賴(lài)關(guān)系

make clean……………………清除舊的編譯結果

make lib_only………………編譯庫

make user_only………………編譯用戶(hù)程序

make romfs……………………產(chǎn)生romfs

make image……………………產(chǎn)生映象文件

make………………………………編譯內核

注意事項也相同,在上面六個(gè)步驟的編譯中,不建議在 make dep后就直接make了,一般建議一步步來(lái),make clean下可以避免網(wǎng)上有些朋友出現的死機現象。 make image的過(guò)程中會(huì )出現兩個(gè)錯誤,這個(gè)兩個(gè)錯誤大概是交叉編譯工具的某個(gè)庫被復制時(shí)出的錯誤,沒(méi)有什么大的影響,不用去管。繼續下一步make編譯內核。

最終將在uClinux-dist/images/下出現三個(gè)文件:image.ram、image.romromfs.img就是我們用來(lái)下載和燒錄的映象文件。下載燒錄這些映象文件,啟動(dòng)和運行uClinuxOK了。

 

 

5.結語(yǔ)

當然這僅僅只做出了第一步,我這個(gè)移植步驟也是參考了網(wǎng)上的一篇文章弄的,但那位大蝦用的是Micetek EV44B0-II boarduClinux 軟件包,他后來(lái)走了一些彎路,但也解決了,當然鍛煉了能力。我這樣一下子編譯成功,不能夠不說(shuō)是運氣,當然立宇泰的補丁做的好也是很重要的因素。當然針對那些想要鍛煉自身的高手,建議自己找個(gè)沒(méi)有別人打過(guò)補丁的包,自己重新開(kāi)發(fā)。對于新手來(lái)說(shuō),按照我的方法將少走一些彎路。當然下面的工作就是進(jìn)行深入的一些開(kāi)發(fā)了,相應大家會(huì )成功的。我們一起努力吧。

 

參考文獻:

[1] S3C44B0開(kāi)發(fā)板移植內核2.6 uclinux記錄   Sam Fei (email: samfei@163.com)

[2] uclinuxARMSYS上的使用說(shuō)明書(shū).pdf    杭州立宇泰公司

 

                   huazjxy           2006-9-28于杭州

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
make zImage 信息
u-boot和linux的機器碼
清理linux內核源碼arch中不相關(guān)的目錄
linux下Nand Flash的JFFS2文件系統的移植
linux設備驅動(dòng)歸納總結(一):內核的相關(guān)基礎概念
為何ARM linux會(huì )引入Device Tree
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久