[이 문서는 계속 업데이트 됩니다.]

curl -O https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.72.tar.xz

sudo apt-get install -y \
  build-essential \
  flex \
  bison \
  gcc \
  g++ \
  make \
  libssl-dev \
  libncurses-dev \
  libgtk2.0-dev \
  libgtk-3-dev \
  libatk1.0-dev \
  libglib2.0-dev \
  libpango1.0-dev \
  libcairo2-dev \
  libx11-dev \
  libxpm-dev \
  libxt-dev \
  libncurses5-dev \
  libncursesw5-dev \
  pkg-config \
  zlib1g-dev 

make defconfig

/kernel/5_15_72/linux-5.15.72$ make defconfig
  YACC    scripts/kconfig/parser.tab.[ch]
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/menu.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTCC  scripts/kconfig/util.o
  HOSTLD  scripts/kconfig/conf
*** Default configuration is based on 'x86_64_defconfig'
#
# configuration written to .config
#

  1. make -j$(nproc)
    • 이 명령어는 CPU 코어 수만큼 병렬로 컴파일을 진행하여 빌드 시간을 단축합니다.
  2. make modules_install
    • 빌드된 모듈들을 시스템에 설치합니다.
  3. make install
    • 커널 이미지와 관련 파일들을 시스템에 설치합니다.
  4. update-grub
    • GRUB 부트로더 구성을 업데이트하여 새로 설치된 커널이 부팅 메뉴에 표시되도록 합니다.
  5. reboot
    • 시스템을 재부팅하여 새로 설치된 커널로 부팅합니다.

sudo apt-get install libelf-dev

sudo apt-get install libncurses-dev libssl-dev bison flex

컴파일은 오래 걸리니 원격이면 꼭 screen -S kernel 처럼 세션 유지 방책을 쓰도록!

 

===== 화사첨족 =====

교통상해사망 10,000,000 원 2007.10.12 ~ 2020.10.12

 

상해사망 50,000,000 원 2007.10.12 ~ 2059.10.12
질병사망 30,000,000 원 2007.10.12 ~ 2040.10.12

 

상해사망추가 10,000,000 원 2007.10.12 ~ 2020.10.12

 

계약내용 확인

무배당 삼성 올라이프 보장보험(0710.5)

 
보장내용 확인을 위한 테이블

보장명, 가입금액, 보험기간 정보입니다.

보장명 가입금액 보험기간
교통상해일반후유장해 10,000,000 원 2007.10.12 ~ 2020.10.12
교통상해고도후유장해 10,000,000 원 2007.10.12 ~ 2020.10.12
교통상해사망 10,000,000 원 2007.10.12 ~ 2020.10.12
상해일반후유장해 50,000,000 원 2007.10.12 ~ 2059.10.12
상해고도후유장해 50,000,000 원 2007.10.12 ~ 2059.10.12
상해사망 50,000,000 원 2007.10.12 ~ 2059.10.12
질병사망 30,000,000 원 2007.10.12 ~ 2040.10.12
뇌·내장손상수술비 10,000,000 원 2007.10.12 ~ 2059.10.12
[갱신형] 자동차사고부상위로금 2,000,000 원 2007.10.12 ~ 2019.10.12
[갱신형] 급성심근경색증진단비 20,000,000 원 2007.10.12 ~ 2019.10.12
[갱신형] 가족일상생활중대인대물배상책임 100,000,000 원 2007.10.12 ~ 2019.10.12
상해가족생활지원금 10,000,000 원 2007.10.12 ~ 2020.10.12
상해일반후유장해추가 10,000,000 원 2007.10.12 ~ 2020.10.12
상해고도후유장해추가 10,000,000 원 2007.10.12 ~ 2020.10.12
상해사망추가 10,000,000 원 2007.10.12 ~ 2020.10.12
[갱신형] 상해입원일당(1일이상) 20,000 원 2007.10.12 ~ 2019.10.12
[갱신형] 골절진단비(치아파절제외) 200,000 원 2007.10.12 ~ 2019.10.12
질병사망추가 30,000,000 원 2007.10.12 ~ 2020.10.12
[갱신형] 질병입원일당(1일이상) 20,000 원 2007.10.12 ~ 2019.10.12
[갱신형] 뇌출혈진단비 20,000,000 원 2007.10.12 ~ 2019.10.12
[갱신형] 질병입원의료비 30,000,000 원 2007.10.12 ~ 2019.10.12
[갱신형] 상해입원의료비 30,000,000 원 2007.10.12 ~ 2019.10.12
[갱신형] 상해통원의료비 100,000 원 2007.10.12 ~ 2019.10.12
[갱신형] 질병통원의료비 100,000 원 2007.10.12 ~ 2019.10.12
 
 
 
ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
compileSdkVersion 27
buildToolsVersion '27.0.3'

defaultConfig {
multiDexEnabled true

minSdkVersion 21
targetSdkVersion 27
versionCode 128
versionName "1.976"
}


버전코드 까먹었다. ㅡㅡ; 소스 깃헙이 진짠지 빗벋켓이 진짠지 몰라서 암꺼나 받아서 빌드되게 했다.

이제 제대로 해야지. 오픈소스로 관리해서 후진에게 나누어 줘서 대학생의 기회로 만들어줘야 겠다.





새벽에 문득 FSF의 리차드 스톨만이 했던 이야기의 정수를 깨달았다.

오픈 소스로 하는데 어떻게 돈을 버냐는 그의 생각은 기술 지원이었다. 그 당시에 나는 그가 교수기에 할 수 있는 말이라고 생각을 했었다. 그러나 그것은 포인트를 제대로 짚은게 아니었다. 그가 생각하는 전제는 평생 개발자를 하면서 생활하라는 것이었고, 그것을 잘못 이해하는 것은 개발이 노가다라고 생각하는 것이다. 그것이라면 오픈 소스를 어느 순간에 거대한 돈을 벌어들이는 도구로 밖에 생각하지 못한다.

그동안은 오픈소스를 자유 소프트웨어와 전혀 다르고, 변질된 수준의 문화라고 생각을 했다. 그래서 나 역시 오픈 소스를 감춰서 돈을 버는 스타트업이나 대기업(이미 밝혔지만 대기업은 결국 돈을 준다)과 같이 돈을 벌어보자는 생각이었다.

자유소프트웨어나 오픈소스를 파도로 생각한다면 서퍼는 단순히 그 파도를 즐기도 탈 생각을 할 것이다.

본질은 거기 있었다. 개발은 재미있고 즐거운 것이고 즐긴다면 분명 잘할 것이기에 어떤 형태로든 돈을 벌 수 있다고 본 것이다. 레드햇의 RHEL은 윈도우 서버보다 비쌌다. 그 이유는 리눅스를 이용하기에 쓸 수 있는 무료 DB만 해도 MSSQL 가격을 포함시켜도 되었기 때문이다. 그래서 돈을 밝힌 레드햇과 마소는 손을 잡을 수 있었던 것이다.

이렇게 이해가 되고 나니 FSF 가 더 대단해 보인다. 리차드 스톨만을 이을 사람이 더이상 FSF에 있을까? FSF 프로젝트가 엎어지고 지금 하는 운영을 보면 스톨만의 말을 전달하는 매개체 정도로만 생각된다. 후원도 끊었고(진짜 사실은 함께하는 사랑밭 후원만으로도 빠듯하다 ㅠㅠ)

리차드 스톨만은 정말 이 시대의 마지막 해커로 남을 것인가. 그나마 교육 분야에 걸친 내가 많이 전파해야겠다. 개발의 즐거움을.

스타트업에서는 그렇게 살 수 밖에 없다고 말할 것이다. 그런데 본디부터 재미를 추구하며 살았기에 가족이 있어도 한 사람 말만 믿고 모든 반대에도 어려운 선택을 할 수 있었던 것이다. 덕분에 더러운 새끼들의 본 모습을 알 수 있어서 더더욱 학생들에게 좋은 교육을 가르쳐 주고 수년 지나면 잘 사는 모습을 종종 볼 수 있어서 해당 부분은 더욱 좋다.(전체적으로는 별로 좋지 않다. SI SI)

오버워치 한판하고 자야 겠다. KT는 잘된다. 패킷 필터링 제거해서 너무 잘된다. KT 는 카스퍼스키와 제휴를 맺었으면 한다.

간만에 dicecamera 소스를 펼쳤다. 3년만인가... 빌드 잘되고 실행 잘되어서 PLAYSTORE에 들어가봤다.
 
 
프로덕션 버전으로 새로운 인스턴트 앱 출시

출시 준비

검토 및 단계적 출시

버전에 추가될 인스턴트 앱 APK입니다.


인스턴트 앱 APK는 이 버전이 출시된 후에 인스턴트 앱으로 사용자에게 제공됩니다.



인스턴트 APK 업로드 


라이브러리에서 인스턴트 APK 추가 



출시명


내부 코드나 빌드 버전과 같이 Play Console에서만 출시를 구분할 수 있는 이름



앱 이름을 바꾸려 했는데 2015년에 올렸던 앱은 프로덕션에 아예 없었다 ㅡㅡ; 관리 페이지 만들면서 앱스토어에 올린 것 빼고는 자료를 다 날려버린 것 같다. 우와... 뭐, 어쩔 수 없지.


이런 것 보면 플랫폼화 할 수 있는 여력이 있는 것은 아닌 것 같다. 수많은 기업들이 아이디어를 내고 그 속에서 경쟁하는 것이 더 낫다고 생각하겠네. 어차피 정책 바꾸면 정부 정책과 같이 따라갈 수 밖에 없으니...


업로드 실패


인스턴트 앱 APK는 하나 이상의 기본 APK를 포함해야 합니다.
다른 인스턴트 앱 APK 업로드
 
APK를 올렸는데 에러 났다.
 
V2 사인만 해서 그런가?
 
V1 사인도 해봤다. 똑같은 에러... 설마 진짜 zip으로 올려야 하나? apk가 zip인데 
 

업로드 실패

인스턴트 앱 APK에는 26 이상의 targetSdkVersion이 포함되어 있어야 합니다.
 


우와 진짜다... 릴리즈 폴더에 있는 json가 함께 압축해서 올리니 된다. 통제군이 제대로 되지 않고 막 하니까 원인 파악은 제대로 안된것이긴 해도 이제 시킨대로 타켓만 26으로
바꾸자.
 
빌드하는 김에 V2 사인은 빼고 V1 사인만 해보자.
 
Error:Execution failed for task ':app:lintVitalRelease'.
> Lint found fatal errors while assembling a release target.
  To proceed, either fix the issues identified by lint, or modify your build script as follows:
  ...
  android {
      lintOptions {
          checkReleaseBuilds false
          // Or, if you prefer, you can continue to check for errors in release builds,
          // but continue the build even when errors are found:
          abortOnError false
      }
  }
  ...
 
에러나네. 사이닝은 관계 없어 보이고 다시 리빌드 하니 버전 어쩌구해서
 
compile 'com.google.android.gms:play-services-gcm:11.8.0'

버전 올렸다. 7점대 였는데.
 
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
 
에러난다. 스택 오버플로 검색
 
https://stackoverflow.com/questions/46267621/unable-to-merge-dex
 
com.google.android.gms:play-services:11.4.0
 
 
 
Error:resource android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found.
Error:resource android:style/TextAppearance.Material.Widget.Button.Colored not found.
Error:failed linking references.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'.
> Failed to execute aapt
 
 
그 사이 API가 많이 바뀌었나보다.
 
https://stackoverflow.com/questions/47309646/fail-to-decrease-api

compile 'com.android.support:appcompat-v7:26.0.2'

버전 업데이트만 하면 된다.
 
----
 
스타트업이 갑자기 또 생각난다. 라이브러리 땡겨서 쓰면 계속 에러난다고 그렇게 하면 안된다고 했었다. 그러다가 하성이가 팟을 가르쳐 줘서 그 이후로는 팟을 쓰게 되었지. 기술적인 것이야 언제든 포지션을 바꾸던 말을 바꾸던 상관없다고 생각한다.
 
그리고 어떤 라이브러리는 업데이트 된게 궁합이 안맞는 경우(나도 처음 생각에 동의하는 이유가 큰 프레임웍을 많이 다루다 보니 업데이트하면 그냥 다른 소프트웨어)가 있기에.
 
똑같은 범죄라도 살인자와 좀도둑은 구분해야 하듯이. 변화를 일반화 시키면 안된다는 생각이 문득 들어서... 이게 타산지석인가 ... 참, 1년만에 기억력 천재가 된 남자에 보면 뇌는 특정 사실을 일반화 하는 경향이 있다고 한다. 그래서 올블로그 때 주식 야금야금 거둬서 수십억 챙긴 사람이 나에게 투영되거나 혹은 뒤집어 씌워지거나 좋은 변명거리가 될 수도 있겠지. 이렇게 생각하면 할수도 한킴이란 새키가 정말 싫어진다. 회사 선배 한킴은 더없이 좋은 엔지니어였는데 ㅡㅡ; 아오. 진짜. 짜증.
 
----
 
여튼 별거 없이 다시 잘 빌드 된다. 하위 호환성은 이정도면 잘 지켜 준다고 봐야 겠다.
이제 달라진 API도 좀 습득하고 해야 겠다. 임베디드 보드쪽도 안드로이드를 올리는 경우가 많아 졌다. iOS야 당연히 못 올리지만... 윈도우는 이제 오픈으로 방향을 틀어서 윈도우는 걍 올라간다. 고객의 입장에서 쓰기엔 애플 계열이 좋고, 개발자가 몸 값 올리고 돈 버는 입장에서는 안드로이드가 좋은 것 같다. 액수를 떠나서 오픈소스는 워낙 활동 범위가 광범위 하니까.
 
그나저나 zip으로 바꾼 이유는 뭘까? 심플미를 추구하는 구글이 번거럽게 만든 이유가 궁금하다. 
 
빌드하고 키보드 치는 동안 에러 났다.


인스턴트 앱 APK의 AndroidManifest에 올바른 'android:targetSandboxVersion' 속성이 선언되지 않았습니다. 'com.android.feature' Gradle 플러그인을 사용하여 인스턴트 앱을 빌드하면 이 속성이 자동으로 추가됩니다.

android:targetSandboxVersion="1"


을 매니페스트 application에 추가했다.
 
<application    android:targetSandboxVersion="1"

또 dex 오류 난다. 아무거나 버전 하나만 올려도 잘 될 것 같다.
 
https://developer.android.com/topic/libraries/support-library/packages.html
 
에서
 
compile 'com.android.support:support-v4:23.1.0'
 
얘를
 
compile 'com.android.support:support-compat:27.0.2'
 
얘로 바꾸어 주었다. 이름도 바꾸었구만 ㅡㅡ; 개발 팀장이 바뀐듯.
 
똑같이 dex 에러... 그래 시간 투자해서 저 링크에 있는대로 다 바꾸어 주자.
 
compile 'com.android.support:support-v13:23.0.0'
 
compile com.android.support:support-v13:27.0.2
도 바꾸고...
 
compile 'com.google.android.gms:play-services:11.4.0'
 
도 뭘로 바꾸고... 기타 등등
 
compile sdk도 27로 올려준다. 그래 최신 쓰자!
 
https://developers.google.com/android/guides/setup
 
여기도 참고해서 다 올려준다.
 
업데이트 한다.
 
빌드 잘되고 APK 뽑아진다.
-------------------------------

새벽에 메뉴를 찬찬히 둘러 볼 수 있어서 메뉴를 둘러 보았다.

https://developers-kr.googleblog.com/2017/06/android-instant-apps-is-open-to-all.html

인스턴스 앱이라고 나왔네 ㅡㅡ;

바뀐게 아니라 설치없이 실행할 수 있는 종류의 앱이었다.

출시관리 - 앱버전에서 무리없이 업로드 완료.

 

 

 

  LD [M]  net/netfilter/xt_nat.ko
  LD [M]  fs/efivarfs/efivarfs.ko
  LD [M]  net/netfilter/xt_MASQUERADE.ko
  CC      arch/x86/boot/compressed/misc.o
  GZIP    arch/x86/boot/compressed/vmlinux.bin.gz
  MKPIGGY arch/x86/boot/compressed/piggy.S
  AS      arch/x86/boot/compressed/piggy.o
  LD      arch/x86/boot/compressed/vmlinux
  ZOFFSET arch/x86/boot/zoffset.h
  OBJCOPY arch/x86/boot/vmlinux.bin
  AS      arch/x86/boot/header.o
  LD      arch/x86/boot/setup.elf
  OBJCOPY arch/x86/boot/setup.bin
  BUILD   arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready  (#1)

real    0m48.213s
user    24m37.331s
sys     3m7.076s

 

48개 CPU에서 바닐라 커널 컴파일 1분도 안 걸린다.

+ Recent posts