打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
kernel 移植

实现功能:

> 支持小页/大页NandFlash64M/256M

> 支持yaffs2 文件系统

> 支持320*240 LCD

> 支持DM9000网卡

> 支持UDA1341 声卡

> 支持 RTC

> 完善了触摸屏驱动

> 支持常用USB 设备

>支持常用USB 摄像头

>支持 CMOS 摄像头驱动移植

十一> LCD 背光

 

移植手册: 

 linux2.6.31移植V1.5.pdf  

补丁文件: 

 linux-2.6.31_TX2440A.rar   

 

编译:查看一下自己的编译器版本 arm-linux-gcc -v

           如果是4.3.2

           需要在make menuconfig里设置一下kernel devices

                    去掉对eabi的支持选项。

# 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 <MAC 地址,随便设

ifconfig eth0 up

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

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

ping 192.168.1.10 <开发板的 IP 地址

也可以在开发板的串口终端下 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

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背光点亮。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SD和USB移植
[Openwrt 项目开发笔记]:USB挂载& U盘启动(三)
linux挂载硬盘:在Linux系统下移动硬盘的挂载及卸载方法
香蕉派挂载硬盘
Android内核和驱动篇-Android内核介绍
YAFFS文件系统移植笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服