UDA1341在linux2.6.30上的移植

简介: 1. 定义并添加声卡设备到系统平台设备初始化列表中 修改arch/arm/plat-s3c24xx/devs.c,添加如下内容 #include #include   /* U...

1. 定义并添加声卡设备到系统平台设备初始化列表中

修改arch/arm/plat-s3c24xx/devs.c,添加如下内容

#include

#include

 

/* UDA1341 */

static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = {

         .l3_clk = S3C2410_GPB4,

         .l3_data = S3C2410_GPB3,

         .l3_mode = S3C2410_GPB2,

         .model = UDA134X_UDA1341,

};

 

struct platform_device s3c_device_uda134x = {

         .name = "s3c24xx_uda134x",

         .dev = {

                  .platform_data = &s3c24xx_uda134x_data,

         }

};

 

EXPORT_SYMBOL(s3c_device_uda134x);

 

修改 arch/arm/plat-s3c/include/plat/devs.h,添加如下内容

extern struct platform_device s3c_device_uda134x;

 

修改vi arch/arm/mach-s3c2440/mach-smdk2440.c,找到*smdk2440_devices[],添加&s3c_device_uda134x

 

 

static struct platform_device *smdk2440_devices[] __initdata = {

    &s3c_device_usb,

    &s3c_device_lcd,

    &s3c_device_wdt,

    &s3c_device_i2c0,

    &s3c_device_iis,

    &s3c_device_rtc,

    &s3c_device_dm9000,

    &s3c_device_uda134x, //加上这一句

};


2、

配置内核

Device Drivers  --->

       Sound card support  --->

                 Advanced Linux Sound Architecture  --->

                        OSS Mixer API

                        OSS PCM (digital audio) API

                     [*]     OSS PCM (digital audio) API - Include plugin system

                     [*]   Support old ALSA API

                     [*]   Verbose procfs contents

                     [*]   Verbose printk

                     [*]   Generic sound devices  --->

                        ALSA for SoC audio support  --->

                               SoC Audio for the Samsung S3C24XX chips

                               SoC I2S Audio support UDA134X wired to a S3C24XX

3、

make zImage

4、播放出理卡的现像

先获取 1.0.18a 的声卡驱动,可以下载 Linux-2.6.29.xxx 的内核源码;

然后复制 "Linux-2.6.29.xxx/sound/" 目录和 "Linux-2.6.29.xxx/include/sound/" 目录到 Linux-2.6.30.4 内核中替换掉对应的目录;

复制 "Linux-2.6.29.xxx/include/asm-arm/plat-s3c24xx" 目录到 "Linux-2.6.30.4/include/asm-arm/" 目录下;

复制 "Linux-2.6.29.xxx/arch/arm/mach-s3c2410/include/mach/audio.h" 文件到 "Linux-2.6.30.4/arch/arm/mach-s3c2410/include/mach/" 目录下。

在 "Linux-2.6.30.4/include/linux/proc_fs.h" 文件的第70行添加如下内容:

struct module *owner;

因为在 "Linux-2.6.30.4/sound/core/info.c" 文件的 159 和 982 行用到了 struct proc_dir_entry 结构体的 owner 成员变量。

5)

# make clean  最好执行一次

# make zImage

OK!


此资料来来:

http://blog.chinaunix.net/u3/104564/showart_2092029.html

http://blog.chinaunix.net/u3/108761/showart_2144335.html

相关文章
|
2天前
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
|
16天前
|
Linux 编译器 网络安全
嵌入式Linux移植dropbear
嵌入式Linux移植dropbear
16 3
|
16天前
|
编解码 Ubuntu 算法
【Linux】NUC977移植使用MQTT(基于mosquitto)
【Linux】NUC977移植使用MQTT(基于mosquitto)
|
1月前
|
存储 Linux Shell
嵌入式 Linux 移植与系统启动方法
嵌入式 Linux 移植与系统启动方法
19 0
|
3月前
|
Ubuntu Linux 测试技术
linux系统中wifi移植方法
linux系统中wifi移植方法
43 1
|
3月前
|
Linux 网络安全 芯片
linux系统中详解u-boot之网络移植与调试
linux系统中详解u-boot之网络移植与调试
173 0
|
6月前
|
Linux 图形学 Windows
嵌入式课程实现Linux操作系统LVGL移植操作
嵌入式课程实现Linux操作系统LVGL移植操作
|
7月前
|
关系型数据库 MySQL Linux
在嵌入式 Linux 上移植 MySQL 数据库
MySQL 是一个流行的开源关系型数据库管理系统(RDBMS),它可以用于在各种应用程序中存储和管理数据。尽管 MySQL 在大型服务器上广泛使用,但它也可以在嵌入式 Linux 环境中运行,为嵌入式设备提供高效的数据库管理功能。本文将介绍如何在嵌入式 Linux 上移植 MySQL 数据库。
186 0
|
7月前
|
存储 SQL Linux
嵌入式Linux上移植SQLite数据库
SQLite是一种轻量级的嵌入式数据库引擎,适用于各种应用,包括嵌入式系统。在嵌入式Linux上移植SQLite数据库可以为嵌入式设备提供持久性数据存储和查询功能。本文将介绍如何在嵌入式Linux上移植SQLite数据库。
84 0
|
7月前
|
Linux API
Linux系统上移植`libmodbus`库
在Linux系统上移植`libmodbus`库的过程需要经历一系列步骤,这个库通常用于与Modbus通信协议兼容的设备进行通信。以下是移植`libmodbus`库的一般步骤以及一些常见问题的解决方法。
200 0