Quantcast
Channel: Codewalker
Viewing all 72 articles
Browse latest View live

후쿠오카, 구로카와 온천 여행 팁

$
0
0
일본 여행에 필수 220v-110v 어텁터를 준비한다.
충전기 두개라서 2개를 준비 했다.



면세점을 여유 있게 쇼핑하려면 최소 두시간 전에는 도착하자.
한 시간 전에 도착 했지만 사람이 많아서 비행기 티켓 찾고 입국 심사를 하는데 겨우 담배 2보루 사고 출발 10분 전에 비행기에 탑승했다.

산큐패스는 미리 하나투어같은 여행 사이트에서 주문한다.
일본 현지에서 사는것 보다 싸다고 한다.

미리 주문하지 못하려 여행전까지 택배 도착이 걱정 되어 직접 수령하러 강남까지 다녀왔다..
http://www.hanatour.com/asp/booking/pass/ps-20000.asp?compCode=B00002&prdMstCode=J10PS13

아래와 같이 카톡으로 알려 준다.

이렇게 생겼다.


데이터 로밍을 알아봤는데 일본은 3G로 연결되고 니리고 잘 끊어진다는 정보에 와이드모바일 에그를 예약했다.
가격은 3일에 2만원이 안되는 요금이다. 여기에 두사람이니 더욱 더 저렴해 진다.
기존에 사용하던 보조밧데리가 하나 있지만 두사람이라서 밧데리도 2개 추가 하였다. 하지만 에그 단말기가 생각보다 밧데리가 오래 가기 때문에 필요하지 않았다. 한 10시간 정도는 가는 것 같다.
아래 사이트에서 예약하고 인천국제공항 1층 7번 출구에서 받아 갈 수 있다.
http://www.widemobile.com/v3/index.aspx


아래와 같이 두사람이 이 에그에 접속하여 있다.


대여한 보조 밧데리이다. 이중 중에 충전하고 있다.


단점은여러 사람일 경우 와이파이에그에서 떨어지면 연락한 방법이 애매하다.

일본 고속버스 사이트에서 좌석을 예약하고 출력한다.

https://www.highwaybus.com/

크롬 브라우저에서 번역이 잘된다. 몇몇 그림은 번역이 안되지만 대충 감으로 알 수 있다.


후쿠오카 공항에서 1층 2번 버스 타는 곳에서 하카타행 버스를 기다린다. 버스가 자주 있지 않다. 산큐패스를 내릴때 보여주면 된다.
국제선 건물에서 나와 4개의 버스 정류장이 있는데 2번으로 가면 바닥에 하카타라고 쓰여 있다.
블로그를 작성하는 기준으로 시간표는 아래와 같다.




하카타 버스터미날에 도착하면 3층에가서 예약 내용 프린트와 산큐 패스를 보여주면 표를 준다. 물론 오는 날 표까지 미리 준다. 잘 챙겨 놓자.





구로카와 온천에서 하카타로 오는 버스는 예매 시 삼각형으로 표시 되었는데 예약이 많아서 두 좌석이 떨어져 예약이 되었다. 그래서 여행전 미리 예약하자.
출발 당시 기사분께서 두 좌석이 떨어져 있는거에 대해서 한국인이라서 그런지 매우 미안해 했던 기억이 인상적이다.
우리나라에서 있을 수 없는 일이어서 기억이 난다.

하카타 버스 터미날 5층에 다이소가 있다. 한국에 없는 일본 다이소에만 있는 물건들을 구매 하였다.



하카타역으로 이동하여 점심을 먹는다. 라멘은 캐널 시티에서 먹을꺼라 다른 메뉴를 찾아본다.

구로카와 버스는 하루 4번 밖에 운행하지 않는다.

하카타에서 출발한 버스는 텐진, 후쿠오카 공항으로 가서 구로카와로 간다. 말이 고속버스지 정차도 많이 하고 천천히? 가서 3시간 걸린다.

특이하게 버스에 화장실이 있다.




도착하면 료칸에서 온 직원이 픽업이 온다.
체크인후
석식, 조식 시간을 물어본다.
오규갸야는 두개의 프라빗(가족)탕이 있다. 연인끼리 가신분들은 여기를 이용하면 된다. 따로 예약을 하지 않고 사용하는 사람이 없으면 들어가서 문 잠그고 사용하면 된다.
그리고 몇개의 노천탕이 있고 하루씩 남여가 바꿔서 입장한다.
따라서 혼탕이 아니기 때문에 수영복이 필요 없다.

짐을 풀고 바로 마을 구경을 나섰다.



하지만 겨울이라 해가 빨리지고 어두워지기 시작해서 사진을 겨우 찍었다.












석시 예약 시간이 되면 인터폰으로 알려주고 데리러 온다.
조식은 인터폰으로 알려주고 어제 먹은 방으로 가서 먹으면 된다.
료칸에서 저녁, 아침 식사가 나오기 때문에 따로 군것질 할 필요가 없을 만큼 배가 부르다.






프라이빗 탕

석식 사진이다. 그리고 유카타를 주기 때문에 따로 잠옷은 필요 없다.


말고기 육회다. 조금 찔긴 쇠고기 같다.




식사 후 노천탕으로 갔다.










다음날 아침에 다른 프라이빗 탕을 이용해 보았다.



노천탕은 하루 마다 여자 남자 바꿔가면 사용하도록 되어 있어서 아침은 다른 노천탕의 사진이다.







온천 후 조식을 했다.



미리 짐을 들고 체크아웃하고 료칸 이용료를 지불한다.
그리고 마을 구경을 하였다.


















체크아웃후 역시 차로 버스정류장까지 모셔준다.
버스는 후쿠오카 공항에서 하카타 버스 터미날로 간다.



하카타역에서 캐널시티까지는 걸어서 넉넉잡고 15분 정도면 걸어간다.
후쿠오카의 서울보도 겨울은 7도 이상 따뜻하기 때문에 늦가을 복장으로 간다.





캐널시티는 매우 넓다.







라멘 스타디움으로 가서 라멘을 먹고...







MUJI , FRANC franc, 등등 쇼핑한다.




나카스는 유행가이기 때문에 가족, 연인들은 섬 안 쪽까지 들어가지 말기 바란다.
포장마차는 캐널시티에서 섬으로 넘어가는 다리에서 왼쪽으로 진입하면 보인다.
별거 없다.





12시 비행기라 아침에 뭔가 할 시간이 애매하다.

캐널시티 호텡레서는 짐을 맡아주니 짐 챙겨 내려와서 프런트에 맡기고 걸어서 10분거리에 신사가 있다 구경하고 편의점에서 식사 후 공항으로 출발.





















호텔에 한국 여행객 프린트에서 후쿠오카 공항까지 80번 버스를 타면 된다고 나와 있지만 80번 버스가 정류소에 없다.
버스로 하카타 버스 터미날가서 공항 가는 버스를 탄다.







후쿠오카 공항은 매우 작은 공항이다 표를 찾고 뒤에 보이는 특산물 면세점이 있고 출입국 심사후 더 큰 면세점이 있으니 들어가서 사도 된다.

비행기 시간 때문에 첫날 온천을 잡았는데 3일 일정이면 첫날 후쿠오카 관광, 쇼핑하고 이틀째 온천가서 휴식하고 바로 공항가서 돌아오는게 만족도가 높을것 같다. 참고 하시기 바랍니다.



How to write to external storage on odroid(marshmallow android 6.0.1).

$
0
0
You maybe install utorrent app, but you can't download torrent file in external storage installed android 6.0.1(marshmallow).


Edit packages.xml.

$ su
# vi /data/system/packages.xml

<package name="com.utorrent.client" codePath="/data/app/com.utorrent.client-1" nativeLibraryPath="/data/app/com.utorrent.client-1/lib" primaryCpuAbi="armeabi-v7a" publicFlags="940097092" privateFlags="0" ft="15a648b6388" it="15a648b6f1f" ut="15a648b6f1f" version="245" userId="10069" installer="com.android.vending">
        ...
        <perms>
            ...
            <item name="android.permission.ACCESS_WIFI_STATE" granted="true" flags="0" />
            <item name="android.permission.WAKE_LOCK" granted="true" flags="0" />
            <item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0" />
        </perms>

How to Enable Multi-Window in Marshmallow.

$
0
0
Go back to Settings > Developer Options > go to the bottom of the Drawing category and enable Multi-window from the options.



Enable multi-window on ODROID-C2.

ODROID-C2를 CCTV로 활용하기

$
0
0
ODROID-C2와 Webcam을 이용하여 CCTV를 만들어 보자.

http://www.hardkernel.com/main/products/prdt_info.php?g_code=G145457216438



안드로이드 최신 버전을 다운 받는다.
http://odroid.com/dokuwiki/doku.php?id=en:c2_release_android

eMMC나 sdcard에 설치 한다.

안드로이드가 부팅이 되면 Google Apps를 설치한다.
https://codewalkerster.blogspot.kr/2016/06/how-to-install-google-play-store-on.html

Goolge Market이 설치되었으면 Google 계정을 넣고 market에서 CCTV로 검색하여 Alfred를 설치한다.

https://play.google.com/store/apps/details?id=com.ivuu


Viewer로 볼 smartphone에도 alfred를 설치한다.
ODROID-C2에 Alfred는 Camera로 설정하자.


 아래와 같이 어항을 바라보게 Webcam을 설치하였다.


Smartphone에서 아래와 같이 볼 수 있다.




Nexus 5X LCD 교환

$
0
0
약 2주전 이렇게 케이스를 잘 씌우고 다니던 스마트 폰이 재수가 없으면 뒤로 넘어져도 코가 깨진다고 액정이 박살 났습니다.



LG 서비스 센터에서 수리비가 약 12만원 정도 이길래 검색해 보니 repair kit을 Ali Express 에서 판매하고 있더군요.


생각 보다 빨리 10일 만에 도착 하여 교환 하였는데...


Nexus 5 때는 Battery가 쉽게 떼어 졌는데 이번 5X는 너무 잘 붙어 있어서 떼다가 그만 battery에서 불이 났습니다.

그 땐 당황해서 사진을 못 찍었는데 사무실에 연기로 가득차고 난리가 아니였네요.
Battery를 바닥에 집어 던졌서 바닥까지 타버렸네요.


결국 LG 서비스센터에서 Battery를 3만원 주고 사서 조립은 완성 ...
하지만 LCD가 원래색보다 파란색이 강하게 보입니다.


결론 시간에 금액에 액정 떼는 것도 힘들고 Battery 떼는 건 더 위험하고 그냥 서비스센터에서 교환하세요.

How to enable Touch Wake up.

$
0
0
I refer to this in the site.

http://processors.wiki.ti.com/index.php/TI-Android-GingerBread-2.3.4-DevKit-2.1_PortingGuides?TB_iframe=true


anroid-6.0.1_r67

frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java


    /** {@inheritDoc} */
    @Override
    public int interceptMotionBeforeQueueingNonInteractive(long whenNanos, int policyFlags) {
        if ((policyFlags & FLAG_WAKE) != 0) {
            if (wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotion,
                    "android.policy:MOTION")) {
                return 0;
            }
        }

        if (shouldDispatchInputWhenNonInteractive()) {
            return ACTION_PASS_TO_USER;
        }

        // If we have not passed the action up and we are in theater mode without dreaming,
        // there will be no dream to intercept the touch and wake into ambient.  The device should
        // wake up in this case.
        if (isTheaterModeEnabled() && (policyFlags & FLAG_WAKE) != 0) {
            wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotionWhenNotDreaming,
                    "android.policy:MOTION");
        }

        if (!mPowerManager.isInteractive()) {
            wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotion,
                    "android.policy:MOTION");
        }
        return 0;
    }


android-5.1.1_r38

--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -4943,6 +4943,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
             wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotionWhenNotDreaming);
         }

+        if (!mPowerManager.isInteractive()) {
+            wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotion);
+        }
+
         return 0;
     }

android-4.4.4_r2.0.1

diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 10323a4..b2da523 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -4176,6 +4176,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
         if (isWakeMotion) {
             result |= ACTION_WAKE_UP;
         }
+        if (!mPowerManager.isScreenOn())
+            mPowerManager.wakeUp(SystemClock.uptimeMillis());
         return result;
     }



How to change DDR Clock on ODROID-C2(android)

$
0
0
Official wiki page
http://odroid.com/dokuwiki/doku.php?id=en:c2_adjust_ddrclk

Guide to change DDR Clock by android update and recovery.

Open https://dn.odroid.com/S905/BootLoader/ODROID-C2/


Download files.
updatepackage-odroidc2-ddr-408.zip
updatepackage-odroidc2-ddr-792.zip
updatepackage-odroidc2-ddr-912.zip
updatepackage-odroidc2-ddr-1104.zip

Open Utility app.
Select "Package install from storage"



Select "File Manager" -> Download folder


Select updatepackage-odroidc2-ddr-xxx.zip wanted DDR clock.


Recovery!



After reboot, you can check the DDR configuration using the following logs of boot loader if you have a usb-uart module kit.

BL2 Built : 11:44:26, Nov 25 2015.
gxb gfb13a3b-c2 - jcao@wonton

Board ID = 8
set vcck to 1100 mv
set vddee to 1070 mv
CPU clk: 1536MHz
DDR channel setting: DDR0 Rank0+1 same
DDR0: 2048MB(auto) @ 1104MHz(2T)-14

Dual booting android and Ubuntu on ODROID-XU4

$
0
0
I made dual booting image for ODROID-C2.
https://codewalkerster.blogspot.kr/2016/03/dual-booting-android-and-ubuntu-on.html

We will make dual booting image for ODROID-XU3/4.

It is recommended to use a storage device of 16Gbyte or more.

Make bootable android media(eMMC or SD).

https://wiki.odroid.com/odroid-xu4/os_images/android/v5.4

Add "VFAT" to label of fat32 partition.



Download ODROID-XU3/4 Ubuntu Image.

https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.9/20170824



Copy rootfs and boot partition of ODROID-XU3/4 Ubuntu to your desktop Ubuntu.


mount disk wrote ODROID-XU3/4 Ubuntu image on your desktop PC.




$ mount
...
/.../ubuntu-16.04.3-4.9-mate* on /media/codewalker/boot type vfat (ro,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)
/.../ubuntu-16.04.3-4.9-mate* on /media/codewalker/rootfs type ext4 (ro,nosuid,nodev,uhelper=udisks2)


$ mkdir dual
$ cd dual
$ mkdir boot
$ sudo cp -a /media/username/boot/* boot/
$ mkdir rootfs
$ sudo cp -a /media/username/rootfs/* rootfs/


Unmount ubuntu disk image.


Delete rootfs/aafirstboot

$ rm -rf rootfs/aafirstboot

Edit rootfs/etc/fstab

$ sudo vi rootfs/etc/fstab
LABEL=VFAT/media/bootvfatdefaults,rw,owner,flush,umask=000 0 0

Chagne userdata partition UUID.

- Insert disk wrote android image on your desktop PC and unmount /dev/sdX3.
$ sudo umount /dev/sdX3
$ cat rootfs/etc/fstab 
LABEL=VFAT/media/bootvfatdefaults,rw,owner,flush,umask=000 0 0

UUID=e139ce78-9841-40fe-8823-96a304a09859 / ext4 errors=remount-ro,noatime 0 1

$ sudo tune2fs /dev/sdX3 -U e139ce78-9841-40fe-8823-96a304a09859

Copy ODROID-XU3/4 Ubuntu files to android disk.

$ mv /media/username/VFAT/boot. ini  /media/username/VFAT/boot. ini.android
$ cp boot/* /media/username/VFAT/
$ sudo cp rootfs/* /media/username/e139ce78-9841-40fe-8823-96a304a09859/ -a
$ sync

Make script to change OS.

in Ubuntu
$ vi boot_android.sh
------------------------------------------------------------------------
#!/bin/bash
sudo mv /media/boot/boot.ini /media/boot/boot.ini.ubuntu
sudo mv /media/boot/boot.ini.android /media/boot/boot.ini
sudo reboot
------------------------------------------------------------------------
#chmod +x boot_android.sh


in Adnroid
$ su
# mount -o rw,remount /
# vi /system/bin/boot_ubuntu.sh
------------------------------------------------------------------------
#!/bin/sh
mv /storage/internal/boot.ini /storage/internal/boot.ini.android
mv /storage/internal/boot.ini.ubuntu /storage/internal/boot.ini
reboot
------------------------------------------------------------------------
# chmod 777 /system/bin/boot_ubuntu.sh

ODROID-C2로 오락실 게임기 만들기

$
0
0
여기서 recalbox OS를 다운 받는다.

https://archive.recalbox.com/

8GB Sd Card를 준비한다. OS와 ROM 파일을 큰 SD 카드에 같이 저장해도 되고 USB 이동 저장 장치에 게임 ROM만 따로 저장해도 된다.


etcher를 설치하고 다운 받은 recalbox.img.xz을 선택한다.
https://etcher.io/


게임 롬을 담을 USB stick을 준비
전체를 FAT32나 NTFS로 format한다.


ODROID-C2에 SD 카드를 연결하고 전원을 넣으면 recalbox 화면이 나온다.




XBox 조이스틱과 USB stick을 연결한다.


키는 다음과 같다.
A -> enter(OK)
B -> back
start -> setting menu


"MAIN MENU"진입한다.


아래와 같이 "STORAGE DEVICE"에 앞에서 format한 USB Stick을 선택한다.


그리고 USB stick을 PC에 연결하면 recalbox란 폴더가 생성되어 있다.

여기서 중요한건 bios폴더와 roms란 폴더이다.


bios란 폴더에 neogeo.zip을 넣고


roms/neogeo/ 폴더에 neogeo 게임 롬을 넣으면 된다.












OpenAuto turns a ODROID into an Android Auto Head Unit.

$
0
0

Android Auto with AA mirror

1. Ubuntu 16.04 mate


2. Install packages.

$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install -y git-core curl dh-autoreconf libboost-all-dev libusb-1.0.0-dev libssl-dev cmake  libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtmultimedia5-dev libqt5bluetooth5 libqt5bluetooth5-bin qtconnectivity5-dev pulseaudio gstreamer1.0-plugins-bad  gst123 librtaudio-dev

3. auto login

$ sudo vi /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf

[Seat:*]
greeter-session=lightdm-gtk-greeter
autologin-user=odroid


4. update compiler

$ gcc -v                                                     
Using built-in specs.                                                         
COLLECT_GCC=gcc                                                               
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper             
Target: aarch64-linux-gnu                                                     
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubu
ntu1~16.04.9' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-lan
guages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-
5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-inclu
ded-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot
=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --w
ith-default-libstdcxx-abi=new --enable-gnu-unique-object --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-5-arm64/jre --e
nable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64 --with-j
vm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64 --with-arch-directory=aar
ch64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch --enable-
fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64
-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu               
Thread model: posix                                                           
gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9)   
                                                                             
$ sudo apt-get update
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
$ sudo apt-get update
$ sudo apt-get install gcc-snapshot -y
$ sudo apt-get update
$ sudo apt-get install gcc-6 g++-6 -y
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6
$ sudo update-alternatives --config gcc

$ gcc -v                                                     
Using built-in specs.                                                         
COLLECT_GCC=gcc                                                               
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper           
Target: arm-linux-gnueabihf                                                   
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 6.3.0-18ub
untu2~16.04' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-lang
uages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6
 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir
=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-
debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-
unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-syst
em-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with
-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre --enable-java-home --with-jvm
-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf --with-jvm-jar-dir=/usr/lib/jvm-ex
ports/java-1.5.0-gcj-6-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share
/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-m
ultiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-
fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-mult
ilib --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnue
abihf --target=arm-linux-gnueabihf                                           
Thread model: posix                                                           
gcc version 6.3.0 20170519 (Ubuntu/Linaro 6.3.0-18ubuntu2~16.04)             

5. build protobuf-compiler(3.0)

5.1 get protobuf-compiler source.
$ wget https://github.com/google/protobuf/archive/v3.0.0.zip
$ unzip v3.0.0.zip
$ cd protobuf-3.0.0

5.2 fix autogen.sh

if test ! -e gmock; then
  curl $curlopts -L -O https://github.com/google/googletest/archive/release-1.7.0.zip
  unzip -q release-1.7.0.zip
  rm release-1.7.0.zip
  mkdir -p gmock/gtest
  mv googletest-release-1.7.0 gmock/gtest
fi

5.3 build
$ ./autogen.sh
$ ./configure --prefix=/usr/lib/arm-linux-gnueabihf
$ make [-j4]
$ sudo make install
$ sudo ldconfig
$ export PATH=/usr/lib/arm-linux-gnueabihf/bin/:$PATH

6. build aasdk

$ cd
$ git clone -b master https://github.com/f1xpl/aasdk.git
$ mkdir aasdk_build
$ cd aasdk_build
$ cmake -DCMAKE_BUILD_TYPE=Release ../aasdk
$ make [-j4]


7. build openauto

$ cd
$ git clone -b master https://github.com/f1xpl/openauto.git
$ mkdir openauto_build
$ cd openauto_build
$ cmake -DCMAKE_BUILD_TYPE=Release -DRPI3_BUILD=FALSE -DAASDK_INCLUDE_DIRS="/home/odroid/aasdk/include" -DAASDK_LIBRARIES="/home/odroid/aasdk/lib/libaasdk.so" -DAASDK_PROTO_INCLUDE_DIRS="/home/odroid/aasdk_build" -DAASDK_PROTO_LIBRARIES="/home/odroid/aasdk/lib/libaasdk_proto.so" ../openauto
$ make [-j4]

8. Make autostart!

$ echo "./openauto/bin/autoapp &">> .bashrc

$ sudo usermod -a -G root odroid
$ sudo usermod -a -G tty odroid
$ sudo usermod -a -G voice odroid
$ sudo usermod -a -G input odroid
$ sudo usermod -a -G audio odroid
$ sudo usermod -a -G pulse odroid
$ sudo usermod -a -G pulse-access odroid










ODROID-C1+


ODROID-C2


9 AA Mirror

Install Android Auto 2.x version for AA Mirror.

Select "Developer"

Check "Unknown sources"



Build your own cheap car head unit with ODROID

$
0
0

ODROID-C2

ODROID-C1+


ODROID-C1+


ODROID-C2

ODROID-VU7 : 7inch 800x480 HDMI display with Multi-touch


I2S 2Watt Stereo Boom Bonnet Kit

USB 플러그 미니 마이크 데스크탑 스튜디오 음성 녹음 F Skype MSN

http://itempage3.auction.co.kr/DetailView.aspx?itemNo=B503887087&frm3=V2


ODROID USB-CAM 720P

http://www.hardkernel.com/main/products/prdt_info.php?g_code=G146883099080


$ sudo apt-get install xfce4-pulseaudio-plugin alsa-utils

Setup I2S 2Watt Stereo Boom Bonnet Kit
https://wiki.odroid.com/accessory/sound/stereo_boom_bonnet?s[]=boom

$ su
# echo "snd-soc-pcm5102">> /etc/modules
# echo "snd-soc-odroid-dac">> /etc/modules

Sound Setting


Make Google Home with ODROID-C2

샤오미 미지아2 킥보드에서 랑케레이시 G660s로...

$
0
0
17년 8월에 샤오미 미지아2 킥보드를 구입

매우 만족하며 가을 동안 잘 타고 다님

매일 산본에서 안양천 따라 관악역까지 왕복하는 약 24km 출퇴근

그 사이에 타이어 펑크가 몇번나고 타이어와 튜브를 직접 장비도 사서 교체도 하고 고생함
그래서 통타이어로 차례대로 모두 교체

쉽게 끼우기 위해 물에 삶아서 야들야들하게 만들어 시도


하지만 통 타이어 교체 후 셀 점접이 떨어지는 문제 다소 발생

안양 EV shop에 수리를 맡겼는데 셀 점접은 스팟이라는 용접을 해야 하는데 모두 납땜으로 수리하여 환불 받고... 또 고생함.

그리고 연결 부분 핀도 깨지고 ...

머드가드도 깨짐. 그래서 새로 구입하여 직접 교체.


1년 정도 2600km를 타고 나니 약 7~8km부터 출력이 엄청 떨어지는 문제가 최근 발생...
샤오미 미지아2 킥보드 1년정도 타 보니 내구성이 너무 떨어지고 밧데리를 교체하지 않으면 출퇴근 거리를 커버하지 못하는 문제로 다른 이동 수단을 알아봄.

장점
1. 비교적 싸다.
2. 디자인이 다른 킥보드에 비해서 낫다.
3. 대중교통과 연계하기는 힘들지만 차에 실고 다니기에는 편하다.

단점
1. 내구성이 약하다고 잔고장이 많다. 직접하지 않으면 수리비가 많이 듭니다.
2. 일반 남성이 타기에는 출력이 약하다. 속도야 안전상 적당한데 언덕은 끌고 가야함.
3. 이동거리가 멀면 충전기를 들고 다녀야 한다.
4. 겨울에는 가만히 서서타야 하기에 춥다.

그래서 다른 이동 수단을 알아보다 자전거 타기를 좋아하기 때문에 출퇴근과 취미 생활을 할 수 있는 전기 자전거를 알아 봄.

그 중에 가성비가 좋아 보이는 랑케레이시 G660s로 구입.
http://www.11st.co.kr/product/SellerProductDetail.tmall?method=getSellerProductDetail&prdNo=1951022932&xfrom=&xzone=
500w에 48v 14.5AH로 약 70만원 정도에 구입

금요일 주문해서 다음주 목요일에 받음.

집에서 안양, 한강 합수부까지 왕복 60km이고 아래 자전거로 대략 4시간 반정도 아주 힘들게 다녀오는데...

랑케레이시 G660s로는 PAS 2~3 단계로 아주 편하게 4시간 안되게 다녀 올 수 있었음.
예상컨데 PAS 2로는 80km는 거뜬히 가능할 듯 보임.



이건 회사에 접어서 주차시킨 모습

킥보드 대비 장점
1. 스로틀만으로 출퇴근이 가능할 정도로 밧데리 용량이 크기 때문에 충전기를 들고 다니지 않아도 된다. 충전기는 휴일에 집에 들고 가고 평일에는 회사두고 회사에서만 충전.
2. 킥보드 보다는 사람 눈치가 덜 본다.
3. 밧데리만 빼서 충전이 가능해서 충전하기 위해 사무실까지 가져갈 필요가 없다.
4. 아직은 아니지만 겨울에는 무동력으로 타면 춥지 않을 것 같다.
5. 서서타지 않아서 덜 위험한 듯 하다.

단점.
1. 차에 실는건 가능하나 힘들다. 자주 하고 싶지 않다.
2. 접어지지만 자전거라서 집 안에 보관하기에는 크다.
3. 미니벨로 스타일이라 장거리 라이딩은 좀 무리다.
4. 킥보드 보다 뭔가 번거롭다.

샤오미 미 A1 듀얼 유심 사용하기

$
0
0

아직 KT 순I-밸류(3G) 요금제를 사용하고 있습니다.
느려도 데이터 무제한이라서 최근까지 잘 참으며 사용하고 있었지만 느린게 문제가 아니라 3G 망에 접속할 수 없는 일이 점점 늘어나면서 불편해서 LTE 요금제로 바꾸려 생각하고 있었습니다.

한달에 약 3~4G 정도 데이터를 사용하는데 그럼 5~6G는 되어야 할 것 같아 요금제를 확인하니 지금 요금에 2배 이상이 되어야 할 것 같아서 고민 중이였습니다.

주위에 데이터가 부족하다고 에그를 신청하는 걸 보고 샤오미는 듀얼 유심을 지원하니 데이터 유심만 있으면 안 될까하는 생각이 문득 들더군요.

데이터 유심으로 검색하면 헬로모바일, kt엠모바일, u+알뜰모바일이 검색이 되고 가격 비교를 해보니 10G에 약 1만 2~3천원 요금제가 LG u+ 알뜰모바일이 가장 마음에 들어군요.

아래 u+알뜰모바일에서 가입하고 근처 gs25시 편의점에서 유심을 받았습니다.

개통하고 아래와 같이 유심 트레이에 유심을 넣고 부팅하였지만 데이터 망인 LG U+에 접속 할 수 없었습니다.

그런데 데이터 유심을 넥서스 5X에도 그리고 다른 샤오미 미 A1에 연결하면 잘 되는데 제 A1에서는 단독으로 넣어봐도 망에 접속이 안되더군요.

고객센터에 물어 봤지만 자기들고 모른다고만 하더군요.

이곳 저곳 검색해서 방법을 찾았습니다.

설정에서 SIM 카드


여기서 LGU+말고 기존에 사용하던 KT SIM을 끕니다.

그리고 전화 앱에서 아래와 같이 입력합니다.
*#*#4636#*#*


여기서 '기본 네트워크 유형 설정'을 LTE only로 바꿉니다.

그려면 성공적으로 4G와 함께 망에 연결한 아이콘을 볼 수 있습니다.

그리고 방금 꺼두었던 KT SIM을 다시 켭니다.
아래와 같이 두 망에 정상적으로 접속한 것을 확인 할 수 있습니다.

아래와 같이 '셀룰러 데이터'는 LGU+ 그리고 통화, SMS 메세지는 KT로 설정합니다.

만약에 스마트폰을 재부팅하거나 SIM 트레이를 다시 연결하면 위에 설정을 다시 해야 합니다.

2년 약정하여 만천원 추가하고 월 10G 데이터 요금을 사용할 수 있게 되었습니다.

샤오미 듀얼 유심 모델을 사용하시는 분들은 기존에 사용하는 요금제를 낮추고 저처럼 데이터 유심을 가입하여 통신요금을 절약해 보세요.


How to install Google Play Store on ODROID-N2(PIE)

$
0
0
Open Lightning Browser.
Select ARM, 9.0, pico

Download package.



Open OdroidUtility.

Select "Update" and "From download package"


Select "Recent" and "File Manager"

Select "Download" and "open_gapps-arm-9.0-pico-2019xxxx.zip"

Rebooted and installed "Play Store"

Open lightning browser and search "device id apk".

Download apk.


Open "File Manager" and install device id apk.





Click "Google Service Framework (GSF)".

Click "COPY"

Click Notification.


Go to registration site.


Log in Google account.

Paste GSF id.

Wait about 30 min and reboot system.

How to use Supersu on ODROID-N2 Android PIE

$
0
0

https://forum.odroid.com/viewtopic.php?f=178&t=34063

Install Magisk Manager



Make boot.img
$ adb shell
odroidn2:/ # cd sdcard/Download/                                             
130|odroidn2:/sdcard/Download # dd if=/dev/block/boot of=boot.img             
32768+0 records in
32768+0 records out
16777216 bytes transferred in 0.249 secs (67378377 bytes/sec)
odroidn2:/sdcard/Download #









After making patched_boot.img, do dd command.

odroidn2:/sdcard/Download # dd if=patched_boot.img of=/dev/block/boot        
21768+0 records in
21768+0 records out
11145216 bytes transferred in 0.824 secs (13525747 bytes/sec)
odroidn2:/sdcard/Download #

system reboot


Now enable supersu.




















계란밥 만들기

$
0
0

1. 국그릇 보다 큰 그릇을 준비한다.
2. 계란 두개를 푼다.

3. 후추와 소금을 뿌린다.

4. 성인기준 즉석밥 하나 정도 미리 데운다.

5. 햄 또는 크래미를 가위로 적당히 쓸어 넣는다.

6. 김가루도 추가한다.

7. 소주잔 2~3개 정도 물을 추가한다.

8. 데워둔 밥을 넣고 살짝 저어준다.

9. 전자렌지 용 뚜껑을 덮는다.

10. 전자렌지 약 4분30초 정도 돌린다.

11. 끝나고 치즈 올려 썪어준다.

12. 완성

RAW Image editing with ODROID-N2

$
0
0
PC 없이 RAW 파일 편집하기
Editing RAW Images without PC.

DSLR을 이용해서 RAW 파일을 편집하려면 많은 사람들이 Windows가 설치된 PC에 포토샵이나 라이트룸을 이용한다.
Many people used Photoshop and Lightroom to edit their RAW Images with PC installed Windows.

하지만 나는 스마트폰에서 Snapseed만 이용해서 RAW파일 편집을 해왔다.
But I only have used Snapseed app on Android smartphone.

하지만 화면도 작고 브러시 기능을 이용할때는 터치로 작업하기에 불편하다.
But it is to hard to edit because smartphone has a small screen and if you want to use brush tool, you will feel difficult to edit accuratly.

그래서 큰 화면의 TV와 ODROID-N2에 마우스를 연결하면 PC처럼 편집을 시도해 보았다.
So, I have tried to use android ODROID-N2 connected mouse and TV like a PC.

1. USB C-Type OTG adapter 를 이용하여 RAW 파일을 카메라에서 스마트폰으로 옮긴다.
최근에 새로운 스마트폰을 샀다면, USB C-Type OTG 어뎁터가 패키지에 포함되어 있다.
First you can move your RAW Images to your smartphone with USB C-Type OTG Adapter.
If you buy a new smartphone recently, it was included in smartphone packages.


2. 스마트폰으로 다 옮기고 Google Photos 동기화 한다.
After moving files and sync with Google Photos.

3. ODROID-N2에 Google Photos와 Snapseed를 설치한다.
Install "Google Photos" and "Snapseed" on ODROID-N2.


4. 마우스를 ODROID-N2에 연결한다.
Connect a USB mouse.

4. 편집하고 싶은 사진을 "기기에 저장"
Save a RAW image that you want to edit.

5. 편집 앱을 Snapseed를 선택한다.
Click to edit icon and select Snapseed.

6. 터치 없이 마우스로만 큰 화면에서 편집이 가능합니다.
You can edit images by using mouse, it is easier and more accurate than using touch screen.

ODROID-N2 2GByte 모델이지만 무리 없이 편집이 가능하다.
I have the ODROID-N2 2GByte momory, But it works well smoothly.

Install Magisk and Xposed Framework for Fake Wifi on ODROID-N2/N2+/C4/HC4

$
0
0

Install "Google Play Store"

https://codewalkerster.blogspot.com/2019/02/how-to-install-google-play-store-on.html

Download Magisk Manager apk

Install Magisk apk

https://codewalkerster.blogspot.com/2019/04/how-to-use-supersu-on-odroid-n2-android.html

Open adb shell or terminal after "Root access"(Developer options).

:/ # cd /sdcard/Download/                                                       

:/sdcard/Download # dd if=/dev/block/boot of=./boot.img                         

32768+0 records in                                                              

32768+0 records out                                                             

16777216 bytes transferred in 0.245 secs (68478432 bytes/sec)                   

dd if=./magisk_patched.img of=/dev/block/boot

22476+0 records in                                                              

22476+0 records out                                                             

11507712 bytes transferred in 1.727 secs (6663411 bytes/sec)    

Reboot

Search riru and install "Riru (Riru - Core), Riru - EdXposed (YAHFA)"

Install "Fake Wifi on Play Store"

Run "ExXposed Manager"

Launch UI






























How to make WiFi higher priority than Ethernet on android?

$
0
0

 1. Android 9


frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetNetworkFactory.java



/**

 * {@link NetworkFactory} that represents Ethernet networks.

 *

 * This class reports a static network score of 70 when it is tracking an interface and that

 * interface's link is up, and a score of 0 otherwise.

 */

public class EthernetNetworkFactory extends NetworkFactory {

    private final static String TAG = EthernetNetworkFactory.class.getSimpleName();

    final static boolean DBG = true;


    private static final int NETWORK_SCORE = 59;// fix to lower score than 60.


2. Android 11

frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetNetworkFactory.java

        private static final SparseArray<TransportInfo> sTransports = new SparseArray();

        static {

            // LowpanInterfaceTracker.NETWORK_SCORE

            sTransports.put(NetworkCapabilities.TRANSPORT_LOWPAN,

                    new TransportInfo(ConnectivityManager.TYPE_NONE, 30));

            // WifiAwareDataPathStateManager.NETWORK_FACTORY_SCORE_AVAIL

            sTransports.put(NetworkCapabilities.TRANSPORT_WIFI_AWARE,

                    new TransportInfo(ConnectivityManager.TYPE_NONE, 1));

            // EthernetNetworkFactory.NETWORK_SCORE

            sTransports.put(NetworkCapabilities.TRANSPORT_ETHERNET,

                    new TransportInfo(ConnectivityManager.TYPE_ETHERNET, /*70*/55));


Viewing all 72 articles
Browse latest View live


Latest Images