我在安裝Gentoo的時(shí)候內(nèi)核使用的是穩(wěn)定版里的gentoo-sources-3.8.13,后來(lái)瞎折騰又啟用了測(cè)試源(即在/etc/portage/make.conf中添上”ACCEPT_KEYWORDS=”~amd64″”),于是把內(nèi)核升級(jí)到了3.10.3,但是當(dāng)我準(zhǔn)備重新編譯內(nèi)核并啟用新內(nèi)核時(shí),出現(xiàn)了標(biāo)題所說的錯(cuò)誤信息,經(jīng)過一番Google終于了解了個(gè)大概的解決方法,這里記錄一下解決過程。
當(dāng)我進(jìn)入/usr/src/linux執(zhí)行”make menuconfig”命令進(jìn)行內(nèi)核選項(xiàng)修改時(shí),終端提示”make :*沒有規(guī)則可以創(chuàng)建目標(biāo)“menuconfig” 錯(cuò)誤”, 出現(xiàn)這個(gè)錯(cuò)誤的原因我并不清楚,也未就它去調(diào)查(目前無(wú)心研究這些),所以直接找了個(gè)解決方案來(lái)應(yīng)付,經(jīng)過對(duì)這一問題進(jìn)行Google搜索,終于了解了它的原因所在,按常理,當(dāng)我們執(zhí)行”emerge -auDN world”來(lái)更新軟件之后,如果有新內(nèi)核被安裝,我們會(huì)直接執(zhí)行下面將會(huì)提到的操作來(lái)啟用新內(nèi)核,然后舊內(nèi)核就會(huì)被拋棄,然后當(dāng)執(zhí)行”emerge –depclean”的時(shí)候,沒用了的舊內(nèi)核會(huì)被刪除,但是舊內(nèi)核的目錄會(huì)被保留,而如果我們/usr/src/linux仍然與舊內(nèi)核目錄進(jìn)行鏈接的話,就會(huì)出現(xiàn)這些問題了。
當(dāng)我看到這個(gè)錯(cuò)誤之后,我習(xí)慣性地執(zhí)行了”ls -l /usr/src/linux”,然后發(fā)現(xiàn)目前使用的仍然是穩(wěn)定版的內(nèi)核,新內(nèi)核并沒有使用。于是先執(zhí)行”cd /usr/src”進(jìn)入可以執(zhí)行下面的操作的目錄,之后執(zhí)行”unlink linux”解除/usr/src/linux和/usr/src/linux-3.8.13-gentoo之間的鏈接關(guān)系,再將新內(nèi)核目錄和linux目錄鏈接起來(lái)(執(zhí)行”ln -s linux-3.10.3-gentoo linux”),然后我們需要將linux-3.8.13-gentoo目錄里的.config復(fù)制到linux-3.10.3-gentoo目錄中,這樣才能保留原有配置表。最后就可以照舊執(zhí)行”make menuconfig”(如果需要增加新選項(xiàng)的話)和”make && make modules_install”來(lái)編譯安裝新內(nèi)核了。至于啟用新編譯的內(nèi)核的辦法又根據(jù)所使用的bootloader的不同有所不同,像我是使用的efi模式引導(dǎo),所以執(zhí)行"cp arch/x86_64/boot/bzImage /boot/efi/boot/bootx.efi"就可以了,使用諸如grub的請(qǐng)查閱相關(guān)資料。
如果在啟用新內(nèi)核成功之后,我們可以考慮將舊內(nèi)核的目錄從文件系統(tǒng)中刪除以節(jié)省空間。執(zhí)行的命令是”rm -r /usr/src/linux-3.8.13-gentoo”。
參考鏈接:make: *** No rule to make target `menuconfig’. [solved]