Linux-2.6.32.2內(nèi)核在mini2440上的移植(十)---配置USB外設(shè)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
移植環(huán)境
1,主機(jī)環(huán)境:VMare下CentOS 5.5 ,1G內(nèi)存。
2,集成開發(fā)環(huán)境:Elipse IDE
3,編譯編譯環(huán)境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。
4,開發(fā)板:mini2440,2M nor flash,128M nand flash。
5,u-boot版本:u-boot-2009.08
6,linux 版本:linux-2.6.32.2
7,參考文章:
嵌入式linux應(yīng)用開發(fā)完全手冊(cè),韋東山,編著。
Mini2440 之Linux 移植開發(fā)實(shí)戰(zhàn)指南
【1】在內(nèi)核中配置USB鍵盤和鼠標(biāo)等hci設(shè)備驅(qū)動(dòng)程序
Linux-2.6.32.2 內(nèi)核對(duì)USB 外設(shè)的支持是相當(dāng)豐富的,并且已經(jīng)包含了S3C2440 的USBHost 驅(qū)動(dòng)支持,因此我們只要配置一下內(nèi)核就可以了,下面是各種USB 外設(shè)的內(nèi)核配置。
在linux-2.6.32.2根目錄下執(zhí)行make menuconfig,然后確認(rèn)如下選項(xiàng)被選中
Device Drivers --->
[*] HID Devices --->
<*> USB Human Interface Device (full HID) support//支持usb鍵盤鼠標(biāo)等hci設(shè)備
提示:這里的配置選項(xiàng)對(duì)應(yīng)的內(nèi)核源代碼目錄是:linux-2.6.32.2/drivers/hid/usbhid,其中USB 鍵盤和條碼掃描器的原理是一樣的,因此它們的代碼是相同的。
[*] /dev/hiddev raw HID device support//以原始的raw方式訪問HID設(shè)備。
以上信息被選中后可以在控制臺(tái)看到如下啟動(dòng)信息
... ...
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
... ...
使用LCD和USB鍵盤作為終端
現(xiàn)在的內(nèi)核已經(jīng)支持LCD和USB鍵盤可以用它來作為控制臺(tái)終端了,確保然按前篇文章Linux-2.6.32.2內(nèi)核在mini2440上的移植(七)---LCD驅(qū)動(dòng)移植說過的在命令行增加“console=tty1”和修改inittab文件,當(dāng)接上USB鍵盤和LCD后,可以在LCD上看到如下信息“Please press Enter to activate this console.”。
這里有一點(diǎn)要注意,點(diǎn)選擇了使用USB鍵盤和LCD作為獨(dú)立的輸入輸出設(shè)備之后,串口控制終端將不再起作用了,在開發(fā)調(diào)試階段,還是不這樣做為好。
【2】在內(nèi)核中配置U盤驅(qū)動(dòng)程序
因?yàn)閮?yōu)盤用到了 SCSI 命令,所以我們先增加SCSI 支持。
Device Drivers --->
SCSI device support --->
<*> SCSI device support//要支持USB磁盤,此項(xiàng)要選中。
[*] legacy /proc/scsi/ support//在/proc/scsi目錄下提供一些信息。
<*> SCSI disk support//SCSI硬盤,要支持U盤,此項(xiàng)要選中。
[*] USB support --->
<*> Support for Host-side USB//usb主機(jī)控制器
[*] USB device filesystem (DEPRECATED)//在/proc文件系統(tǒng)中提供一些調(diào)試信息
<*> OHCI HCD support//OHCI主機(jī)控制驅(qū)動(dòng)程序
<*> USB Mass Storage support//USB存儲(chǔ)設(shè)備
現(xiàn)在的U盤等移動(dòng)存儲(chǔ)器使用的大都是FAT/FAT32 格式的,因此我們還需要添加FAT32 文件系統(tǒng)的支持,在內(nèi)核配置主菜單下依次選擇如下菜單項(xiàng):
File systems --->
DOS/FAT/NT Filesystems --->
<*> MSDOS fs support//加FAT32 文件系統(tǒng)的支持
-*- Native language support ---> //以下為支持中英文的編碼
<*> Codepage 437 (United States, Canada)
<*> Simplified Chinese charset (CP936, GB2312)
<*> Traditional Chinese charset (Big5)
<*> NLS ISO 8859-1 (Latin 1; Western European Languages)
<*> NLS UTF-8
配置完成后,退出并保存以上配置,重新編譯 make uImage。然后復(fù)制生成的uImage到/nfsboot/kernel,重啟開發(fā)板,看到如下信息:
... ...
eth0: dm9000e at c4872300,c4876304 IRQ 51 MAC: 08:90:90:90:90:90 (chip)
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver libusual
mice: PS/2 mouse device common for all mice
mini2440_TouchScreen successfully loaded
input: mini2440_TouchScreen as /devices/virtual/input/input0
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
i2c /dev entries driver
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
cpuidle: using governor ladder
... ...
測試U盤
為了看到插入U(xiǎn)盤時(shí)的打印信息,系統(tǒng)啟動(dòng)時(shí)先不要插入優(yōu)盤,等系統(tǒng)啟動(dòng)后,進(jìn)入命令行控制臺(tái),此時(shí)插入U(xiǎn)盤,可以看到如下信息:
[root@mini2440 /]#usb 1-1: new full speed USB device using s3c2410-ohci and addr
ess 2
usb 1-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access USB 2.0 Flash Drive 5.00 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 2073600 512-byte logical blocks: (1.06 GB/1012 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
[root@mini2440 /]#
根據(jù)上面的提示信息,U盤對(duì)應(yīng)的是/dev/sda1,現(xiàn)在可以掛載它了
[root@mini2440 /]#mount -t vfat /dev/sda1 /mnt/udisk
[root@mini2440 /]#cd /mnt/udisk
[root@mini2440 udisk]#ls
100MLT29 20x15 8X6???.jpg FileRecv20100328
18X8??????.jpg 24X18 ???? Photo
2.4X3.5 24X36??.jpg ?????,????? picall
20X24??.jpg 6X8??.jpg ????????.pdf uImage_T35
[root@mini2440 udisk]#
可以看到上面列出的U盤的內(nèi)容。
【4】配置并測試USB 攝像頭驅(qū)動(dòng)
(待續(xù))
【5】配置并測試USB 無線網(wǎng)卡
(待續(xù))
下一步,將進(jìn)行SD卡驅(qū)動(dòng)移植