반응형

Unified Extensible Firmware Interface(통일 확장 펌웨어 인터페이스) 읽을 때는 유-이-에프-아이 식으로 알파벳을 읽기도 하지만, 유이파이라고 읽기도 한다. 2016년 기준으로 버전 2.6이 최신이다.

BIOS를 대체하는 펌웨어 규격으로, IBM PC XT부터 이어진 바이오스의 제약 사항을 극복하고 새로운 하드웨어를 더 유연하게 지원하기 위해서 개발되었다. 개발은 90년대부터 진행되어 EFI(Extensible Firmware Interface)라는 이름으로 인텔 아이태니엄 시리즈에 사용되었으며, 2005년에 규격을 제 3사에도 공개하여 현재의 이름인 UEFI로 변경되었다. x86 아키텍처에는 2006년 맥북부터 천천히 도입되었다. 인텔 기준 945 이후 칩셋이라면 UEFI 사용이 가능하지만, 메인보드 제조사들은 샌디브릿지용 6 시리즈 칩셋 이전까지는 UEFI를 전격적으로 사용하지 않았다. AMD 쪽은 800 시리즈(AMD 페넘2/AMD FX)부터 사용 가능하다. UEFI 초창기 시절의 일부 염가형 보드는 바이오스 업그레이드로 EFI의 탈을 쓴 일반 BIOS가 온전한 UEFI 지원이 되게 하는 경우도 있다.

BIOS에서 UEFI로 전환되는 시기에는 같은 메인보드 칩셋이라도 모델에 따라 펌웨어 종류가 다르기도 했다. 2008년 MSI에서 EFI를 탑재한 P35 Neo3-EFINITY 메인보드를 내놓았으나, 시기상조라 여겨지면서 신기한 물건 정도로만 이목을 끌었을 뿐 그다지 많이 팔리지는 않았다. 기가바이트는 4 시리즈부터 Hybrid EFI라는 것을 사용하여 UEFI의 기능 중 3TB 이상의 디스크 사용을 위한 GPT 파티션 테이블 및 EFI 부팅만 첨가한 바이오스를 사용했다. AMD 메인보드는 초기 리비전은 바이오스로 내놓다가 후기 리비전에서 UEFI를 사용하는 경우도 있다. 나중엔 제대로 된 UEFI 보드들을 내고, 듀얼 바이오스의 전통을 이어받아 듀얼 UEFI를 지원한다. 애플은 첫 인텔맥부터 모든 모델이 UEFI를 사용한다.



사용자가 느끼는 가장 큰 차이점은 펌웨어 사용자 인터페이스와 GPT 부팅이다. 진입 방법은 BIOS와 똑같이 Delete나 F2. OEM 컴퓨터나 노트북의 경우 다를 수도 있다. BIOS 시대에는 일부 486-펜티엄 보드에 사용한 AMI 바이오스에서 GUI와 마우스를 지원한 것을 빼면 모든 사용자 인터페이스는 CUI 기반이었다. UEFI로 오면서 GUI 기반 펌웨어를 탑재하는 메인보드 제조사가 많아졌다. 펌웨어 개발사인 AMI의 레퍼런스 UEFI Aptio의 기본값은 CUI이지만 제조사에서 GUI로 변경할 수 있다. 그래서 HP나 페가트론 같은 OEM 업체이거나 인지도 없는 브랜드는 UEFI 메인보드라고 해도 CUI만 사용한다. 심지어 인텔 베이트레일 기반 태블릿 및 삼성 아티브 계열에 들어가는 UEFI는 마우스 조작과 더불어 터치 조작도 지원한다. 태블릿에는 물리 키보드가 없기 때문에 가상 키보드까지 지원한다. 물론 UEFI 펌웨어의 터치 스크린 드라이버는 필수적인 조작만 되면 되기 때문에 OS로 부팅한 상태보다는 터치감이 안 좋을 수 밖에 없다.

BIOS 시절부터 사용한 MBR(Master Boot Record) 기반 파티션 테이블은 주 파티션을 최대 4개까지밖에 잡을 수 없고 그 이상으로 나누려면 논리 파티션을 사용해야 한다. 문제는 OS와 부트로더가 지원하지 않으면 주 파티션에 설치된 OS로만 부팅 가능하며, 전체 디스크 크기가 2TB를 넘어가면 초과분부터는 무슨 짓을 해도 해당 공간을 사용할 수 없다. GPT(GUID Partition Table)는 파티션 정보를 기록하는 방식을 변경하여 주 파티션과 논리 파티션의 구분을 없애고 2TB 이상의 디스크도 사용할 수 있게 되었다. GPT 파티션 테이블에 기록되는 정보가 더 많기 때문에 MBR과 GPT는 서로 호환되지 않는다. 따라서 파티션 테이블 구조를 변경하려면 해당 디스크의 모든 파티션 테이블을 지워야 하기 때문에 데이터가 손실된다. 윈도우 기준 명령 프롬프트로 가서 diskpart-select disk=?-clean-convert GPT 명령으로 파티션 테이블 구조를 변경할 수 있다.



다만 GPT 디스크로 부팅하려면 EFI가 필요힌건 사실이나, 반대로 EFI 부팅=GPT 부팅은 아니다. 디바이스가 BIOS가 아닌 EFI 펌웨어를 사용하기만 한다면 MBR-EFI의 조합도 가능하다. Windows에서 이게 불가능한 이유는 GPT를 권장하기 위해 MBR 디스크에서 EFI 지원을 막아놓았기 때문이다.

이 외에도 후술하는 Secure Boot, 펌웨어 단계에서의 부트로더 관리, OS에서 펌웨어 설정에 접근하는 표준 인터페이스 등 기능이 추가되었다. BIOS 기반 컴퓨터에서 부팅할 때에는 해당 부팅 장치의 MBR에 접근해야 OS 코드가 실행되지만, UEFI 펌웨어는 디스크에 설치된 부트로더 정보를 가지고 있기 때문에 OS 코드의 일부를 UEFI 단계에서 실행할 수 있다. 빠른 부팅을 지원하는 것은 덤. UEFI 메인보드 및 하드웨어, 부팅 속도 Ultra Fast 설정+SSD+UEFI 지원 OS 조합으로 우사인 볼트의 부팅 속도를 체험할 수 있다.심지어 G2030 아이비브릿지+4GB Ram이라도 SSD+Windows 8.1이라면 10초는 커녕 5초도 안되어 암호 입력 화면으로 넘어간다!이제 세계신기록 찍는 일만 남았다 

윈도우의 경우 UEFI 모드로 제대로 설치되면 부팅 단계에서 윈도우 로고 대신 UEFI 제조사(메인보드 및 OEM) 로고가 뜨고 윈도우가 로딩된다. Windows Vista/7은 UEFI 부팅을 지원하지만 모든 기능을 사용할 수는 없으며, Windows 8이나 Windows 8.1 또는 Windows 10에서는 더 많은 기능을 지원한다. macOS는 출시 당시부터 UEFI를 지원했다. 리눅스는 x86 OS 중 가장 먼저 UEFI 부팅을 지원했으며, UEFI를 지원하는 GRUB2 등 부트로더를 사용하면 된다. Windows Phone도 UEFI를 사용한다.

BIOS에 비해서 관리하는 하드웨어 범위가 증가했고, 그만큼 기능도 증가했기 때문에 구현을 제대로 하지 않았을 때 OS에서 문제가 발생할 확률이 더 높아졌다.


반응형
반응형

원본내용

http://baijiahao.baidu.com/s?id=1580576847095185012&wfr=spider&for=pc


1. 제작 기술(품질)이 무척 좋지 않음

    올해의 아이폰8은 양면유리에 중간은 금속테두리 설계를 하였으며, 이전의 아이폰4와 같으나 제작 기술(품질)은 아이폰4에 미치지 못한다.

심지어 많은 네티즌은 자기가 구입한 아이폰8 핸드폰에 무척이나 큰 갈라진 틈이 있다고 하였는데, 이러한 핸드폰은 정말 방수방진이 가능하게 만들었다고 할 수 있는가?


2. 액정 황색 나타남

    아이폰 핸드폰에 황색이 나타나는 것은 오래된 문제라고 할 수 있는데, 이전의 아이폰7도 이랬다.

단지 올해의 아이폰8 액정에 황색이 나타나는 것은 이미 사용에 일정부분 영향을 주고 있으며, Ture Tone기능을 꺼놓은 후에도 여전히 황색이 나타난다.


 

3. 통화품질 안좋음

    통화품질 문제도 애플의 오래된 문제이다.

이전의 아이폰7도 이미 통화 시 잡음이 있어 불만을 가져 왔으나 아이폰8에도 나타나고 있어, 이 문제는 업그레이드를 하여야 하는데 통화 시 심지어 삐리삐리의 새가 우는 소리가 나타나며, 심각할 때는 심지어 통화자의 소리를 들을 수 없다.


4. 후면 유리 쉽게 깨짐

     아이폰8은 양면유리설계로 돌아 갔으나 유리가 쉽게 깨지는 문제를 해결하지 않았다. 네티즌이 말하기를 아이폰8을 구입한지 며칠 되지 않아 땅에 떨어졌는데 뒷면 외피(유리)가 깨졌다고 했으며, 수리비용도 무척이나 높아 자신이 마치 곤경에 처한 느낌이라 하였다.(무척이나 난감한 상황이라는 의미)


5. 배터리 문제

    아이폰8이 시장에 나온 후 이미 6건의 배터리 사고가 나타났는데, 국내(중국)에서도 이미 이러한 사례가 있었다.

아이폰8의 배터리공급상은 작년 삼성노트7의 배터리 공급상일 뿐만 아니라, 아이폰8의 무척이나 많은 부속품도 모두 삼성에서 온 것이다.(삼성의 부품을 사용하였다)


 

아이폰8이 정식으로 판매될 때부터 판매량이 좋지 않다는 소식은 계속해서 애플의 면전에서 맴돌고 있다.

최근 미국회사는 이번 주에 발표하기를 장차 11월 2일 애플의 4사분기 재무재표를 발표한다고 하였다.

많은 분석사들은 애플이 이번 재무재표 중에서 아이폰8의 판매량을 공포할 것이라 여기고 있다.

판매량은 계속해서 무척이나 낮은 상태이며, 작년에 사람들이 몇 백미터의 대오를 이루었는데 바로 아이폰7을 구입하기 위해서였다.

그러나 지금 아이폰8은 몇 사람의 대오만이 있을 분이며, 어떤 경우는 하루 종일 한 사람의 대오도 없다.(찾는 사람이 없다)

아이폰8을 판매한 것이 배달이 되지 않기 때문에(구입 후 반환하였다는 의미) 순펑(택배회사 이름임) 창고에는 아이폰8이 가득 쌓여 있으며, 아직도 많은 사람들이 순펑의 택배에서 배달한 아이폰8을 수령하기를 거부하고 있고, 여기에 더해 많은 사람들이 반품을 하고 있어, 순펑창고에 쌓아 둘 수가 없다.


아이폰8은 기타 방면에서는 상당히 특출하다고 할 수 있으나 이번의 배터리 문제는 대기업의 풍격이 아며, 우리가 희망하는 것은 애플이 최대한 빨리 이러한 것들에 대해 정확하게 답변을 해주는 것이다.

자세히 생각해 보면, 우리 국산(중국산) 핸드폰 제품도 이미 다양화 되었으며, 애플이 만일 품질보증을 할 수 없는 상태로 핸드폰을 만든다면, 국산핸드폰에게 조만간 초월을 당할 것인데, 여러분은 애플의 배터리 사고를 어떻게 보는가?

반응형
반응형

[ rpm Install 방법 ]

1. 터미널을 실행 합니다.

2. 터니널에 아래 내용을 복사하여 붙여넣기 하고 실행 합니다.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

3. 위 명령어 실행이 끝나면 아래 명령어를 터니멀에 다시 붙여 넣기 합니다.

brew install rpm


[ RPM 설치/확인/제거 ]

설치

rpm -ivh 패키지명

확인

rpm -qa | grep 패키지명 

제거

rpm -ev 패키지명


반응형
반응형

괜찮은 사이트 소개 합니다.

유니코드 변환 사이트 인데요 

사용법도 간단하고 성능 우수 합니다.

아래와 같이 테스트 해보았습니다.


<한글 입력 후 변환>


<유니코드 입력 후 변환>


엄청나내요 


http://r12a.github.io/apps/conversion/


반응형
반응형

cocos2d-x에서 android를 컴파일 하다 보면 아래와 같은 에러가 날 때가 있다.

*** non-numeric second argument to `wordlist' function: '9 19'.  Stop.


아래 파일을 확인해보자.

proj.android/jni/Application.mk


APP_PLATFORM을 살펴보자.

APP_PLATFORM += android-9 android-19


위와 같이 되어 있다면 수정해주자.

APP_PLATFORM += android-19


다시 컴파일 하면 정상적으로 된다.


Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 9 in ./AndroidManifest.xml    

라는 경고가 뜨긴 하는데 신경쓸 필요 없다.








반응형
반응형

cocos2d-x로 개발하다 보면 실제 코딩을 

OSX 유저는 Xcode, Windows 유저는 Visual Studio를 사용 합니다.


저는 Xcode를 사용 하는데 바보 같은 실수를 하여 시간을 낭비했습니다. ㅠ_ㅠ


개발 10년차가 맞는가 하는 오류를 범하고...

혹시나 저와 같이 시간을 낭비하는 분들이 계실까봐 간단하게 글 남깁니다.


저는 아래와 같은 코드를 작성했습니다.

char szDiceFilename[10] = { 0, };

sprintf(szDiceFilename, "dicenum_%d.png", 1);


무엇이 문제 일까요?

무엇 때문에 "stack corruption detected" 에러를 Android에서 발생시키는 걸까요?


벌써 다들 눈치 채셨겠죠? 

메모리 할당을 10byte만 해놓고 13byte를 복사하려고 해서 발생한 문제 입니다.


왜 이런 오류를 범했는가?

컴파일 때는 에러가 발생하지 않습니다.(당연히 컴파일러는 얼만큼 사용할지 모르기 때문이죠^^)

더 큰문제는 Xcode로 컴파일하고 iOS에서 실행을 하면...

두둥...


문제가 발생하지 않습니다.

iOS기기 특성상 부족한 메모리를 자동 할당해주기 때문이죠!!


근데 어디서 문제가 발생하느냐!!

Android 에서 실행시 문제가 발생합니다.


해결 코드 입니다.

char szDiceFilename[32] = { 0, }; //10바이트 할당을 32바이트로 할당

sprintf(szDiceFilename, "dicenum_%d.png"1);


너무 간단한거라 포스팅 하기도 좀 그랬지만.. (사실 창피한게 99%)

혹시나 저 같은 오류를 범하시지 말라고 ^^


메모리를 아껴보겠다는 의지는 아니였지만... 

아무생각 없이 빠르게 개발하다 보면 위와 같은 실수를 할 수 있으니 조심하세요!

반응형
반응형

오늘 급하게 iOS9를 대응하기 위해 

Xcode를 7버전으로 업데이트 하게 되었습니다.


항상 업데이트를 하면 먼가 불안 합니다. 반드시 이전에 없던 에러가 생긴다거나

앱이 실행이 안된다거나 하는 문제가 발생하기 때문입니다.

하지만 업데이트를 하지 않을 수 없죠.


애플같은 경우 일정기간동안 수정할 시간을 주고 그 시간이 지나면 

자신들의 가이드에 맞지 않는 앱들은 검수에서 리젝 당하기 때문입니다. 

그래서 항상 리젝을 피하기 위해 최신버전으로 유지 하는 것이 좋습니다.


물론 한전에 하면돼 라고 생각 하실 수 있겠지만 한번에 하려고 하다보면

더 많은 에러가 발생하고 어떤 문제 때문인지 알기 더 어렵습니다. 


그래서 저는 항상 업데이트가 되면 베타 버전이 아닌 이상에는 최신 버전을 유지하고 있습니다.


그럼 이번 업데이트 하고 나서 어떤 문제가 생기는지 알아 보도록 하겠습니다.


업데이트 하고 나서 제일 처음 발생한 문제는 5.x 버전을 지원하지 않는 다는 점!

아래와 같은 에러가 발생 합니다.


clang: error: -fembed-bitcode is not supported on versions of iOS prior to 6.0


최소 버전을 6.0이상으로 해야 빌드가 되는 건데 5.x 버전을 애플에서 이제 버리는 것 같습니다.

이정도는 문제도 아니죠 ^^ 간단하게 타겟 버전 변경하여 해결 하였습니다.

항상 이정도의 문제면 행복할꺼 같습니다.


General 에서 Target을 6.0 이상으로만 변경 하시면 됩니다.


하지만 이렇게 쉽게 끝내줄 애플이 아니죠. 

해결하고 나니 두번째 문제가 나타납니다.

clang: error: linker command failed with exit code 1 (use -v to see invocation)


무슨 문젠가 검색해 보았습니다.

does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64


아직 자세하게는 모르겠으나.. 대충 BITCODE를 사용하지 않으면 꺼주라는 얘기인거 같아 찾아 보았습니다.

Build Settings -> Build Options 에 가보니 Enable Bitcode라는 것이 있습니다.

Bitcode라는 것이 사용해보진 않았지만 새로 생긴것 같은데 아직 왜 사용해야 하는지는 모르겠습니다.

추후에 다시 포스팅해보도록 하겠습니다.

Enable Bitcode를 No로 해주니 문제해결!



일단은 모든 문제를 해결하고 정상빌드를 확인하였습니다.

하다보면 무슨 문제가 발생할지 모르겠지만 ^^

발견하는 대로 올리도록 하겠습니다.


모두들 iOS버전업으로 고생하시겠지만 힘내세요!




반응형
반응형

친한 지인분에게 티스토리 애드센스 신청이 안된다는 연락이 와서 

급하게 테스트 해보고 해결 방법 알려 드립니다. ^^


"URL에는 경로(예: example.com/경로) 또는 하위 도메인(하위도메인.example.com)이 포함될 수 없습니다. 자세히 알아보기"

라는 메시지가 나오는데 그럼 티스토리는 하위 도메인이라 안되는거야 ????


저도 테스트를 해봤는데 위와 같은 메시지가 나오면서 신청서 제출이 안되더군요...




그리고 이 문제에 대해 구글에세 제공하는 도큐멘트를 보면...

4번째 목로글 보시면 티스토리 도메인과 같은 형태 입니다. 

정말로 티스토리는 안되는건가??



하지만 다른 티스토리 블로그들을 보면 이미 애드센스 배너 광고를 하고 있는 블로그들이 많습니다.

그분들은 ?? 정책이 바뀐건가.. 라고 생각 하던 중 구글 애드센스 팀에 문의


"혹시 사용하시는 컴퓨터의 IP가 어떻게 되세요??"

IP를 알려주자.. 해외 거주자 세요?

"아니요"

"아이피 주소가 라오스로 나오고 있습니다." 


허허허 지금 사용 중인 인터넷이 콘텐츠 진흥원에서 공급받고 있는 IP인데 이 주소가 라오스라니....

그리고 한국 IP를 가지고 제 신청한 결과..


무사 통과!! 지인분들도 통과!! 


결론부터 말씀 드리면...

애드센스 팀에서 해준 얘기는 해외에서는 아직 티스토리와 같은 하위 도메인을 가진 주소는 안된다고 합니다.


해결 방법은

해외 거주자 분들은 한국에 계신 분들에게 아이디와 패스워드를 알려준 후 부탁드리는 방법과

아이디/패스워드 노출이 불안 하신 분들은 한국에 있는 컴퓨터에 원격 접속하여 신청서를 제출하는 방법


국내 거주자 분들 중 안되는 분들은 

http://ip60.kr/ 

에 접속하여 자신의 아이피와 위치를 확인 후 국내가 아니라면

국내 아이피를 사용하여 해보시길 바랍니다.


별거 아닌 문제 였는데...

아직 블로그 컨텐츠가 부족하여 애드센스 신청을 미루고 있지만(어차피 거절 당할거라 컨텐츠 부족으로 ^^)

이제 티스토리 안되는 건가.... 놀란 가슴 부여 잡고 글을 남깁니다. ^^


감사합니다.




반응형
반응형
게임한번하려는데 먼가 안돼서 설치하라고 해서 설치도 했는데 설치도 안되고 하면 
엄청 짜증날겁니다. 컴퓨터좀 하신다는 분들이야 간단하게 해결 하시는 분들도 있겠지만
컴터를 웹서핑과 게임만 다룰줄 안다면 갑갑하기 마련입니다.
주변 컴퓨터 좀 한다는 지인들에게 물어봐서 해결할 수 있지만 내가 아이유 같은 이쁜 여자가 
아니라면 곱게 알려주는 사람 별루 없을 겁니다 .

그래서 초보분들도 직접 해보시라고 포스팅 남겨 봅니다.

Visual c++ 2005 Redistributable 와 같은 프로그램을 설치 할 때 간혹 

“Command line option syntax error. Type command /? for Help” 와 같은
에러가 발생하면서 설치가 불가능 합니다.

이유부터 말씀 드리면 사용자 명이 한글로 되어 있을 때 발생합니다.
설치 시 temp폴더에 압축을 해제 후 설치를 하게 되는데 간혹 가다 한글 폴더명을 읽지 못하는 문제가 있습니다.

예를 들어 사용자명이 "아이유"로 되어 있을 경우 
"c:\Users\아이유\AppData\Local\Temp" 에 압축을 풀게 되죠.
아이유라는 한글 폴더 때문에 간혹 설치 문제가 발생하는 것 입니다.

해결방법을 알아 보겠습니다.
아이유라는 사용자 명을 영문으로 "아이유"에서 "iu" 라고 변경해 봐야 한번 사용자 폴더에 생성된 폴더는 변경되지 않습니다.
그렇다고 프로그램 하나를 설치하자고 사용자를 새로 영문으로 생성하여 하는 것은 시간도 낭비이고 
기존에 설치된 프로그램들을 재설치 해야 하는 문제도 발생할 수 있습니다.
이때 간단하게 문제를 해결 할 수 있는 방법이 있습니다.

바로 temp폴더를 변경하는 것 입니다. 
저도 같은 문제를 겪어 이것저것 해보았지만 이 방법이 젤 편하고 간단하였습니다.

temp폴더를 변경하는 방법은 아래와 같습니다.

"제어판 > 시스템 및 보안 > 시스템" 으로 이동 합니다.

고급 시스텝 설정을 클릭합니다.



환경 변수 버튼을 클릭 합니다.



환경변수에 빨간박스안에 있는 2개의 temp path를 위와 같이 변경해주면 설치가 가능합니다.



기존에 있던 값 들로 되돌리기 원하신다면 설치를 하시고 기존에 값을 메모장에 저장해 두었다가 

다시 되돌리면 됩니다.


lol설치 하던 친구가 설치가 안된다고 짜증을 내어 혹시나 같은 불편함을 겪고 있는 분들이 계실까 해서

간단하게 설치 하시라고 몇자 적어 보았습니다. ^^




반응형

+ Recent posts