linux的内核移植博客,Linux-2.6.31 内核移植

实现功能:

一>支持小页/大页NandFlash—64M/256M

二>支持yaffs2文件系统

三>支持320*240 LCD

四>支持DM9000网卡

五>支持UDA1341声卡

六>支持RTC

七>完善了触摸屏驱动

八>支持常用USB设备

九>支持常用USB摄像头

十>支持CMOS摄像头驱动移植

十一> LCD背光

编译:# make distclean

# cp TX2440A_config_256M_W35 .config

# make zImage编译完后,会在arch/arm/boot下生成zImage内核镜像文件

[其它说明:

linux-2.6.31_TX2440A20110106已经添加了3.5寸、4.3寸、7寸屏的驱动

内核源码的根目录下有3个配置文件:

TX2440A_config_256M_W35—>3.5寸屏的配置文件

TX2440A_config_256M_W43—>4.3寸屏的配置文件

TX2440A_config_256M_Q70—>7.0寸屏的配置文件

编译内核之前,只需要LOAD相应的配置文件就可以生成对应该屏的内核。

图形化配置:

#make menuconfig

在配置菜单中选择这一项:"Load an Alternate Configuration File",输入2440的默认配置文件:TX2440A_config_256M_W35,然后选择OK。配置完后,回到主菜单,选择这一项"Save an Alternate Configuration File",输入要保存的配置文件名称:.config(默认)或自己取名:TX2440A_config,退出,编译内核]

内核移植步骤:

一、准备移植

二、支持NandFlash

启动时输出:S3C24XX NAND Driver, (c) 2004 Simtec Electronics

0x000000000000-0x000000100000 : "boot"

0x000000120000-0x000000520000 :"kernel"

0x000000520000-0x000010000000 :"yaffs2"

三、支持yaffs2文件系统

启动时(成功挂载文件系统)输出:

yaffs: dev is 32505858 name is "mtdblock2"

yaffs: passed flags ""

yaffs: Attempting MTD mount on 31.2, "mtdblock2"

yaffs: auto selecting yaffs2

yaffs_read_super: isCheckpointed 0

VFS: Mounted root (yaffs filesystem) on device 31:2.

Freeing init memory: 196K

四、LCD驱动的移植

启动时输出:

Console: switching to colour frame buffer device 40x30

fb0: s3c2410fb frame buffer device

五、DM9000驱动的移植

启动时输出:

dm9000 Ethernet Driver, V1.31

Now use the default MAC address: 08:90:90:90:90:90

eth0: dm9000e at c881c000,c8820004 IRQ 62 MAC: 08:90:90:90:90:90

系统启动后,可能会出现这个错误:

ifconfig: SIOCSIFFLAGS: Cannot assign requested address

原因是MAC地址没有设置或没有设置对,在文件系统的启动脚本中加上:

ifconfig eth0 down

ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX

ifconfig eth0 up

一般问题可以解决,如果还提示有错,再改一下MAC地址。

测试网卡的方法:连接好计算机和开发板之间的网线,如果网开发板网卡的灯亮起,说明已经连接到计算机;可以在计算机的命令行窗口下(开始->运行->cmd)使用PING命令测试网络:

ping 192.168.1.10

也可以在开发板的串口终端下PING计算机的网卡。

六、UDA1341声卡驱动的移植

启动时会打印出以下信息:

S3C24XX_UDA134X SoC Audio driver

UDA134X SoC Audio Codec

asoc: UDA134X s3c24xx-i2s mapping ok

ALSA device list:

#0: S3C24XX_UDA134X (UDA134X)

前面两句不用管,只要后面的信息都打出来就OK了,可以在源码下把这两条警告给屏蔽掉。

􀂋下面测试一下声卡,设备名称为:/dev/dsp

在开发板的串口终端上用命令:#cat /dev/dsp > /tmp/1.wav进行录音,录完后Ctrl+C,用命令:#cat /tmp/1.wav > /dev/dsp进行放音,如果听到刚才的录音,就说明声卡好使了,再用madplay测试一下音质,一般都没什么问题。

七、SD卡驱动移植

启动时输出:

s3c2440-sdi s3c2440-sdi: powered down.

s3c2440-sdi s3c2440-sdi: initialisation done.

s3c2440-sdi s3c2440-sdi: powered down.

􀂋挂载SD卡

插入SD卡后,会提示:

mmc0: new SD card at address b368

mmcblk0: mmc0:b368 SD 970 MiB

mmcblk0: p1

那么SD卡的设备名称就是mmcblk0p1,将它挂载到/mnt/sd目录下:

#mount /dev/mmcblk0p1 /mnt/sd

进入/mnt/sd目录就可以查看SD卡中的内容了。

􀂋卸载SD卡,用命令:

#umount /mnt/sd

八、RTC驱动移植

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

􀂋在终端下用busybox1.15.2自带的date命令来查看和设置时间

#date

Thu Jan 1 00:01:36 UTC 1970

#date -s 2009.10.22-16:30:10

Thu Oct 22 16:30:10 UTC 2009

#hwclock -w

􀂋在文件系统的启动脚本中加入命令:hwclock -s

每次启动系统时就会自动同步硬件RTC时间:

s3c2410-rtc s3c2410-rtc: setting system clock to 2009-10-22 16:32:07 UTC

九、触摸屏驱动移植

启动时输出:

s3c2410 TouchScreen successfully loaded

input: s3c2410 TouchScreen as /class/input/input0

十、USB设备驱动移植

U盘的挂载:

插入U盘后会提示:

[root@TX2440A /dev]# usb 1-1.4: new full speed USB device using s3c2410-ohci

and address 3

usb 1-1.4: configuration #1 chosen from 1 choice

scsi0 : SCSI emulation for USB Mass Storage devices

scsi 0:0:0:0: Direct-Access Kingston DataTraveler G2 1.00 PQ: 0 ANSI: 2

sd 0:0:0:0: [sda] 7831552 512-byte logical blocks: (4.00 GB/3.73 GiB)

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: Attached scsi generic sg0 type 0

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

U盘的设备名称就是sda1,将它挂载到/mnt/udisk3目录下:

#mount /dev/sda1 /mnt/udisk3

进入/mnt/udisk3目录就可以查看U盘中的内容了。

卸载U盘,用命令:

#umount /mnt/udisk3

十一、USB摄像头驱动移植

插入USB摄像头(使用的是UVC摄像头),会提示:

usb 1-1.2: new full speed USB device using s3c2410-ohci and address 5

usb 1-1.2: configuration #1 chosen from 1 choice

uvcvideo: Found UVC 1.00 device Saturn USB 2.0 Camera. (0ac8:3313)

input: Saturn USB 2.0 Camera. as /class/input/input1

它的设备名称是:/dev/video0

十二、CMOS摄像头驱动移植

十三、其他字符设备驱动移植.

十四、LCD背光驱动移植和开机LOGO的制作

测试背光驱动 执行#echo 0 > /dev/TX2440-backlight会使LCD背光熄灭。执行#echo 1 > /dev/TX2440-backlight会使LCD背光点亮。

十五、驱动程序在内核源码中的位置及设备名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值