前言:
此次編譯是繼一次簡單的內核編譯(一)進行操作編譯的,請先查看第一篇再來看此片文章
一、使用busybox代替自己制作的init腳本,實現內核啟動;
1、在這里我們使用靜態編譯busybox,所以需要先安裝glibc-static依賴包,如果不安裝會報錯
2、解壓busybox到/usr/src/,切換到解壓目錄,運行make menuconfig
3、在busybox編譯菜單中選擇靜態編譯,以便于我們使用時方便
4、選擇好靜態編譯后,保存退出,運行make進行編譯,編譯完成后,運行make install進行安裝,安裝成功后生成以下文件及目錄
5、cd /mnt/sysroot/目錄中,使用cpio歸檔當前所有文件做備份,備份完成后刪除所有文件
復制編譯busybox時產生的文件到/mnt/sysroot/,復制時使用-a選項,保持源文件的屬性
6、復制完成后,確保/mnt/sysroot/sbin/目中要有init腳本
7、刪除linuxrc鏈接文件,然后創建系統初始化所需要的目錄
8、在/mnt/sysroot/etc/目中中創建network文件,內容如下:
9、在/mnt/sysroot/etc/rc.d/目中創建rc.sysinit系統初始化腳本,內容如下:
10、創建完成后,給/mnt/sysroot/etc/rc.d/rc.sysinit.添加執行權限
11、在/mnt/sysroot/etc/中創建系統初始化需要的文件inittab,內容如下:
12、創建啟動時需要的字符設備
13、運行sync同步數據,然后掛起宿主機,啟動新建的虛擬機,啟動結果如下:
14、關閉新建的虛擬機,啟動宿主機,在/mnt/sysroot/etc/inttab中定義,系統啟動時啟動多個終端
15、運sync同步數據,掛起宿主機,啟動新建的虛擬機,啟動結果如下
16、至此簡單的內核編譯完成,可以玩耍了,本人寫的不好,請大俠多多指教
原創文章,作者:馬行空,如若轉載,請注明出處:http://www.www58058.com/4875
小伙伴們的圖越來越專業了