?畢業(yè)設(shè)計(jì)要編譯linux內(nèi)核,因?yàn)橐鲆粋€(gè)嵌入式網(wǎng)關(guān),目前先想著用uClinux,先打算在skyeye下測(cè)試后,再移植到開(kāi)發(fā)板上。先是從網(wǎng)上下一些關(guān)于怎么編譯uClinux內(nèi)核的資料,網(wǎng)上資料的確很多,看了大多是uClinux-dist2004....的,而我到www.uClinux.org上只看到dist2007的,真搞不清楚,怎么就是沒(méi)有2004的。
?? 先是要配置交叉編譯環(huán)境,下了arm-elf-gcc,以及uClib安裝后,進(jìn)入uClinux-dist目錄,按照網(wǎng)上介紹的對(duì)于uClinux-dist 2004的方面,對(duì)一些文件進(jìn)行修改,編譯,出錯(cuò),說(shuō)沒(méi)有ufront-gcc,真是奇怪,上網(wǎng)查資料,發(fā)現(xiàn)我這個(gè)是需要arm-linux-gcc的,原來(lái)這個(gè)版本的uClinux還真不行,下了arm-linux-gcc3.4.1解壓,建立環(huán)境變量,然后
make menuconfig??
make dep
make clean
make lib_only
make user_only 在編譯boa時(shí)出錯(cuò)
查了一下出錯(cuò)的原因,為這個(gè)花了將的一天,采取了多種方式,查資料再加上自已的猜測(cè),最后查明是硬浮點(diǎn)問(wèn)題,內(nèi)核要求是軟浮點(diǎn),看到一些類似的解決辦法,如將軟浮點(diǎn)去掉,可是這個(gè)里面的Makefile文件太復(fù)雜了,改了便沒(méi)有成功,也有說(shuō)編譯器要打個(gè)patch,半天也沒(méi)有找著,因?yàn)槲椰F(xiàn)在編譯是2.4內(nèi)核,估計(jì)在內(nèi)核2.6下應(yīng)該是可以的,看來(lái)還是我這個(gè)2007的uClinux不好用啊。我還想著把它編譯出來(lái),但結(jié)果還是是失敗了。打算改道了。
?? 通過(guò)QQ得到網(wǎng)友支持,給了我一個(gè)uClinux2004的下載地址,還是在www.uClinux.org上的,我是怎么找也找不到。再按照網(wǎng)上介紹的編譯,通過(guò)看那些編譯信息,這個(gè)用的交叉編譯環(huán)境是arm-elf-gcc。出了幾個(gè)小錯(cuò)誤,很好改。
make romfs
make image
make
生成了images文件夾,在linux-2.4.x下也生成了linux文件,看來(lái)還是2004的好弄的。
下一步就是在skyeye下測(cè)試了,沒(méi)有通過(guò),run后就沒(méi)有反應(yīng)了,猜測(cè)是沒(méi)有進(jìn)行剪裁,太大了,超出了硬件的資源了。光linux文件就有20多M。下一步就是就我的需求進(jìn)行剪裁吧。
???