안드로이드 앱인 apk 나 기타 파일을 브라우져에서 다운로드 할때 다운로드가 되지 않고


프로그래스 바가 계속 진행중만 나올때의 문제점.


Kernel에서 IPv6를 빼고 컴파일 했더니 위와 같은 문제가 발생 하였음.


kernel에서 IPv6를 추가하고 다시 컴파일 하면 정상적으로 다운로드가 됨.

Posted by 다크쌍피

CNS3420 Busybox(1.21.0 기준) CrossCompile 방법

make CROSS_COMPILE="/opt/cnstools/arm-linux-le-uclibc-gcc-4.3.3-2010.05/usr/bin/arm-linux-" defconfig
make clean
make CROSS_COMPILE="/opt/cnstools/arm-linux-le-uclibc-gcc-4.3.3-2010.05/usr/bin/arm-linux-"


Posted by 다크쌍피
Programming & Tools/Linux2013. 9. 5. 16:58

U-buntu 10.04에서 tftpd를 실행하고, Client에서 put을 하면 Access violation이 발생 한다.

이는 10.x 부터 보안상의 이유로 tftpd에서는 get만을 지원하도록 하였다.

이를 해결하기 위해서는 tftp대신에 HPA's tftp 를 설치하면 된다.

U-Buntu Software Center에서 Trivial file transfer protocol client 와  Trivial file transfer protocol client

Remove 시키고 HPA's tftp serverHPA's tftp clientInstall 한다.

또는 쉘에서

$ sudo apt-get install tftp-hpa

$ sudo apt-get install tftpd-hpa

로 설치 한다.


기본 설치를 하였을 경우 똑 같이 get 만을 지원하므로 put을 지원하기 위해서는 Option을 수정 해주어야 한다.

tftpd 에서는 "/etc/xinetd.d/tftp" 에 설정 정보가 있었지만, tftpd-hpa는 "/etc/default/tftpd-hpa"에

설정 정보가 존재 한다.


put을 지원하려면

/etc/default/tftpd-hpa의 항목을 다음과 같이 수정해주어야 한다.


 

TFTP_OPTIONS="--secure --create"


또한 tftpd 디렉토리 및 사용자 이름등도 원하는대로 수정하면 된다.

 


* /etc/default/tftpd-hpa 의 항목 중 TFTP_DIRECTORY 에서 정의된 디렉토리가 기존에 존재한다면, 프로그램이 비정상동작

하는 경우가 발생을 한다. 그러므로 처음 설치 하기 전에 /tftpboot 디렉토리 혹은 /var/lib/tftpboot 디렉토리이름을 변경하고 설치 하도록 한다.

Posted by 다크쌍피
Programming & Tools/Tools2013. 8. 28. 14:24

1) Date to Hex/Decimal value
2) Hex value to Date and Decimal value
3) Decimal value to Date and Hex value
변환 프로그램

 

 

DateConvert.exe

 

'Programming & Tools > Tools' 카테고리의 다른 글

32bit Hex IP to String IP Program  (0) 2011.05.27
[Wireshark] AirPcap 에서 TCP/IP packet capture  (0) 2011.05.23
SNMP Browser  (0) 2010.03.24
Posted by 다크쌍피

DM368은 OSD 및 Video의 설정 정보를 사용자가 소스코드를 수정 하지 않고, 변경하도록

Sysfs를 통해 제공한다.


해당 경로

 /sys/class/davinci_display/ch0/XXXX : 출력 인터페이스 설정 변경

 /sys/class/graphics/fbx/XXXX : 프레임 버퍼 설정 변경


변경 방법 예제

 $ echo COMPOSITE > /sys/class/davinci_display/ch0/output

 $ echo NTSC > /sys/class/davinci_display/ch0/mode

 $ echo 4 > /sys/class/graphics/fb0/blank : OSD0 Disable

 $ echo 0 > /sys/class/graphics/fb0/blank : OSD0 Enable

                              :


Posted by 다크쌍피

DM368 Output 출력 변경시 서로 다른 해상도를 지원 할 경우 화면이 깨지는 문제점이 존재 한다.

예를 들어 기본 출력이 LCD, 해상도는 800x480이고 Composite의 해상도는 720x480(NTSC) 인 경우 LCD의

화면을 Composite으로 출력시 픽셀이 깨지는 현상이 발생하는데, 이는 OSD0의 프레임 버퍼의 오프셋이

800 픽셀로 설정이 되어서 밀리는 현상 때문이다. 이를 해결하기 위해선 처음 Bootloader의 bootargs 에서

OSD0를 720x480으로 설정 하면 되는데 이러면 LCD에서 80 픽셀이 잘리는 문제점이 발생한다.

이를 해결하는 방법은 fdset 프로그램을 사용하면 해결 할 수 있다.

fdset의 xres 와 yres 에 변경하려고 하는 해상도를 지정해주면 간단히 프레임 버퍼의 해상도를 변경할 수 있다.


LCD(800x480) -> Composite(720x480)으로 변경 시


$ fdset -xres 720 -yres 480


Posted by 다크쌍피

NFS 클라이언트에서 서버로 마운트 시 tmpfs(/dev/shm 인경우) 이 보이지 않는 경우 해결 방법

 

NFS Server의 /etc/exports 의 첫번째 줄에 다음과 같이 추가해준다.

 

/dev/shm *(rw,no_root_squash,no_subtree_check,fsid=1,sync) 

 

 

'Programming & Tools > TMS320DM368' 카테고리의 다른 글

[DM368] OSD 및 Video 설정  (0) 2013.08.20
[DM368] LCD to Composite 해상도 문제.  (0) 2013.08.20
[DM368] NFS Server 설치  (0) 2013.07.02
[DM368] Memory_contigFree> Error  (0) 2012.08.18
[DM368] Busybox tftpd 실행법  (0) 2012.07.03
Posted by 다크쌍피

NFS 서버 설치 하기

1.    크로스 컴파일 및 설치

1.1  libtirpc-0.2.3

$ CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-none-linux-gnueabi --prefix=/home/no1no1no1/temp/nfs

$ make

$ make install

 

1.2 rpcbind-0.2.0

$ cp /home/no1no1no1/temp/nfs/lib/lib* (rpcbind src폴더) // 복사

$ cp -r /home/no1no1no1/temp/nfs/include/tirpc (rpcbind src폴더) // 복사

$ CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-none-linux-gnueabi --prefix=/home/no1no1no1/temp/nfs

$ make

$ make install

 

1.3 pkg-config-0.28

$ CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-none-linux-gnueabi --prefix=/home/no1no1no1/temp/nfs --docdir=/home/no1no1no1/temp/nfs/share/doc/pkg-config-0.28 --with-internal-glib --disable-host-tool

$ CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-none-linux-gnueabi --prefix=/home/no1no1no1/temp/nfs --disable-host-tool

$ make

$ make install

 

1.4 nfs-utils-1.2.7

$ CC=arm-none-linux-gnueabi-gcc CFLAGS="-I/home/no1no1no1/temp/nfs/include" LDFLAGS=-L/home/no1no1no1/temp/nfs/lib ./configure --host=arm-none-linux-gnueabi --prefix=/home/no1no1no1/temp/nfs --disable-nfsv4 --disable-nfsv41 --disable-gss --without-tcp-wrappers

$ make

$ make install

 

 

2.    Linux설정

2.1 Linux kernel 설정

- Kernel Menuconfig

+ File systems ---> [*]Netwok File Systems ---> <*> NFS server support - [*] NFS server support for NFS version 3

 

3.     Root Filesystem  환경 설정

3.1서버 환경설정

/etc/sysconfig/nfs-server 파일을 만들어 주고 내용을 다음과 같이 작성

PORT="2049"

PROCESSES="8"

QUOTAS="no"

KILLDELAY="10"

 

3.2 rpcbind 환경설정

/etc/netconfig 파일을 만들어 주고 내용을 다음과 같이 작성

#

# The network configuration file. This file is currently only used in

# conjunction with the TI-RPC code in the libtirpc library.

#

# Entries consist of:

#

#       <network_id> <semantics> <flags> <protofamily> <protoname> \

#               <device> <nametoaddr_libs>

#

# The <device> and <nametoaddr_libs> fields are always empty in this

# implementation.

#

udp        tpi_clts      v     inet     udp     -       -

tcp        tpi_cots_ord  v     inet     tcp     -       -

udp6       tpi_clts      v     inet6    udp     -       -

tcp6       tpi_cots_ord  v     inet6    tcp     -       -

rawip      tpi_raw       -     inet      -      -       -

local      tpi_cots_ord  -     loopback  -      -       -

unix       tpi_cots_ord  -     loopback  -      -       -

 

3.3 권한 설정

/etc/exports 파일 생성 후 권한 설정.*는 모두, *자리에 ip address 대역을 작성해줘도 된다.

/usr/share/NT_101/nfs/ *(rw,subtree_check,anonuid=99,anongid=99)

 

3.4 tab 파일 생성

만들어 주어야 되는것이 /var/lib/nfs/ 디렉토리를 만들고 etab,rmtab,xtab의 세개의 빈파일을 만들어 줍니다.

 

3.5 서비스 등록

/etc/services 파일에 nfs 포트를 추가한다.

nfs        2049/tcp

nfs        2049/udp 

 

3.6 참고

정상적으로 마운트 후 exports 옵션도 RW로 되어 있는데, Writing Writing 되지 않고 "cp: cannot create regular file "XXXXX": Permission denied" 메시지 발생시

server nfs 폴더 권한 때문에 발생. chmod -R 777 nfsserver_folder

 

3.7 데몬 실행 순서

/usr/sbin/rpcbind

/usr/sbin/nfsd

/usr/sbin/mountd

/usr/sbin/exportfs –r

/usr/sbin/exportfs

 

3.8 client 실행

$ mount –t nfs 192.168.1.168:/ /home/no1no1no1/temp/nfs_c

Posted by 다크쌍피
Programming & Tools/Android2013. 5. 21. 16:40

안드로이드 커널에서 프로그램을 실행 하기 위해서 크로스 컴파일 시

not executable: magic 7F45

메시지가 출력 되고 프로그램을 실행 시킬 수 없을 때 컴파일 옵션을 확인 해봐야 한다.


컴파일 시 링크가 정상적으로 되지 않아서 실행 파일로 생성이 되지 않았을 것이다.

type이 EXEC (Executable file) 인지 확인해본다.


컴파일 후 elf 파일 헤더를 확인해 본다.


$ arm-none-linux-gnueabi-readelf --file-header --arch-specific XXXXXXfile

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x8120
  Start of program headers:          52 (bytes into file)
  Start of section headers:          554168 (bytes into file)
  Flags:                             0x5000002, has entry point, Version5 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         6
  Size of section headers:           40 (bytes)
  Number of section headers:         28
  Section header string table index: 25
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "5TE"
  Tag_CPU_arch: v5TE
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align8_needed: Yes
  Tag_ABI_align8_preserved: Yes, except leaf SP
  Tag_ABI_enum_size: int



Posted by 다크쌍피
Programming & Tools/Android2013. 5. 21. 14:44

안드로이드 보드의 Kernel에서 프로그램을 사용하기 위해서 Cross Compile 후 실행 하였을 때


/system/bin/sh: ./test: No such file or directory


메시지로 출력 되는 경우 컴파일 옵션이 잘 못 되서 이다.

일반적인 gcc는 glibc를 사용하지만 Android는 루트 파일 시스템의 shared library(.so)는 libc(bionic) 기반이

므로 컴파일시 -static 옵션을 추가하여 실행 파일에 포함 시켜 주어야 한다.


$arm-none-linux-gnueabi-gcc -o test test.c -static


Posted by 다크쌍피