openwrt 可實現掛載U盤 , 並支持 Samba , ftp , dlna 等文件操做,而且經過usb 能夠實現 4G dongle 的撥號功能網絡
咱們都知道,擁有usb 接口的硬件PCB 板,是能夠進行USB 開發的,在openwrt 上已經實現了對應的驅動,和大量的開發包程式工具
1、 添加USB擴展(注:本文默認你們的路由器是自帶USB接口的,若是主板上自己不帶USB接口的,能夠考慮對硬件進行改動)oop
1. 添加USB支持測試
Kernel modules —> USB Support —> <*> kmod-usb-core. ##默認已經選了 CONFIG_PACKAGE_kmod-usb-core=y Kernel modules —> USB Support —> <*> kmod-usb-ohci. ##默認已選 old usb1.0 CONFIG_PACKAGE_kmod-usb-ohci=y Kernel modules —> USB Support —> <*> kmod-usb-uhci. ## usb1.1 CONFIG_PACKAGE_kmod-usb-uhci=y Kernel modules —> USB Support —> <*> kmod-usb-storage. # CONFIG_PACKAGE_kmod-usb-storage=y Kernel modules —> USB Support —> <*> kmod-usb-storage-extras. # CONFIG_PACKAGE_kmod-usb-storage-extras Kernel modules —> USB Support —> <*> kmod-usb2. ##默認已經選了 usb2.0 CONFIG_PACKAGE_kmod-usb2=y
2. 添加SCSI支持ui
Kernel modules —> Block Devices —> <*>kmod-scsi-core ##默認已經選了 usb3.0 CONFIG_PACKAGE_kmod-scsi-core=y
3. 添加usb掛載,熱插拔,以及boot支持this
Base system —> <*>block-mount #CONFIG_PACKAGE_block-mount=y CONFIG_PACKAGE_libmount=y CONFIG_BUSYBOX_CONFIG_MOUNT=y
mount 命令:掛接命令 spa
mount dervice dir // mount /dev/sda /mnt/
命令格式:mount [-t vfstype] [-o options] device dir 1. t vfstype :指定文件系統的類型,一般沒必要指定。mount 會自動選擇正確的類型。 經常使用類型有: 光盤或光盤鏡像:iso9660 DOS fat16文件系統:msdos Windows 9x fat32文件系統:vfat Windows NT ntfs文件系統:ntfs Mount Windows文件網絡共享:smbfs UNIX(LINUX) 文件網絡共享:nfs 2. -o options 主要用來描述設備或檔案的掛接方式。經常使用的參數有: loop:用來把一個文件當成硬盤分區掛接上系統 ro:採用只讀方式掛接設備 rw:採用讀寫方式掛接設備 iocharset:指定訪問文件系統所用字符集 3. device 要掛接(mount)的設備。 4. dir設備在系統上的掛接點(mount point)。
4. 添加熱插拔code
默認熱插拔是開啓的,不用理會
5. boot支持blog
CONFIG_FSTOOLS_UBIFS_EXTROOT=y
6. 此時,能夠插上U盤測試一下接口
ls -l /dev |grep sda
顯示結果
root@Openwrt:/#ls -l /dev |grep sda brw-r--r-- 1 root root 8, 0 Jan 1 1970 sda
觀察裏面是否出現sda sda1 sda2 sda3等字樣,sda說明是名爲sda的設備,而sda1是它的第一個分區,後面依次類推。
2、 添加USB分區 (可選功能)
1. 爲什麼要對U盤進行分區呢?
第一,方便管理文件。咱們但願從U盤啓動openwrt,所以將系統鏡像運行在U盤上,從而得到更多的空間用於存放各類文件。爲了增強管理,必要的分區是有用的。 第二,建立Swap交換分區。咱們須要在U盤上開闢部分空間用於Swap交換。經過Swap提高RAM的吞吐率,從而防止,部分軟件須要大量調用RAM時,系統掛掉(例如,Transmission脫機下載服務)。
2. 準備工做,添加必要軟件
CONFIG_BUSYBOX_CONFIG_FDISK=y CONFIG_BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS=y CONFIG_BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE=y CONFIG_BUSYBOX_CONFIG_FEATURE_AIX_LABEL=y CONFIG_BUSYBOX_CONFIG_FEATURE_SGI_LABEL=y CONFIG_BUSYBOX_CONFIG_FEATURE_SUN_LABEL=y CONFIG_BUSYBOX_CONFIG_FEATURE_OSF_LABEL=y CONFIG_BUSYBOX_CONFIG_FEATURE_GPT_LABEL=y CONFIG_BUSYBOX_CONFIG_FEATURE_FDISK_ADVANCED=y #以上部分表示添加分區工具 CONFIG_PACKAGE_kmod-fs-ext4=y #添加文件系統支持 CONFIG_PACKAGE_e2fsprogs=y #添加格式化和檢測工具
3. 對U盤進行分區
3.1 列出當前掛載盤的狀況
fdisk -l #以列表的形式,列出當前掛載盤的狀況 ~ # fdisk -l Disk /dev/ram0: 16 MB, 16777216 bytes 255 heads, 63 sectors/track, 2 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/ram0 doesn't contain a valid partition table Disk /dev/mtdblock0: 83 MB, 83886080 bytes 255 heads, 63 sectors/track, 10 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/mtdblock0 doesn't contain a valid partition table Disk /dev/mtdblock10: 268 MB, 268435456 bytes 255 heads, 63 sectors/track, 32 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/mtdblock10 doesn't contain a valid partition table Disk /dev/sda: 15.9 GB, 15931539456 bytes 255 heads, 63 sectors/track, 1936 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 1937 15554048 7 HPFS/NTFS ~ #
3.2 分區操做
~ # fdisk /dev/sda #分區操做 The number of cylinders for this disk is set to 1936. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): m Command Action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help):
此處選擇「n」,而後依次添加各個分區,分完區以後記得選擇「w」,進行保存退出。建立分區以後,是沒有格式化的,所以接下來須要進行格式化操做。
3.3 分區格式化
mkfs.ext3 /dev/sda1 #將第一個分區格式化爲ext3格式 mkswap /dev/sda2 #將第二個分區格式化爲swap交換分區 mkfs.ext3 /dev/sda3 #將第三個分區格式化爲ext3格式
三、 添加USB 擴展功能 ------- 4G dongle