這篇會先介紹網樂通上的嵌入式Linux,要玩它、修改它,要先知道它哪些可以改。
本篇開始:
所有嵌入式Linux系統都差不多,大致上包括:
- BootLoader
- Linux Kernel
- rootfs
在網樂通上的嵌入式Linux包括如下:
- BootLoader:u-boot
- Linux Kernel:Debian Kernel for 網樂通、ArchLinux Kernel For 網樂通、sh4twbox 0.92 Kernel、網友提供2.6.32.59版Linux Kernel for 網樂通...等
- rootfs:sh4twbox、Debian、ArchLinux
網樂通嵌入式Linux幾個部份的說明:
BootLoader:
網樂通的BootLoader是使用u-boot,這套BootLoader在嵌入式系統上經常被使用。
網樂通內建的RAM是256MB,但不知道為何,官方的u-boot只開放了128MB,
因此網友修改u-boot程式碼,讓網樂通u-boot能支援256MB。
關於刷u-boot,可以參考:
Linux Kernel:
Linux的驅動程式幾乎都相依在Linux Kernel上,
要讓網樂通支援其他硬體,像是usb webcam、usb wifi...等,
Linux Kernel都必須要自己重新編譯。
另外,針對Debian for 網樂通和ArchLinux for 網樂通,
因為本身有一些Kernel module的套件,所以會需要各自的Kernel,
否則一般而言,在網樂通中,Linux Kernel是可以另外編譯,另外支援。
rootfs:
一般所謂的網樂通刷機,指的都是更換rootfs。
所以rootfs實際上指的就是更換成sh4twbox、Debian、ArchLinux...等不同的Linux系統。
各部份在網樂通的位置:
在網樂通的刷機文件中會提到,網樂通需要至少2個分割區,
第1個分割區必須是FAT32,第2個分割區必須是ext2/ext3/ext4,分割區類似如下:
第1個分割區就是存放Linux Kernel的,內容如下:
第2個分割區就是rootfs,內容如下:
從這裡可以注意到,除了BootLoader外,
Linux Kernel和rootfs都直接按不同分割區放置,很容易可以區分。
更換各部份:
更換Linux Kernel:
如果我們重新編譯Linux Kernel,要更換新的Linux Kernel,
只要將編譯出來的vmlinux.ub直接覆蓋sda1的vmlinux.ub,
重新開機後就會是載入我們新編譯出來的Linux Kernel。
類似如下:
更換rootfs:
要更換rootfs,最簡單的方式就是參考sh4twbox的教學,
先將產生的rootfs壓縮打包好,接著按照正常刷機的步驟,
在sh4twbox的教學的1.4第2步指定我們自己的rootfs壓縮檔,
它就會幫我們把rootfs解壓縮建立好。