天嵌 ARM开发社区

 找回密码
 注册
查看: 4303|回复: 11

求救,已将模块更名后仍然会自动装载!!

[复制链接]
s1005056 发表于 2014-3-5 11:23:19 | 显示全部楼层 |阅读模式
本帖最后由 s1005056 于 2014-3-11 10:14 编辑

各位版大好~
由于正在学习音频部份的驱动,因此常会需要将预设的模块移除,之前已有发问询问要怎么移除,而且都没有太大问题...

直到昨天在串口底下查看模块列表时发现s5pv210_hdmi模块变成permanent属性,即使改了名字、重新启动TQ210,甚至重新装载原始镜像挡案,仍然无法移除...


求救各位版大,是否知道怎么会变成这样....万分感谢



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
wbz073 发表于 2014-3-5 12:04:25 | 显示全部楼层
你去android源码中,找到你的init.rc,然后把里面insmod wm8960的去掉即可。
 楼主| s1005056 发表于 2014-3-5 15:01:33 | 显示全部楼层
wbz073 发表于 2014-3-5 12:04
你去android源码中,找到你的init.rc,然后把里面insmod wm8960的去掉即可。

版主好
我到android文件系统资料夹,TQ210_Andorid_4.0.4_V1.0/system/core/rootdir/init.rc内并没有看到insmod wm8960
仅有搜寻到下面三个
#sensor
        insmod /system/lib/modules/Acceleration_sensor.ko
        insmod /system/lib/modules/ds18b20.ko

#wifi
        insmod /system/lib/modules/rt5370sta.ko

会不会是另外有地方设定?
谢谢版主帮忙!
wbz073 发表于 2014-3-5 15:25:47 | 显示全部楼层
s1005056 发表于 2014-3-5 15:01
版主好
我到android文件系统资料夹,TQ210_Andorid_4.0.4_V1.0/system/core/rootdir/init.rc内并没有看 ...

在init.tq210.rc中再找找
 楼主| s1005056 发表于 2014-3-6 11:28:25 | 显示全部楼层
wbz073 发表于 2014-3-5 15:25
在init.tq210.rc中再找找

版大好
我在源码资料夹内搜寻init.tq210.rc文件,
仅有一个位于/TQ210_Android_4.0.4_V1.0/device/embedsky/tq210/configs内之文件名称相符,文件内并无insmod wm8960的设定,还请版大帮忙...是不是我找错文件了?

以下为搜寻到的init.tq210.rc文件源码
  1. import init.tq210.usb.rc

  2. on early-init
  3.     export EXTERNAL_STORAGE /mnt/sdcard
  4.     export SECONDARY_STORAGE /mnt/ext_sd:/mnt/usb

  5.     mkdir /mnt/sdcard 0000 system system
  6.     mkdir /mnt/ext_sd 0000 system system
  7.     mkdir /mnt/usb 0000 system system
  8.     # for backwards compatibility
  9.     symlink /mnt/sdcard /sdcard
  10.     symlink /mnt/ext_sd /ext_sd

  11. on post-fs-data
  12.     # we will remap this as /mnt/sdcard with the sdcard fuse tool
  13.     mkdir /data/media 0775 media_rw media_rw
  14.     chown media_rw media_rw /data/media
  15.     setprop vold.post_fs_data_done 1
  16.     mkdir /data/misc/dhcp 0770 dhcp dhcp
  17.     chown dhcp dhcp /data/misc/dhcp

  18. # 3D init
  19. service pvrsrvinit /system/vendor/bin/pvrsrvinit
  20.     class core
  21.     user root
  22.     group root
  23.     oneshot

  24. on boot
  25.         mount debugfs /sys/kernel/debug /sys/kernel/debug
  26.         chmod 0666 /dev/pvrsrvkm
  27.     setprop ro.build.product tq210
  28.     setprop ro.product.device tq210


  29. service tq210-setup /system/etc/init.tq210.sh
  30.         class main   
  31.         oneshot

  32. # rild
  33. service ril-daemon /system/bin/rild -l /system/lib/libztewcdma-ril_andriod4.0_v01.so
  34.         class main
  35.         socket rild stream 0660 root radio
  36.         socket rild-debug stream 0660 radio system
  37.         user root
  38.         group radio cache inet misc audio sdcard_rw log
复制代码

 楼主| s1005056 发表于 2014-3-6 11:41:03 | 显示全部楼层
wbz073 发表于 2014-3-5 15:25
在init.tq210.rc中再找找

另外再请教版大一件事
s5pv210_hdmi模块先前都是没有permanent这个属性状态的,之前载入出厂镜像的时后也都没这个问题...
这样子的话,突然出现这个状态可能的原因是什么?谢谢版大回复
 楼主| s1005056 发表于 2014-3-6 11:56:39 | 显示全部楼层
利用grep -r "insmod" 搜寻Android文件系统源码的结果...part 1
insmod wm8960到底藏哪了,不过倒是有看到一个文件./vendor/embedsky/tq210/device-vendor.mk:                vendor/embedsky/tq210/bin/sound_insmod:system/bin/sound_insmod,会是藏在这里面么?
求救版大!!

  1. root@bella-VirtualBox:/opt/EmbedSky/TQ210/TQ210_Android_4.0.4_V1.0_sido# grep -r "insmod" ./
  2. ./external/qemu-pc-bios/bochs/configure:          INSMOD="insmod"
  3. ./external/iptables/iptables/iptables-restore.c:                /* try to insmod the module if iptc_init failed */
  4. ./external/iptables/iptables/ip6tables-restore.c:                /* try to insmod the module if iptc_init failed */
  5. ./external/iptables/iptables/xtables.c:int xtables_insmod(const char *modname, const char *modprobe, bool quiet)
  6. ./external/iptables/iptables/xtables.c:        ret = xtables_insmod(afinfo->kmod, modprobe, quiet);
  7. ./external/iptables/iptables/ip6tables.c:        /* try to insmod the module if iptc_init failed */
  8. ./external/iptables/iptables/iptables.c:        /* try to insmod the module if iptc_init failed */
  9. ./external/iptables/include/xtables.h:extern int xtables_insmod(const char *, const char *, bool);
  10. ./external/iptables/include/xtables.h.in:extern int xtables_insmod(const char *, const char *, bool);
  11. ./external/iptables/libiptc/libiptc.c:                    "Table does not exist (do you need to insmod?)" },
  12. ./external/iptables/libiptc/libiptc.c:            { NULL, ENOPROTOOPT, "iptables who? (do you need to insmod?)" },
  13. ./external/wpa_supplicant/wireless_copy.h: * better than command line options of insmod because we may want to
  14. ./external/wpa_supplicant_6/wpa_supplicant/src/common/wireless_copy.h: * better than command line options of insmod because we may want to
  15. ./external/wireless-tools/wireless.12.h: * better than command line options of insmod because we may want to
  16. ./external/wireless-tools/wireless.21.h: * better than command line options of insmod because we may want to
  17. ./external/wireless-tools/wireless.17.h: * better than command line options of insmod because we may want to
  18. ./external/wireless-tools/wireless.14.h: * better than command line options of insmod because we may want to
  19. ./external/wireless-tools/wireless.20.h: * better than command line options of insmod because we may want to
  20. ./external/wireless-tools/wireless.h: * better than command line options of insmod because we may want to
  21. ./external/wireless-tools/wireless.18.h: * better than command line options of insmod because we may want to
  22. ./external/wireless-tools/wireless.19.h: * better than command line options of insmod because we may want to
  23. ./external/wireless-tools/wireless.10.h: * better than command line options of insmod because we may want to
  24. ./external/wireless-tools/wireless.13.h: * better than command line options of insmod because we may want to
  25. ./external/wireless-tools/wireless.11.h: * better than command line options of insmod because we may want to
  26. ./external/wireless-tools/wireless.15.h: * better than command line options of insmod because we may want to
  27. ./external/wireless-tools/wireless.16.h: * better than command line options of insmod because we may want to
  28. ./external/iproute2/include/ip6tables.h:extern int ip6tables_insmod(const char *modname, const char *modprobe);
  29. ./external/iproute2/include/xt-internal.h:extern int xtables_insmod(const char *modname, const char *modprobe, int quiet);
  30. ./external/iproute2/include/iptables_common.h:extern int iptables_insmod(const char *modname, const char *modprobe);
  31. ./external/kernel-headers/original/linux/wireless.h: * better than command line options of insmod because we may want to
  32. ./external/oprofile/doc/oprofile.xml:If you have run <command>insmod</command> or <command>modprobe</command> to insert a module
  33. ./external/oprofile/daemon/liblegacy/p_module.h:   to be dependant on a particular kernel version to compile insmod.  */
  34. ./external/oprofile/daemon/liblegacy/opd_kernel.c: * __insmod_modulename_Oobjectfile_Mmtime_Vversion
  35. ./external/oprofile/daemon/liblegacy/opd_kernel.c: * __insmod_modulename_Ssectionname_Llength
  36. ./external/oprofile/daemon/liblegacy/opd_kernel.c:                if (strncmp("__insmod_", line + 9, 9)) {
  37. ./external/grub/netboot/depca.c:    5) insmod depca.o [irq=7] [io=0x200] [mem=0xd0000] [adapter_name=DE100]
  38. ./external/wpa_supplicant_8/src/drivers/wireless_copy.h: * better than command line options of insmod because we may want to
  39. ./external/wpa_supplicant_8/wpa_supplicant/src/drivers/wireless_copy.h: * better than command line options of insmod because we may want to
  40. ./external/wpa_supplicant_8/hostapd/src/drivers/wireless_copy.h: * better than command line options of insmod because we may want to
  41. ./device/embedsky/tq210/configs/init.tq210.sh:sound_insmod
  42. ./device/embedsky/tq210/init.rc:#        insmod /system/lib/modules/Acceleration_sensor.ko
  43. ./device/embedsky/tq210/init.rc:#        insmod /system/lib/modules/ds18b20.ko
  44. ./device/embedsky/tq210/init.rc:#        insmod /system/lib/modules/rt5370sta.ko
  45. ./device/embedsky/tq210/init.rc:        insmod /system/lib/modules/8189es.ko
  46. ./device/moto/wingray/init.stingray.rc:service wlan_prod /system/bin/insmod /system/lib/modules/bcm4329.ko "firmware_path=/vendor/firmware/fw_bcm4329.bin nvram_path=/system/etc/wifi/bcm4329.cal"
  47. ./device/moto/wingray/init.stingray.rc:service wlan_mfg /system/bin/insmod /system/lib/modules/bcm4329.ko "firmware_path=/vendor/firmware/fw_bcm4329_mfg.bin nvram_path=/system/etc/wifi/bcm4329.cal"
  48. ./system/core/init/init_parser.c:        if (!strcmp(s, "nsmod")) return K_insmod;
  49. ./system/core/init/readme.txt:insmod <path>
  50. ./system/core/init/builtins.c:static int insmod(const char *filename, char *options)
  51. ./system/core/init/builtins.c:static int do_insmod_inner(int nargs, char **args, int opt_len)
  52. ./system/core/init/builtins.c:    return insmod(args[1], options);
  53. ./system/core/init/builtins.c:int do_insmod(int nargs, char **args)
  54. ./system/core/init/builtins.c:    return do_insmod_inner(nargs, args, size);
  55. ./system/core/init/keywords.h:int do_insmod(int nargs, char **args);
  56. ./system/core/init/keywords.h:    KEYWORD(insmod,      COMMAND, 1, do_insmod)
  57. ./system/core/rootdir/init.rc:        insmod /system/lib/modules/Acceleration_sensor.ko
  58. ./system/core/rootdir/init.rc:        insmod /system/lib/modules/ds18b20.ko
  59. ./system/core/rootdir/init.rc:        insmod /system/lib/modules/rt5370sta.ko
  60. ./system/core/toolbox/insmod.c:int insmod_main(int argc, char **argv)
  61. ./system/core/toolbox/insmod.c:                fprintf(stderr, "usage: insmod <module.o>\n");
  62. ./system/core/toolbox/insmod.c:                fprintf(stderr, "insmod: can't open '%s'\n", argv[1]);
  63. ./system/core/toolbox/insmod.c:                "insmod: init_module '%s' failed (%s)\n",
  64. ./system/core/toolbox/Android.mk:        insmod \
  65. ./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/include/linux/wireless.h: * better than command line options of insmod because we may want to
  66. grep: ./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/libaudiofile.so.0.0: 沒有此一檔案或目錄
  67. grep: ./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/libpulse-browse.so.0.1: 沒有此一檔案或目錄
  68. grep: ./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/libpulse-mainloop-glib.so.0.0: 沒有此一檔案或目錄
  69. grep: ./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/libpulse-mainloop-glib.so: 沒有此一檔案或目錄
  70. grep: ./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/libaudiofile.so: 沒有此一檔案或目錄
  71. grep: ./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/libpulse-browse.so: 沒有此一檔案或目錄
  72. ./vendor/embedsky/tq210/device-vendor.mk:                vendor/embedsky/tq210/bin/sound_insmod:system/bin/sound_insmod
  73. ./hardware/libhardware_legacy/wifi/wifi.c:static int insmod(const char *filename, const char *args)
  74. ./hardware/libhardware_legacy/wifi/wifi.c:    if (insmod(DRIVER_MODULE_PATH, DRIVER_MODULE_ARG) < 0)
  75. ./hardware/realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c:static int insmod(const char *filename, const char *args)
  76. ./hardware/realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c:    if (insmod(DRIVER_MODULE_PATH, DRIVER_MODULE_ARG) < 0)
  77. ./hardware/wlan/mac80211/ti-utils/plt.h:#define INSMOD_PATH                "/system/bin/insmod"
  78. ./hardware/wlan/mac80211/ti-utils/plt.h:#define INSMOD_PATH                "/sbin/insmod"
  79. ./hardware/wlan/mac80211/ti-utils/plt.c:static int insmod(char *filename)
  80. ./hardware/wlan/mac80211/ti-utils/plt.c:        res = insmod(modpath);
  81. ./hardware/wlan/mac80211/compat/include/linux/wireless.h: * better than command line options of insmod because we may want to
  82. ./out/target/product/tq210/root/init.rc:#        insmod /system/lib/modules/Acceleration_sensor.ko
  83. ./out/target/product/tq210/root/init.rc:#        insmod /system/lib/modules/ds18b20.ko
  84. ./out/target/product/tq210/root/init.rc:#        insmod /system/lib/modules/rt5370sta.ko
  85. ./out/target/product/tq210/root/init.rc:        insmod /system/lib/modules/8189es.ko
  86. ./out/target/product/tq210/rootfs_dir/system/etc/init.tq210.sh:sound_insmod
  87. ./out/target/product/tq210/rootfs_dir/init.rc:#        insmod /system/lib/modules/Acceleration_sensor.ko
  88. ./out/target/product/tq210/rootfs_dir/init.rc:#        insmod /system/lib/modules/ds18b20.ko
  89. ./out/target/product/tq210/rootfs_dir/init.rc:#        insmod /system/lib/modules/rt5370sta.ko
  90. ./out/target/product/tq210/rootfs_dir/init.rc:        insmod /system/lib/modules/8189es.ko
  91. ./development/pdk/docs/porting/bring_up.jd:      <td><code>insmod &lt;path&gt;</code></td>
  92. root@bella-VirtualBox:/opt/EmbedSky/TQ210/TQ210_Android_4.0.4_V1.0_sido#
复制代码
wbz073 发表于 2014-3-6 12:08:09 | 显示全部楼层
s1005056 发表于 2014-3-6 11:41
另外再请教版大一件事
s5pv210_hdmi模块先前都是没有permanent这个属性状态的,之前载入出厂镜像的时后 ...

在你android源码目录下device/embedsky/tq210/configs中有个init.tq210.sh的文件,屏蔽掉或找到sound_insmod命令,即可
 楼主| s1005056 发表于 2014-3-10 15:14:29 | 显示全部楼层
wbz073 发表于 2014-3-6 12:08
在你android源码目录下device/embedsky/tq210/configs中有个init.tq210.sh的文件,屏蔽掉或找到sound_ins ...

感謝版大的幫忙,已經可以使wm8960.ko以及 s5pv210-hdmi.ko不會預設載入了!

不過現在有個小問題,在開機後手動插入wm8960.ko & s5pv210-hdmi.ko後,播放SD卡內的音樂跟影片是有聲音,但是介面按鍵卻沒聲音了,請問發生了什麼是呢
wbz073 发表于 2014-3-11 08:54:38 | 显示全部楼层
s1005056 发表于 2014-3-10 15:14
感謝版大的幫忙,已經可以使wm8960.ko以及 s5pv210-hdmi.ko不會預設載入了!

不過現在有個小 ...

你在设置里面有没有把按键音选中??
 楼主| s1005056 发表于 2014-3-11 10:14:08 | 显示全部楼层
wbz073 发表于 2014-3-11 08:54
你在设置里面有没有把按键音选中??

有了!
原來是不小心調成靜音模式....

謝謝wbz073版大的幫忙
wbz073 发表于 2014-3-11 10:20:34 | 显示全部楼层
s1005056 发表于 2014-3-11 10:14
有了!
原來是不小心調成靜音模式....

不客气,有问题积极发帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-2 17:20 , Processed in 1.031250 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表