Internet & Web Application

การใช้งาน External Storage เป็น Root File System สำหรับ OpenWRT

ยิ่งลงยิ่งมันส์ .. ipkg จำนวนมาก, application บน x86 open-source ทั้งหลายถูก port มาเพื่อให้สามารถใช้งานได้กับ router cpu mip .. แต่น่าเสียดายพื้นที่อันจำกัดของ Flash memory ที่ storage ข้อมูลของเรา ดังนั้นจึงต้องเพิ่มกันหน่อย ..

มาทำ Compact Flash (CF) ให้เป็น Root file system กัน


usb storage : howto

boot from external media : howto

package on external media : howto

Boot Configuration (Kamikaze)

First Create a script /etc/init.d/pivotroot

# change this to your boot partition
# install needed modules for usb and the ext3 filesystem
# **NOTE** for usb2.0 replace "uhci" with "ehci_hcd"
# **NOTE** for ohci chipsets replace "uhci" with "usb-ohci"
for module in usbcore uhci scsi_mod sd_mod usb-storage jbd kmod-fs-ext2 kmod-fs-ext3 ; do {
        insmod $module
}; done
# this may need to be higher if your disk is slow to initialize
sleep 4s
# mount the usb stick
mount "$boot_dev" /mnt
# if everything looks ok, do the pivot root
[ -x /mnt/sbin/init ] && {
        mount -o move /proc /mnt/proc && \
        pivot_root /mnt /mnt/mnt && {
                mount -o move /mnt/dev /dev
                mount -o move /mnt/tmp /tmp
                mount -o move /mnt/jffs2 /jffs2 2>&-
                mount -o move /mnt/sys /sys 2>&-

Make it executable:

chmod +x /etc/init.d/pivotroot

Then install the modules, for Kamikaze 7.07 or later (Kernel 2.6), use

ipkg install kmod-fs-ext2 kmod-fs-ext3

Test to see if pivotroot works:

df -h

You may safely ignore errors saying “

insmod: cannot insert ...

” If pivotroot worked, then df will show that your USB storage is mounted on “/” (root). Now reboot.


after that edit /etc/init.d/rcS — แก้ใหม่ทั้ง file

# Copyright (C) 2006
if test $2 == "boot" ; then
fi { for i in /etc/rc.d/$1*; do $i $2 2>&1 done } | logger -s -p 6 -t '' &

now your System should Startup nicely either from USB or from internal Flash if the USB-disk is not available.

*** ข้อสำคัญ อยู่ที่ sleep เพื่อรอให้ อุปกรณ์รับรู้ถึงการต่อ USB .. บางทีอาจต้องรอเป็น 10s
แต่เท่าที่ลอง สำหรับ kernel 2.4 ใช้เวลา(=4s) น้อยกว่า kernel 2.6
(หรือก็อาจเป็นได้ว่า Card reader ช้ากว่ากัน ??)

Technorati : , : ,



Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )


Connecting to %s