• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    uClinux內核編譯

    發布: 2007-7-04 12:06 | 作者: admin | 來源:  網友評論 | 查看: 41次 | 進入軟件測試論壇討論

    領測軟件測試網 因為別人都給你做好了各種準備,所以內核編譯這項看似繁瑣的事情變得異常簡單...

    終于successful 了,雖然還不知道為什么要那么改,疑問留著一點點解決吧.
    這里用的源代碼是uClinux-armsys-050101.tar.gz,可以到杭州立宇泰網站查找下載.
    因為采用ARMSYSB0這塊板子,處理器是SAMSUNG的S3C44B0X,所以要針對這個平臺修改uClinux源代碼.比如SDRAM的起始地址是0x0c 000000,flashROM的起始地址是0x00000000,還有好多,要是一個一個找的話真是太累了,幸好lyt提供了一個補丁uClinux-20040408-ARMSYS.patch,只需要簡單的執行一個patch -p1<uClinux-20040408-ARMSYS.patch命令就OK了.本來也是這么想的,也是這個做的.但每次patch都提示patch文件過期,去lyt網站一看說這是最新的補丁了.耽誤了一段時間又去他們的bbs,才發現這個補丁是針對uClinux的發行版本的,其實uClinux-armsys-050101.tar.gz已不需要再打補丁了.暈,說了一堆廢話.
    將uClinux-armsys-050101.tar.gz直接解壓解壓縮就可以了,當然是在Linux下,在windows下可能發生一些錯誤 .終端輸入
    tar xzvf uClinux-armsys-050101.tar.gz,在當前目錄下生成uClinux-dist文件夾.
    cd uClinux-dist #進入uClinux-dist目錄  
    make menuconfig#進入內核配置,主要應用方向鍵,Esc,[Y],回車等根據需要進行內核的裁減,這里有一個疑問,要是在庫選擇時采用uC-libc就不會出現后面的問題;要是選擇uClibc那到內核編譯make user_only會出問題,提示出錯(如果沒有作一定改動的話).
    make  dep #尋找依存關系
    make  clean[可選] #清除以前構造內核時生成的所有目標文件,模塊文件和一些臨時文件
    make lib_only #編譯庫文件
    make user_only #編譯用戶應用程序文件
    就是這一步令我躊躇不前,到該命令執行一段時間后出現錯誤了:
    ...
    /home/Jiang/Downloads/uClinux-dist
    passwd.elf2flt: In function `main':
    /home/Jiang/Downloads/uClinux-dist/user/login/passwd.c:123: undefined reference to `crypt_old'
    collect2: ld returned 1 exit status
    make[2]: *** [passwd] 錯誤 1
    make[2]: Leaving directory `/home/Jiang/Downloads/uClinux-dist/user/login'
    make[1]: *** [all] 錯誤 2
    make[1]: Leaving directory `/home/Jiang/Downloads/uClinux-dist/user'
    make: *** [user_only] 錯誤 2

    可能并不是相同的文件,但只要使用了它提到的未定義引用'crypt_old',就會出錯.打開passwd.c看到有一個條件編譯
    #ifdef OLD_CONFIG_PASSWORDS
    #include <crypt_old.h>
    #endif
    想想應該是OLD_CONFIG_PASSWORDS沒有定義,也不知道定義在哪個文件夾的*.后來干脆就mask這個條件編譯,直接把
    #include <crypt_old.h>移了出來,其它文件也作類似處理.經過再次編譯,還是出錯...
    都已經第二天了,還沒搞出來,要辜負boss了...網上苦苦尋覓,終于覓得良方,只需要在user/下的makefile增加LIBCRYPT  +=-lcrypt_old一句就OK了.
    這一步過后到后面就一馬平川了,make romfs,生成romfs文件系統;
    make image  生成映象文件,這時可能提示出現兩個錯誤,這是因為第一次編譯時還沒有romfs.o這個文件,如果再次編譯就沒有問題了.
    最后make,大約幾分鐘時間.
    編譯完成后會在/images目錄下看到三個文件image.rom,image.ram和romfs.img,接下去的事情就是將內核文件燒入到板子了..

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>