c 语言---undefined reference to `socket'的问题

龙欣软件 2007-12-14 04:56:08
最近在自学c语言,在学网络这章时遇到一个问题:
代码如下:
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include "chinatime.c"
#define myport 6666
#define max 100
int main(){
struct chinatime tc;
int sockfd;
struct sockaddr_in myaddr,otheraddr;
int addr_len,numaddr;
char buf[max];
tc=to_china_time(NULL,tc);
printf("-------------测试程序开始( %s %s %s)------------\n",tc.y_m_d,tc.h_m_s,tc.wday);
sockfd=socket(AF_INET,SOCK_DGRAM,0);
getch();
return 0;
}
sockfd=socket(AF_INET,SOCK_DGRAM,0);**********这行报错:undefined reference to `socket'
我在sys文件夹下能找到socket.h,
并能找到文件中的声明:extern int socket (int __domain, int __type, int __protocol) __THROW;
不知为什么?请各位多指点.
...全文
1858 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunhappy 2007-12-14
  • 打赏
  • 举报
回复
libc.a 把这个也拷过来~~~
Treazy 2007-12-14
  • 打赏
  • 举报
回复
>>mingw下的不全

应该不会不全吧,只是有些名字可能变了!可以去查查

另外你直接把头文件包含进来也是没用的,因为库文件中没有对应的函数,所以连接不到

或者楼主你可以上网自己把这个函数原型提取出来,然后自己编译!
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
可能是mingw本身没有socket.h头文件,也就没有库文件,所以即使把头文件copy来也不行.
不知对不对
believefym 2007-12-14
  • 打赏
  • 举报
回复
无语了。。。。。。
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
1楼所说的,我觉得不可能,文件都能找到,定义一定找到.
不明白2楼的意思.要配置什么库?
------------
找到的只是包含声明的文件,谁说定义一定能找到了
不是开源的话,定义就在库里面
------------------------------------
回10楼:我其它的函数如printf getch等能用,你说是不是开源的
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
mingw下的不全,所以我到linux copy.
believefym 2007-12-14
  • 打赏
  • 举报
回复
1楼所说的,我觉得不可能,文件都能找到,定义一定找到.
不明白2楼的意思.要配置什么库?
------------
找到的只是包含声明的文件,谁说定义一定能找到了
不是开源的话,定义就在库里面
Treazy 2007-12-14
  • 打赏
  • 举报
回复
晕,mingw下面本身就有相对应的头文件和库文件,好象不用linux下的
乱了 乱了~~
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
我用的是eclips+cdt+MinGW.所有头文件是从liunx的usr/include/copy下来的
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
照3楼的做了,还是不行
Treazy 2007-12-14
  • 打赏
  • 举报
回复
你的环境是什么,用的是什么编译器?

你看看你自己的path中是否包含了那些头文件
如果没有的话,那可能就会报上面的错误

标准unix系统中
socket函数需要包含头文件
socket.h

sys/type.h
龙欣软件 2007-12-14
  • 打赏
  • 举报
回复
1楼所说的,我觉得不可能,文件都能找到,定义一定找到.
不明白2楼的意思.要配置什么库?

NKLoveRene 2007-12-14
  • 打赏
  • 举报
回复
还不行就编译的时候加-I/..include/之类的
连接时候-L/..lib/之类的
NKLoveRene 2007-12-14
  • 打赏
  • 举报
回复
#include <arpa/inet.h>
把这个也加上试试
还不行就在编译的时候加-lsocket选项
believefym 2007-12-14
  • 打赏
  • 举报
回复
是不是库没配置好
believefym 2007-12-14
  • 打赏
  • 举报
回复
声明是有了,没找到定义吧
旧版本版本的全志R16平台的tinav2.1的系统打开softAP 2017/9/14 17:25 版本:V1.0 1、原始编译: rootroot@cm-System-Product-Name:~$ cd /home/wwt/ rootroot@cm-System-Product-Name:/home/wwt$ tar zxvf tinaV2.1_wyb_20170302_patch_leo_20161102.tar.gz rootroot@cm-System-Product-Name:/home/wwt$ mv tinaV2.1 softap_ap6212a0_tinav2.1 rootroot@cm-System-Product-Name:/home/wwt$ cd softap_ap6212a0_tinav2.1/ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ source build/envsetup.sh including target/allwinner/tulip-d1/vendorsetup.sh including target/allwinner/octopus-sch/vendorsetup.sh including target/allwinner/azalea-perf2/vendorsetup.sh including target/allwinner/azalea-perf3/vendorsetup.sh including target/allwinner/octopus-dev/vendorsetup.sh including target/allwinner/astar-evb/vendorsetup.sh including target/allwinner/generic/vendorsetup.sh including target/allwinner/azalea-perf1/vendorsetup.sh including target/allwinner/astar-parrot/vendorsetup.sh including target/allwinner/astar-spk/vendorsetup.sh including target/allwinner/azalea-evb/vendorsetup.sh rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ lunch You're building on Linux Lunch menu... pick a combo: 1. tulip_d1-tina 2. tulip_d1-dragonboard 3. octopus_sch-tina 4. octopus_sch-dragonboard 5. azalea_perf2-tina 6. azalea_perf2-dragonboard 7. azalea_perf3-tina 8. azalea_perf3-dragonboard 9. octopus_dev-tina 10. octopus_dev-dragonboard 11. astar_evb-tina 12. azalea_perf1-tina 13. azalea_perf1-dragonboard 14. astar_parrot-tina 15. astar_parrot-dragonboard 16. astar_spk-tina 17. astar_spk-dragonboard 18. azalea_evb-tina 19. azalea_evb-dragonboard Which would you like?14 ============================================ PLATFORM_VERSION_CODENAME=Neptune PLATFORM_VERSION=2.0.0 TARGET_PRODUCT=astar_parrot TARGET_BUILD_VARIANT=tina TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=cortex-a7 TARGET_2ND_ARCH= TARGET_2ND_ARCH_VARIANT= TARGET_2ND_CPU_VARIANT= HOST_ARCH=x86_64 HOST_OS=linux HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty HOST_BUILD_TYPE=release BUILD_ID=57513AA3 OUT_DIR= ============================================ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ make -j12 rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ pack -d 2、 将softap.tar.bz2解压到package/allwinner下。 将dnsmasq.tar.bz2解压并替换package/network/services下的dnsmasq文件夹。 3、配置内核: rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ make kernel_menuconfig [*] Networking support ---> --- Networking support Networking options ---> (在第二屏) [ ] Network packet filtering framework (Netfilter) ---> 修改为: [*] Network packet filtering framework (Netfilter) ---> [ ] Advanced netfilter configuration 修改为: [*] Advanced netfilter configuration Core Netfilter Configuration ---> < > Netfilter NFACCT over NFNETLINK interface < > Netfilter NFQUEUE over NFNETLINK interface < > Netfilter LOG over NFNETLINK interface < > Netfilter connection tracking support < > Netfilter Xtables support (required for ip_tables) 修改为: < > Netfilter NFACCT over NFNETLINK interface < > Netfilter NFQUEUE over NFNETLINK interface < > Netfilter LOG over NFNETLINK interface <*> Netfilter connection tracking support [*] Connection mark tracking support [*] Connection tracking security mark support (NEW) (默认选中) [*] Supply CT list in procfs (OBSOLETE) [*] Connection tracking events [*] Connection tracking timeout (NEW) [*] Connection tracking timestamping < > DCCP protocol connection tracking support (EXPERIMENTAL) < > SCTP protocol connection tracking support (EXPERIMENTAL) < > UDP-Lite protocol connection tracking support < > Amanda backup protocol support < > FTP protocol support < > H.323 protocol support < > IRC protocol support < > NetBIOS name service protocol support < > SNMP service protocol support < > PPtP protocol support < > SANE protocol support (EXPERIMENTAL) < > SIP protocol support < > TFTP protocol support Connection tracking netlink interface Connection tracking timeout tuning via Netlink <*> Netfilter Xtables support (required for ip_tables) *** Xtables combined modules *** (有很多项,在下面!) <*> "conntrack" connection tracking match support <*> "state" match support < > IP virtual server support ---> 修改为: <*> IP virtual server support ---> [ ] Netfilter connection tracking (NEW) 修改为(在最后面): [*] Netfilter connection tracking IP: Netfilter Configuration ---> < > IPv4 connection tracking support (required for NAT) 修改为: <*> IPv4 connection tracking support (required for NAT) < > IP tables support (required for filtering/masq/NAT) 修改为: <*> IP tables support (required for filtering/masq/NAT) <*> Packet filtering < > Full NAT 修改为: <*> Full NAT <*> MASQUERADE target support <*> NETMAP target support <*> REDIRECT target support <*> Packet mangling 4、配置系统: rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ make menuconfig Base system ---> < > dnsmasq.............................................. DNS and DHCP server 修改为: <*> dnsmasq.............................................. DNS and DHCP server Allwinner ---> < > softap............................................... Tina softap manager (NEW) ---- 修改为: <*> softap............................................... Tina softap manager ---> --- softap............................................... Tina softap manager < > softap-demo......................................... Tina softap app demo (NEW) 修改为: <*> softap-demo......................................... Tina softap app demo Network ---> Firewall ---> < > iptables................................. IP firewall administration tool ---- 修改为: (里面不用选中) <*> iptables................................. IP firewall administration tool ---> Network ---> < > hostapd................................. IEEE 802.1x Authenticator (full) < > hostapd-common............... hostapd/wpa_supplicant common support files < > hostapd-common-old 修改为: <*> hostapd................................. IEEE 802.1x Authenticator (full) -*- hostapd-common............... hostapd/wpa_supplicant common support files < > hostapd-common-old Utilities ---> <*> playdemo................................... music play in 3 kinds of mode 修改为: < > playdemo................................... music play in 3 kinds of mode 5、配置编译加载选项: rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ find . -name netfilter.mk ./package/kernel/linux/modules/netfilter.mk ./build/netfilter.mk rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ W:\softap_ap6212a0_tinav2.1\build\netfilter.mk $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_LOG, $(P_XT)xt_LOG)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_LOG, $(P_XT)nf_log_common)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_LOG, $(P_V4)nf_log_ipv4)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_TCPMSS, $(P_XT)xt_TCPMSS)) $(eval $(call nf_add,IPT_CORE,CONFIG_IP_NF_TARGET_REJECT, $(P_V4)ipt_REJECT)) $(eval $(call nf_add,IPT_CORE,CONFIG_IP_NF_TARGET_REJECT, $(P_V4)nf_reject_ipv4)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_TIME, $(P_XT)xt_time)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MARK, $(P_XT)xt_mark)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_LOG, $(P_XT)xt_LOG)) #$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_LOG, $(P_XT)nf_log_common)) #$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_LOG, $(P_V4)nf_log_ipv4)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_TCPMSS, $(P_XT)xt_TCPMSS)) $(eval $(call nf_add,IPT_CORE,CONFIG_IP_NF_TARGET_REJECT, $(P_V4)ipt_REJECT)) #$(eval $(call nf_add,IPT_CORE,CONFIG_IP_NF_TARGET_REJECT, $(P_V4)nf_reject_ipv4)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_TIME, $(P_XT)xt_time)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MARK, $(P_XT)xt_mark)) 不配置这里就会在这里让你选择(选择:N/y都会出错的!) rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ make -j12 make -C /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/linux-astar-parrot/linux-3.4.39 HOSTCFLAGS="-O2 -I/home/wwt/softap_ap6212a0_tinav2.1/out/host/include -I/home/wwt/softap_ap6212a0_tinav2.1/out/host/usr/include -Wall -Wmissing-prototypes -Wstrict-prototypes" CROSS_COMPILE="arm-openwrt-linux-muslgnueabi-" ARCH="arm" KBUILD_HAVE_NLS=no KBUILD_BUILD_USER="" KBUILD_BUILD_HOST="" CONFIG_SHELL="bash" V='' CC="arm-openwrt-linux-muslgnueabi-gcc" modules make[5]: Entering directory `/home/wwt/softap_ap6212a0_tinav2.1/lichee/linux-3.4' scripts/kconfig/conf --silentoldconfig Kconfig drivers/net/wireless/bcmdhd/Kconfig:57:warning: defaults for choice values not supported .config:3733:warning: override: TREE_PREEMPT_RCU changes choice state * * Restart config... * * * IP: Netfilter Configuration * IPv4 connection tracking support (required for NAT) (NF_CONNTRACK_IPV4) [Y/n/m/?] y proc/sysctl compatibility with old connection tracking (NF_CONNTRACK_PROC_COMPAT) [N/y/?] n IP Userspace queueing via NETLINK (OBSOLETE) (IP_NF_QUEUE) [N/m/y/?] n IP tables support (required for filtering/masq/NAT) (IP_NF_IPTABLES) [Y/n/m/?] y "ah" match support (IP_NF_MATCH_AH) [N/m/y/?] n "ecn" match support (IP_NF_MATCH_ECN) [N/m/y/?] n "rpfilter" reverse path filter match support (IP_NF_MATCH_RPFILTER) [N/m/y/?] n "ttl" match support (IP_NF_MATCH_TTL) [N/m/y/?] n Packet filtering (IP_NF_FILTER) [Y/n/m/?] y REJECT target support (IP_NF_TARGET_REJECT) [M/n/y/?] m Force socket error when rejecting with icmp* (IP_NF_TARGET_REJECT_SKERR) [N/y/?] (NEW) n 出错: sh /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/linux-astar-parrot/strace-4.10/ipkg-sunxi/strace rstrip.sh: /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/linux-astar-parrot/strace-4.10/ipkg-sunxi/strace/usr/bin/strace: executable \$0 \$@"; ) > postinst; ( echo "#!/bin/sh"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_prerm \$0 \$@"; ) > prerm; chmod 0755 postinst prerm; ) install -d -m0755 /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/packages/base unxi/strace /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/packages/base av2.1/out/astar-parrot/packages/base/strace_4.10-1_sunxi.ipk rm -rf /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-strace strace install -d -m0755 /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-strace/usr/bin v2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-strace/usr/bin/ me/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/' rm -rf /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-strace touch /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/stamp/.strace_installed /rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/strace.default.install make[3]: Leaving directory `/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/package/devel/strace' make[2]: Leaving directory `/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1' make[1]: *** [/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/stamp/.package_compile] Error 2 make[1]: Leaving directory `/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1' Build failed - please re-run with -j1 to see the real error message make: *** [world] 错误 1 #### make failed to build some targets (36:27 (mm:ss)) #### rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1$ make -j1 rm -rf /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-ap6212-firmware touch /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/stamp/.ap6212-firmware_installed ; echo "ap6212-firmware" >> /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/linux-firmware.default.install make[3]: Leaving directory `/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/package/firmware/linux-firmware' make[3]: Entering directory `/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/package/kernel/linux' rm -rf /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kernel kernel # nothing to do me/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/' rm -rf /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kernel touch /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/stamp/.kernel_installed diron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/linux.default.install rm -rf /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kmod-input-core kmod-input-core NOTICE: module '/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/linux-astar-parrot/linux-3.4.39/drivers/input/input-core.ko' is built-in. ONTROL/postinst-pkg; chmod 0755 /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kmod-input-core/CONTROL/postinst-pkg; fi ore/. /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/' rm -rf /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kmod-input-core touch /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/stamp/.kmod-input-core_installed /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/linux.default.install unxi/kmod-ipt-core/CONTROL /home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo ERROR: module '/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/linux-astar-parrot/linux-3.4.39/net/netfilter/nf_log_common.ko' is missing. make[3]: *** [/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/packages/kernel/kmod-ipt-core_3.4.39-1_sunxi.ipk] Error 1 make[3]: Leaving directory `/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/package/kernel/linux' make[2]: *** [package/kernel/linux/compile] Error 2 make[2]: Leaving directory `/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1' make[1]: *** [/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/stamp/.package_compile] Error 2 make[1]: Leaving directory `/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1' make: *** [world] 错误 2 #### make failed to build some targets (16 seconds) #### rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1$ grep nf_log_common . -R grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/linux-3.4.39/.git/svn: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/host/u-boot-2014.10/arch/sandbox/include/asm/arch: 没有那个文件或目录 grep: ./build/.git/svn: 没有那个文件或目录 ./build/netfilter.mk:$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_LOG, $(P_XT)nf_log_common)) grep: ./package/.git/svn: 没有那个文件或目录 grep: ./target/.git/svn: 没有那个文件或目录 grep: ./.repo/manifests/.git/svn: 没有那个文件或目录 grep: ./tools/.git/svn: 没有那个文件或目录 grep: ./tools/.git/packed-refs: 没有那个文件或目录 grep: ./config/.git/svn: 没有那个文件或目录 grep: ./lichee/linux-3.4/.git/svn: 没有那个文件或目录 grep: ./lichee/brandy/.git/svn: 没有那个文件或目录 grep: ./scripts/.git/svn: 没有那个文件或目录 grep: ./dl/.git/svn: 没有那个文件或目录 grep: ./docs/.git/svn: 没有那个文件或目录 grep: ./prebuilt/.git/svn: 没有那个文件或目录 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux/lib/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux/lib/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux/lib64/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux/lib64/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux-musl/lib/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux-musl/lib/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux-musl/lib64/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux-musl/lib64/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib64/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib64/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib32/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib32/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/arm-openwrt-linux-muslgnueabi/lib/lib: 符号连接的层数过多 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/lib/lib: 符号连接的层数过多 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/lib64/lib: 符号连接的层数过多 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/lib32/lib: 符号连接的层数过多 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/arm-openwrt-linux/lib/lib: 符号连接的层数过多 grep: ./toolchain/.git/svn: 没有那个文件或目录 rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/rediron/r16_tinav2.1/softap_ap6212a0_tinav2.1$ make -j12 还会出现的错误: rm -rf /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-hostapd-common mkdir -p /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/stamp /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-hostapd-common install -d -m0755 /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-hostapd-common/lib/netifd install -m0644 ./files/netifd.sh /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-hostapd-common/lib/netifd/hostapd.sh SHELL= flock /home/wwt/softap_ap6212a0_tinav2.1/tmp/.root-copy.flock -c 'cp -fpR /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-hostapd-common/. /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/' rm -rf /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-hostapd-common touch /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/stamp/.hostapd-common_installed if [ -f /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/hostapd.supplicant-full.install.clean ]; then rm -f /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/hostapd.supplicant-full.install /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/hostapd.supplicant-full.install.clean; fi; echo "hostapd-common" >> /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/hostapd.supplicant-full.install make[3]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1/package/network/services/hostapd' make[2]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1' make[1]: *** [/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/stamp/.package_compile] Error 2 make[1]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1' Build failed - please re-run with -j1 to see the real error message make: *** [world] 错误 1 #### make failed to build some targets (01:19 (mm:ss)) #### rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ make -j1 or -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/softap-0.0.1/ipkg-install/usr/include -L/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib -L/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/lib -L/home/wwt/softap_ap6212a0_tinav2.1/prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/usr/lib -L/home/wwt/softap_ap6212a0_tinav2.1/prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/lib -znow -zrelro -L/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/softap-0.0.1/ipkg-install/usr/lib -lsoftap -lssl /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `ECDSA_sign' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_POINT_copy' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_set_public_key' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_GROUP_free' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_get0_public_key' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_get0_private_key' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_POINT_oct2point' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_up_ref' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_curve_nist2nid' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_generate_key' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_set_private_key' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_GROUP_new_by_curve_name' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_get0_group' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_GROUP_method_of' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_METHOD_get_field_type' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_POINT_point2oct' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_GROUP_get_curve_name' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_get_conv_form' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_free' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_new' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_GROUP_get_degree' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_set_group' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `ECDSA_verify' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EVP_PKEY_set1_EC_KEY' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_POINT_free' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_POINT_new' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `ECDH_compute_key' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_dup' /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib/libssl.so: undefined reference to `EC_KEY_new_by_curve_name' collect2: error: ld returned 1 exit status make[4]: *** [softap_test] Error 1 make[4]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/softap-0.0.1/demo' make[3]: *** [/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/softap-0.0.1/.built] Error 2 make[3]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1/package/allwinner/softap' make[2]: *** [package/allwinner/softap/compile] Error 2 make[2]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1' make[1]: *** [/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/stamp/.package_compile] Error 2 make[1]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1' make: *** [world] 错误 2 #### make failed to build some targets (17 seconds) #### rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ find . -name libssl.so ./package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/linuxgnueabi/libssl.so ./package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/lgnueabihf/libssl.so ./package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/uclgnueabi/libssl.so ./package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/lgnueabi/libssl.so ./package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi/libssl.so ./out/astar-parrot/compile_dir/target/liballwinner/LIBRARY/install/external/libssl.so ./out/astar-parrot/compile_dir/target/liballwinner/LIBRARY/install/lib/libssl.so ./out/astar-parrot/compile_dir/target/liballwinner/LIBRARY/EXTERNAL/lib32/linuxgnueabi/libssl.so ./out/astar-parrot/compile_dir/target/liballwinner/LIBRARY/EXTERNAL/lib32/lgnueabihf/libssl.so ./out/astar-parrot/compile_dir/target/liballwinner/LIBRARY/EXTERNAL/lib32/uclgnueabi/libssl.so ./out/astar-parrot/compile_dir/target/liballwinner/LIBRARY/EXTERNAL/lib32/lgnueabi/libssl.so ./out/astar-parrot/compile_dir/target/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi/libssl.so ./out/astar-parrot/compile_dir/target/liballwinner/ipkg-install/usr/lib/libssl.so ./out/astar-parrot/compile_dir/target/openssl-1.0.2h/libssl.so ./out/astar-parrot/compile_dir/target/openssl-1.0.2h/ipkg-install/usr/lib/libssl.so ./out/astar-parrot/staging_dir/target/usr/lib/libssl.so rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ 根据经验可以知道全志R16平台的tinav2.1系统的SDK里面自带的库:libssl有问题。(直接删除或者改名) ./package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi/libssl.so rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ cd package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi/ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1/package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi$ ll 总用量 5688 drwxrwxr-x 3 rootroot rootroot 4096 11月 2 2016 ./ drwxrwxr-x 7 rootroot rootroot 4096 11月 2 2016 ../ -rwxrwxr-x 1 rootroot rootroot 135064 11月 2 2016 libaw_aacdec.so* -rwxrwxr-x 1 rootroot rootroot 33844 11月 2 2016 libaw_alacdec.so* -rwxrwxr-x 1 rootroot rootroot 170664 11月 2 2016 libaw_amrdec.so* -rwxrwxr-x 1 rootroot rootroot 76748 11月 2 2016 libaw_apedec.so* -rwxrwxr-x 1 rootroot rootroot 116336 11月 2 2016 libaw_atrcdec.so* -rwxrwxr-x 1 rootroot rootroot 69756 11月 2 2016 libaw_cookdec.so* -rwxrwxr-x 1 rootroot rootroot 55152 11月 2 2016 libaw_flacdec.so* -rwxrwxr-x 1 rootroot rootroot 77500 11月 2 2016 libaw_mp3dec.so* -rwxrwxr-x 1 rootroot rootroot 130672 11月 2 2016 libaw_oggdec.so* -rwxrwxr-x 1 rootroot rootroot 8100 11月 2 2016 libaw_plugin.so* -rwxrwxr-x 1 rootroot rootroot 59284 11月 2 2016 libaw_radec.so* -rwxrwxr-x 1 rootroot rootroot 68296 11月 2 2016 libaw_siprdec.so* -rwxrwxr-x 1 rootroot rootroot 70072 11月 2 2016 libaw_wavdec.so* -rwxrwxr-x 1 rootroot rootroot 87996 11月 2 2016 libcdc_adecoder_debug.so* -rwxrwxr-x 1 rootroot rootroot 35652 11月 2 2016 libcdc_adecoder.so* -rwxrwxr-x 1 rootroot rootroot 166808 11月 2 2016 libcdc_aencoder.so* -rwxrwxr-x 1 rootroot rootroot 1500820 11月 2 2016 libcrypto.so* drwxrwxr-x 2 rootroot rootroot 4096 11月 2 2016 lib_debug/ -rwxrwxr-x 1 rootroot rootroot 1179664 11月 2 2016 liblive555.so* -rwxrwxr-x 1 rootroot rootroot 14464 11月 2 2016 libpostprocess.so* -rwxrwxr-x 1 rootroot rootroot 4672 11月 2 2016 librw_data_api.so* -rwxrwxr-x 1 rootroot rootroot 341764 11月 2 2016 libssl.so* -rwxrwxr-x 1 rootroot rootroot 1282208 11月 2 2016 libxml2.so* -rwxrwxr-x 1 rootroot rootroot 80792 11月 2 2016 libz.so* rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1/package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi$ mv libssl.so libssl.so_bak rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1/package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1/package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1/package/allwinner/liballwinner/LIBRARY/EXTERNAL/lib32/muslgnueabi$ cd - /home/wwt/softap_ap6212a0_tinav2.1 rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ make -j1 rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ pack -d 6、刷机之后,在串口终端中通过softap_test打开softap出错(查明是全志给的patch的路径的问题!) [ 16.536954] dhd_prot_ioctl : bus is down. we have nothing to do [ 16.543761] bcmsdh_oob_intr_unregister: Enter [ 16.548794] bcmsdh_oob_intr_unregister: irq is not registered [ 16.555292] dhd_txglom_enable: enable 0 [ 16.559734] dhd_bus_devreset: WLAN OFF DONE [ 16.564616] wifi_platform_set_power = 0 [ 16.568970] ======== PULL WL_REG_ON LOW! ======== [ 16.574416] [wifi_pm]: wifi power off [ 16.578581] dhdsdio_probe : the lock is released. [ 16.584007] dhd_module_init: Exit err=0 [ 16.591551] xt_time: kernel timezone is -0000 [ 17.648758] [mmc]: sdc2 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 8 timing UHS-DDR50 dt B [ 17.662302] [mmc]: sdc2 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 8 timing UHS-DDR50 dt B [ 17.678544] [mmc]: sdc2 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 8 timing UHS-DDR50 dt B [ 17.850121] android_usb: already disabled [ 17.890241] adb_open [ 17.892807] adb_bind_config [ 17.896040] ep_matches, wrn: endpoint already claimed, ep(0xc068721c, 0xd7a980c0, ep1in-bulk) [ 19.785448] android_usb gadget: high-speed config #1: android BusyBox v1.24.1 () built-in shell (ash) _____ _ __ _ |_ _||_| ___ _ _ | | |_| ___ _ _ _ _ | | _ | || | | |__ | || || | ||_'_| | | | || | || _ | |_____||_||_|_||___||_,_| |_| |_||_|_||_|_| Tina is Based on OpenWrt! ---------------------------------------------- Tina Linux (Neptune, 57513AA3) ---------------------------------------------- root@TinaLinux:/# root@TinaLinux:/# root@TinaLinux:/# so softap_down softap_test softap_up sort root@TinaLinux:/# so softap_down softap_test softap_up sort root@TinaLinux:/# cd /bin/ root@TinaLinux:/bin# ll so* -rwxr-xr-x 1 root root 4095 Sep 14 19:08 softap_down -rwxr-xr-x 1 root root 4095 Sep 14 19:08 softap_test -rwxr-xr-x 1 root root 8191 Sep 14 19:08 softap_up root@TinaLinux:/bin# root@TinaLinux:/bin# root@TinaLinux:/bin# softap_test *************************** Start hostapd test! *************************** Start to reload firmware! Enter: wifi_get_fw_path function, fw_type=1,Eneter: wifi_change_fw_path, fwpath = lib/firmware/fw_bcm43438a0_apsta.bin. Softap fwReload - OkMessage is: OK Reload firmware finished! Start to set softap! Message is: OK Set softap finished! [ 75.613141] dhd_open: Enter d720d000 [ 75.617247] [ 75.617249] Dongle Host Driver, version 1.201.59.3 (r506368) [ 75.617254] Compiled in drivers/net/wireless/bcmdhd on Sep 14 2017 at 11:02:29 [ 75.633597] wl_android_wifi_on in 1 [ 75.637659] wl_android_wifi_on in 2: g_wifi_on=0 [ 75.642896] wifi_platform_set_power = 1 [ 75.647247] ======== PULL WL_REG_ON HIGH! ======== [ 75.652765] [wifi_pm]: wifi power on [ 75.960028] sdio_reset_comm(): [ 75.963526] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 75.976104] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 75.987627] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [ 75.998550] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [ 76.020809] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [ 76.028967] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 76.037137] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 76.047072] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [ 76.165734] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 76.176190] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 76.186815] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 76.197594] [ 76.197597] [ 76.197599] dhd_bus_devreset: == WLAN ON == [ 76.206013] F1 signature read @0x18000000=0x1540a9a6 [ 76.213284] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4 [ 76.221292] DHD: dongle ram size is set to 524288(orig 524288) at 0x0 [ 76.228727] dhdsdio_probe_init: set use_rxchain 1 from config.txt [ 76.235753] dhd_conf_read_config: Ignore config file /lib/firmware/config.txt [ 76.243796] dhd_conf_set_fw_name_by_chip: firmware_path=lib/firmware/fw_bcm43438a0_apsta.bin [ 76.253368] Final fw_path=lib/firmware/fw_bcm43438a0_apsta.bin [ 76.260041] Final nv_path=/lib/firmware/nvram.txt [ 76.265358] Final conf_path=/lib/firmware/config.txt [ 76.271554] dhdsdio_download_code_file: Open firmware file failed lib/firmware/fw_bcm43438a0_apsta.bin [ 76.282093] _dhdsdio_download_firmware: dongle image file download failed [ 76.289838] dhd_net_bus_devreset: dhd_bus_devreset: -35 [ 76.295753] dhd_prot_ioctl : bus is down. we have nothing to do [ 76.302529] dhd_net_bus_devreset: dhd_bus_devreset: -35 [ 76.308454] wifi_platform_set_power = 0 [ 76.312912] ======== PULL WL_REG_ON LOW! ======== [ 76.318233] [wifi_pm]: wifi power off [ 76.322408] wl_android_wifi_on: Failed [ 76.326758] dhd_open : wl_android_wifi_on failed (-35) [ 76.332573] dhd_stop: Enter d720d000 [ 76.336637] wl_android_wifi_off in 1 [ 76.340800] wl_android_wifi_off in 2: g_wifi_on=0 [ 76.346115] wl_android_wifi_off out [ 76.350093] dhd_stop: Exit [ 76.353290] dhd_open: Exit ret=-1 ifconfig: SIOCSIFFLAGS: Operation not permitted Start to start softap! Configuration file: /etc/wifi/ho[ 80.454347] dhd_open: Enter d720d000 stapd.conf [ 80.458611] [ 80.458613] Dongle Host Driver, version 1.201.59.3 (r506368) [ 80.458618] Compiled in drivers/net/wireless/bcmdhd on Sep 14 2017 at 11:02:29 [ 80.476003] wl_android_wifi_on in 1 [ 80.479971] wl_android_wifi_on in 2: g_wifi_on=0 [ 80.485214] wifi_platform_set_power = 1 [ 80.489657] ======== PULL WL_REG_ON HIGH! ======== [ 80.495082] [wifi_pm]: wifi power on SoftAP started successfullyMessage is: OK Start softap finished! [ 80.800038] sdio_reset_comm(): [ 80.803641] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 80.816148] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 80.827683] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [ 80.838604] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [ 80.860859] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [ 80.869016] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 80.877280] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 80.887030] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [ 81.005831] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 81.016222] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 81.026711] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 81.037496] [ 81.037499] [ 81.037502] dhd_bus_devreset: == WLAN ON == [ 81.045875] F1 signature read @0x18000000=0x1540a9a6 [ 81.053157] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4 [ 81.061161] DHD: dongle ram size is set to 524288(orig 524288) at 0x0 [ 81.068590] dhdsdio_probe_init: set use_rxchain 1 from config.txt [ 81.075623] dhd_conf_read_config: Ignore config file /lib/firmware/config.txt [ 81.083760] dhd_conf_set_fw_name_by_chip: firmware_path=lib/firmware/fw_bcm43438a0_apsta.bin [ 81.093240] Final fw_path=lib/firmware/fw_bcm43438a0_apsta.bin [ 81.099901] Final nv_path=/lib/firmware/nvram.txt [ 81.105228] Final conf_path=/lib/firmware/config.txt [ 81.111473] dhdsdio_download_code_file: Open firmware file failed lib/firmware/fw_bcm43438a0_apsta.bin [ 81.122017] _dhdsdio_download_firmware: dongle image file download failed [ 81.129672] dhd_net_bus_devreset: dhd_bus_devreset: -35 [ 81.135676] dhd_prot_ioctl : bus is down. we have nothing to do [ 81.142356] dhd_net_bus_devreset: dhd_bus_devreset: -35 [ 81.148373] wifi_platform_set_power = 0 [ 81.152740] ======== PULL WL_REG_ON LOW! ======== [ 81.158059] [wifi_pm]: wifi power off [ 81.162321] wl_android_wifi_on: Failed [ 81.166579] dhd_open : wl_android_wifi_on failed (-35) [ 81.172394] dhd_stop: Enter d720d000 [ 81.176548] wl_android_wifi_off in 1 [ 81.180623] wl_android_wifi_off in 2: g_wifi_on=0 [ 81.185942] wl_android_wifi_off out [ 81.189908] dhd_stop: Exit [ 81.193026] dhd_open: Exit ret=-1 Could not set interface wlan0 fl[ 81.196943] dhd_inetaddr_notifier_call: bus not ready, exit ags (UP): Operation not permitte[ 81.206128] dhd_open: Enter d720d000 d nl80211: Could not set interf[ 81.212702] ace 'wlan0' UP nl80211: deinit [ 81.212706] Dongle Host Driver, version 1.201.59.3 (r506368) ifname=wlan0 disabled_11b_rates=[ 81.212710] Compiled in drivers/net/wireless/bcmdhd on Sep 14 2017 at 11:02:29 0 [ 81.236958] wl_android_wifi_on in 1 [ 81.241176] wl_android_wifi_on in 2: g_wifi_on=0 [ 81.246400] wifi_platform_set_power = 1 [ 81.250760] ======== PULL WL_REG_ON HIGH! ======== [ 81.256266] [wifi_pm]: wifi power on [ 81.570028] sdio_reset_comm(): [ 81.573521] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 81.586092] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 81.597610] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [ 81.608512] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [ 81.630743] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [ 81.638905] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 81.647165] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 81.656911] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [ 81.775658] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 81.785943] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 81.796508] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 81.807280] [ 81.807283] [ 81.807285] dhd_bus_devreset: == WLAN ON == [ 81.815693] F1 signature read @0x18000000=0x1540a9a6 [ 81.822936] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4 [ 81.830931] DHD: dongle ram size is set to 524288(orig 524288) at 0x0 [ 81.838356] dhdsdio_probe_init: set use_rxchain 1 from config.txt [ 81.845386] dhd_conf_read_config: Ignore config file /lib/firmware/config.txt [ 81.853427] dhd_conf_set_fw_name_by_chip: firmware_path=lib/firmware/fw_bcm43438a0_apsta.bin [ 81.862999] Final fw_path=lib/firmware/fw_bcm43438a0_apsta.bin [ 81.869660] Final nv_path=/lib/firmware/nvram.txt [ 81.874988] Final conf_path=/lib/firmware/config.txt [ 81.881223] dhdsdio_download_code_file: Open firmware file failed lib/firmware/fw_bcm43438a0_apsta.bin [ 81.891670] _dhdsdio_download_firmware: dongle image file download failed [ 81.899411] dhd_net_bus_devreset: dhd_bus_devreset: -35 [ 81.905327] dhd_prot_ioctl : bus is down. we have nothing to do [ 81.912108] dhd_net_bus_devreset: dhd_bus_devreset: -35 [ 81.918034] wifi_platform_set_power = 0 [ 81.922493] ======== PULL WL_REG_ON LOW! ======== [ 81.927810] [wifi_pm]: wifi power off [ 81.932073] wl_android_wifi_on: Failed [ 81.936331] dhd_open : wl_android_wifi_on failed (-35) [ 81.942144] dhd_stop: Enter d720d000 [ 81.946298] wl_android_wifi_off in 1 [ 81.950371] wl_android_wifi_off in 2: g_wifi_on=0 [ 81.955686] wl_android_wifi_off out [ 81.959742] dhd_stop: Exit [ 81.962860] dhd_open: Exit ret=-1 ifconfig: SIOCSIFFLAGS: Operation not permitted nl80211 driver initialization failed. wlan0: interface state UNINITIALIZED->DISABLED wlan0: AP-DISABLED hostapd_free_hapd_data: Interface wlan0 wasn't started *************************** Hostapd test successed! *************************** root@TinaLinux:/bin# 因为softap_test的绝对路径是:/bin/softap_test。那么lib/firmware/fw_bcm43438a0_apsta.bin的路径就应该是:/bin/lib/firmware/fw_bcm43438a0_apsta.bin。 将目录/lib/firmware/fw_bcm43438a0_apsta.bin中的AP6212的库文件全部拷贝到:/bin/lib/firmware/fw_bcm43438a0_apsta.bin就可以通过softap_test正常打开softap了! root@TinaLinux:/bin# root@TinaLinux:/bin# mkdir -p lib/firmware/ root@TinaLinux:/bin# cd lib/firmware/ root@TinaLinux:/bin/lib/firmware# ll drwxr-xr-x 2 root root 1024 Sep 16 03:16 . drwxr-xr-x 3 root root 1024 Sep 16 03:16 .. root@TinaLinux:/bin/lib/firmware# cd /lib/firmware/ root@TinaLinux:/lib/firmware# ll drwxr-xr-x 2 root root 139 Sep 14 19:08 . drwxr-xr-x 10 root root 681 Sep 14 19:02 .. -rw-r--r-- 1 root root 26020 Sep 14 17:31 bcm43438a0.hcd -rw-r--r-- 1 root root 378595 Sep 14 17:31 fw_bcm43438a0.bin -rw-r--r-- 1 root root 309352 Sep 14 17:31 fw_bcm43438a0_apsta.bin -rw-r--r-- 1 root root 336323 Sep 14 17:31 fw_bcm43438a0_p2p.bin -rw-r--r-- 1 root root 902 Sep 14 17:31 nvram.txt root@TinaLinux:/lib/firmware# cp * /bin/lib/firmware/ root@TinaLinux:/lib/firmware# cd /bin/lib/firmware/ root@TinaLinux:/bin/lib/firmware# ll drwxr-xr-x 2 root root 1024 Sep 16 03:17 . drwxr-xr-x 3 root root 1024 Sep 16 03:16 .. -rw-r--r-- 1 root root 26020 Sep 16 03:17 bcm43438a0.hcd -rw-r--r-- 1 root root 378595 Sep 16 03:17 fw_bcm43438a0.bin -rw-r--r-- 1 root root 309352 Sep 16 03:17 fw_bcm43438a0_apsta.bin -rw-r--r-- 1 root root 336323 Sep 16 03:17 fw_bcm43438a0_p2p.bin -rw-r--r-- 1 root root 902 Sep 16 03:17 nvram.txt root@TinaLinux:/bin/lib/firmware# cd /bin/ root@TinaLinux:/bin# root@TinaLinux:/bin# root@TinaLinux:/bin# softap_test *************************** Start hostapd test! *************************** Start to reload firmware! Enter: wifi_get_fw_path function, fw_type=1,Eneter: wifi_change_fw_path, fwpath = lib/firmware/fw_bcm43438a0_apsta.bin. Softap fwReload - OkMessage is: OK Reload firmware finished! Start to set softap! Message is: OK Set softap finished! [ 190.043911] dhd_open: Enter d720d000 [ 190.048003] [ 190.048006] Dongle Host Driver, version 1.201.59.3 (r506368) [ 190.048010] Compiled in drivers/net/wireless/bcmdhd on Sep 14 2017 at 11:02:29 [ 190.064444] wl_android_wifi_on in 1 [ 190.068411] wl_android_wifi_on in 2: g_wifi_on=0 [ 190.073643] wifi_platform_set_power = 1 [ 190.078087] ======== PULL WL_REG_ON HIGH! ======== [ 190.083512] [wifi_pm]: wifi power on [ 190.390029] sdio_reset_comm(): [ 190.393528] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 190.406118] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 190.417559] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [ 190.428484] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing LEGACY(SDR12) dt B [ 190.450739] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [ 190.458990] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 190.467164] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 190.477004] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [ 190.595621] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 190.606060] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 190.616684] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B [ 190.627433] [ 190.627436] [ 190.627439] dhd_bus_devreset: == WLAN ON == [ 190.635854] F1 signature read @0x18000000=0x1540a9a6 [ 190.643122] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4 [ 190.651026] DHD: dongle ram size is set to 524288(orig 524288) at 0x0 [ 190.658542] dhdsdio_probe_init: set use_rxchain 1 from config.txt [ 190.665481] dhd_conf_read_config: Ignore config file /lib/firmware/config.txt [ 190.673620] dhd_conf_set_fw_name_by_chip: firmware_path=lib/firmware/fw_bcm43438a0_apsta.bin [ 190.683192] Final fw_path=lib/firmware/fw_bcm43438a0_apsta.bin [ 190.689763] Final nv_path=/lib/firmware/nvram.txt [ 190.695090] Final conf_path=/lib/firmware/config.txt [ 190.733434] NVRAM version: AP6212_NVRAM_V1.0_20140603 [ 190.742372] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded. [ 190.804325] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us) [ 190.811066] bcmsdh_oob_intr_register: Enter [ 190.815806] bcmsdh_oob_intr_register: HW_OOB enabled [ 190.821429] bcmsdh_oob_intr_register OOB irq=7 flags=414 [ 190.827623] bcmsdh_oob_intr_register: enable_irq_wake [ 190.833345] bcmsdh_oob_intr_register: enable_irq_wake failed with -6 [ 190.841211] dhd_conf_set_band: Set band 0 [ 190.848224] Firmware up: op_mode=0x0002, MAC=02:1a:11:f9:3d:89 [ 190.854908] dhd_conf_set_country: Set country CN, revision 0 [ 190.924854] Country code: CN (CN/0) [ 190.929416] dhd_conf_set_roam: Set roam_off 1 [ 190.940302] dhd_arp_offload_enable: failed to enabe ARP offload to 0, retcode = -23 [ 190.949649] dhd_arp_offload_set: failed to set ARP offload mode to 0x0, retcode = -23 [ 190.959035] Firmware version = wl0: Jun 6 2014 14:57:15 version 7.10.226.49 (r) FWID 01-cf4a5122 [ 190.969088] Driver: 1.201.59.3 (r506368) [ 190.969093] Firmware: wl0: Jun 6 2014 14:57:15 version 7.10.226.49 (r) FWID 01-cf4a5122 [ 190.983566] dhd_txglom_enable: enable 1 [ 190.987919] dhd_conf_set_disable_proptx: set disable_proptx 0 [ 190.996601] dhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79 [ 191.004833] dhd_wlfc_init(): wlfc_mode=0x0, ret=-23 [ 191.011090] wl_android_wifi_on: Success [ 191.085709] dhd_open: Exit ret=0 Start to start softap! Configuration file: /etc/wifi/hostapd.conf nl80211: Could not re-add multic[ 195.098274] netdev_ifidx(5), chan_type(1) target channel(6) ast membership for vendor events: -2 (No such file or directory) [ 195.159332] Disconnect STA : ff:ff:ff:ff:ff:ff scb_val.val 3 Using interface wlan0 with hwaddr 02:1a:11:f9:3d:89 and ssid "Smart-AW-HOSTAPD" VLAN: vlan_set_name_type: SET_VLAN_NAME_TYPE_CMD name_type=2 failed: No error information SoftAP started successfullyMessage is: OK Start softap finished! wlan0: interface state UNINITIALIZED->ENABLED wlan0: AP-ENABLED *************************** Hostapd test successed! *************************** root@TinaLinux:/bin# root@TinaLinux:/bin# 7、查找/修改路径lib/firmware/fw_bcm43438a0_apsta.bin的位置,解决问题! rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ grep "lib/firmware/fw_bcm43438a0_apsta.bin" . -R grep: ./target/.git/svn: 没有那个文件或目录 grep: ./dl/.git/svn: 没有那个文件或目录 grep: ./scripts/.git/svn: 没有那个文件或目录 grep: ./toolchain/.git/svn: 没有那个文件或目录 grep: ./lichee/brandy/.git/svn: 没有那个文件或目录 grep: ./lichee/linux-3.4/.git/svn: 没有那个文件或目录 grep: ./.repo/manifests/.git/svn: 没有那个文件或目录 grep: ./tools/.git/packed-refs: 没有那个文件或目录 grep: ./tools/.git/svn: 没有那个文件或目录 ./package/allwinner/softap/src/include/wifi.h:#define WIFI_DRIVER_FW_PATH_AP "lib/firmware/fw_bcm43438a0_apsta.bin" grep: ./package/.git/svn: 没有那个文件或目录 grep: ./config/.git/svn: 没有那个文件或目录 grep: ./prebuilt/.git/svn: 没有那个文件或目录 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/arm-openwrt-linux-muslgnueabi/lib/lib: 符号连接的层数过多 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/lib64/lib: 符号连接的层数过多 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/arm-openwrt-linux/lib/lib: 符号连接的层数过多 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/lib/lib: 符号连接的层数过多 grep: ./prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/lib32/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib64/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib64/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux-musl/lib64/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux-musl/lib64/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux-musl/lib/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux-musl/lib/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux/lib64/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux/lib64/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux/lib/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/aarch64-openwrt-linux/lib/lib: 符号连接的层数过多 grep: 警告: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib32/lib64: 嵌套目录循环 grep: ./prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi/toolchain/lib32/lib: 符号连接的层数过多 grep: ./docs/.git/svn: 没有那个文件或目录 grep: ./build/.git/svn: 没有那个文件或目录 grep: 警告: ./out/astar-parrot/compile_dir/target/alsa-lib-1.1.0/include/alsa: 嵌套目录循环 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/ccX0DZGY.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/arjGlms3: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/.xrdp/xrdp-Wpph9R: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/.xrdp/xrdp-sesman-j8EDdT: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/ccZVA9SY.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/ccX0uKZX.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/jack-sam: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/cc61XiF1.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/config-err-1dsmuu: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/.X11-unix/X0: 没有那个设备或地址 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/ccsCfxm0.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/rootfs/var/.ICE-unix/1629: 没有那个设备或地址 grep: ./out/astar-parrot/compile_dir/target/rootfs/etc/fstab: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/target/rootfs/etc/resolv.conf: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/target/rootfs/etc/localtime: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/target/rootfs/etc/TZ: 没有那个文件或目录 匹配到二进制文件 ./out/astar-parrot/compile_dir/target/rootfs/lib/libsoftap.so ./out/astar-parrot/compile_dir/target/rootfs/usr/lib/opkg/info/ap6212-firmware.list:/lib/firmware/fw_bcm43438a0_apsta.bin grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/iptables-1.4.21/ipkg-install/usr/bin/iptables-xml: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/linux-3.4.39/.git/svn: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/ccYUdHeN.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/ccwnGT98.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/arjGlms3: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/.xrdp/xrdp-Wpph9R: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/.xrdp/xrdp-sesman-j8EDdT: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/jack-sam: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/config-err-1dsmuu: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/ccKPHt0a.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/.X11-unix/X0: 没有那个设备或地址 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/ccTjmDl9.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/cchl8Q5Z.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/.ICE-unix/1629: 没有那个设备或地址 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/cc8cLhMk.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/var/cchrl5HM.s: 权限不够 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/etc/fstab: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/etc/resolv.conf: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/etc/localtime: 没有那个文件或目录 grep: ./out/astar-parrot/compile_dir/target/linux-astar-parrot/base-files/ipkg-sunxi/base-files/etc/TZ: 没有那个文件或目录 匹配到二进制文件 ./out/astar-parrot/compile_dir/target/softap-0.0.1/src/libsoftap.so ./out/astar-parrot/compile_dir/target/softap-0.0.1/src/include/wifi.h:#define WIFI_DRIVER_FW_PATH_AP "lib/firmware/fw_bcm43438a0_apsta.bin" 匹配到二进制文件 ./out/astar-parrot/compile_dir/target/softap-0.0.1/ipkg-sunxi/softap/lib/libsoftap.so 匹配到二进制文件 ./out/astar-parrot/compile_dir/target/softap-0.0.1/ipkg-install/usr/lib/libsoftap.so grep: ./out/astar-parrot/compile_dir/host/u-boot-2014.10/arch/sandbox/include/asm/arch: 没有那个文件或目录 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/.xrdp/xrdp-Wpph9R: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/.xrdp/xrdp-sesman-j8EDdT: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/jack-sam: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/ccOJeBXg.s: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/ccx3i6ni.s: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/config-err-1dsmuu: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/ccyysPO4.s: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/ccvMBZVn.s: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/.X11-unix/X0: 没有那个设备或地址 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/cc2RTnRj.s: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/arXGbM2T: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/.ICE-unix/1629: 没有那个设备或地址 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/ccngUTgH.s: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/var/ccbLfznO.s: 权限不够 grep: ./out/astar-parrot/staging_dir/target/rootfs/etc/fstab: 没有那个文件或目录 grep: ./out/astar-parrot/staging_dir/target/rootfs/etc/resolv.conf: 没有那个文件或目录 grep: ./out/astar-parrot/staging_dir/target/rootfs/etc/localtime: 没有那个文件或目录 grep: ./out/astar-parrot/staging_dir/target/rootfs/etc/TZ: 没有那个文件或目录 匹配到二进制文件 ./out/astar-parrot/staging_dir/target/rootfs/lib/libsoftap.so 匹配到二进制文件 ./out/astar-parrot/staging_dir/target/lib/libsoftap.so rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ W:\softap_ap6212a0_tinav2.1\package\allwinner\softap\src\include\wifi.h #ifndef WIFI_DRIVER_FW_PATH_AP #define WIFI_DRIVER_FW_PATH_AP "lib/firmware/fw_bcm43438a0_apsta.bin" #endif #ifndef WIFI_DRIVER_FW_PATH_P2P #define WIFI_DRIVER_FW_PATH_P2P "lib/firmware/fw_bcm43438a0_p2p.bin" #endif 修改为: #ifndef WIFI_DRIVER_FW_PATH_AP //#define WIFI_DRIVER_FW_PATH_AP "lib/firmware/fw_bcm43438a0_apsta.bin" #define WIFI_DRIVER_FW_PATH_AP "/lib/firmware/fw_bcm43438a0_apsta.bin" #endif #ifndef WIFI_DRIVER_FW_PATH_P2P //#define WIFI_DRIVER_FW_PATH_P2P "lib/firmware/fw_bcm43438a0_p2p.bin" #define WIFI_DRIVER_FW_PATH_P2P "/lib/firmware/fw_bcm43438a0_p2p.bin" #endif rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ make -j12 ONTROL/postinst-pkg; echo "insert_modules $modules" >> /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kmod-net-ap6212/CONTROL/postinst-pkg; chmod 0755 /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kmod-net-ap6212/CONTROL/postinst-pkg; fi SHELL= flock /home/wwt/softap_ap6212a0_tinav2.1/tmp/.root-copy.flock -c 'cp -fpR /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kmod-net-ap6212/. /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/' rm -rf /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/tmp-kmod-net-ap6212 touch /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/rootfs/stamp/.kmod-net-ap6212_installed if [ -f /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/linux.default.install.clean ]; then rm -f /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/linux.default.install /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/linux.default.install.clean; fi; echo "kmod-net-ap6212" >> /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/pkginfo/linux.default.install make[3]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1/package/kernel/linux' make[2]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1' make[1]: *** [/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/stamp/.package_compile] Error 2 make[1]: Leaving directory `/home/wwt/softap_ap6212a0_tinav2.1' Build failed - please re-run with -j1 to see the real error message make: *** [world] 错误 1 #### make failed to build some targets (8 seconds) #### rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ rootroot@cm-System-Product-Name:/home/wwt/softap_ap6212a0_tinav2.1$ make -j1 #softap_test make -C /home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/softap-0.0.1/demo/ ARCH="arm" AR="arm-openwrt-linux-muslgnueabi-ar" CC="arm-openwrt-linux-muslgnueabi-gcc" CXX="arm-openwrt-linux-muslgnueabi-g++" CFLAGS="-Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro" LDFLAGS="-L/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/usr/lib -L/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/staging_dir/target/lib -L/home/wwt/softap_ap6212a0_tinav2.1/prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/usr/lib -L/home/wwt/softap_ap6212a0_tinav2.1/prebuilt/gcc/linux-x86/arm/toolchain-sunxi/toolchain/lib -znow -zrelro" CONFIG_PREFIX="/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/softap-0.0.1/ipkg-install" all make[4]: Entering directory `/home/wwt/softap_ap6212a0_tinav2.1/out/astar-parrot/compile_dir/target/softap-0.0.1/demo' arm-openwrt-linux-muslgnueabi-gcc -o softap_test softap_test.c -Os -pipe -march=armv
[PHP] ;;;;;;;;;;;;;;;;;;; ; About php.ini ; ;;;;;;;;;;;;;;;;;;; ; PHP's initialization file, generally called php.ini, is responsible for ; configuring many of the aspects of PHP's behavior. ; PHP attempts to find and load this configuration from a number of locations. ; The following is a summary of its search order: ; 1. SAPI module specific location. ; 2. The PHPRC environment variable. (As of PHP 5.2.0) ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) ; 4. Current working directory (except CLI) ; 5. The web server's directory (for SAPI modules), or directory of PHP ; (otherwise in Windows) ; 6. The directory from the --with-config-file-path compile time option, or the ; Windows directory (C:\windows or C:\winnt) ; See the PHP docs for more specific information. ; http://php.net/configuration.file ; The syntax of the file is extremely simple. Whitespace and lines ; beginning with a semicolon are silently ignored (as you probably guessed). ; Section headers (e.g. [Foo]) are also silently ignored, even though ; they might mean something in the future. ; Directives following the section heading [PATH=/www/mysite] only ; apply to PHP files in the /www/mysite directory. Directives ; following the section heading [HOST=www.example.com] only apply to ; PHP files served from www.example.com. Directives set in these ; special sections cannot be overridden by user-defined INI files or ; at runtime. Currently, [PATH=] and [HOST=] sections only work under ; CGI/FastCGI. ; http://php.net/ini.sections ; Directives are specified using the following syntax: ; directive = value ; Directive names are *case sensitive* - foo=bar is different from FOO=bar. ; Directives are variables used to configure PHP or PHP extensions. ; There is no name validation. If PHP can't find an expected ; directive because it is not set or is mistyped, a default value will be used. ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a ; previously set variable or directive (e.g. ${foo}) ; Expressions in the INI file are limited to bitwise operators and parentheses: ; | bitwise OR ; ^ bitwise XOR ; & bitwise AND ; ~ bitwise NOT ; ! boolean NOT ; Boolean flags can be turned on using the values 1, On, True or Yes. ; They can be turned off using the values 0, Off, False or No. ; An empty string can be denoted by simply not writing anything after the equal ; sign, or by using the None keyword: ; foo = ; sets foo to an empty string ; foo = None ; sets foo to an empty string ; foo = "None" ; sets foo to the string 'None' ; If you use constants in your value, and these constants belong to a ; dynamically loaded extension (either a PHP extension or a Zend extension), ; you may only use these constants *after* the line that loads the extension. ;;;;;;;;;;;;;;;;;;; ; About this file ; ;;;;;;;;;;;;;;;;;;; ; PHP comes packaged with two INI files. One that is recommended to be used ; in production environments and one that is recommended to be used in ; development environments. ; php.ini-production contains settings which hold security, performance and ; best practices at its core. But please be aware, these settings may break ; compatibility with older or less security conscience applications. We ; recommending using the production ini in production and testing environments. ; php.ini-development is very similar to its production variant, except it's ; much more verbose when it comes to errors. We recommending using the ; development version only in development environments as errors shown to ; application users can inadvertently leak otherwise secure information. ; This is php.ini-development INI file. ;;;;;;;;;;;;;;;;;;; ; Quick Reference ; ;;;;;;;;;;;;;;;;;;; ; The following are all the settings which are different in either the production ; or development versions of the INIs with respect to PHP's default behavior. ; Please see the actual settings later in the document for more details as to why ; we recommend these changes in PHP's behavior. ; display_errors ; Default Value: On ; Development Value: On ; Production Value: Off ; display_startup_errors ; Default Value: Off ; Development Value: On ; Production Value: Off ; error_reporting ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ; Development Value: E_ALL ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT ; html_errors ; Default Value: On ; Development Value: On ; Production value: On ; log_errors ; Default Value: Off ; Development Value: On ; Production Value: On ; max_input_time ; Default Value: -1 (Unlimited) ; Development Value: 60 (60 seconds) ; Production Value: 60 (60 seconds) ; output_buffering ; Default Value: Off ; Development Value: 4096 ; Production Value: 4096 ; register_argc_argv ; Default Value: On ; Development Value: Off ; Production Value: Off ; request_order ; Default Value: None ; Development Value: "GP" ; Production Value: "GP" ; session.gc_divisor ; Default Value: 100 ; Development Value: 1000 ; Production Value: 1000 ; session.hash_bits_per_character ; Default Value: 4 ; Development Value: 5 ; Production Value: 5 ; short_open_tag ; Default Value: On ; Development Value: Off ; Production Value: Off ; track_errors ; Default Value: Off ; Development Value: On ; Production Value: Off ; url_rewriter.tags ; Default Value: "a=href,area=href,frame=src,form=,fieldset=" ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" ; variables_order ; Default Value: "EGPCS" ; Development Value: "GPCS" ; Production Value: "GPCS" ;;;;;;;;;;;;;;;;;;;; ; php.ini Options ; ;;;;;;;;;;;;;;;;;;;; ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" ;user_ini.filename = ".user.ini" ; To disable this feature set this option to empty value ;user_ini.filename = ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) ;user_ini.cache_ttl = 300 ;;;;;;;;;;;;;;;;;;;; ; Language Options ; ;;;;;;;;;;;;;;;;;;;; ; Enable the PHP scripting language engine under Apache. ; http://php.net/engine engine = On ; This directive determines whether or not PHP will recognize code between ; tags as PHP source which should be processed as such. It is ; generally recommended that should be used and that this feature ; should be disabled, as enabling it may result in issues when generating XML ; documents, however this remains supported for backward compatibility reasons. ; Note that this directive does not control the tags. ; http://php.net/asp-tags asp_tags = Off ; The number of significant digits displayed in floating point numbers. ; http://php.net/precision precision = 14 ; Output buffering is a mechanism for controlling how much output data ; (excluding headers and cookies) PHP should keep internally before pushing that ; data to the client. If your application's output exceeds this setting, PHP ; will send that data in chunks of roughly the size you specify. ; Turning on this setting and managing its maximum buffer size can yield some ; interesting side-effects depending on your application and web server. ; You may be able to send headers and cookies after you've already sent output ; through print or echo. You also may see performance benefits if your server is ; emitting less packets due to buffered output versus PHP streaming the output ; as it gets it. On production servers, 4096 bytes is a good setting for performance ; reasons. ; Note: Output buffering can also be controlled via Output Buffering Control ; functions. ; Possible Values: ; On = Enabled and buffer is unlimited. (Use with caution) ; Off = Disabled ; Integer = Enables the buffer and sets its maximum size in bytes. ; Note: This directive is hardcoded to Off for the CLI SAPI ; Default Value: Off ; Development Value: 4096 ; Production Value: 4096 ; http://php.net/output-buffering output_buffering = 4096 ; You can redirect all of the output of your scripts to a function. For ; example, if you set output_handler to "mb_output_handler", character ; encoding will be transparently converted to the specified encoding. ; Setting any output handler automatically turns on output buffering. ; Note: People who wrote portable scripts should not depend on this ini ; directive. Instead, explicitly set the output handler using ob_start(). ; Using this ini directive may cause problems unless you know what script ; is doing. ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" ; and you cannot use both "ob_gzhandler" and "zlib.output_compression". ; Note: output_handler must be empty if this is set 'On' !!!! ; Instead you must use zlib.output_handler. ; http://php.net/output-handler ;output_handler = ; Transparent output compression using the zlib library ; Valid values for this option are 'off', 'on', or a specific buffer size ; to be used for compression (default is 4KB) ; Note: Resulting chunk size may vary due to nature of compression. PHP ; outputs chunks that are few hundreds bytes each as a result of ; compression. If you prefer a larger chunk size for better ; performance, enable output_buffering in addition. ; Note: You need to use zlib.output_handler instead of the standard ; output_handler, or otherwise the output will be corrupted. ; http://php.net/zlib.output-compression zlib.output_compression = Off ; http://php.net/zlib.output-compression-level ;zlib.output_compression_level = -1 ; You cannot specify additional output handlers if zlib.output_compression ; is activated here. This setting does the same as output_handler but in ; a different order. ; http://php.net/zlib.output-handler ;zlib.output_handler = ; Implicit flush tells PHP to tell the output layer to flush itself ; automatically after every output block. This is equivalent to calling the ; PHP function flush() after each and every call to print() or echo() and each ; and every HTML block. Turning this option on has serious performance ; implications and is generally recommended for debugging purposes only. ; http://php.net/implicit-flush ; Note: This directive is hardcoded to On for the CLI SAPI implicit_flush = Off ; The unserialize callback function will be called (with the undefined class' ; name as parameter), if the unserializer finds an undefined class ; which should be instantiated. A warning appears if the specified function is ; not defined, or if the function doesn't include/implement the missing class. ; So only set this entry, if you really want to implement such a ; callback-function. unserialize_callback_func = ; When floats & doubles are serialized store serialize_precision significant ; digits after the floating point. The default value ensures that when floats ; are decoded with unserialize, the data will remain the same. serialize_precision = 17 ; open_basedir, if set, limits all file operations to the defined directory ; and below. This directive makes most sense if used in a per-directory ; or per-virtualhost web server configuration file. This directive is ; *NOT* affected by whether Safe Mode is turned On or Off. ; http://php.net/open-basedir ;open_basedir = ; This directive allows you to disable certain functions for security reasons. ; It receives a comma-delimited list of function names. This directive is ; *NOT* affected by whether Safe Mode is turned On or Off. ; http://php.net/disable-functions disable_functions = ; This directive allows you to disable certain classes for security reasons. ; It receives a comma-delimited list of class names. This directive is ; *NOT* affected by whether Safe Mode is turned On or Off. ; http://php.net/disable-classes disable_classes = ; Colors for Syntax Highlighting mode. Anything that's acceptable in ; would work. ; http://php.net/syntax-highlighting ;highlight.string = #DD0000 ;highlight.comment = #FF9900 ;highlight.keyword = #007700 ;highlight.default = #0000BB ;highlight.html = #000000 ; If enabled, the request will be allowed to complete even if the user aborts ; the request. Consider enabling it if executing long requests, which may end up ; being interrupted by the user or a browser timing out. PHP's default behavior ; is to disable this feature. ; http://php.net/ignore-user-abort ;ignore_user_abort = On ; Determines the size of the realpath cache to be used by PHP. This value should ; be increased on systems where PHP opens many files to reflect the quantity of ; the file operations performed. ; http://php.net/realpath-cache-size ;realpath_cache_size = 16k ; Duration of time, in seconds for which to cache realpath information for a given ; file or directory. For systems with rarely changing files, consider increasing this ; value. ; http://php.net/realpath-cache-ttl ;realpath_cache_ttl = 120 ; Enables or disables the circular reference collector. ; http://php.net/zend.enable-gc zend.enable_gc = On ; If enabled, scripts may be written in encodings that are incompatible with ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such ; encodings. To use this feature, mbstring extension must be enabled. ; Default: Off ;zend.multibyte = Off ; Allows to set the default encoding for the scripts. This value will be used ; unless "declare(encoding=...)" directive appears at the top of the script. ; Only affects if zend.multibyte is set. ; Default: "" ;zend.script_encoding = ;;;;;;;;;;;;;;;;; ; Miscellaneous ; ;;;;;;;;;;;;;;;;; ; Decides whether PHP may expose the fact that it is installed on the server ; (e.g. by adding its signature to the Web server header). It is no security ; threat in any way, but it makes it possible to determine whether you use PHP ; on your server or not. ; http://php.net/expose-php expose_php = On ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; ; Maximum execution time of each script, in seconds ; http://php.net/max-execution-time ; Note: This directive is hardcoded to 0 for the CLI SAPI max_execution_time = 30 ; Maximum amount of time each script may spend parsing request data. It's a good ; idea to limit this time on productions servers in order to eliminate unexpectedly ; long running scripts. ; Note: This directive is hardcoded to -1 for the CLI SAPI ; Default Value: -1 (Unlimited) ; Development Value: 60 (60 seconds) ; Production Value: 60 (60 seconds) ; http://php.net/max-input-time max_input_time = 60 ; Maximum input variable nesting level ; http://php.net/max-input-nesting-level ;max_input_nesting_level = 64 ; How many GET/POST/COOKIE input variables may be accepted ; max_input_vars = 1000 ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = 128M ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Error handling and logging ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; This directive informs PHP of which errors, warnings and notices you would like ; it to take action for. The recommended way of setting values for this ; directive is through the use of the error level constants and bitwise ; operators. The error level constants are below here for convenience as well as ; some common settings and their meanings. ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT ; those related to E_NOTICE and E_STRICT, which together cover best practices and ; recommended coding standards in PHP. For performance reasons, this is the ; recommend error reporting setting. Your production server shouldn't be wasting ; resources complaining about best practices and coding standards. That's what ; development servers and development settings are for. ; Note: The php.ini-development file has this setting as E_ALL. This ; means it pretty much reports everything which is exactly what you want during ; development and early testing. ; ; Error Level Constants: ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) ; E_ERROR - fatal run-time errors ; E_RECOVERABLE_ERROR - almost fatal run-time errors ; E_WARNING - run-time warnings (non-fatal errors) ; E_PARSE - compile-time parse errors ; E_NOTICE - run-time notices (these are warnings which often result ; from a bug in your code, but it's possible that it was ; intentional (e.g., using an uninitialized variable and ; relying on the fact it's automatically initialized to an ; empty string) ; E_STRICT - run-time notices, enable to have PHP suggest changes ; to your code which will ensure the best interoperability ; and forward compatibility of your code ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's ; initial startup ; E_COMPILE_ERROR - fatal compile-time errors ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) ; E_USER_ERROR - user-generated error message ; E_USER_WARNING - user-generated warning message ; E_USER_NOTICE - user-generated notice message ; E_DEPRECATED - warn about code that will not work in future versions ; of PHP ; E_USER_DEPRECATED - user-generated deprecation warnings ; ; Common Values: ; E_ALL (Show all errors, warnings and notices including coding standards.) ; E_ALL & ~E_NOTICE (Show all errors, except for notices) ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ; Development Value: E_ALL ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT ; http://php.net/error-reporting error_reporting = E_ALL ; This directive controls whether or not and where PHP will output errors, ; notices and warnings too. Error output is very useful during development, but ; it could be very dangerous in production environments. Depending on the code ; which is triggering the error, sensitive information could potentially leak ; out of your application such as database usernames and passwords or worse. ; It's recommended that errors be logged on production servers rather than ; having the errors sent to STDOUT. ; Possible Values: ; Off = Do not display any errors ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) ; On or stdout = Display errors to STDOUT ; Default Value: On ; Development Value: On ; Production Value: Off ; http://php.net/display-errors display_errors = On ; The display of errors which occur during PHP's startup sequence are handled ; separately from display_errors. PHP's default behavior is to suppress those ; errors from clients. Turning the display of startup errors on can be useful in ; debugging configuration problems. But, it's strongly recommended that you ; leave this setting off on production servers. ; Default Value: Off ; Development Value: On ; Production Value: Off ; http://php.net/display-startup-errors display_startup_errors = On ; Besides displaying errors, PHP can also log errors to locations such as a ; server-specific log, STDERR, or a location specified by the error_log ; directive found below. While errors should not be displayed on productions ; servers they should still be monitored and logging is a great way to do that. ; Default Value: Off ; Development Value: On ; Production Value: On ; http://php.net/log-errors log_errors = On ; Set maximum length of log_errors. In error_log information about the source is ; added. The default is 1024 and 0 allows to not apply any maximum length at all. ; http://php.net/log-errors-max-len log_errors_max_len = 1024 ; Do not log repeated messages. Repeated errors must occur in same file on same ; line unless ignore_repeated_source is set true. ; http://php.net/ignore-repeated-errors ignore_repeated_errors = Off ; Ignore source of message when ignoring repeated messages. When this setting ; is On you will not log errors with repeated messages from different files or ; source lines. ; http://php.net/ignore-repeated-source ignore_repeated_source = Off ; If this parameter is set to Off, then memory leaks will not be shown (on ; stdout or in the log). This has only effect in a debug compile, and if ; error reporting includes E_WARNING in the allowed list ; http://php.net/report-memleaks report_memleaks = On ; This setting is on by default. ;report_zend_debug = 0 ; Store the last error/warning message in $php_errormsg (boolean). Setting this value ; to On can assist in debugging and is appropriate for development servers. It should ; however be disabled on production servers. ; Default Value: Off ; Development Value: On ; Production Value: Off ; http://php.net/track-errors track_errors = On ; Turn off normal error reporting and emit XML-RPC error XML ; http://php.net/xmlrpc-errors ;xmlrpc_errors = 0 ; An XML-RPC faultCode ;xmlrpc_error_number = 0 ; When PHP displays or logs an error, it has the capability of formatting the ; error message as HTML for easier reading. This directive controls whether ; the error message is formatted as HTML or not. ; Note: This directive is hardcoded to Off for the CLI SAPI ; Default Value: On ; Development Value: On ; Production value: On ; http://php.net/html-errors html_errors = On ; If html_errors is set to On *and* docref_root is not empty, then PHP ; produces clickable error messages that direct to a page describing the error ; or function causing the error in detail. ; You can download a copy of the PHP manual from http://php.net/docs ; and change docref_root to the base URL of your local copy including the ; leading '/'. You must also specify the file extension being used including ; the dot. PHP's default behavior is to leave these settings empty, in which ; case no links to documentation are generated. ; Note: Never use this feature for production boxes. ; http://php.net/docref-root ; Examples ;docref_root = "/phpmanual/" ; http://php.net/docref-ext ;docref_ext = .html ; String to output before an error message. PHP's default behavior is to leave ; this setting blank. ; http://php.net/error-prepend-string ; Example: ;error_prepend_string = "" ; String to output after an error message. PHP's default behavior is to leave ; this setting blank. ; http://php.net/error-append-string ; Example: ;error_append_string = "" ; Log errors to specified file. PHP's default behavior is to leave this value ; empty. ; http://php.net/error-log ; Example: ;error_log = php_errors.log ; Log errors to syslog (Event Log on Windows). ;error_log = syslog ;windows.show_crt_warning ; Default value: 0 ; Development value: 0 ; Production value: 0 ;;;;;;;;;;;;;;;;; ; Data Handling ; ;;;;;;;;;;;;;;;;; ; The separator used in PHP generated URLs to separate arguments. ; PHP's default setting is "&". ; http://php.net/arg-separator.output ; Example: ;arg_separator.output = "&" ; List of separator(s) used by PHP to parse input URLs into variables. ; PHP's default setting is "&". ; NOTE: Every character in this directive is considered as separator! ; http://php.net/arg-separator.input ; Example: ;arg_separator.input = ";&" ; This directive determines which super global arrays are registered when PHP ; starts up. G,P,C,E & S are abbreviations for the following respective super ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty ; paid for the registration of these arrays and because ENV is not as commonly ; used as the others, ENV is not recommended on productions servers. You ; can still get access to the environment variables through getenv() should you ; need to. ; Default Value: "EGPCS" ; Development Value: "GPCS" ; Production Value: "GPCS"; ; http://php.net/variables-order variables_order = "GPCS" ; This directive determines which super global data (G,P,C,E & S) should ; be registered into the super global array REQUEST. If so, it also determines ; the order in which that data is registered. The values for this directive are ; specified in the same manner as the variables_order directive, EXCEPT one. ; Leaving this value empty will cause PHP to use the value set in the ; variables_order directive. It does not mean it will leave the super globals ; array REQUEST empty. ; Default Value: None ; Development Value: "GP" ; Production Value: "GP" ; http://php.net/request-order request_order = "GP" ; This directive determines whether PHP registers $argv & $argc each time it ; runs. $argv contains an array of all the arguments passed to PHP when a script ; is invoked. $argc contains an integer representing the number of arguments ; that were passed when the script was invoked. These arrays are extremely ; useful when running scripts from the command line. When this directive is ; enabled, registering these variables consumes CPU cycles and memory each time ; a script is executed. For performance reasons, this feature should be disabled ; on production servers. ; Note: This directive is hardcoded to On for the CLI SAPI ; Default Value: On ; Development Value: Off ; Production Value: Off ; http://php.net/register-argc-argv register_argc_argv = Off ; When enabled, the ENV, REQUEST and SERVER variables are created when they're ; first used (Just In Time) instead of when the script starts. If these ; variables are not used within a script, having this directive on will result ; in a performance gain. The PHP directive register_argc_argv must be disabled ; for this directive to have any affect. ; http://php.net/auto-globals-jit auto_globals_jit = On ; Whether PHP will read the POST data. ; This option is enabled by default. ; Most likely, you won't want to disable this option globally. It causes $_POST ; and $_FILES to always be empty; the only way you will be able to read the ; POST data will be through the php://input stream wrapper. This can be useful ; to proxy requests or to process the POST data in a memory efficient fashion. ; http://php.net/enable-post-data-reading ;enable_post_data_reading = Off ; Maximum size of POST data that PHP will accept. ; Its value may be 0 to disable the limit. It is ignored if POST data reading ; is disabled through enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 8M ; Automatically add files before PHP document. ; http://php.net/auto-prepend-file auto_prepend_file = ; Automatically add files after PHP document. ; http://php.net/auto-append-file auto_append_file = ; By default, PHP will output a character encoding using ; the Content-type: header. To disable sending of the charset, simply ; set it to be empty. ; ; PHP's built-in default is text/html ; http://php.net/default-mimetype default_mimetype = "text/html" ; PHP's default character set is set to empty. ; http://php.net/default-charset ;default_charset = "UTF-8" ; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is ; to disable this feature. If post reading is disabled through ; enable_post_data_reading, $HTTP_RAW_POST_DATA is *NOT* populated. ; http://php.net/always-populate-raw-post-data ;always_populate_raw_post_data = On ;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" ; ; PHP's default setting for include_path is ".;/path/to/php/pear" ; http://php.net/include-path ; The root of the PHP pages, used only if nonempty. ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root ; if you are running php as a CGI under any web server (other than IIS) ; see documentation for security issues. The alternate is to use the ; cgi.force_redirect configuration below ; http://php.net/doc-root doc_root = ; The directory under which PHP opens the script using /~username used only ; if nonempty. ; http://php.net/user-dir user_dir = ; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: ; extension_dir = "ext" ; Whether or not to enable the dl() function. The dl() function does NOT work ; properly in multithreaded servers, such as IIS or Zeus, and is automatically ; disabled on them. ; http://php.net/enable-dl enable_dl = Off ; cgi.force_redirect is necessary to provide security running PHP as a CGI under ; most web servers. Left undefined, PHP turns this on by default. You can ; turn it off here AT YOUR OWN RISK ; **You CAN safely turn this off for IIS, in fact, you MUST.** ; http://php.net/cgi.force-redirect ;cgi.force_redirect = 1 ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with ; every request. PHP's default behavior is to disable this feature. ;cgi.nph = 1 ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP ; will look for to know it is OK to continue execution. Setting this variable MAY ; cause security issues, KNOW WHAT YOU ARE DOING FIRST. ; http://php.net/cgi.redirect-status-env ;cgi.redirect_status_env = ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo ;cgi.fix_pathinfo=1 ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate ; security tokens of the calling client. This allows IIS to define the ; security context that the request runs under. mod_fastcgi under Apache ; does not currently support this feature (03/17/2002) ; Set to 1 if running under IIS. Default is zero. ; http://php.net/fastcgi.impersonate ;fastcgi.impersonate = 1 ; Disable logging through FastCGI connection. PHP's default behavior is to enable ; this feature. ;fastcgi.logging = 0 ; cgi.rfc2616_headers configuration option tells PHP what type of headers to ; use when sending HTTP response code. If it's set 0 PHP sends Status: header that ; is supported by Apache. When this option is set to 1 PHP will send ; RFC2616 compliant header. ; Default is zero. ; http://php.net/cgi.rfc2616-headers ;cgi.rfc2616_headers = 0 ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; http://php.net/file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; http://php.net/upload-tmp-dir ;upload_tmp_dir = ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 2M ; Maximum number of files that can be uploaded via a single request max_file_uploads = 20 ;;;;;;;;;;;;;;;;;; ; Fopen wrappers ; ;;;;;;;;;;;;;;;;;; ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. ; http://php.net/allow-url-fopen allow_url_fopen = On ; Whether to allow include/require to open URLs (like http:// or ftp://) as files. ; http://php.net/allow-url-include allow_url_include = Off ; Define the anonymous ftp password (your email address). PHP's default setting ; for this is empty. ; http://php.net/from ;from="john@doe.com" ; Define the User-Agent string. PHP's default setting for this is empty. ; http://php.net/user-agent ;user_agent="PHP" ; Default timeout for socket based streams (seconds) ; http://php.net/default-socket-timeout default_socket_timeout = 60 ; If your scripts have to deal with files from Macintosh systems, ; or you are running on a Mac and need to deal with files from ; unix or win32 systems, setting this flag will cause PHP to ; automatically detect the EOL character in those files so that ; fgets() and file() will work regardless of the source of the file. ; http://php.net/auto-detect-line-endings ;auto_detect_line_endings = Off ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ; If you wish to have an extension loaded automatically, use the following ; syntax: ; ; extension=modulename.extension ; ; For example, on Windows: ; ; extension=msql.dll ; ; ... or under UNIX: ; ; extension=msql.so ; ; ... or with a path: ; ; extension=/path/to/extension/msql.so ; ; If you only provide the name of the extension, PHP will look for it in its ; default extension directory. ; ; Windows Extensions ; Note that ODBC support is built in, so no dll is needed for it. ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) ; extension folders as well as the separate PECL DLL download (PHP 5). ; Be sure to appropriately set the extension_dir directive. ; ;extension=php_bz2.dll ;extension=php_curl.dll ;extension=php_fileinfo.dll ;extension=php_gd2.dll ;extension=php_gettext.dll ;extension=php_gmp.dll ;extension=php_intl.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_ldap.dll ;extension=php_mbstring.dll ;extension=php_exif.dll ; Must be after mbstring as it depends on it ;extension=php_mysql.dll ;extension=php_mysqli.dll ;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client ;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client ;extension=php_openssl.dll ;extension=php_pdo_firebird.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll ;extension=php_pgsql.dll ;extension=php_pspell.dll ;extension=php_shmop.dll ; The MIBS data available in the PHP distribution must be installed. ; See http://www.php.net/manual/en/snmp.installation.php ;extension=php_snmp.dll ;extension=php_soap.dll ;extension=php_sockets.dll ;extension=php_sqlite3.dll ;extension=php_sybase_ct.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; [CLI Server] ; Whether the CLI web server uses ANSI color coding in its terminal output. cli_server.color = On [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone ;date.timezone = ; http://php.net/date.default-latitude ;date.default_latitude = 31.7667 ; http://php.net/date.default-longitude ;date.default_longitude = 35.2333 ; http://php.net/date.sunrise-zenith ;date.sunrise_zenith = 90.583333 ; http://php.net/date.sunset-zenith ;date.sunset_zenith = 90.583333 [filter] ; http://php.net/filter.default ;filter.default = unsafe_raw ; http://php.net/filter.default-flags ;filter.default_flags = [iconv] ;iconv.input_encoding = ISO-8859-1 ;iconv.internal_encoding = ISO-8859-1 ;iconv.output_encoding = ISO-8859-1 [intl] ;intl.default_locale = ; This directive allows you to produce PHP errors when some error ; happens within intl functions. The value is the level of the error produced. ; Default is 0, which does not produce any errors. ;intl.error_level = E_WARNING [sqlite] ; http://php.net/sqlite.assoc-case ;sqlite.assoc_case = 0 [sqlite3] ;sqlite3.extension_dir = [Pcre] ;PCRE library backtracking limit. ; http://php.net/pcre.backtrack-limit ;pcre.backtrack_limit=100000 ;PCRE library recursion limit. ;Please note that if you set this value to a high number you may consume all ;the available process stack and eventually crash PHP (due to reaching the ;stack size limit imposed by the Operating System). ; http://php.net/pcre.recursion-limit ;pcre.recursion_limit=100000 [Pdo] ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" ; http://php.net/pdo-odbc.connection-pooling ;pdo_odbc.connection_pooling=strict ;pdo_odbc.db2_instance_name [Pdo_mysql] ; If mysqlnd is used: Number of cache slots for the internal result set cache ; http://php.net/pdo_mysql.cache_size pdo_mysql.cache_size = 2000 ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. ; http://php.net/pdo_mysql.default-socket pdo_mysql.default_socket= [Phar] ; http://php.net/phar.readonly ;phar.readonly = On ; http://php.net/phar.require-hash ;phar.require_hash = On ;phar.cache_list = [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header = On ; The path to a log file that will log all mail() calls. Log entries include ; the full path of the script, line number, To address and headers. ;mail.log = ; Log mail to syslog (Event Log on Windows). ;mail.log = syslog [SQL] ; http://php.net/sql.safe-mode sql.safe_mode = Off [ODBC] ; http://php.net/odbc.default-db ;odbc.default_db = Not yet implemented ; http://php.net/odbc.default-user ;odbc.default_user = Not yet implemented ; http://php.net/odbc.default-pw ;odbc.default_pw = Not yet implemented ; Controls the ODBC cursor model. ; Default: SQL_CURSOR_STATIC (default). ;odbc.default_cursortype ; Allow or prevent persistent links. ; http://php.net/odbc.allow-persistent odbc.allow_persistent = On ; Check that a connection is still valid before reuse. ; http://php.net/odbc.check-persistent odbc.check_persistent = On ; Maximum number of persistent links. -1 means no limit. ; http://php.net/odbc.max-persistent odbc.max_persistent = -1 ; Maximum number of links (persistent + non-persistent). -1 means no limit. ; http://php.net/odbc.max-links odbc.max_links = -1 ; Handling of LONG fields. Returns number of bytes to variables. 0 means ; passthru. ; http://php.net/odbc.defaultlrl odbc.defaultlrl = 4096 ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation ; of odbc.defaultlrl and odbc.defaultbinmode ; http://php.net/odbc.defaultbinmode odbc.defaultbinmode = 1 ;birdstep.max_links = -1 [Interbase] ; Allow or prevent persistent links. ibase.allow_persistent = 1 ; Maximum number of persistent links. -1 means no limit. ibase.max_persistent = -1 ; Maximum number of links (persistent + non-persistent). -1 means no limit. ibase.max_links = -1 ; Default database name for ibase_connect(). ;ibase.default_db = ; Default username for ibase_connect(). ;ibase.default_user = ; Default password for ibase_connect(). ;ibase.default_password = ; Default charset for ibase_connect(). ;ibase.default_charset = ; Default timestamp format. ibase.timestampformat = "%Y-%m-%d %H:%M:%S" ; Default date format. ibase.dateformat = "%Y-%m-%d" ; Default time format. ibase.timeformat = "%H:%M:%S" [MySQL] ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements ; http://php.net/mysql.allow_local_infile mysql.allow_local_infile = On ; Allow or prevent persistent links. ; http://php.net/mysql.allow-persistent mysql.allow_persistent = On ; If mysqlnd is used: Number of cache slots for the internal result set cache ; http://php.net/mysql.cache_size mysql.cache_size = 2000 ; Maximum number of persistent links. -1 means no limit. ; http://php.net/mysql.max-persistent mysql.max_persistent = -1 ; Maximum number of links (persistent + non-persistent). -1 means no limit. ; http://php.net/mysql.max-links mysql.max_links = -1 ; Default port number for mysql_connect(). If unset, mysql_connect() will use ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look ; at MYSQL_PORT. ; http://php.net/mysql.default-port mysql.default_port = ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. ; http://php.net/mysql.default-socket mysql.default_socket = ; Default host for mysql_connect() (doesn't apply in safe mode). ; http://php.net/mysql.default-host mysql.default_host = ; Default user for mysql_connect() (doesn't apply in safe mode). ; http://php.net/mysql.default-user mysql.default_user = ; Default password for mysql_connect() (doesn't apply in safe mode). ; Note that this is generally a *bad* idea to store passwords in this file. ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password") ; and reveal this password! And of course, any users with read access to this ; file will be able to reveal the password as well. ; http://php.net/mysql.default-password mysql.default_password = ; Maximum time (in seconds) for connect timeout. -1 means no limit ; http://php.net/mysql.connect-timeout mysql.connect_timeout = 60 ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and ; SQL-Errors will be displayed. ; http://php.net/mysql.trace-mode mysql.trace_mode = Off [MySQLi] ; Maximum number of persistent links. -1 means no limit. ; http://php.net/mysqli.max-persistent mysqli.max_persistent = -1 ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements ; http://php.net/mysqli.allow_local_infile ;mysqli.allow_local_infile = On ; Allow or prevent persistent links. ; http://php.net/mysqli.allow-persistent mysqli.allow_persistent = On ; Maximum number of links. -1 means no limit. ; http://php.net/mysqli.max-links mysqli.max_links = -1 ; If mysqlnd is used: Number of cache slots for the internal result set cache ; http://php.net/mysqli.cache_size mysqli.cache_size = 2000 ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look ; at MYSQL_PORT. ; http://php.net/mysqli.default-port mysqli.default_port = 3306 ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. ; http://php.net/mysqli.default-socket mysqli.default_socket = ; Default host for mysql_connect() (doesn't apply in safe mode). ; http://php.net/mysqli.default-host mysqli.default_host = ; Default user for mysql_connect() (doesn't apply in safe mode). ; http://php.net/mysqli.default-user mysqli.default_user = ; Default password for mysqli_connect() (doesn't apply in safe mode). ; Note that this is generally a *bad* idea to store passwords in this file. ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") ; and reveal this password! And of course, any users with read access to this ; file will be able to reveal the password as well. ; http://php.net/mysqli.default-pw mysqli.default_pw = ; Allow or prevent reconnect mysqli.reconnect = Off [mysqlnd] ; Enable / Disable collection of general statistics by mysqlnd which can be ; used to tune and monitor MySQL operations. ; http://php.net/mysqlnd.collect_statistics mysqlnd.collect_statistics = On ; Enable / Disable collection of memory usage statistics by mysqlnd which can be ; used to tune and monitor MySQL operations. ; http://php.net/mysqlnd.collect_memory_statistics mysqlnd.collect_memory_statistics = On ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. ; http://php.net/mysqlnd.net_cmd_buffer_size ;mysqlnd.net_cmd_buffer_size = 2048 ; Size of a pre-allocated buffer used for reading data sent by the server in ; bytes. ; http://php.net/mysqlnd.net_read_buffer_size ;mysqlnd.net_read_buffer_size = 32768 [OCI8] ; Connection: Enables privileged connections using external ; credentials (OCI_SYSOPER, OCI_SYSDBA) ; http://php.net/oci8.privileged-connect ;oci8.privileged_connect = Off ; Connection: The maximum number of persistent OCI8 connections per ; process. Using -1 means no limit. ; http://php.net/oci8.max-persistent ;oci8.max_persistent = -1 ; Connection: The maximum number of seconds a process is allowed to ; maintain an idle persistent connection. Using -1 means idle ; persistent connections will be maintained forever. ; http://php.net/oci8.persistent-timeout ;oci8.persistent_timeout = -1 ; Connection: The number of seconds that must pass before issuing a ; ping during oci_pconnect() to check the connection validity. When ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables ; pings completely. ; http://php.net/oci8.ping-interval ;oci8.ping_interval = 60 ; Connection: Set this to a user chosen connection class to be used ; for all pooled server requests with Oracle 11g Database Resident ; Connection Pooling (DRCP). To use DRCP, this value should be set to ; the same string for all web servers running the same application, ; the database pool must be configured, and the connection string must ; specify to use a pooled server. ;oci8.connection_class = ; High Availability: Using On lets PHP receive Fast Application ; Notification (FAN) events generated when a database node fails. The ; database must also be configured to post FAN events. ;oci8.events = Off ; Tuning: This option enables statement caching, and specifies how ; many statements to cache. Using 0 disables statement caching. ; http://php.net/oci8.statement-cache-size ;oci8.statement_cache_size = 20 ; Tuning: Enables statement prefetching and sets the default number of ; rows that will be fetched automatically after statement execution. ; http://php.net/oci8.default-prefetch ;oci8.default_prefetch = 100 ; Compatibility. Using On means oci_close() will not close ; oci_connect() and oci_new_connect() connections. ; http://php.net/oci8.old-oci-close-semantics ;oci8.old_oci_close_semantics = Off [PostgreSQL] ; Allow or prevent persistent links. ; http://php.net/pgsql.allow-persistent pgsql.allow_persistent = On ; Detect broken persistent links always with pg_pconnect(). ; Auto reset feature requires a little overheads. ; http://php.net/pgsql.auto-reset-persistent pgsql.auto_reset_persistent = Off ; Maximum number of persistent links. -1 means no limit. ; http://php.net/pgsql.max-persistent pgsql.max_persistent = -1 ; Maximum number of links (persistent+non persistent). -1 means no limit. ; http://php.net/pgsql.max-links pgsql.max_links = -1 ; Ignore PostgreSQL backends Notice message or not. ; Notice message logging require a little overheads. ; http://php.net/pgsql.ignore-notice pgsql.ignore_notice = 0 ; Log PostgreSQL backends Notice message or not. ; Unless pgsql.ignore_notice=0, module cannot log notice message. ; http://php.net/pgsql.log-notice pgsql.log_notice = 0 [Sybase-CT] ; Allow or prevent persistent links. ; http://php.net/sybct.allow-persistent sybct.allow_persistent = On ; Maximum number of persistent links. -1 means no limit. ; http://php.net/sybct.max-persistent sybct.max_persistent = -1 ; Maximum number of links (persistent + non-persistent). -1 means no limit. ; http://php.net/sybct.max-links sybct.max_links = -1 ; Minimum server message severity to display. ; http://php.net/sybct.min-server-severity sybct.min_server_severity = 10 ; Minimum client message severity to display. ; http://php.net/sybct.min-client-severity sybct.min_client_severity = 10 ; Set per-context timeout ; http://php.net/sybct.timeout ;sybct.timeout= ;sybct.packet_size ; The maximum time in seconds to wait for a connection attempt to succeed before returning failure. ; Default: one minute ;sybct.login_timeout= ; The name of the host you claim to be connecting from, for display by sp_who. ; Default: none ;sybct.hostname= ; Allows you to define how often deadlocks are to be retried. -1 means "forever". ; Default: 0 ;sybct.deadlock_retry_count= [bcmath] ; Number of decimal digits for all bcmath functions. ; http://php.net/bcmath.scale bcmath.scale = 0 [browscap] ; http://php.net/browscap ;browscap = extra/browscap.ini [Session] ; Handler used to store/retrieve data. ; http://php.net/session.save-handler session.save_handler = files ; Argument passed to save_handler. In the case of files, this is the path ; where data files are stored. Note: Windows users have to change this ; variable in order to use PHP's session functions. ; ; The path can be defined as: ; ; session.save_path = "N;/path" ; ; where N is an integer. Instead of storing all the session files in ; /path, what this will do is use subdirectories N-levels deep, and ; store the session data in those directories. This is useful if you ; or your OS have problems with lots of files in one directory, and is ; a more efficient layout for servers that handle lots of sessions. ; ; NOTE 1: PHP will not create this directory structure automatically. ; You can use the script in the ext/session dir for that purpose. ; NOTE 2: See the section on garbage collection below if you choose to ; use subdirectories for session storage ; ; The file storage module creates files using mode 600 by default. ; You can change that by using ; ; session.save_path = "N;MODE;/path" ; ; where MODE is the octal representation of the mode. Note that this ; does not overwrite the process's umask. ; http://php.net/session.save-path ;session.save_path = "/tmp" ; Whether to use cookies. ; http://php.net/session.use-cookies session.use_cookies = 1 ; http://php.net/session.cookie-secure ;session.cookie_secure = ; This option forces PHP to fetch and use a cookie for storing and maintaining ; the session id. We encourage this operation as it's very helpful in combating ; session hijacking when not specifying and managing your own session id. It is ; not the end all be all of session hijacking defense, but it's a good start. ; http://php.net/session.use-only-cookies session.use_only_cookies = 1 ; Name of the session (used as cookie name). ; http://php.net/session.name session.name = PHPSESSID ; Initialize session on request startup. ; http://php.net/session.auto-start session.auto_start = 0 ; Lifetime in seconds of cookie or, if 0, until browser is restarted. ; http://php.net/session.cookie-lifetime session.cookie_lifetime = 0 ; The path for which the cookie is valid. ; http://php.net/session.cookie-path session.cookie_path = / ; The domain for which the cookie is valid. ; http://php.net/session.cookie-domain session.cookie_domain = ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. ; http://php.net/session.cookie-httponly session.cookie_httponly = ; Handler used to serialize data. php is the standard serializer of PHP. ; http://php.net/session.serialize-handler session.serialize_handler = php ; Defines the probability that the 'garbage collection' process is started ; on every session initialization. The probability is calculated by using ; gc_probability/gc_divisor. Where session.gc_probability is the numerator ; and gc_divisor is the denominator in the equation. Setting this value to 1 ; when the session.gc_divisor value is 100 will give you approximately a 1% chance ; the gc will run on any give request. ; Default Value: 1 ; Development Value: 1 ; Production Value: 1 ; http://php.net/session.gc-probability session.gc_probability = 1 ; Defines the probability that the 'garbage collection' process is started on every ; session initialization. The probability is calculated by using the following equation: ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and ; session.gc_divisor is the denominator in the equation. Setting this value to 1 ; when the session.gc_divisor value is 100 will give you approximately a 1% chance ; the gc will run on any give request. Increasing this value to 1000 will give you ; a 0.1% chance the gc will run on any give request. For high volume production servers, ; this is a more efficient approach. ; Default Value: 100 ; Development Value: 1000 ; Production Value: 1000 ; http://php.net/session.gc-divisor session.gc_divisor = 1000 ; After this number of seconds, stored data will be seen as 'garbage' and ; cleaned up by the garbage collection process. ; http://php.net/session.gc-maxlifetime session.gc_maxlifetime = 1440 ; NOTE: If you are using the subdirectory option for storing session files ; (see session.save_path above), then garbage collection does *not* ; happen automatically. You will need to do your own garbage ; collection through a shell script, cron entry, or some other method. ; For example, the following script would is the equivalent of ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): ; find /path/to/sessions -cmin +24 -type f | xargs rm ; Check HTTP Referer to invalidate externally stored URLs containing ids. ; HTTP_REFERER has to contain this substring for the session to be ; considered as valid. ; http://php.net/session.referer-check session.referer_check = ; How many bytes to read from the file. ; http://php.net/session.entropy-length ;session.entropy_length = 32 ; Specified here to create the session id. ; http://php.net/session.entropy-file ; Defaults to /dev/urandom ; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom ; If neither are found at compile time, the default is no entropy file. ; On windows, setting the entropy_length setting will activate the ; Windows random source (using the CryptoAPI) ;session.entropy_file = /dev/urandom ; Set to {nocache,private,public,} to determine HTTP caching aspects ; or leave this empty to avoid sending anti-caching headers. ; http://php.net/session.cache-limiter session.cache_limiter = nocache ; Document expires after n minutes. ; http://php.net/session.cache-expire session.cache_expire = 180 ; trans sid support is disabled by default. ; Use of trans sid may risk your users security. ; Use this option with caution. ; - User may send URL contains active session ID ; to other person via. email/irc/etc. ; - URL that contains active session ID may be stored ; in publicly accessible computer. ; - User may access your site with the same session ID ; always using URL stored in browser's history or bookmarks. ; http://php.net/session.use-trans-sid session.use_trans_sid = 0 ; Select a hash function for use in generating session ids. ; Possible Values ; 0 (MD5 128 bits) ; 1 (SHA-1 160 bits) ; This option may also be set to the name of any hash function supported by ; the hash extension. A list of available hashes is returned by the hash_algos() ; function. ; http://php.net/session.hash-function session.hash_function = 0 ; Define how many bits are stored in each character when converting ; the binary hash data to something readable. ; Possible values: ; 4 (4 bits: 0-9, a-f) ; 5 (5 bits: 0-9, a-v) ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") ; Default Value: 4 ; Development Value: 5 ; Production Value: 5 ; http://php.net/session.hash-bits-per-character session.hash_bits_per_character = 5 ; The URL rewriter will look for URLs in a defined set of HTML tags. ; form/fieldset are special; if you include them here, the rewriter will ; add a hidden field with the info which is otherwise appended ; to URLs. If you want XHTML conformity, remove the form entry. ; Note that all valid entries require a "=", even if no value follows. ; Default Value: "a=href,area=href,frame=src,form=,fieldset=" ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" ; http://php.net/url-rewriter.tags url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" ; Enable upload progress tracking in $_SESSION ; Default Value: On ; Development Value: On ; Production Value: On ; http://php.net/session.upload-progress.enabled ;session.upload_progress.enabled = On ; Cleanup the progress information as soon as all POST data has been read ; (i.e. upload completed). ; Default Value: On ; Development Value: On ; Production Value: On ; http://php.net/session.upload-progress.cleanup ;session.upload_progress.cleanup = On ; A prefix used for the upload progress key in $_SESSION ; Default Value: "upload_progress_" ; Development Value: "upload_progress_" ; Production Value: "upload_progress_" ; http://php.net/session.upload-progress.prefix ;session.upload_progress.prefix = "upload_progress_" ; The index name (concatenated with the prefix) in $_SESSION ; containing the upload progress information ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" ; http://php.net/session.upload-progress.name ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" ; How frequently the upload progress should be updated. ; Given either in percentages (per-file), or in bytes ; Default Value: "1%" ; Development Value: "1%" ; Production Value: "1%" ; http://php.net/session.upload-progress.freq ;session.upload_progress.freq = "1%" ; The minimum delay between updates, in seconds ; Default Value: 1 ; Development Value: 1 ; Production Value: 1 ; http://php.net/session.upload-progress.min-freq ;session.upload_progress.min_freq = "1" [MSSQL] ; Allow or prevent persistent links. mssql.allow_persistent = On ; Maximum number of persistent links. -1 means no limit. mssql.max_persistent = -1 ; Maximum number of links (persistent+non persistent). -1 means no limit. mssql.max_links = -1 ; Minimum error severity to display. mssql.min_error_severity = 10 ; Minimum message severity to display. mssql.min_message_severity = 10 ; Compatibility mode with old versions of PHP 3.0. mssql.compatability_mode = Off ; Connect timeout ;mssql.connect_timeout = 5 ; Query timeout ;mssql.timeout = 60 ; Valid range 0 - 2147483647. Default = 4096. ;mssql.textlimit = 4096 ; Valid range 0 - 2147483647. Default = 4096. ;mssql.textsize = 4096 ; Limits the number of records in each batch. 0 = all records in one batch. ;mssql.batchsize = 0 ; Specify how datetime and datetim4 columns are returned ; On => Returns data converted to SQL server settings ; Off => Returns values as YYYY-MM-DD hh:mm:ss ;mssql.datetimeconvert = On ; Use NT authentication when connecting to the server mssql.secure_connection = Off ; Specify max number of processes. -1 = library default ; msdlib defaults to 25 ; FreeTDS defaults to 4096 ;mssql.max_procs = -1 ; Specify client character set. ; If empty or not set the client charset from freetds.conf is used ; This is only used when compiled with FreeTDS ;mssql.charset = "ISO-8859-1" [Assertion] ; Assert(expr); active by default. ; http://php.net/assert.active ;assert.active = On ; Issue a PHP warning for each failed assertion. ; http://php.net/assert.warning ;assert.warning = On ; Don't bail out by default. ; http://php.net/assert.bail ;assert.bail = Off ; User-function to be called if an assertion fails. ; http://php.net/assert.callback ;assert.callback = 0 ; Eval the expression with current error_reporting(). Set to true if you want ; error_reporting(0) around the eval(). ; http://php.net/assert.quiet-eval ;assert.quiet_eval = 0 [COM] ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs ; http://php.net/com.typelib-file ;com.typelib_file = ; allow Distributed-COM calls ; http://php.net/com.allow-dcom ;com.allow_dcom = true ; autoregister constants of a components typlib on com_load() ; http://php.net/com.autoregister-typelib ;com.autoregister_typelib = true ; register constants casesensitive ; http://php.net/com.autoregister-casesensitive ;com.autoregister_casesensitive = false ; show warnings on duplicate constant registrations ; http://php.net/com.autoregister-verbose ;com.autoregister_verbose = true ; The default character set code-page to use when passing strings to and from COM objects. ; Default: system ANSI code page ;com.code_page= [mbstring] ; language for internal character representation. ; http://php.net/mbstring.language ;mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) ; http://php.net/mbstring.internal-encoding ;mbstring.internal_encoding = EUC-JP ; http input encoding. ; http://php.net/mbstring.http-input ;mbstring.http_input = auto ; http output encoding. mb_output_handler must be ; registered as output buffer to function ; http://php.net/mbstring.http-output ;mbstring.http_output = SJIS ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. ; http://php.net/mbstring.encoding-translation ;mbstring.encoding_translation = Off ; automatic encoding detection order. ; auto means ; http://php.net/mbstring.detect-order ;mbstring.detect_order = auto ; substitute_character used when character cannot be converted ; one from another ; http://php.net/mbstring.substitute-character ;mbstring.substitute_character = none; ; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them. ; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions ; http://php.net/mbstring.func-overload ;mbstring.func_overload = 0 ; enable strict encoding detection. ;mbstring.strict_detection = Off ; This directive specifies the regex pattern of content types for which mb_output_handler() ; is activated. ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) ;mbstring.http_output_conv_mimetype= [gd] ; Tell the jpeg decode to ignore warnings and try to create ; a gd image. The warning will then be displayed as notices ; disabled by default ; http://php.net/gd.jpeg-ignore-warning ;gd.jpeg_ignore_warning = 0 [exif] ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. ; With mbstring support this will automatically be converted into the encoding ; given by corresponding encode setting. When empty mbstring.internal_encoding ; is used. For the decode settings you can distinguish between motorola and ; intel byte order. A decode setting cannot be empty. ; http://php.net/exif.encode-unicode ;exif.encode_unicode = ISO-8859-15 ; http://php.net/exif.decode-unicode-motorola ;exif.decode_unicode_motorola = UCS-2BE ; http://php.net/exif.decode-unicode-intel ;exif.decode_unicode_intel = UCS-2LE ; http://php.net/exif.encode-jis ;exif.encode_jis = ; http://php.net/exif.decode-jis-motorola ;exif.decode_jis_motorola = JIS ; http://php.net/exif.decode-jis-intel ;exif.decode_jis_intel = JIS [Tidy] ; The path to a default tidy configuration file to use when using tidy ; http://php.net/tidy.default-config ;tidy.default_config = /usr/local/lib/php/default.tcfg ; Should tidy clean and repair output automatically? ; WARNING: Do not use this option if you are generating non-html content ; such as dynamic images ; http://php.net/tidy.clean-output tidy.clean_output = Off [soap] ; Enables or disables WSDL caching feature. ; http://php.net/soap.wsdl-cache-enabled soap.wsdl_cache_enabled=1 ; Sets the directory name where SOAP extension will put cache files. ; http://php.net/soap.wsdl-cache-dir soap.wsdl_cache_dir="/tmp" ; (time to live) Sets the number of second while cached file will be used ; instead of original one. ; http://php.net/soap.wsdl-cache-ttl soap.wsdl_cache_ttl=86400 ; Sets the size of the cache limit. (Max. number of WSDL files to cache) soap.wsdl_cache_limit = 5 [sysvshm] ; A default size of the shared memory segment ;sysvshm.init_mem = 10000 [ldap] ; Sets the maximum number of open links or -1 for unlimited. ldap.max_links = -1 [mcrypt] ; For more information about mcrypt settings see http://php.net/mcrypt-module-open ; Directory where to load mcrypt algorithms ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) ;mcrypt.algorithms_dir= ; Directory where to load mcrypt modes ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) ;mcrypt.modes_dir= [dba] ;dba.default_handler= [curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. ;curl.cainfo = ; Local Variables: ; tab-width: 4 ; End:
首先接到这一个项目,说是要用mediastreamer2做一个网络电话。之前也是从来没有接触过。于是首先开始在百度中搜索一下需要哪些东西,以及那些步骤。最后大致了解了一下,做这个项目最终要的就是需要移植好多的库,每一个库都需要配置,最后在交叉编译好动态库,然后在执行mediastreamer2的时候去调用这些动态库和头文件就OK了。 1、首先meidastream2是基于ortp库的,那么首先就是下载源码,交叉编译。 交叉编译ortp 下载源码:http://savannah.c3sl.ufpr.br/linphone/ortp/sources/?C=S;O=A 我使用0.18.0版本 ortp-0.18.0.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf ortp-0.18.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure CC=arm-linux-gcc --host=arm-linux --target=arm-linux --prefix=/home/protocol_stack/install/ make make install 然后用chmod 777 **.sh 执行脚本./**.sh 这样子就完成了配置,编译,安装。(安装目录为/home/protocol_stack/install/,也就是最后生成的头文件,可执行文件,库文件都会在这个目录下) 2、因为项目是要用到SIP协议的,所以我们还需要移植sip的库 osip2和eXosip2协议,这两个协议对应两个库,osip是简单的osip协议,但是因为API少等一系列原因,增加了eXosip2对osip2的补充。 交叉编译osip2 下载源码:http://ftp.gnu.org/gnu/osip/ 我使用的版本是3.6.0 libosip2-3.6.0.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf libosip2-3.6.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure --host=arm-linux --target=arm-linux --prefix=/home/protocol_stack/install/ make make install 然后用chmod 777 **.sh 执行脚本./**.sh 交叉编译eXosip2 下载源码:http://ftp.gnu.org/gnu/osip/ 我使用的版本是3.6.0 libeXosip2-3.6.0.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf libeXosip2-3.6.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure --host=arm-linux --target=arm-linux --prefix=/home/protocol_stack/install/ PKG_CONFIG_PATH=/home/protocol_stack/install/lib/pkgconfig make make install 然后用chmod 777 **.sh 执行脚本./**.sh 接下来可以编译mediastreamer2了,不过ms2,依赖好多库:ogg、speex、pulseaudio。而pulseaudio又依赖许多库:alsa、json、libtool。 3、交叉编译ogg 下载源码:http://xiph.org/downloads/ 我使用1.3.1版本 libogg-1.3.3.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf libogg-1.3.3.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure CC=arm-linux-gcc --prefix=/home/protocol_stack/install/ --host=arm-linux make make install 然后用chmod 777 **.sh 执行脚本./**.sh 4、交叉编译speex 下载源码:http://www.speex.org/downloads/ 我使用1.2rc1版本 speex-1.2rc1.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf speex-1.2rc1.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure CC=arm-linux-gcc --prefix=/home/protocol_stack/install/ --with-ogg=/home/protocol_stack/install/ --enable-fixed-point --disable-float-api \ --host=arm-linux make make install 然后用chmod 777 **.sh 执行脚本./**.sh 5、交叉编译pulseaudio 下载源码:http://freedesktop.org/software/pulseaudio/releases/ 我使用1.0版本 pulseaudio-1.0.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf pulseaudio-1.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure CC=arm-linux-gcc CXX=arm-linux-g++ --prefix=/home/protocol_stack/install --host=arm-linux --disable-rpath --disable-nls --disable-dbus --disable-bluez --disable-samplerate --disable-solaris --disable-gconf --disable-avahi --disable-jack --disable-lirc --disable-glib2 --disable-gtk2 --disable-openssl --disable-ipv6 --disable-asyncns --disable-per-user-esound-socket --disable-oss-output --disable-oss-wrapper --disable-x11 --enable-neon-opt=no --with-database=simple PKG_CONFIG_PATH=/home/protocol_stack/install/lib/pkgconfig CPPFLAGS=-I/home/protocol_stack/install/include LDFLAGS=-L/home/protocol_stack/install/lib CFLAGS=-I/home/protocol_stack/install/include make make install 然后用chmod 777 **.sh 执行脚本./**.sh 错误1: checking for ltdl.h... no configure: error: Unable to find libltdl version 2. Makes sure you have libtool 2.4 or later installed. make: *** No targets specified and no makefile found. Stop. 分析;找不到libltdl。确保你有libtool 2.4及以上的版本。 下载libtool 2.4.2版本 这时需要交叉编译libtool 下载源码:ftp://ftp.gnu.org/gnu/libtool/ 我使用2.4.2版本 libtool-2.4.2.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf libtool-2.4.2.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure --host=arm-linux --prefix =/home/protocol_stack/install/ make make install 然后用chmod 777 **.sh 执行脚本./**.sh 交叉编译alsa: http://www.alsa-project.org/main/index.php/Main_Page 这个库的版本需要根据你嵌入式Linux内核中alsa的版本而定,可以使用命令查看内核中alsa的版本: # cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.24. 可以到内核中alsa驱动版本是1.0.24,所以我选1.0.24版本 alsa-lib-1.0.24.1.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf speex-1.2rc1.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure --host=arm-linux --prefix =/home/protocol_stack/install/ make make install 然后用chmod 777 **.sh 执行脚本./**.sh 错误:configure: error: Package requirements ( sndfile >= 1.0.20 ) were not met: No package 'sndfile' found 分析:缺少库 libsndfile库,那么接下来再进行交叉编译libsndfile libsndfile-1.0.25.tar.gz http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libsndfile.html 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf libsndfile-1.0.25.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure --host=arm-linux --prefix =/home/protocol_stack/install/ make make install 然后用chmod 777 **.sh 执行脚本./**.sh 7、最后编译mediastreamer2 下载源码:http://ftp.twaren.net/Unix/NonGNU//linphone/mediastreamer/ 我使用2.8版本 mediastreamer-2.8.0.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf mediastreamer-2.8.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 把下边这三行写成一个脚本 vim **.sh ./configure CC=arm-linux-gcc --prefix=/home/protocol_stack/install/ PKG_CONFIG_PATH=/home/protocol_stack/install/lib/pkgconfig --disable-gsm --enable-video=no --enable-macsnd=no --disable-static --disable-sdl --disable-x11 --disable-ffmpeg --host=arm-linux --target=arm-linux make make install 然后用chmod 777 **.sh 执行脚本./**.sh 上面的configure选项没有屏蔽v4l1和v4l2,所以还得交叉编译v4l 编译v4l libv4l-0.6.4.tar.gz 下载源码:http://pkgs.fedoraproject.org/repo/pkgs/libv4l/ 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf libv4l-0.6.4.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 我使用0.6.4版本 libv4l-0.6.4.tar.gz make clean make CC=arm-linux-gcc make install PREFIX=/home/protocol_stack/install 编译mediastreamer2出错:(1)checking for LIBCHECK... no checking for LIBJSON... no configure: error: Package requirements ( json >= 0.9 ) were not met: No package 'json' found 解决方法就是交叉编译json 下载源码:http://ftp.debian.org/debian/pool/main/j/json-c/ 分析:缺少json库,那么我们继续交叉编译json库 json-c_0.12.1.orig.tar.gz 然后通过winshare(Windows和Linux的通信)把下载好的库文件拷贝到Linux下, 然后解压 tar zxvf mediastreamer-2.8.0.tar.gz 注意这个时候可能会发生错误,是没有权限的问题,那么就在命令行前边加上sudo 然后配置 ./configure --host=linux-arm \ --prefix =/home/protocol_stack/install/ make && make install 好了,json库已经编译完成了。接下来我们继续编译mediastreamer2 。。。。。 但是还是有问题,怎么办呢?还是哪个问题还是找不到json库。 分析:在json的论坛中,找到了解决方案:把编译生成的/lib/pkgconfig/这个目录下生成了一个json-c.pc。最后mediastreamer2在调用的时候找的是json.pc。那么我们就把这个文件名改为json.pc #mv json-c.pc json.pc OK,这次这个是可以编译的过去了。接下来继续编译 。。。 又出现问题了 /home/protocol_stack/install/lib/libjson.so: undefined reference to `rpl_malloc' /home/protocol_stack/install/lib/libjson.so: undefined reference to `rpl_realloc' 问题分析: 这个错误的原因是因为没有定义 rpl_malloc 和 rpl_realloc 这两个变量。 那么我们应该怎么办么? 那么就在这个目录下进行查这两个变量是在哪里定义的? 于是:#grep "rpl_malloc" -nR * ....... 找到了,原来这两个变量是在这个config的文件中的。是一个宏开关 那么就好办了,我们就直接把这两个宏进行注释。 嗯嗯,继续。。。我们重新编译json库。。。嗯嗯编译好了,接下来继续来编译mediastreamer2 。。。。 又出错了,还是这个原因 /home/protocol_stack/install/lib/libjson.so: undefined reference to `rpl_malloc' /home/protocol_stack/install/lib/libjson.so: undefined reference to `rpl_realloc 嗯嗯,还是这个原因?究竟是为什么呢。再次来到json的目录下,再次看有没有把那两个宏开关给关闭? 嗯哼? 竟然没有关闭? 分析?明白了。原来是我把配置和编译同时执行了。这个宏开关是./configure ...生成的。 那么就只好,这样。把./configure。。。生成的config文件,再进行关闭宏开关。最后直接make && make install -j8 直接编译,安装,是不能再次进行配置的。因为以配置config文件就会再次生成,那么宏开关就又开了。 OK,安装好了,下来继续进行编译mediastreamer2.。。。。。。。。。。。 。。。。。。。。。。。。。。 又出现了问题? error: /user/include/python2.7/pyconfig.h:15:52: fatal error: arm-linux-gnueabi/python2.7/pyconfig.h: No such file or directory compilation terminated. 分析::找不到arm-linux-gnueabi/python2.7/pyconfig.h这文件。那就继续交叉编译python 好吧,继续下载python,然后再进行交叉编译,但是编译Python的时候出来一系列的问题。根本没有办法解决。 那么该怎么办呢?时候一个小时又一个小时的过去? 最后有一个大胆的想法,既然python都编译不下去。那就不要了。 于是,在mediastreamer2的./configure 中添上一项 --without-python 。 。。。再次配置编译。。。。。。。。。。。 error: /user/include/python2.7/pyconfig.h:15:52: fatal error: arm-linux-gnueabi/python2.7/pyconfig.h: No such file or directory compilation termiated. 嗯哼?还是一样的错误。怎么办呢? 于是乎就又在论坛上进行找灵感。。。。。 还是找不到。。。 又一结合前边几个库的配置编译,发现不使能一个模块还可以用另外一个--disable-python 。。。 于是乎 就把--without-python改为了--disable-python 继续编译。。。。 。。。。。。。。。。。。。。。。。。。。。 到了这个节骨眼上了,编译每跳一下,我的心就跟着逗一下。。。。心酸 。。。。。。 。。。。。。 。。。。。。 竟然编译成功了。。。。 哈哈。。。。。。。。。 于是,马上就把编译好的库,拷贝到了开发板。。。 嗯嗯,本来还想把编译好的库目录树拷贝下的,但是太多了,放不下。。。算了吧。。。。 找到编译好的库 在库中的/bin中找到arm-linux-mediastream 然后执行./arm-linux-mediastream 。。。。报错了 问题: error : while loading shared libraries: libmediastreamer.so.1: cannot open shared object file: No such file 答案:分析: 遇到这个问题就是,libmediastreamer.so.1这个动态库,在可执行文件armlinuxmediastreamer执行的时候,会调用这个动态库,但是环境变量中找不到这个动态库。那么我们就是要把我们编译好的动态链接库的目录加到环境变量中 LD_LIBRARY_PATH=$LD_LIBRARY_PATH://arm/lib/这个目录下就是放着我们编译好的所有的动态链接库(包括libmediastreamer.so.1) 执行步骤:LD_LIBRARY_PATH=$LD_LIBRARY_PATH://arm/lib export LD_LIBRARY_PATH ./arm-linux-mediastream mediastream --local --remote --payload [ --fmtp ] [ --jitter ] [ --width ] [ --height ] [ --bitrate ] [ --ec (enable echo canceller) ] [ --ec-tail ] [ --ec-delay ] [ --ec-framesize ] [ --agc (enable automatic gain control) ] [ --ng (enable noise gate)] [ --ng-threshold (noise gate threshold) ] [ --ng-floorgain (gain applied to the signal when its energy is below the threshold.) ] [ --capture-card ] [ --playback-card ] [ --infile <input wav file> specify a wav file to be used for input, instead of soundcard ] [ --outfile specify a wav file to write audio into, instead of soundcard ] [ --camera ] [ --el (enable echo limiter) ] [ --el-speed (gain changes are smoothed with a coefficent) ] [ --el-thres (Threshold above which the system becomes active) ] [ --el-force (The proportional coefficient controlling the mic attenuation) ] [ --el-sustain (Time in milliseconds for which the attenuation is kept unchanged after) ] [ --el-transmit-thres (TO BE DOCUMENTED) ] [ --rc (enable adaptive rate control) ] [ --zrtp (enable zrtp) ] [ --verbose (most verbose messages) ] [ --video-windows-id <video surface:preview surface>] [ --srtp (enable srtp, master key is generated if absent from comand line) [ --netsim-bandwidth (simulates a network download bandwidth limit) 于是按照第一种方式进行 参数添加 ./arm-linux-mediastream --local 8888 --remote 127.0.0.1:88 88 OK运行正常了 下面是运行信息。。。 ortp-message-audio_stream_process_rtcp: interarrival jitter=119 , lost packets percentage since last report=0.000000, round trip time=0.000000 seconds ortp-message-oRTP-stats: RTP stats : ortp-message- number of rtp packet sent=150 ortp-message- number of rtp bytes sent=25800 bytes ortp-message- number of rtp packet received=150 ortp-message- number of rtp bytes received=25800 bytes ortp-message- number of incoming rtp bytes successfully delivered to the application=25284 ortp-message- number of rtp packet lost=0 ortp-message- number of rtp packets received too late=0 ortp-message- number of bad formatted rtp packets=0 ortp-message- number of packet discarded because of queue overflow=0 ortp-message-Bandwidth usage: download=81.290281 kbits/sec, upload=81.288664 kbits/sec ortp-message-Receiving RTCP SR ortp-message-Receiving RTCP SDES ortp-message-Found CNAME=unknown@unknown ortp-message-Found TOOL=oRTP-0.18.0 ortp-message-Found NOTE=This is free sofware (LGPL) ! ortp-message-Quality indicator : 4.888437 运行正常了。。。。。。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧