arcotg_udc: exports duplicate symbol imx_usb_create_charger (owned by kernel)
/*********************************************************************************
* arcotg_udc: exports duplicate symbol imx_usb_create_charger (owned by kernel)
* 说明:
* 内核驱动中导出的函数和模块中导出的函数重复了。
*
* 2017-10-14 深圳 南山平山村 曾剑锋
********************************************************************************/ 一、错误信息:
[zengjf@root ~]# modprobe g_ffs idVendor=0x18d1 idProduct=0x4e42 iSerialNumber
="buildroot"
arcotg_udc: exports duplicate symbol imx_usb_create_charger (owned by kernel)
modprobe: can't load module arcotg_udc (kernel/drivers/usb/gadget/arcotg_udc.ko): invalid module format
[zengjf@root ~]# 二、查找imx_usb_create_charger函数:
Qt@zengjf:~/kernel/linuxQt_kernel$ grep imx_usb_create_charger * -R
Binary file drivers/usb/gadget/arcotg_udc.o matches
Binary file drivers/usb/gadget/arcotg_udc.ko matches
drivers/usb/gadget/arcotg_udc.c: if (imx_usb_create_charger(&udc_controller->charger, "imx_usb_charger"))
drivers/usb/gadget/imx_usb_charger.c: * imx_usb_create_charger - create a USB charger
drivers/usb/gadget/imx_usb_charger.c:int imx_usb_create_charger(struct usb_charger *charger,
drivers/usb/gadget/imx_usb_charger.c:EXPORT_SYMBOL(imx_usb_create_charger);
Module.symvers:0xa8003a03 imx_usb_create_charger drivers/usb/gadget/arcotg_udc EXPORT_SYMBOL
Qt@zengjf:~/kernel/linuxQt_kernel$ 三、cat drivers/usb/gadget/imx_usb_charger.c
...
int imx_usb_create_charger(struct usb_charger *charger,
const char *name)
{
int ret = ;
struct power_supply *psy = &charger->psy; if (!charger->dev)
return -EINVAL; if (name)
psy->name = name;
else
psy->name = "usb_charger"; usb_charger_init(charger); psy->type = POWER_SUPPLY_TYPE_USB;
psy->properties = power_props;
psy->num_properties = ARRAY_SIZE(power_props);
psy->get_property = usb_charger_get_property; psy->supplied_to = usb_charger_supplied_to;
psy->num_supplicants = sizeof(usb_charger_supplied_to)/sizeof(char *);
psy->external_power_changed = my_batt_ext_power_changed; ret = power_supply_register(charger->dev, psy);
if (ret)
goto fail; mutex_init(&charger->lock);
INIT_WORK(&charger->work, usb_charger_work); fail:
return ret;
}
EXPORT_SYMBOL(imx_usb_create_charger);
... 四、cat drivers/usb/gadget/arcotg_udc.c
...
/* create usb charger */
#ifdef CONFIG_IMX_USB_CHARGER
udc_controller->charger.dev = &pdev->dev;
udc_controller->charger.dp_pullup = usb_charger_pullup_dp;
udc_controller->charger.enable = true;
if (pdata->charger_base_addr)
udc_controller->charger.charger_base_addr = pdata->charger_base_addr;
if (imx_usb_create_charger(&udc_controller->charger, "imx_usb_charger"))
dev_err(&pdev->dev, "Can't create usb charger\n");
#else
udc_controller->charger.dp_pullup = usb_charger_pullup_dp;
udc_controller->charger.enable = false;
#endif
... 五、解决办法:
make menuconfig去掉CONFIG_IMX_USB_CHARGER
arcotg_udc: exports duplicate symbol imx_usb_create_charger (owned by kernel)的更多相关文章
- 内核加载模块时提示usb_common: exports duplicate symbol of_usb_get_dr_mode
1.分析: 既然符号重复了,那么说明有一个部分既被编译到内核中也被编译成模块了,因此在加载模块时,内核报符号重复的提示 2.解决 直接配置内核的某一部分编译成模块,例如笔者就直接将USB这一部分编译成 ...
- iOS开发 引用第三方库出现duplicate symbol时的处理方法
该篇文章是我自己从我的新浪博客上摘抄过来的, 原文链接为: http://blog.sina.com.cn/s/blog_dcc636350102wat5.html 在iOS开发中, 难免 ...
- C语言调试过程中duplicate symbol错误分析
说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...
- 【原】IOS合并lib(.a)库的终极可用方法(可用于解决duplicate symbol静态库冲突)
网上流传了太多关于合并lib库的方法,自己也尝试过,但大多失败.有感于这种急于解决问题,经过百般尝试后依旧无果的无奈心情,小翁在这里用一个实例来完整阐述如何在mac中合并lib静态库. 这里以移动广告 ...
- iOS开发 - OC - duplicate symbol _OBJC / undefind symbol 错误的相关处理
前言: 作为一个iOS开发,相信大家都会遇到类似于 “duplicate symbol” 的程序报错. 对于很多新手来说,可能会有点手足无措,因为这种类型的报错一般并非是代码的逻辑错误,大部分情况下是 ...
- iOS 解决一个因三方静态库冲突产生的duplicate symbol的问题
最近在开发项目时编译三方.a时出现了冲突,原因是存在duplicate symbol. <1>模拟器编译时,应用的即时通讯模块采用的三方库(容联云),和视频监控模块采用的三方库(海康威视) ...
- 【转】XCode: duplicate symbol 解决方案
遇到引用库重复定义的问题,需要解决. 项目需要,同时引用ZBar和QQ授权登录SDK,由于二者均使用了Base64处理数据,XCode编译时报错: duplicate symbol _base64_e ...
- 编译iOS程序时的-all_load选项,以及-all_load 导致的 ld duplicate symbol xx的问题
在新的SDK环境中调试百度地图的应用程序时,app总是意外退出,找了半天发现错误的原因是unrecognized selector xx的错误,另外还有报了一个Unknown class XXX in ...
- duplicate symbol _OBJC_CLASS 错误处理方法
错误: ld: duplicate symbol _OBJC_CLASS_$_************ in **************** 一种可能性是你的项目的不同group里有着相同名称的类 ...
随机推荐
- 1.1 、Django 后台
Django 后台 与后台相关文件:每个app中的 admin.py 文件与后台相关. 一,新建一个 名称为 HelloDjango 的项目 django-admin.py startproject ...
- 028-touch命令
1.创建空文件.可以创建一个空文件,也可以批量创建空文件. 2.更改文件/目录的访问时间,如果文件存在就更改访问时间,不存在就创建.# touch -a 3.更改文件的访问时间和修改时间.如果文件存在 ...
- CCPC-Wannafly Winter Camp Day4 (Div2, onsite)
Replay Dup4: 两轮怎么退火啊? 简单树形dp都不会了,送了那么多罚时 简单题都不想清楚就乱写了,喵喵喵? X: 欧拉怎么回路啊, 不会啊. 还是有没有手误?未思考清楚或者未检查就提交, 导 ...
- [转]Birdfont 2.10 发布,字体编辑器
最近在忙大数据.黑天鹅算法实盘测试 许久没有更新字库方面的资料,汗一个... 今天转一个 :Birdfont 2.10 发布,字体编辑器 字体编辑器,向来很少,除了fontlab的几个昂贵的商业版,就 ...
- 【android】如何让WebView对Video标签的支持更强力
先说结论:各个产商对HTML5特性支持的程度不一样,用默认的WebChromeClient不能普遍适用. 因此咱基于GITHUB上一个VideoEnabledWebView库做了自己的封装,在魅族.华 ...
- gstreamer调试命令
gplay播放命令 gplay 文件全路径 (eg:gplay 123.mp3) gstreamer播放命令 gst-launch playbin2 uri=file:///文件全路径 (eg gs ...
- CodeForces 828E DNA Evolution(树状数组)题解
题意:给你一个串k,进行两个操作: “1 a b”:把a位置的字母换成b “2 l r s”:求l到r有多少个字母和s匹配,匹配的条件是这样:从l开始无限循环s形成一个串ss,然后匹配ss和指定区间的 ...
- HDU 2848 Number Cutting Game(博弈思想 + dfs)题解
思路:dfs找先手必胜的情况是否存在 代码: #include<stack> #include<vector> #include<queue> #include&l ...
- IAsyncResult接口
#region 程序集 mscorlib.dll, v4.0.0.0 // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framewor ...
- adb connect 192.168.1.10 failed to connect to 192.168.1.10:5555
adb connect 192.168.1.10 输出 failed to connect to 关闭安卓端Wi-Fi,重新打开连接即可