|
一、代碼修改 主要是按照這個貼來做: http://www./S3C2410/kaifa/063152202483252_37.htm 我也看過其它不同版本的內(nèi)核關(guān)于usb驅(qū)動的移植,移植方法幾乎一樣,只是修改的文件不同而已。上面的貼子有不少頭文件沒有例出來,以下是我按照以上貼子添加的代碼(好像在很多論壇上包括頭文件部分都顯示不出來,在這里把include前面的#給刪了,希望有幫助): /*add by lfc*/ include include include include /*end add*/ /**********************add by lfc*************************************/ static struct s3c2410_hcd_info usb_sbc2410_info = { .port[0] = { .flags = S3C_HCDFLG_USED } }; int usb_sbc2410_init(void) { unsigned long upllvalue = (0x78 │ │ 2、USB驅(qū)動設(shè)置,可能有些不選也行,不過沒時間去試,至于為什么要選這些選項的話可以看一下這個貼(Linux下的硬件驅(qū)動——USB設(shè)備): http://www-128.ibm.com/developerworks/cn/linux/l-usb/index1.html │ │ Device Drivers ---> │ │ Generic Driver Options ---> │ Hotplug firmware loading support │ │ Block devices ---> │ │ Low Performance USB Block driver │ │ SCSI device support ---> │ │ SCSI generic support │ │ │ │ USB support ---> │ │ Support for Host-side USB │ │ │ │ OHCI HCD support │ │ USB Mass Storage support │ │ 3、加入了MSDOS fs和VFAT fs的支持。 │ │ File systems ---> │ │ DOS/FAT/NT Filesystems ---> │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ MSDOS fs support │ │ │ │ VFAT (Windows-95) fs support │ │ │ │ (936) Default codepage for FAT │ │ │ │ (cp936) Default iocharset for FAT │ │ │ │ NTFS file system support 做完這些后,插入u盤后,內(nèi)核應(yīng)該可以識別到u盤,出現(xiàn): usb 1-1: new full speed USB device using s3c2410-ohci and address 3 ub(1.3): GetMaxLUN returned 0, using 1 LUNs 但是,還有下面一句出錯提示: /dev/ub/a: unknown partition table 再次查看了貼子上大蝦們的討論,提到:“使能CONFIG_MSDOS_PARTITION選項”,再仔細查找,發(fā)現(xiàn)配置選項如下: │ │ File systems ---> │ │ Partition Types ---> │ │ 加上這個后應(yīng)該就可以掛載usb上的MSDOS分區(qū)了 以下是我的內(nèi)核插入u盤后的提示信息: usb 1-1: new full speed USB device using s3c2410-ohci and 2 ub(1.2): GetMaxLUN returned 0, using 1 LUNs /dev/ub/a: p1 表示usb設(shè)備已經(jīng)掛載到/dev/ub/a/part1設(shè)備文件下 4.加入中文字體庫(可惜在我的板上還是沒能正常顯示中文~_~,知道的朋友麻煩告訴我一聲,大家一起探討) │ │ Native Language Support ---> │ │ Simplified Chinese charset (CP936, GB2312) │ │ NLS UTF8 以下是掛載usb設(shè)備后的顯示: [root@luofuchong /]# mount -t vfat -o iocharset=cp936 /dev/ub/a/part1 /mnt [root@luofuchong /]# ls /mnt cramfs-1.1.tar.gz netkit-base-0.17.tar.gz thttpd-2.25b.tar.gz lfc settings.dat . . I. .. . .txt 三、一點心得。 如果想知道內(nèi)核有沒有識別出u盤的話可以執(zhí)行命令:cat /proc/partitions ,看看插入USB前后分區(qū)信息有什么不同就知道了。 另外,我在貼上看到其它大蝦移植了USB驅(qū)動的內(nèi)核,在插入U盤后內(nèi)核都把它當成SCSI設(shè)備來處理的,不過在我這里卻沒有,這點我倒不是很明白,難道是我u盤的問題? 還有就是,usb設(shè)備的掛載點比較特別,在我移植的系統(tǒng)中是:/dev/ub/a/part1。剛開始我不知道,以為/dev/ub/a就是了,結(jié)果當然掛載不了,差點就重編內(nèi)核了,所以如果內(nèi)核提示掛載usb設(shè)備成功的話,最好進入對應(yīng)的目錄仔細看清楚。如果是當成SCSI設(shè)備的話掛載點就在/dev/scsi/host0/bus0/target0/lun0之類吧。其實插入u盤的時候都有提示,自己看著辦吧。 還有一個問題,為了統(tǒng)一起見,一般都會新建一個/dev/sda1的鏈接指向usb設(shè)備的掛載點的,但是我的內(nèi)核是采用devfs的,文件系統(tǒng)的/dev目錄空空如也,而且/dev/ub/a/part1是插入u盤后才有的掛載點,那請問我應(yīng)該怎樣去新建這個鏈接呢?希望各位大蝦知道的話可以告知我,感激不盡! 呵呵,說了一大堆的廢話,希望不要見怪。畢竟我對usb設(shè)備了解不多,如果有什么說錯的地方請各位大蝦見諒。其實關(guān)于usb驅(qū)動的移植在網(wǎng)上有不少的貼,我在這里只對針對我的經(jīng)歷作一點總結(jié)而已,希望能對大家有一點的幫助^_^ |
|
|
來自: lchjczw > 《USB設(shè)備》