ref: http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html
ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上
2015年4月27日 星期一
2015年4月24日 星期五
mdnsresponder, android 2.3.7
build error:
查一下:
所以,直接把 jelly bean 的 ipv6.h copy 過來。
然後找 jelly-bean 的 header 哪裡有 include ipv6.h
rebuild mdnsresponder...OK
target thumb C: mdnsd <= external/mdnsresponder/mDNSPosix/mDNSUNP.c external/mdnsresponder/mDNSPosix/mDNSUNP.c: In function 'recvfrom_flags': external/mdnsresponder/mDNSPosix/mDNSUNP.c:649: error: dereferencing pointer to incomplete type external/mdnsresponder/mDNSPosix/mDNSUNP.c:653: error: dereferencing pointer to incomplete typeline:649 是
sin6->sin6_addr = ip6_info->ipi6_addr;lin: 653 是
pktp->ipi_ifindex = ip6_info->ipi6_ifindex;所以猜是 ip6_info 沒宣告。
查一下:
struct in6_pktinfo *ip6_info = (struct in6_pktinfo*)CMSG_DATA(cmptr);找一下有沒有struct in6_pktinfo:
- bionic : 沒有
- kernel : include/linux/ipv6.h
- jelly bead bionic : libc/kernel/common/linux/ipv6.h
所以,直接把 jelly bean 的 ipv6.h copy 過來。
然後找 jelly-bean 的 header 哪裡有 include ipv6.h
libc/include/netinet/in.h所以照著修改 ...
rebuild mdnsresponder...OK
2015年4月22日 星期三
bionic 的 libc/kernel/common/linux/in6.h 有一句:
*** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py
2015年4月20日 星期一
cdc_ncm
ncm 好像是比ether 更進步(包含多 protocl) 的 usb network driver
就是兩台裝置,usb host 和 device 都要上 ncm driver
當然 host 要上 ncm host, device 要上 gadget 的 ncm
啟動之後,host 和 device 接起來,
兩台機器用 ifconfig 看,就會出現 usb0 這個 network interface.
有些 embedded device 要自己加上 interface name:
kernel doc 也有說明:https://www.kernel.org/doc/Documentation/usb/gadget-testing.txt
就是兩台裝置,usb host 和 device 都要上 ncm driver
當然 host 要上 ncm host, device 要上 gadget 的 ncm
啟動之後,host 和 device 接起來,
兩台機器用 ifconfig 看,就會出現 usb0 這個 network interface.
有些 embedded device 要自己加上 interface name:
busybox ifconfig usb0 usb0 Link ecap:Ethernet HWaddr 4E:47:ED:BF:DD:DD BROADCAST MULTICAST MTU:1500 Metric:1 RX packet:0 error:0 dropped:0 overruns:0 frame:0 TX packet:0 error:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)然後兩端 (HOST, Device) 要手動設 ip 和 route..
ifconfig usb0 192.160.200.1 route add 192.168.200.2 dev usb0和
ifconfig usb0 192.168.200.2 route add 192.168.200.1 dev usb0這樣就互通了。
kernel doc 也有說明:https://www.kernel.org/doc/Documentation/usb/gadget-testing.txt
2015年4月17日 星期五
AndroidKernel.mk
好像從4.0 開始,android kernel 有 AndroidKernel.mk.
是一些 有關 kernel 的 make rule,像 kernel images and module:
還有 menuconfig:
就用 kernelconfig 就可以。
AndroidKernel.mk 是由 android device folder 下 target chip 相關目錄的 AndroidBoard.mk include 的。
所以要先 . build/envsetup && lunch 後才有辦法做 make target.
是一些 有關 kernel 的 make rule,像 kernel images and module:
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL) $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- modules $(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-eabi- modules_install $(mv-modules) $(clean-module-folder) $(append-dtb)
還有 menuconfig:
kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) env KCONFIG_NOTIMESTAMP=true \ $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- menuconfig env KCONFIG_NOTIMESTAMP=true \ $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- savedefconfig cp $(KERNEL_OUT)/defconfig kernel/arch/arm/configs/$(KERNEL_DEFCONFIG)所以要做 menuconfig。
就用 kernelconfig 就可以。
AndroidKernel.mk 是由 android device folder 下 target chip 相關目錄的 AndroidBoard.mk include 的。
所以要先 . build/envsetup && lunch 後才有辦法做 make target.
標籤
- 3g (19)
- 工作的備worklog (93)
- 自言自語 (36)
- 草稿 (1)
- 亂亂寫 (8)
- 翻譯 (3)
- administration (76)
- alsa (7)
- android (299)
- apple (5)
- application (42)
- archlinux (1)
- audio (3)
- avr (6)
- backup_restore (2)
- bluetooth (5)
- bookmark (38)
- bootloader (21)
- browser (5)
- cellphone (28)
- command (8)
- Configuration (27)
- debug (7)
- django (1)
- driver (15)
- earphone (1)
- editor (1)
- EFL (1)
- ffmpeg (18)
- Filesystem (4)
- GCC (8)
- Gentoo (1)
- google (1)
- Graphic (3)
- hardware (40)
- hero (7)
- hibernation (9)
- iMX51 (38)
- Info (3)
- Install (30)
- java (4)
- Kernel (102)
- language (2)
- life (2)
- make (11)
- MantainLog (38)
- MCU_P (9)
- memo (8)
- microcontroller (3)
- MINGW (7)
- network (19)
- OpenCL (1)
- OS (11)
- package (3)
- pad (1)
- ProblemAndSolve (15)
- programming (8)
- Python (7)
- raspberry_pi (23)
- SDL (2)
- sensation (13)
- setup (3)
- software_package (36)
- SQL (1)
- suspend (2)
- ToDo (5)
- tool (3)
- ubuntu (1)
- VersionControl (45)
- Virtualization (15)
- VLC (5)
- wheezy (1)
- wifi (3)
- Windows (16)
- xiaomi (1)
- xperia (1)