embeded/odroid2016. 10. 19. 21:00

make 자체에 -std=gnu89 가 포함되어 있는데..

3.8.y 브랜치만 받아서 다시 시도하니 또 되는거 같기도 하고.. 머지?


[링크 : https://github.com/hardkernel/linux/commit/0796298c8e592c664b7013e02fccdfa56a5da132]


한시간이 채 안걸린거 같은데..

성능이 의외로 좋아진건가?


$ find ./ -name zImage

./arch/arm/boot/zImage 


+

도대체 머가 꼬여서 이런 개고생을 한거지 ㄷㄷㄷ


real    27m3.279s

user    94m24.020s

sys     7m43.415s



시간 상으로는 대충.. 9:32 ~ 10:00

28분.. 예상외로 성능 좋네... AMD 싱글 코어 보다 나은듯(어?)

'embeded > odroid' 카테고리의 다른 글

odroid u3 릴리즈 노트의 중요한... 내용?  (0) 2016.10.22
넌 또 왜 난리니 ㅠㅠ  (0) 2016.10.21
odroid ubuntu 14.04 LTS / gcc-4.7  (0) 2016.10.19
gcc std c99와 asm  (0) 2016.10.19
odroid 커널 빌드(on odroid) 실패  (0) 2016.10.17
Posted by 구차니
embeded/odroid2016. 10. 19. 20:08

강제로 실행은 되려나..

옵션이.. c99가 빠져있네..


$ sudo apt-get install gcc-4.7

$ gcc-4.7 -v

Using built-in specs.

COLLECT_GCC=/usr/bin/gcc-4.7.real

COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.7/lto-wrapper

Target: arm-linux-gnueabihf

Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.3-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-gnu-unique-object --disable-libmudflap --disable-libitm --enable-plugin --with-system-zlib --enable-objc-gc --with-cloog --enable-cloog-backend=ppl --disable-cloog-version-check --disable-ppl-version-check --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf

Thread model: posix

gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1)


'embeded > odroid' 카테고리의 다른 글

넌 또 왜 난리니 ㅠㅠ  (0) 2016.10.21
odroid u3 커널빌드... 재시도  (0) 2016.10.19
gcc std c99와 asm  (0) 2016.10.19
odroid 커널 빌드(on odroid) 실패  (0) 2016.10.17
odroid 커널 distcc 성공?  (0) 2016.10.17
Posted by 구차니
embeded/odroid2016. 10. 19. 18:37

c99 에서는 asm 확장을 지원하지 않는다라..


asm() doesn't seem to work with -std=c99. It's a bad idea in my opinion, since the standard actually suggests that compilers support an asm() keyword, but it isn't mandatory. 


Try -std=gnu99


[링크 : http://stackoverflow.com/questions/755457/asm-in-c-gives-an-error-with-std-c99]



-std=

Determine the language standard. This option is currently only supported when compiling C or C ++ .

The compiler can accept several base standards, such as c89 or c++98, and GNU dialects of those standards, such as gnu89 or gnu++98. By specifying a base standard, the compiler will accept all programs following that standard and those using GNU extensions that do not contradict it. For example, -std=c89 turns off certain features of GCC that are incompatible with ISO C90, such as the "asm" and "typeof" keywords, but not other GNU extensions that do not have a meaning in ISO C90, such as omitting the middle term of a "?:" expression. On the other hand, by specifying a GNU dialect of a standard, all features the compiler support are enabled, even when those features change the meaning of the base standard and some strict-conforming programs may be rejected. The particular standard is used by -pedantic to identify which features are GNU extensions given that version of the standard. For example -std=gnu89 -pedantic would warn about C ++ style // comments, while -std=gnu99 -pedantic would not.


A value for this option must be provided; possible values are


c89

iso9899:1990

Support all ISO C90 programs (certain GNU extensions that conflict with ISO C90 are disabled). Same as -ansi for C code.

iso9899:199409

ISO C90 as modified in amendment 1.

c99

c9x


iso9899:1999

iso9899:199x

ISO C99. Note that this standard is not yet fully supported; see <http://gcc.gnu.org/gcc-4.4/c99status.html> for more information. The names c9x and iso9899:199x are deprecated.

gnu89

GNU dialect of ISO C90 (including some C99 features). This is the default for C code.

gnu99

gnu9x

GNU dialect of ISO C99. When ISO C99 is fully implemented in GCC , this will become the default. The name gnu9x is deprecated.

c++98

The 1998 ISO C ++ standard plus amendments. Same as -ansi for C ++ code.

gnu++98

GNU dialect of -std=c++98. This is the default for C ++ code.

c++0x

The working draft of the upcoming ISO C ++ 0x standard. This option enables experimental features that are likely to be included in C ++ 0x. The working draft is constantly changing, and any feature that is enabled by this flag may be removed from future versions of GCC if it is not part of the C ++ 0x standard.

gnu++0x

GNU dialect of -std=c++0x. This option enables experimental features that may be removed in future versions of GCC . 


[링크 : https://linux.die.net/man/1/gcc]

'embeded > odroid' 카테고리의 다른 글

odroid u3 커널빌드... 재시도  (0) 2016.10.19
odroid ubuntu 14.04 LTS / gcc-4.7  (0) 2016.10.19
odroid 커널 빌드(on odroid) 실패  (0) 2016.10.17
odroid 커널 distcc 성공?  (0) 2016.10.17
odroid UART0 ...  (0) 2016.10.16
Posted by 구차니
embeded/odroid2016. 10. 17. 23:36

크로스 컴파일은 잘만되던데.. 왜 얘는 안되나... 

include 헤더 문제일려나?


  CC      arch/arm/mach-exynos/cpu-exynos4.o

In file included from include/linux/posix_types.h:4:0,

                 from include/linux/types.h:17,

                 from include/linux/capability.h:16,

                 from include/linux/sched.h:53,

                 from arch/arm/mach-exynos/cpu-exynos4.c:11:

include/linux/stddef.h:10:16: error: expected identifier or ‘(’ before ‘void’

 #define NULL ((void *)0)

                ^

arch/arm/plat-s5p/include/plat/exynos4.h:34:24: note: in expansion of macro ‘NULL’

 #define exynos4_map_io NULL

                        ^

arch/arm/mach-exynos/cpu-exynos4.c:222:13: note: in expansion of macro ‘exynos4_map_io’

 void __init exynos4_map_io(void)

             ^

include/linux/stddef.h:10:23: error: expected ‘)’ before numeric constant

 #define NULL ((void *)0)

                       ^

arch/arm/plat-s5p/include/plat/exynos4.h:34:24: note: in expansion of macro ‘NULL’

 #define exynos4_map_io NULL

                        ^

arch/arm/mach-exynos/cpu-exynos4.c:222:13: note: in expansion of macro ‘exynos4_map_io’

 void __init exynos4_map_io(void)

             ^

include/linux/stddef.h:10:16: error: expected identifier or ‘(’ before ‘void’

 #define NULL ((void *)0)

                ^

arch/arm/plat-s5p/include/plat/exynos4.h:32:29: note: in expansion of macro ‘NULL’

 #define exynos4_init_clocks NULL

                             ^

arch/arm/mach-exynos/cpu-exynos4.c:279:13: note: in expansion of macro ‘exynos4_init_clocks’

 void __init exynos4_init_clocks(int xtal)

             ^

include/linux/stddef.h:10:23: error: expected ‘)’ before numeric constant

 #define NULL ((void *)0)

                       ^

arch/arm/plat-s5p/include/plat/exynos4.h:32:29: note: in expansion of macro ‘NULL’

 #define exynos4_init_clocks NULL

                             ^

arch/arm/mach-exynos/cpu-exynos4.c:279:13: note: in expansion of macro ‘exynos4_init_clocks’

 void __init exynos4_init_clocks(int xtal)

             ^

include/linux/stddef.h:10:16: error: expected identifier or ‘(’ before ‘void’

 #define NULL ((void *)0)

                ^

arch/arm/plat-s5p/include/plat/exynos4.h:35:22: note: in expansion of macro ‘NULL’

 #define exynos4_init NULL

                      ^

arch/arm/mach-exynos/cpu-exynos4.c:410:12: note: in expansion of macro ‘exynos4_init’

 int __init exynos4_init(void)

            ^

include/linux/stddef.h:10:23: error: expected ‘)’ before numeric constant

 #define NULL ((void *)0)

                       ^

arch/arm/plat-s5p/include/plat/exynos4.h:35:22: note: in expansion of macro ‘NULL’

 #define exynos4_init NULL

                      ^

arch/arm/mach-exynos/cpu-exynos4.c:410:12: note: in expansion of macro ‘exynos4_init’

 int __init exynos4_init(void)

            ^

arch/arm/mach-exynos/cpu-exynos4.c:49:24: warning: ‘exynos4_iodesc’ defined but not used [-Wunused-variable]

 static struct map_desc exynos4_iodesc[] __initdata = {

                        ^

arch/arm/mach-exynos/cpu-exynos4.c:148:24: warning: ‘exynos4210_iodesc’ defined but not used [-Wunused-variable]

 static struct map_desc exynos4210_iodesc[] __initdata = {

                        ^

arch/arm/mach-exynos/cpu-exynos4.c:167:24: warning: ‘exynos4210_iodesc_rev_0’ defined but not used [-Wunused-variable]

 static struct map_desc exynos4210_iodesc_rev_0[] __initdata = {

                        ^

arch/arm/mach-exynos/cpu-exynos4.c:176:24: warning: ‘exynos4210_iodesc_rev_1’ defined but not used [-Wunused-variable]

 static struct map_desc exynos4210_iodesc_rev_1[] __initdata = {

                        ^

arch/arm/mach-exynos/cpu-exynos4.c:185:24: warning: ‘exynos4212_iodesc’ defined but not used [-Wunused-variable]

 static struct map_desc exynos4212_iodesc[] __initdata = {

                        ^

arch/arm/mach-exynos/cpu-exynos4.c:209:13: warning: ‘exynos4_idle’ defined but not used [-Wunused-function]

 static void exynos4_idle(void)

             ^

arch/arm/mach-exynos/cpu-exynos4.c:335:26: warning: ‘exynos4_sysdev’ defined but not used [-Wunused-variable]

 static struct sys_device exynos4_sysdev = {

                          ^

arch/arm/mach-exynos/cpu-exynos4.c:395:13: warning: ‘exynos4_sw_reset’ defined but not used [-Wunused-function]

 static void exynos4_sw_reset(void)

             ^

arch/arm/mach-exynos/cpu-exynos4.c:405:22: warning: ‘exynos4_pmu_init_zero’ defined but not used [-Wunused-variable]

 static void __iomem *exynos4_pmu_init_zero[] = {

                      ^

make[1]: *** [arch/arm/mach-exynos/cpu-exynos4.o] Error 1

make: *** [arch/arm/mach-exynos] Error 2 


$ cat ./include/linux/stddef.h

#ifndef _LINUX_STDDEF_H

#define _LINUX_STDDEF_H


#include <linux/compiler.h>


#undef NULL

#if defined(__cplusplus)

#define NULL 0

#else

#define NULL ((void *)0)

#endif


#ifdef __KERNEL__


enum {

        false   = 0,

        true    = 1

};


#undef offsetof

#ifdef __compiler_offsetof

#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)

#else

#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

#endif

#endif /* __KERNEL__ */


#endif 



응?

하늘별

2013-08-20 09:55

220.90.137.100

github에 있는 커널은 리눅스용으로 안드로이드를 지원하고 있지 않습니다. BSP으로 따로 배포하는 커널을 사용 하시기 바랍니다. 

[링크 : http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroid-x2&kind=&bid=3359]


+

gcc -E - <<<'#include<stddef.h>' | grep stddef.h

[링크 : http://stackoverflow.com/questions/31285258/why-usr-include-linux-stddef-h-is-empty]


+

GCC is taking steps towards C++11, which is probably why you now need to include cstddef in order to use the NULL constant. The preferred way in C++11 is to use the new nullptr keyword, which is implemented in GCC since version 4.6

[링크 : http://stackoverflow.com/questions/462165/error-null-was-not-declared-in-this-scope]



+

x86용 크로스 컴파일러 옵션

$ arm-linux-gnueabihf-gcc -v

Using built-in specs.

COLLECT_GCC=arm-linux-gnueabihf-gcc

COLLECT_LTO_WRAPPER=/opt/toolchains/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.3/lto-wrapper

Target: arm-linux-gnueabihf

Configured with: /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/gcc-linaro-4.7-2013.04/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install --with-sysroot=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --enable-multilib --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3-d16 --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-gold --with-local-prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long --with-mode=thumb

Thread model: posix

gcc version 4.7.3 20130328 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 


ubuntu 14.04 / odroid용 컴파일러 옵션

$ gcc -v

Using built-in specs.

COLLECT_GCC=/usr/bin/gcc-4.8.real

COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.8/lto-wrapper

Target: arm-linux-gnueabihf

Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.3' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf

Thread model: posix

gcc version 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.3) 


설마.. c99 옵션 차이는 아니겠지?

찾아보니.. long-long에 가깝네..

--enable-c99

The long long type was introduced in C99, along with many other functions for wide characters, and math classification macros, etc. If enabled, all C99 functions not specified by the C++ standard will be put into namespace __gnu_cxx, and then all these names will be injected into namespace std, so that C99 functions can be used "as if" they were in the C++ standard (as they will eventually be in some future revision of the standard, without a doubt). By default, C99 support is on, assuming the configure probes find all the necessary functions and bits necessary. This option can change the library ABI. 


[링크 : https://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html]

'embeded > odroid' 카테고리의 다른 글

odroid ubuntu 14.04 LTS / gcc-4.7  (0) 2016.10.19
gcc std c99와 asm  (0) 2016.10.19
odroid 커널 distcc 성공?  (0) 2016.10.17
odroid UART0 ...  (0) 2016.10.16
odroid u3 uart 마지막... 희망(?)  (0) 2016.10.15
Posted by 구차니
embeded/odroid2016. 10. 17. 23:19

처음에는 자기 자신만 올라가다가

나중에는 전 호스트들 다 올라간다.

이제.. pump 모드 시도? ㅋㅋ


아무튼.. wins 호스트 네임으로는 절대.. 안되네...

고정 아이피 아니면 좀 쓰기 힘든 녀석인가.. ㅠㅠ


성공 : 커널 distcc 적용

실패 : samba hostname으로 dhcp 상에서 자동 설정하기

>> 요건 아마도.. avahi 되는 놈으로 빌드 하면 되지 않으려나?

실패 : exynos 관련 컴파일 에러

할일 : pump-mode





$ time make -j12 CC="distcc"

real    2m33.850s

user    3m41.765s

sys     1m0.760s 


'embeded > odroid' 카테고리의 다른 글

gcc std c99와 asm  (0) 2016.10.19
odroid 커널 빌드(on odroid) 실패  (0) 2016.10.17
odroid UART0 ...  (0) 2016.10.16
odroid u3 uart 마지막... 희망(?)  (0) 2016.10.15
odroid u3 커널 빌드  (0) 2016.10.15
Posted by 구차니
embeded/odroid2016. 10. 16. 00:16

어우.. 뜬금없는 해결책 ㅠㅠ

다행히도.. 8핀 커넥터 쪽에 UART0이 빠져있어서 이걸로 해결?


그래도 UART1을 살리고 싶긴한데 흑.. 영 안되네..

왜 RX는 되는데 TX가 안될까?


일단 선 배선은

앞에서 보는 기준으로

J4 - TX(2) / RX(3)

UART- TX(2) / RX(3)

적당히 꼬아주면 된다.




그나저나.. 시간 겁나 짧게 해놨네.. ㄷㄷㄷ 가뜩이나 어댑터 전원 꼽기 힘든데

1초 해둔거 같다???


OK


U-Boot 2010.12-svn (May 12 2014 - 15:05:46) for Exynox4412



CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9]

APLL = 1000MHz, MPLL = 880MHz

DRAM:  2 GiB


PMIC VERSION : 0x00, CHIP REV : 2

TrustZone Enabled BSP

BL1 version: 20121128



Checking Boot Mode ... EMMC4.41

REVISION: 2.0

Manufacture ID 0x11 [ 7456MB ]

NAME: S5P_MSHC4

MMC Device 0: 7456 MB

ÿMMC Device 1: 15193 MB

MMC Device 2 not found

*** Warning - using default environment


USB3503 NINT = OUTPUT LOW!

ModeKey Check... run normal_boot

No ethernet found.

Hit any key to stop autoboot:  0

Exynos4412 #


Exynos4412 # ?

?       - alias for 'help'

base    - print or set address offset

bdinfo  - print Board Info structure

boot    - boot default, i.e., run 'bootcmd'

bootd   - boot default, i.e., run 'bootcmd'

bootelf - Boot from an ELF image in memory

bootm   - boot application image from memory

bootp   - boot image via network using BOOTP/TFTP protocol

bootvx  - Boot vxWorks from an ELF image

cfgload - cfgload - boot.ini textfile load from FAT32


check_64gb- check_64gb  - mmc total size check for sd/mmc.


check_mmc_size- check_mmc_size  - mmc size check for sd/mmc.


check_value- check_value        - value check.


chpart  - change active partition

cmp     - memory compare

coninfo - print console devices and information

cp      - memory copy

crc32   - checksum calculation

dcache  - enable or disable data cache

dnw     - dnw     - initialize USB device and ready to receive for Windows serv)


echo    - echo args to console

editenv - edit environment variable

emmc    - Open/Close eMMC boot Partition

env     - environment handling commands

exit    - exit script

ext4load- load binary file from a Ext4 filesystem

ext4ls  - list files in a directory (default /)

false   - do nothing, unsuccessfully

fastboot- fastboot- use USB Fastboot protocol


fatformat- fatformat - disk format by FAT32


fatinfo - print information about filesystem

fatload - load binary file from a dos filesystem

fatls   - list files in a directory (default /)

fdisk   - fdisk - fdisk for sd/mmc.


fdt     - flattened device tree utility commands

get_mmc_block_count- check_mmc_block_count       - get mmc total block count fo.


go      - start application at address 'addr'

help    - print command description/usage

icache  - enable or disable instruction cache

iminfo  - print header information for application image

imxtract- extract a part of a multi-image

itest   - return true/false on integer compare

load    - load binary file from a filesystem

loadb   - load binary file over serial line (kermit mode)

loads   - load S-Record file over serial line

loady   - load binary file over serial line (ymodem mode)

loop    - infinite loop on address range

ls      - list files in a directory (default /)

md      - memory display

mm      - memory modify (auto-incrementing address)

mmc     - MMC sub system

mmcinfo - mmcinfo <dev num>-- display MMC info

movi    - movi  - sd/mmc r/w sub system for SMDK board

mtdparts- define flash/nand partitions

mtest   - simple RAM read/write test

mw      - memory write (fill)

nfs     - boot image via network using NFS protocol

nm      - memory modify (constant address)

ping    - send ICMP ECHO_REQUEST to network host

printenv- print environment variables

reginfo - print register information

reset   - Perform RESET of the CPU

run     - run commands in an environment variable

saveenv - save environment variables to persistent storage

setenv  - set environment variables

setexpr - set environment variable as the result of eval expression

showvar - print local hushshell variables

sleep   - delay execution for some time

source  - run script from memory

system_update- system update - system update by FAT32 or EXT4


test    - minimal test like /bin/sh

tftpboot- boot image via network using TFTP protocol

true    - do nothing, successfully

usb     - USB sub-system

usbboot - boot from USB device

version - print monitor version

wait_usb_trigger- wait_usb_trigger - wait usb trigger detect for recovery


wipeenv - Wipe uboot env. 


Exynos4412 # emmc open 0

eMMC OPEN Success.!!

                        !!!Notice!!!

!You must close eMMC boot Partition after all image writing!

!eMMC boot partition has continuity at image writing time.!

!So, Do not close boot partition, Before, all images is written.!

Exynos4412 # emmc close 0

eMMC CLOSE Success.!!


boot.txt가 아니라 boot.ini로 하면 더 편하려나?

Exynos4412 # boot

do_fat_cfgload : cmd = fatload mmc 0:1 0x41000000 boot.ini

reading boot.ini

** Unable to read file boot.ini **

NAME: S5P_MSHC4

NAME: S5P_MSHC4

>>> Load Boot Script from mmc 0:1 <<<

reading boot.scr

Warning : Reads a file that is smaller than the cluster size.

355 bytes read in 33 ms (9.8 KiB/s)

## Executing script at 40008000

reading zImage

2355768 bytes read in 57 ms (39.4 MiB/s)

reading uInitrd

2190770 bytes read in 31 ms (67.4 MiB/s)

Boot with zImage

## Loading init Ramdisk from Legacy Image at 42000000 ...

   Image Name:   uInitrd 3.8.13.30

   Image Type:   ARM Linux RAMDisk Image (uncompressed)

   Data Size:    2190706 Bytes = 2.1 MiB

   Load Address: 00000000

   Entry Point:  00000000


Starting kernel ...


Uncompressing Linux... done, booting the kernel. 


+

2016.10.17

[링크 : http://odroid.com/dokuwiki/doku.php?id=en:u3_ioport_uart]

'embeded > odroid' 카테고리의 다른 글

odroid 커널 빌드(on odroid) 실패  (0) 2016.10.17
odroid 커널 distcc 성공?  (0) 2016.10.17
odroid u3 uart 마지막... 희망(?)  (0) 2016.10.15
odroid u3 커널 빌드  (0) 2016.10.15
odroid kernel boot args 설정 관련  (0) 2016.10.15
Posted by 구차니
embeded/odroid2016. 10. 15. 23:57

얘네는 참.. pdf 메뉴얼이라던가.. pcb 위치별 1번 핀이라던가 이런거 알려주는게 참 부실해..

정 안되면.. UART1은 포기하고 UART0

GPIO 핀 쪽에 있는 저녀석을 써보는 수밖에..




[링크 : http://odroid.com/dokuwiki/doku.php?id=en:u3_enhancement_ioport]

[링크 : https://drive.google.com/file/d/0B4UPrML8Nk9lSk5aai1MQ1VVTmc/edit]



[링크 : http://odroid.com/dokuwiki/doku.php?id=en:u3_hardware]

'embeded > odroid' 카테고리의 다른 글

odroid 커널 distcc 성공?  (0) 2016.10.17
odroid UART0 ...  (0) 2016.10.16
odroid u3 커널 빌드  (0) 2016.10.15
odroid kernel boot args 설정 관련  (0) 2016.10.15
fat32에서는 실행이 안되네?!?!  (0) 2016.10.14
Posted by 구차니
embeded/odroid2016. 10. 15. 18:01

얘네는 확신이 없고

$ sudo apt-get install libc6-i386 zlib1g


일단 얘네는 확실히 설치해야 할 듯..

그나저나 왜.. 64bit 가 아니라 32bit 용으로 밖에 arm용 gcc를 제공하지 않는거지?

$ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 ncurses-dev


[링크 : http://rin2papa.tistory.com/48]


$ wget http://dn.odroid.com/toolchains/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.bz2

$ sudo mkdir -p /opt/toolchains

$ sudo tar jxvf gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.bz2 -C /opt/toolchains/


export ARCH=arm

export CROSS_COMPILE=arm-linux-gnueabihf-

export PATH=/opt/toolchains/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin:$PATH


$ git clone --depth 1 https://github.com/hardkernel/linux.git -b odroid-3.8.y

$ cd linux

$ make odroidu_defconfig

$ make menuconfig

$ make 


[링크 : http://odroid.com/dokuwiki/doku.php?id=en:u3_building_kernel&s[]=u3&s[]=build]


사양이 좋진 않아서 한 30분 넘게 빌드 하고..

게다가 cpu가 발열을 못버텨 자꾸 죽어서 듀얼인데 싱글 코어로 돌려서

더 한참 ㅋㅋ


그나저나 머가 문제인지... 받는건 되는데 보내는건 안되고

minicom을 끄면 먹통이 되어버리고 putty를 끊고 다시 해야 한다 -ㅁ-?? 머지?!?!?

$ sudo minicom -s


Welcome to minicom 2.7


OPTIONS: I18n

Compiled on Jan  1 2014, 17:08:55.

Port /dev/ttySAC1, 20:24:16


Press CTRL-A Z for help on special keys


OK


U-Boot 2010.12-svn (May 12 2014 - 15:05:46) for Exynox4412



CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9]

APLL = 1000MHz,0MPLL = 880MHz

DRAM: (2 GiB


PMIC VERSION : 0x00, CHIP REV : 2

TrustZone Enabled0BSP

BL1 version: 20121128



Checking Boot Mode ... EMMC4.41

REVISION: 2.0

Manufacture ID 0x11 [ 7456MB ]

NAME: S5P_MSHC4

MMC Device 0: 7456 MB

MMC Device 1: 14804 MB

MMC Device 2 not found

*** Warning - using default environment


USB3503 NINT = OUTPUT LOW!

ModeKey Check... run normal_boot

No ethernet found.

Hit any key to stop autoboot:  0

Exynos4412 # 


'embeded > odroid' 카테고리의 다른 글

odroid UART0 ...  (0) 2016.10.16
odroid u3 uart 마지막... 희망(?)  (0) 2016.10.15
odroid kernel boot args 설정 관련  (0) 2016.10.15
fat32에서는 실행이 안되네?!?!  (0) 2016.10.14
uboot emmc command  (0) 2016.10.14
Posted by 구차니
embeded/odroid2016. 10. 15. 11:41

/proc/config.gz를 받아서 확인해보니

부트로더 커널 인자를 받아서 확장하는 게 기본값..


그러니까.. 커널 기본 인자 + 부트로더 인자니까..

망할 console=ttySAC1,115200은 절대 빠질수가 없다는 거..


(console=tty1 console=ttySAC1,115200 mem=2047M) Default kernel command string 

       Kernel command line type (Extend bootloader kernel arguments)  --->      

 

  lqqqqqqqqqqqqqqqqqqqqq Kernel command line type qqqqqqqqqqqqqqqqqqqqqk

  x  Use the arrow keys to navigate this window or press the hotkey of x

  x  the item you wish to select followed by the <SPACE BAR>. Press    x

  x  <?> for additional information about this option.                 x

  x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x

  x x        ( ) Use bootloader kernel arguments if available        x x

  x x        (X) Extend bootloader kernel arguments                  x x

  x x        ( ) Always use the default kernel command string        x x

  x x                                                                x x

  x x                                                                x x

  x x                                                                x x

  x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x

  tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu

  x                       <Select>      < Help >                       x

  mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj 

'embeded > odroid' 카테고리의 다른 글

odroid u3 uart 마지막... 희망(?)  (0) 2016.10.15
odroid u3 커널 빌드  (0) 2016.10.15
fat32에서는 실행이 안되네?!?!  (0) 2016.10.14
uboot emmc command  (0) 2016.10.14
odroid 커널.. 환경 설정 파일 /proc  (0) 2016.10.13
Posted by 구차니
embeded/odroid2016. 10. 14. 20:40

어라... 리눅스 커널 받아서 빌드 하려니까

퍼미션 부족으로 인해 실행이 안된다고 배째서 확인을 해보니


[링크 : http://android.stackexchange.com/.../why-can-i-not-assign-exec-permissions-to-a-file-on-the-sd-card]


$ mount

/dev/mmcblk1p2 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro)

proc on /proc type proc (rw,noexec,nosuid,nodev)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)

none on /sys/fs/cgroup type tmpfs (rw)

none on /sys/kernel/debug type debugfs (rw)

udev on /dev type devtmpfs (rw,mode=0755)

devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,mode=1777)

tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)

none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)

none on /run/shm type tmpfs (rw,nosuid,nodev)

none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)

/dev/mmcblk1p1 on /media/boot type vfat (rw,nosuid,nodev,flush,umask=000)

systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)

gvfsd-fuse on /run/user/1001/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=odroid)

/dev/mmcblk0p1 on /media/odroid/BOOT type vfat (rw,nosuid,nodev,uid=1001,gid=1001,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)



$ sudo mount -o remount,rw,umask=0000 /dev/mmcblk0p1 /media/odroid/BOOT


$ mount

/dev/mmcblk1p2 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro)

proc on /proc type proc (rw,noexec,nosuid,nodev)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)

none on /sys/fs/cgroup type tmpfs (rw)

none on /sys/kernel/debug type debugfs (rw)

udev on /dev type devtmpfs (rw,mode=0755)

devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,mode=1777)

tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)

none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)

none on /run/shm type tmpfs (rw,nosuid,nodev)

none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)

/dev/mmcblk1p1 on /media/boot type vfat (rw,nosuid,nodev,flush,umask=000)

systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)

gvfsd-fuse on /run/user/1001/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=odroid)

/dev/mmcblk0p1 on /media/odroid/BOOT type vfat (rw,umask=0000)


remount 해봤으나.. 여전히 chmod 로 777 변경해도 안바뀐다..

심지어 sudo chmod 777 해도 ㄷㄷㄷ


umask가 아니라 다른걸로 해줘야하나?

$ sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever 

[링크 : http://askubuntu.com/questions/11840/how-do-i-use-chmod-on-an-ntfs-or-fat32-partition]


       dmask=value

              Set the umask applied to directories only.

  The default  is  the umask of the current process.  The value is given in octal.


       fmask=value

              Set the umask applied to regular files only.

  The default is the umask of the current process.  The value is given in octal. 


       showexec

              If set, the execute permission bits of the file will be allowed

 only if the extension part of  the name is .EXE, .COM, or .BAT. Not set by default.



remount,exec

[링크 : http://android.stackexchange.com/questions/35658/adb-permission-denied-to-run-a-configure-file]

[링크 : http://www.linuxquestions.org/./permission-denied-when-trying-to-execute-an-application-on-a-sd-card./]


음.. auto, exec 등등 여러가지 넣어줘도 안되네.. 걍 ext4로 밀어 버릴까..


+

2016.10.15


showexec로 인해서 확장자 별로 자동으로 인식이 된다는데 실험...


$ touch a.exe

odroid@odroid_1:/media/odroid/MYLINUXLIVE$ ll

total 12

drwx------  2 odroid odroid 8192 oct 16 01:08 ./

drwxr-x---+ 3 root   root   4096 oct 16 01:08 ../

-rwxr-xr-x  1 odroid odroid    0 oct 16 01:08 a.exe*


$ chmod 444 a.exe


$ ll

total 12

drwx------  2 odroid odroid 8192 oct 16 01:08 ./

drwxr-x---+ 3 root   root   4096 oct 16 01:08 ../

-rwxr-xr-x  1 odroid odroid    0 oct 16 01:08 a.exe*



걍.. 퍼미션이 확장자 따라가는 듯.. vfat에서는

[링크 : https://www.kernel.org/doc/Documentation/filesystems/vfat.txt]

'embeded > odroid' 카테고리의 다른 글

odroid u3 커널 빌드  (0) 2016.10.15
odroid kernel boot args 설정 관련  (0) 2016.10.15
uboot emmc command  (0) 2016.10.14
odroid 커널.. 환경 설정 파일 /proc  (0) 2016.10.13
odroid u3 eMMC + SD 부팅 방법...  (0) 2016.10.13
Posted by 구차니