분류

2018년 3월 23일 금요일

2018 니로 구입 및 칼트윈 썬팅 후기. (소소한 지름 이야기입니다.)

1. 니로 구매 

작년 2월에 구매한 중고차는 끊임 없는 고장으로 연 200만원 가까운 수리비를 탕진했음에도 불구하고 잔 고장도 나고, 아침 출근길이 평균 속도 15km/h의 심한 혼잡 구간이다 보니 연비도 5.5km/l로 일주일 유류 비가 4~5만원이나 발생하는 관계로 차량 구매를 생각하다 보니... 하이브리드에 꽂혀 정말 여러가지 알아본 결과. 가격 대비 성능으로 아이오닉 vs 편의성의 니로를 고민을 하다 니로를 선택하게 되었습니다.

소형,중형 SUV별 사이즈표로 보는 니로의 포지션 

니로를 중심으로 작은 것은 청색, 커질수록 붉은색으로 바뀌는 히트맵 형식으로 표를 만들어 보았습니다. 비교표를 만들어 놓고 보니 신기하게 고른 녀석들의 가운데에 위치하네요. 전장 길이가 소형 SUV와 중형 SUV의 경계 지점에 니로가 있습니다. 틈새 시장을 공략하는 포지션을 선택 했나 봅니다. 또 하나 눈에 띄는 것은 실내 공간을 형성하는 거리인 축거는 중형 SUV의 한 가운데에 들어가 있다는 것 입니다.

요약하면 '소형SUV 보단 전체적으로 크고 실내는 중형만큼 넓다.' 입니다.

※ 전장 : 차 앞에서 뒤까지 거리 , 전폭 : 차 앞에서 본 좌 우 거리, 전고 : 높이, 축거 : 앞바퀴 축 에서 뒷바퀴 축 까지의 거리

개인적으로 필요한 부분은 잘 생긴 외형보단 저속 연비 개선이었기에 외형은 크게 신경 쓰지 않았습니다. 다만 옵션에서 상당한 고민을 한 끝에 결론은 프레스티지(통풍 시트와 스티어링 열선, 그리고 드라이브 와이즈 때문에 ) 트림을 선택하였고, 옵션으론 18인치 휠 , 드라이브 와이즈, 썬루프, 7인치 내비게이션, ecm 룸미러의 5가지를 선택했습니다.

각 옵션 별 선택 사유 정리

니로에도 각 옵션에도 선택한 이유가 있습니다.
1. 니로 : 저속 구간의 연비가 좋으며, 거주 공간이 넓다. 필요에 따라 짐과 자전거를 싫을 수 있다. (여자친구와 자전거를 타기 위해 2대는 싣고 다녀야 합니다. 근거리 이동이 잦기에 귀찮은 캐리어 보다는 그냥 내부에 넣을 수 있는 녀석이 좋았습니다.)

2. 18인치 휠 : 기본 휠은 커버가 달려있는 휠이며 예쁘지 않고, 18인치 휠 형상이 개인 취향에 맞음.

3. 썬루프 : 이건 그냥 갖고 싶었던 것(사용했던 차가 올뉴아반떼, 아반떼hd, 모닝, 다마스, 라세티 프리미어 등... 모두 선루프가 없었습니다.)

4. 드라이브 와이즈 : 스마트 크루즈 컨트롤과 충돌 방지 시스템을 통한 생존력 향상과 편의성이 결합되어 유용해 보임. (없을 땐 있어도 좋고 없어도 좋은 옵션이라 생각했는데, 써보니 안넣었으면 어쩔 뻔 했어 정도의 옵션입니다.)

5. 7인치 내비게이션 : 전혀 필요 없을 것 같았으나. 스마트 크루즈 사용 시 차량과 연동되어 과속 방지 구간의 속도를 조절해줌

6. 하이패스 ecm 룸미러 : 회사 출장 시 하이패스 카드를 지급 받아 사용하나. 그간 카드 삽입 형 하이패스 카드가 아니어서 사용할 수 없었음. ecm은 쓰다 보니 없으면 불편함.

7. 후측방은 왜 안했나? : 모터그래프 후기를 보니 정지시켜주는 것도 아니고 그냥 알림이라면 별 도움이 안됨. 후진주차만 하기에 후측방으로 다닐 일이 거의 없음.(전면주차가 서툴러요) 게다가 뒤쪽이 짧은 차이기에 왠만하면 눈으로 다 보입니다.

니로가 2016년에 출시됐으니 올해로 3년차가 되어 페이스 리프트 버전이 나올 법도 한데 왜 하필 올해 사냐고 할 수 있습니다. 하지만 개인적으로 나쁘지 않다고 생각되고, 평소 통근 상황으로 계산했을 때 연 150만원의 기름 값 절약과, 차량 수리비 200만원이 세이브 되어 여러 스트레스에서 해소 된다면 나쁘지 않은 선택인 것 같습니다.


전기차나 수소차도 관심 대상에 있었지만, 인프라 부족과 장거리 주행 성능의 구현 등을 생각하면 앞으로 10년은 지나야 내연기관이 없이도 여러 부문에서 편안한 그리고 가격도 착한 시스템이 정착되지 않을까 합니다. 개인적으로 하루에 부산 왕복 쯤은 할 수 있어야 차라고 생각합니다. 전기차는 아직 그렇지 못하죠. 넥쏘도 고민의 라인업에 있었으나, 수소 충전소가 없다는 것이 작용했죠

인수와 등록 

처음 탁송 받았을 때 우측 문 하단이 약간 손상되어 오는 바람에 다시 공장에 입고해서 본래 인도 시점보다 몇 일 늦게 받았습니다. 뭐 이 부분에 대한 보상은 충분히 받았기에 큰 불만은 없습니다. 하지만 사용자가 매의 눈을 갖고 꼼꼼히 살펴봐야 만 한다면 "검수 시스템 문제있다." 라고 분명 말할 수 있네요. 사람이 바빠서 못본다면 레이저 형상 검수 장치를 같은 것을 도입하라고 말하고 싶습니다.

차량 등록은 셀프 등록 하러 등록 사무소에 방문 했는데 대행 아제가 서류를 챙겨줘서 쉽게 했습니다. 원래는 서류 챙기고 뭐하는거부터 차례대로 사진 찍어가며 내용좀 정리 해 볼까 했는데 흥이 식었습니다. (대행은 거절했습니다. 대행 아제 손해보셨죠... 이 부분은 죄송하게 생각합니다. 하지만 대행 신청 해도 대부분은 제가 해야 합니다. 그리고 가짜 사무관 딱지를 가슴에 달고 계셔서 신고해야 하나 엄청 망설였습니다. 공무원 사칭이라니....)

첫 번째 서류를 작성하는 부분이 무엇을 해야 하는지 몰라 어렵지.. 그 다음부터는 수납이기 때문에 어려울 것이 없습니다. 일단 접수만 하면 어느 창구에 가는지 찍힌 도장을 꽝 찍어 가는 길을 알려줍니다. 보험 가입을 하시고 가시면 편리합니다. 취등록세도 무인 수납기를 통한 카드 결제가 가능합니다.

자동차 보험 가입 

자동차 보험 가입이 안되어 있으면 차량등록이 되지 않습니다. 만약 가입하지 않은 상태로 갔다면, 일단은 차량 기본정보만 입력하고 다이렉트 보험으로 가입하세요. 최근은 다이렉트 가입이 전화 가입 보다 빠릅니다. 급하지 않을 경우는 뭐. 알아서 하세요 ㅎㅎ;

기존 차량 보험이 있을 경우에는 몇가지 옵션이 있습니다. 이것은 보험사 마다 차이가 있는데요, 이전 사용 했던 h 나 d사의 경우 차량 변경 시 차량을 추가등록 하고 3000원만 내면 됐었습니다. 제가 차량을 몇 대를 보유 하고 있던 보험료 차이가 크지 않았습니다.  하지만 올 해 사용하고 있는 s사의 경우 신규 가입으로 1일 - 1주일 짜리 가장 저렴한 보험을 새로 들고 이후 변경해야 합니다. 게다가 s사의 다이렉트 상품의 경우 한 보험에 한대의 차량 밖에 보장이 되지 않아서, 기존 타던 차를 중고로 판매 하기 전 까지는 2대의 보험을 별도 유지 해야 합니다.

단기 신규 가입은 1일-7일이 동일한 가격입니다. 하지만 무조건 7일로 가입해야 합니다. 전에 타던 차를 판매하고 보험승계를 하는 과정에서 몇 일이 걸리기도 하고, 무엇 보다 1일만에 처리가 다 끝났다면 , 1일 짜리 보험을 가입했을 경우 자동 소멸되고 끝이지만, 7일 짜리 보험은 6일간의 기간에 대한 금액을 환불 할 수 있습니다. 작다면 작은 돈이지만 약 3만원을 냈을 경우 약 2만원을 돌려받을 수 있습니다.

친환경 차량 스티커 부착

친환경 차라고 스티커를 주는데... 저는 붙이기 두렵습니다. 다니는 곳에서 5부제 스티커를 발급받아 사용해보니 한번 붙이면 떼는 일이 여간 힘든게 아닙니다. 그냥 창문에 막 붙이시면 나중에 스티커 위치 바꾸고 싶을 때 고생합니다. 아래처럼 하시면 간단하게 해결되유

다이소, 문구점, 팬시점 등에 가면 아이디 택이란 것을 팝니다. 그리고 흡착판도 팔아요. 아이디 택에 친환경 스티커를 넣어주고 흡착판을 달아주면 되요. 아이디택은 약 10cm x10cm 짜리 구입하시면 됩니다. 다 해서 1000원이면 됩니다.

넣을 때 접착 면을 손 바닥에 붙이고 넣으면 편합니다. 그냥 종이 넣듯 넣으면 붙어서 안들어가요. 접착 면을 손 바닥에 붙이고 끝까지 밀어 넣은 다음 밑면부터 천천히 접착시켜주세요.


친환경차 보조금 받기 

친환경차 보조금은 인터넷으로 접수가 가능하고 매우 쉽게 신청할 수 있습니다. 신청 완료 문자가 오면 2,3주일 가량 지난 후 받을 수 있다고 합니다. (홈페이지 공시에는 30일 이내로 나와있어요)

친환경차 보조금 사이트

친환경차 보조금을 받기 위해선 공인인증서. 그리고 차량 등록을 해서 정식 번호판을 받고 다음날 신청 가능합니다. (정식 등록 안되있으면 못받아요~) 경우에 따라 일주일이 걸린다고 합니다.

친환경차 보조금 등록을 진행하면 약 3영업일 이내에 접수 여부에 대한 문자나 서류 보완에 대한 문자가 옵니다. 해당 문자를 받으셨다면 기다리는 일만 남았습니다. 경우에 따라 1주일 만에 받는 분도 있지만 저는 3월22일에 신청해 4월16일에 받았습니다. 지급 일자가 매월 15일 인 것 같습니다.(이건 추측입니다.)


몇 일간 타본 니로는 어땠나? 

앞으로 이런 저런 이야기를 쓰겠지만 3일간 타본 소감은.. 5.5km/l -> 18.5km/l (실연비는 아직 주유 한 번 밖에 안해서 모릅니다.) 수치상으론 3배가 넘는 연비에 만족스럽고, 18인치 휠 장착 시 노면 소음이 크단 글을 많이 봤는데. 여태 탔던 소형, 준중형 차들하고 급이 달라서인지 전혀 없습니다. 다들 노면소음이 들린다고 하는데 80km까지 전혀 노면소음 없어요. 엔진음도 역시 조용합니다. 저희 동네 도로가 정비가 잘 되서 그럴지도 모르겠네요 ㅎㅎ (80km이상은 달려보지 않아서 몰라요)

스마트 크루즈 컨트롤은 생각보다 도심의 저속에서는 이녀석이 약간 급가속을 합니다. 비경제 운전의 직전까지만요. 앞 차가 옆으로 빠지거나 할 경우 얼른 달려서 더 앞에 있는 차와 거리를 조절합니다. 그래서 약간 도심에서 사용하기 불편한 면이 있습니다.(사고날 것 같아 조바심이 생깁니다.) 또한 잦은 코너링이 예상될 경우 사용하지 않는 게 좋습니다. 시내 구간에서는 차선 인식이 안되기 때문에 차선 유지 기능이 잘 인식 되지 않습니다. 그리고 앞에 차가 있지 않은 이상 자동으로 멈추지 않아요 ㅎㅎ;

니로의 장단점 

현재 보이는 단점이 없지는 않습니다. 트렁크가 생각보다 좁다. (의자 윗 공간까지를 트렁크라고 하기 때문에 스팩상은 약 450리터 정도 되는 거 같은데 기본은 그 반만 싣고 다니기 때문에 의자 어께너비 보다 작은 공간을 트렁크로 생각 할 경우 좀 작은 느낌이 있습니다. (짐도 없는데 이런 걱정을 합니다.) 서스팬션의 느낌도 40km이상으로 주행 시 과속 방지턱에 올라가면 약간 통통 튀는 느낌이 있습니다. 그리고 검수가 좀 꼼꼼하지 않습니다. (인수 싸인하기전에 꼼꼼히 봐야 합니다.). 그리고 신차 냄새 여기저기 접착재 묻힌 비닐이 있는데 냄새가 고약합니다. 머리 아플 정도 입니다.

장점은 저속 연비의 개선으로 18km/l 의 연비가 나오게되어 시내주행에서 평소보다 약 3배의 연비. 취등록세 150만원 면제 + 정부지원금 50만원을 통해 실 구매비 200만원 할인, 기본 오디오가 생각보다 좋습니다. 블루투스 연결시에도 깔끔하고 청명합니다. 오디오는 제겐 매우 중요합니다. 그런데도 고장나기 전엔 안 바꾸고 싶을 정도 입니다. 그리고 거주공간이 큽니다. 실제 크기는 옆에 마침 코란도 c가 있어서 비교해봤는데요
왼쪽이 코란도c 우측이 니로
높이는 코란도C가 약간 높지만 휠 베이스간 거리나, 전체 길이를 봐도 큰 차이가 없습니다. 뭐 4m 에서 6cm 차이니 위에 얹어놓고 보지 않는 이상 차이를 감지하기 어렵죠. 다만 코나, QM3, 스토닉, 티볼리 처럼 같은 소형 SUV들이랑 비교하면 확실히 큽니다.

칼트윈 썬팅

아이나비 칼트윈썬팅 비쌉니다. 최하 등급으로 하더라도 최소 55만원은 하지요.
시공 가격표와 스팩은 이 링크 http://www.kaltwin.com/Products/Price를 보시면 확인하실 수 있습니다.

이번에 아이나비에서 할인 행사를 18년 4월 9일까지 진행 한다고 합니다. 블랙팬서 에디션이라는 이름으로 합니다. 상세 정보는 아래 링크를 참조하세요
 http://www.inavi.com/Events/Ing/Dtls/1/?idx=504

블랙팬서 에디션으로 44만원까지 할인(약20%) 되기에 바로 영업점에 문의를 해봤습니다. 그랬더니 신차의 경우 기존 썬팅을 벗겨낼 필요가 없기 때문에 공임을 좀 더 할인해줄 수 있다고 합니다. LX 등급은 보증 7년 제법 괜찮습니다. RX등급부터는 10년 보증에 성능도 LX 등급에 비해 약 20% 정도 좋습니다.

썬팅 뭣이 중헌가? 

성능은 스팩은 따져보시면 아시겠지만 3M CS 등급 이상으로 보면 가격도, 보증도 제법 비슷합니다. 뭐 전문가가 아닌이상 그리고 실제 같은 차에 해보지 않는 이상 이게 좋다 저게 좋다는 알 수 없죠. 결국 소비자의 개취에 맡길 수 밖에 없는 부분입니다. 스팩만 갖고 이렇다 저렇다 하는 것은 결국 탁상공론 밖에 될 수 없지요. 뭐 그냥 열차단율, 자외선 차단율이 중요합니다. 그리고 가시성!

보증의 중요성은 썬팅은 오래가면 울거나 찟기기도 하고, 뜨는 부분이 생기기도 합니다. 색이 빠지기도 하구요. 보기 흉한채로 돌아다니기도 싫고, 또 하자니 돈드는 그런 부분을 예방해 주는 것이 보증입니다. (물론 사용자 과실일 경우 해당 없습니다.)


칼트윈 블랙팬서 에디션 특징은 일단 보조배터리를 증정합니다. 시가 19만원 상당의 제품을요. (이제 이벤트 시기가 종료되었습니다. )  그 외는 기존 칼트윈 제품을 20-15% 할인해주는 겁니다. 블랙박스 보조배터리 가격을 감안 하면 다른 썬팅과 전혀 가격차이가 없는 정도가 됩니다. 동일 등급 제품들과 비교하면 오히려 저렴해지죠.

'블랙팬서 에디션'이라기에 블랙팬서 마크가 있는 썬팅필름인줄 알았어요... 하지만 결론은 베터리+ 메탈스티커입니다.

매장에 찾아가 등급, 가격, 농도에 대한 짧은 이야기 끝에 RX등급으로 결졍 했습니다. 가격도 제법 저렴하게요.... (홈페이지 공시 가격만 보고 무척 부담스러워서 생각도 안했었는데, 우려를 모두 불식 시킬 만큼의 가격 이었습니다. 가까운 매장에 전화한번 해보시는 것을 추천합니다. )


게다가 보증의 주체가 이미 20년 넘게 내비게이션을 팔아오고 있는 아이나비 라는 것이 신뢰성이 가지요. 이런건 뭐 개인의 선호도 인 것 같습니다.

개인적으로는 이번에 아이나비 부사점(옴니트로닉 대전 부사점)에서 썬팅 작업을 했습니다. 뭐 이곳에 연고가 있는 것도 아니고 무료 이벤트도 아니고 제 돈주고 했습니다. 다만 이곳 주인장님이 너무 친절해서 약간 이야기를 풀어볼까 합니다.

친절과 할인은 기본이구요. 성격까지 좋습니다. 이벤트와 관련된 문의 내역에 대한 안내도 본사와 직접 상의해서 알려주셨습니다. 그리고 할인도 쿨했습니다. 또 마지막에 가장 감동적인게. 썬팅 중 밥먹으러 잠깐 다녀왔는데, 그 사이 앞유리 썬팅을 뜯고 다시 하고 계셔서 물어보니.. '제가 작업중 실수를 해서 스티커가 유리에 붙은걸 모르고 작업을 해서 떼고 다시합니다.' 라고 쿨하게 핑계 없이 말씀 해 주시더군요. 상!남자~

같은 남자로서 가장 좋아하는 스타일이 잘못 된 것은 잘못 된 것으로 인정하고 바로잡는 사람이거든요. (직장을 오래 하다 보니... 거지같은 놈들이 잘못을 인정안하고 남에 탓으로 돌리다가 걸려서 쫓겨납니다. 그게 몇 년이 지나든 탈로나더군요) 제 생각의 상!남자~는 자신의 과실을 모두의 앞에서 인정할 수 있을 만큼 수양이 된 사람입니다. 거짓말 뒤에 숨지 않는 사람요.

자기 실수를 인정하고 바로잡는 사람은 잘됩니다. 부사점 사장님 더 잘될거에요. 응원합니다. (안볼때 일어난 사고라면 적당히 감추는 방법도 많을 텐데.. 40분이나 걸리는 일을 다시 해주신거에요)

이정도면 차에서 미친척 해드뱅을 해도 밖에서 안 보일 것 같습니다. 측후면 15% 전면 35% 인데 낮 12시에도 이정도니 밤에는 더 어두울 것 같습니다. 야간 운전 시 안에서 밖은 매우 잘보입니다. 시인성 좋아요~

아래는 썬팅 완료 후 주간에 찍은 사진입니다.

니로 딥 셀룰리언 블루
빛의 각도에 따라 색상이 다르게 보입니다. 

차량 색상은 딥 셀룰리언 블루인데요. 빛의 위치에따라서 색상의 그라데이션이 생기는게 참 마음에 듭니다. 아래는 야간에 찍은 사진입니다. 아 그리고 뒷면에 와이퍼 옆에 보시면 칼트윈 썬팅 했다고 스티커 붙여줍니다.

측면에선 실내를 구분할 수 없습니다.
정면에서는 약간 뒷면의 빛이 비치는 정도입니다. 하지만 실내에서는 그냥 주간하고 큰 차이 없이 선명하게 보이네요
전면
좌측면 (오바좀 떨자면 사진찍고 창문 내린줄..)
우측면입니다. (선팅필름 끝 라인 예쁘게 잘맞췄네요)
썬팅 시인성 비교를 위해 운전석쪽 창문만 내리고 찍어봤습니다. 조수석은 닫혀있는 상태입니다. 전면과 후면 모두 동일한 15% 농도의 필름입니다. 조수석을 보시면 실내에서 외부 시인성은 전면 35%와 크게 차이 나지 않고, 어둡다고 느껴질 만큼도 아닙니다. 반면 운전석 뒷편을 보시면 실내가 전혀 보이지 않죠. 전면 35%와 측면 15%는 보시다시피 약간의 밝기 차이가 있긴 합니다. 

전면도 15% 할걸 그랬습니다 뭐 비오는 밤 시골길이면 더 어두워서 달라질 수 있겠지만. 측면 15% 농도로 봐선 운전에 지장을 줄 만큼 어두워 지지는 않을 것 같습니다. 안에서 뻘짓거리 할 것도 아니니. 이 정도로 만족 하렵니다 ㅎㅎ

※18년4월5일 비가와서 비오는 도심의 밤거리를 다니게 되었는데 가시성 하락은 여전히 없습니다. 나중에 질리거든 앞유리도 15% 필름으로 변경 하고 싶네요.

니로에 대한 다른 글도 있습니다.

2018년 3월 15일 목요일

am335x sitara sdk 사용법

am335x  하드웨어에 맞는 kernel을 넣기 위해 여러모로 알아보고 sdk를 해봤는데 3.1부터 지원을 하지만 이상하게 kernel 3.2버전만 정상 지원을 하지 않습니다. 따라서 3.2버전을 어디에서 지원을 하나 검색해보니 sitara sdk 6이라는 이제는 지원하지 않는 버전에서 설치할 수 있음을 알게 되었습니다. processor sdk linux 3.2가 kernel 3.2인줄 알았던 것이 시간을 버리게 된 이유인 것 같습니다.

장비가 오래 사용되다 보니 문서 관리에 좀 허점이 생긴 것 같습니다.

설치하기에 앞서 sitara linux sdk 6.0의 기능 중 일부는 ubuntu 10.04과 12.04버전에서만 사용할 수 있습니다. ubuntu 버전을 변경해야 할 수도 있습니다. (실제로 구동해보니 ubuntu12 에서는 아무 오류 없이 지나가지만, 14에선 오류 수정하다 날 샙니다.)

ubuntu 12.04 버전은 http://releases.ubuntu.com/12.04/ 이 링크에서 확인하실 수 있습니다. #vmware에 ubuntu 설치 (vmware-workstation 12)

필요한 프로그램 설치 

라이브러리 
$ sudo apt-get update 
$ sudo apt-get upgrade

$ sudo apt-get install xinetd tftpd nfs-kernel-server minicom build-essential libncurses5-dev uboot-mkimage autoconf automake libqt3-mt-dev openssh-server


※ ubuntu 8.0 사용 시 설치해야 하는 항목 (os를 초기화 했다면 설치하는 것도 나쁘지 않습니다. )
$ sudo apt-get install apt-src \ gawk \ gzip \ perl \ autoconf \ m4 \ automake \ libtool \ libncurses5-dev \ gettext \ gperf \ dejagnu \ expect \ tcl \ autogen \ guile-1.6 \ flex \ flip \ bison \ tofrodos \ texinfo \ g++ \ gcc-multilib \ mingw32 \ mingw32-binutils \ mingw32-runtime \ libgmp3-dev \ libmpfr-dev \ debhelper \ texlive \ texlive-extra-utils

※ 64bit user라면 추가 해야 할 라이브러리  (32bit 호환을 위한 라이브러리) 
$ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386

크로스 컴파일 툴체인 
방법1.
툴체인을 확인하시고 없다면 설치해주세요 툴체인은 linaro toolchain을 권장합니다. 
$ arm-linux-gnueabihf-gcc --version 

$ sudo apt-get install gcc-4.7-arm-linux-gnueabihf 
※ 위 명령이 안 될 경우 deb파일을 추가해야 합니다. 
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu dapper main restricted" 
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu unstable main restricted" 


방법2.
직접 다운로드 
https://releases.linaro.org/archive/13.04/components/toolchain/binaries/
압축해제 
$ tar -xvf gcc-linaro-arm-linux-gnueabihf-<version> 
크로스컴파일 변수 등록
$ export CROSS_COMPILE=<설치 경로>/arm-linux-gnueabihf- 

sitara linux 6.0의 릴리즈 노트입니다.
http://processors.wiki.ti.com/index.php/Sitara_SDK_6.00.00_Release_Notes#Installation_and_Usage

해당 자료를 다운로드 할 수 있는 곳의 링크입니다.
http://software-dl.ti.com/sitara_linux/esd/AM335xSDK/06_00_00_00/index_FDS.html

우선 ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin 파일을 linux에 다운로드 하고 install을 진행합니다.

$ chmod +x ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin
$ ./ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin

※ 버전에 따라서는 console 모드 install을 해야 할 수 있습니다. 
($ ./ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin --mode console)

설치 방법은 별다른 거 없이 next를 누르다가 설치 위치만 변경해주시면 가볍게 됩니다.
ubuntu 14.04 이상의 버전에서 사용할 경우 경로 명칭에서 <ti-sdk-am335x-evm-06.00.00.00> 부분을 수정하면 정상 sdk가 자신의 설치 위치를 찾지 못하는 오류가 발생합니다.

setup 스크립트 수행 : console을 통한 NFS 와 TFTP를 통한 부팅 및 디버깅 지원 도구

※ setup을 수행하기에 앞서 usb로 am335x를 연결한 후 전원을 눌러 부팅 후 usb otg 케이블을 통해, linux 가 설치된 pc나 vm에 연결해줘야 합니다. 

SDK 설치 폴더로 이동하여 스크립트를 수행해줍니다. 

$ ./setup.sh

※ 설치 폴더로 이동하여 setup.sh 파일을 실행합니다. ubuntu 버전이 다를 경우 아래와 같은 메시지가 나옵니다. 

오류 메시지 및 처리 법
-------------------------------------------------------------------------------- 
Verifying Linux host distribution Unsupported host machine, only Ubuntu 10.04 LTS and Ubuntu 12.04 LTS are supported Failed setup, aborting.. temi@ubuntu:~/texas-am335x/ti-sdk-am335x-evm-06.00.00.00$ ./setup.sh
-------------------------------------------------------------------------------

하위 폴더의 파일 setup-host-check.sh를 고쳐줍니다. 42줄~ 46줄까지 주석 처리 하면 됩니다. 

$ vim bin/setup-host-check.sh 


프로그램이 시작되면 필요한 패키지의 설치를 수행합니다.

-------------------------------------------------------------------------------

setup package script

This script will make sure you have the proper host support packages installed

This script requires administrator priviliges (sudo access) if packages are to be installed.

------------------------------------------------------------------------------

중간에 추가 설치가 필요한 패키지가 있으면 이런 식으로 질문이 나오니 그냥 Y를 눌러주세요 

-------------------------------------------------------------------------------
System requires packages  minicom to be installed
Installation requires you to have administrator priviliges (sudo access) 
on your host. Do you have administrator privilieges?
Type 'y' to continue or 'n' to exit the installation: y

몇 차례 엔터와 y를 누르다 보면 설정이 끝납니다. (중간에 NFS와 TFTP 등 주요 경로 설정이 있는데 그냥 기본 값으로 엔터 치고 넘어갔습니다. ) 필요한 설정이 있는데 지나쳤을 경우 setup.sh를 다시 실행하면 됩니다. (예를 들자면 host ip 의 경우 랜 카드가 여러 개 있으면 잘못될 수 있습니다.) 

위 해당 설정이 완료 될 경우 USB serial을 통해 보드에 직접 접속할 수 있으며 am335x 보드에서 네트웍을 통한 부팅 

SD 카드 생성하기

프로그램이 설치된 폴더 내용 중 가장 기초적으로 사용할 수 있는 명령어 세트가 있습니다. 그중 sd카드를 만드는 부분이 개인적으로 상당히 중요한 것 같습니다. sd카드를 만드는 방법은 3가지가 있습니다. 하나는 기본 제공되는 sd카드를 만드는 것이고, 다른 하나는 개별 이미지를 생성해 sd카드에 넣는 것, 마지막은 파티션 압축 파일을 이용해 만드는 것 입니다.

프로그램 설치 하위 폴더에 bin 안에 있는 create-sdcard 파일을 실행합니다. 
※ 기본 이미지 파일은 4gb 정도의 디스크 용량이 필요합니다. (sudo 를 사용하여 실행해야 합니다. )
$ sudo bin/create-sdcard.sh 

위 파일을 실행시키면 수행할 명령을 아래와 같이 출력합니다. 

- 사용할 디스크를 선택 
############################################################
Availible Drives to write images to: 
#  major   minor    size   name 
1:   8       16    3872256 sdb
2:   8       32      72261 sdc
Enter Device Number or n to exit: 1 

- 파티션 개수 선택 
##################################################################
Select 2 partitions if only need boot and rootfs (most users)
Select 3 partitions if need SDK & CCS on SD card.  This is usually used
        by device manufacturers with access to partition tarballs.
****WARNING**** continuing will erase all data on sdb
##################################################################
파티션 생성은 2개의 일반적인 파티션 구성과 3개의 boot, sdk, ccs 영역으로 나누는 방법 중 하나를 선택해야 합니다. CCS는 Code Composer Studio 의 약자로 코드 개발 환경 유틸리티를 말합니다. (Eclipse와 비슷합니다. 생긴 것도 비슷합니다.)

필요에 따라 선택을 하면 다음은 sd카드 파티셔닝을 자동 진행합니다.

이미지 종류 선택 
이 부분에서 개별 빌드한 커널 이미지를 선택할 수 있습니다. 1번은 기본 제공되는 이미지와 sdk, 2번은 사용자 정의 부팅 정보나, rootfs 경로를 입력하여 사용할 수 있습니다.
##################################################################
Choose file path to install from 
 1 ) Install pre-built images from SDK 
 2 ) Enter in custom boot and rootfs file paths ##################################################################

Yocto로 SD카드 이미지 빌드하기 

rootfs를 빌드하기 위해서는 별도로 Yocto를 사용해야 합니다. sdk에서는 기본 이미지와, 개발 도구 까지 제공하며, linux를 직접 빌드하기 위한 도구가 조금 부족한 것 인지, 학습이 필요한 것인지는 아직 모르겠습니다. (문서에 안 나와있어요)

Yocto 설치하기 

소스 파일 다운로드
우선 github.를 통해 tisdk를 다운로드 받습니다.
$ git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk

환경 설정 
※ ubuntu 12 이상 버전에서는 오류가 발생할 수 있습니다. 
다운로드 받은 폴더 내에선 사용하려는 sdk의 버전에 따라 환경 설정을 진행할 수 있는 도구가 있습니다. Yocto build에 사용할 config 설정을 진행하려면 config 명령을 통해 지원되는 환경 설정 목록을 확인하세요 .
$ cd tisdk 
$ find -name *config.txt
./configs/processor-sdk/processor-sdk-04.01.00.06-config.txt
./configs/processor-sdk/processor-sdk-02.00.02.11-config.txt
./configs/arago-dora-config.txt
./configs/arago-krogoth-config.txt
./configs/arago-rocko-config.txt
./configs/amsdk/amsdk-05.06.00.00-config.txt
./configs/amsdk/amsdk-08.00.00.00-config.txt
./configs/amsdk/amsdk-07.00.00.00-config.txt
./configs/amsdk/amsdk-05.07.00.00-config.txt
./configs/amsdk/amsdk-06.00.00.00-config.txt
./configs/amsdk/amsdk-07.01.00.00-config.txt


저는 목표 보드는 am33x 계열이고, 대상 sdk는 06.00입니다. 따라서 amsdk-06.00.00.00-config.txt 를 환경 설정 파일로 사용하겠습니다. config 폴더 내의 config.text 파일은 git의 branch 같은 거라고 생각 하시면 될 것 같습니다. (실제로 연관된 브랜치 목록을 다운로드 합니다. ) 
$ ./oe-layertool-setup.sh -f configs/amsdk/amsdk-06.00.00.00-config.txt 
$ cd build  주의
※ 이 단계에서 sdk 선택을 잘못했을 경우 소스 파일 소스 파일 다운로드부터 다시 진행해야 합니다. 그렇지 않을 경우 Yocto에서 알 수 없는 오류나 meta-layer를 찾지 못하는 오류가 발생합니다.  

지원 보드 목록 확인

대상 보드가 am335x 계열이기 때문에 am 계열의 지원 보드가 있는지 확인합니다.
조회 된 목록으로 봐서는 source/meta-ti에 지원 보드 목록이 들어있는 것 같습니다.
$ find ../sources/ -name *am*.conf 
./sources/meta-ti/conf/machine/am335x-hs-evm.conf
./sources/meta-ti/conf/machine/am57xx-hs-evm.conf
./sources/meta-ti/conf/machine/am437x-hs-evm.conf
./sources/meta-ti/conf/machine/am335x-evm.conf
./sources/meta-ti/conf/machine/am437x-evm.conf
./sources/meta-ti/conf/machine/am3517-evm.conf
./sources/meta-ti/conf/machine/am57xx-evm.conf
./sources/meta-ti/conf/machine/am37x-evm.conf
./sources/oe-core/meta-skeleton/conf/multilib-example2.conf
./sources/oe-core/meta-skeleton/conf/multilib-example.conf

이미지 파일 목록 확인

빌드 할 수 있는 이미지의 목록은 메타 디렉토리들에서 찾아볼 수 있습니다. meta 디렉토리 중 제가 사용할 부분은 meta-arago 입니다. 다른 이미지가 필요하시다면 source 폴더 하위에 meta로 시작하는 폴더를 확인해보시면 됩니다.

$ find ../sources/meta-arago/ -name *image*.bb
../sources/meta-arago/meta-arago-extras/recipes-core/matrix/matrix-gui-apps-images_2.0.bb
../sources/meta-arago/meta-arago-distro/recipes-core/images/arago-amsdk-image.bb
../sources/meta-arago/meta-arago-distro/recipes-core/images/arago-base-image.bb
../sources/meta-arago/meta-arago-distro/recipes-core/images/arago-console-image.bb
../sources/meta-arago/meta-arago-distro/recipes-core/images/arago-core-tisdk-image.bb
../sources/meta-arago/meta-arago-distro/recipes-core/images/arago-base-tisdk-image.bb
../sources/meta-arago/meta-arago-distro/recipes-core/images/tisdk-rootfs-image.bb
../sources/meta-arago/meta-arago-distro/recipes-core/images/tisdk-server-rootfs-image.bb

이미지 파일 빌드하기

이미지를 빌드하기 위해서는 우선 크로스 툴 체인이 설치 되어 있어야 합니다.  개별적으로 설치한 크로스 툴 체인에 대한 경로를 지정하시면 됩니다.
ti.com 패키지를 호스팅 하는 일반적 위치 중 하나가 해제되었다고 합니다. 이로 인해 현재 릴리즈와 과거 릴리즈에 대한 패치 실패가 발생하고 있습니다. TI 미러에서 패키지 구성을 얻기 위해 추가 절차를 수행해야 합니다. 
$ cat >> ./conf/local.conf << 'EOF'

TI_MIRROR = "http://software-dl.ti.com/processor-sdk-mirror/sources/"
MIRRORS += " \
bzr://.*/.* ${TI_MIRROR} \n \
cvs://.*/.* ${TI_MIRROR} \n \
git://.*/.* ${TI_MIRROR} \n \
gitsm://.*/.* ${TI_MIRROR} \n \
hg://.*/.* ${TI_MIRROR} \n \
osc://.*/.* ${TI_MIRROR} \n \
p4://.*/.* ${TI_MIRROR} \n \
npm://.*/.* ${TI_MIRROR} \n \
ftp://.*/.* ${TI_MIRROR} \n \
https?$://.*/.* ${TI_MIRROR} \n \
svn://.*/.* ${TI_MIRROR} \n \
"
EOF
$ . conf/setenv 
$ export PATH=$HOME/gcc/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/:$PATH 
$ MACHINE=am335x-evm bitbake arago-amsdk-image  // 이미지 빌드 시 오류 발생 5시간동안 진행만 하고 실패합니다. 
# MACHINE=am335x-evm bitbake arago-base-image
※ arago-base-image를 bitbake 할 경우 처음 build 시간은 램3gb 코어3개 사용 시 1시간 정도 입니다. 예상 용량은 약 8GB 입니다. 

빌드 결과 
build가 완료되면 <build 위치>/arago-tmp-external-linaro-toolchain/deploy/images 에서 이미지 파일을 확인할 수 있습니다.
arago-base-image-am335x-evm-20180314080248.rootfs.tar.gz
arago-base-image-am335x-evm-20180314080248.rootfs.ubi
arago-base-image-am335x-evm-20180314080248.rootfs.ubifs
arago-base-image-am335x-evm.tar.gz
arago-base-image-am335x-evm.ubi
MLO
MLO-am335x-evm

MLO-am335x-evm-2013.01.01-r6+gitr1+540aa6fbb0c9274bda598f7e8819ed28259cad6b-arago1 

modules-3.2.0-r19h+gitr1+d5720d33bc7c434f9a023dbb62c795538f976b7a-am335x-evm.tgz 
README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
u-boot-am335x-evm-2013.01.01-r6+gitr1+540aa6fbb0c9274bda598f7e8819ed28259cad6b-arago1.img
u-boot-am335x-evm.img
u-boot.img
uImage


uImage-3.2-r19h+gitr1+d5720d33bc7c434f9a023dbb62c795538f976b7a-am335x-evm-20180314080248.bin

uImage-am335x-evm.bin

배포
1) sdk스크립트 사용 
빌드 된 이미지를 배포하는 과정입니다.우선 sdk 설치 폴더에서 create_sdcard.sh 파일을 실행합니다. 파티셔닝 까지 종료 한 후 아래 화면이 나오면 2번을 눌러 이미지 경로 입력을 수행합니다.
##################################################################
Choose file path to install from

1 ) Install pre-built images from SDK
2 ) Enter in custom boot and rootfs file paths
#################################################################
- 부트 파티션 입력
MLO, u-boot, uImage 파일이 있는 곳을 입력하면 됩니다. 입력하고 나면 파일 목록을 보여주며 맞는지 확인을 입력합니다.
##################################################################
  For Boot partition
  If files are located in Tarball write complete path including the file name.
      e.x. $:  /home/user/MyCustomTars/boot.tar.gz
  If files are located in a directory write the directory path
      e.x. $: /ti-sdk/board-support/prebuilt-images/
  and the beginning of the files should be labeled with MLO, u-boot, uImage
      i.e.   test_MLO_image must be labeled as MLO_test_image
  NOTE: Not all platforms will have an MLO file and this file can
        be ignored for platforms that do not support an MLO

##################################################################
Enter path for Boot Partition : <build위치>/arago-tmp-external-linaro-toolchain/deploy/images$ 
- rootfs 입력
이 부분에서는 rootfs.tar.gz 파일을 이름을 포함한 경로를 입력합니다.
##################################################################
   For Rootfs partition
   If files are located in Tarball write complete path including the file name.
      e.x. $:  /home/user/MyCustomTars/rootfs.tar.gz
  If files are located in a directory write the directory path
      e.x. $: /ti-sdk/targetNFS/
##################################################################
Enter path for Rootfs Partition : <빌드위치>/arago-tmp-external-linaro-toolchain/deploy/images/arago-base-image-am335x-evm-20180314080248.rootfs.tar.gz 
※ 현재 이 부분에서는 빌드위치 중 u-boot 이미지를 제대로 인식하지 못하는 오류가 발생하여 배포 용 sdk 설치 폴더의 prebuilt-images에 복제해서 사용하고 있습니다. 차후 공부해서 업데이트 하도록 하겠습니다.

2) 수동으로 배포

boot 파티션 배포
$ sudo dd if=u-boot.img of=/dev/sdb1 bs=512 seek=2
rootfs 배포 


오류 해결  
1. 툴체인 버전이 맞지 않는 경우는 툴체인을 변경하여 해결하면 됩니다. 
ERROR: Execution of event handler 'external_linaro_toolchain_version_handler' failed Traceback (most recent call last): File "external_linaro_toolchain_version_handler(e)", line 12, in external_linaro_toolchain_version_handler(e=) File "external-linaro-toolchain-versions.inc", line 4, in elt_get_gdb_version(d=)

2. tar 1.27.1버전의 오류 package.bbclass 파일을 열어 tar에 옵션으로 사용된  -ps 를 -p로 변경하면 됩니다. (이 오류가 날 경우 그냥 ubuntu 12버전으로 가는 게 정신 건강에 이롭습니다.)
예 (https://patchwork.openembedded.org/patch/59709/)
ERROR: Function failed: sysroot_stage_all (see /home/temi/texas-am335x/tisdk/build/arago-tmp-external-linaro-toolchain/work/x86_64-linux/quilt-native-0.60-r0/temp/log.do_populate_sysroot.4739 for further information)

3. ubuntu 64bit 설치로 인한 32bit 라이브러리 사용 오류 
error while loading shared libraries: libstdc++.so.5: cannot open shared object file


32bit 라이브러리 설치로 해결 
$ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386

위의 설정을 변경했는데도 불구하고 기타 오류가 꾸준히 발생한다면 ubuntu12 버전을 사용하길 권장합니다. 혹은 sdk 버전을 상위 버전으로 수행 시 괜찮아진다고 합니다.

busybox 환경 변경 (linux의 software 환경 설정과 default utility 설정)

SDK 버전에서는 busybox를 최소화 버전으로 하면서 몇 가지 실행 명령이 수행되지 않습니다. 따라서 비즈박스의 환경을 바꿀 필요가 종종 있습니다. (top 명령과 sort 명령의 옵션이 수행되지 않습니다. ) 주의할 점은 일부 환경 설정 파일은 잘못 설정 시 build에 영향을 미치게 됩니다. .conf 파일을 수시로 다른 이름으로 백업하며 차분히 build해야 합니다.
MACHINE=am335x-evm  bitbake -c menuconfig busybox 
MACHINE=am335x-evm  bitbake busybox 
MACHINE=am335x-evm  bitbake arago-base-image 

설정 파일로 직접 고치려면 

$ gedit ../sources/meta-arago/meta-arago-distro/recipes-core/busybox/busybox/defconfig 

kernel 환경 변경 (linux의 hardware 환경 설정과 driver 설정)
$ MACHINE=am335x-evm bitbake arago-base-image -c cleanall
$ MACHINE=am335x-evm bitbake -c menuconfig
$ MACHINE=am335x-evm bitbake 
arago-base-image 
※ busybox 만 단독으로 build 할 경우 busybox install을 통해 생성 된 파일 중 busybox 자체만 복제 하더라도 정상적인 사용이 가능합니다. busybox의 경우 시스템관리 기능이 상당 부분 포함되어 있어 다른 환경 설정 파일을 복제 하게 될 경우 부팅 불가 상태에 빠지게 됩니다.

2018년 3월 8일 목요일

texas-am335x 유용한 u-boot명령

본 장은 ubuntu 14.04 버전에서 테스트 되었습니다.

u-boot 소스 코드 복제
http://git.ti.com/ti-u-boot/ <--를 클릭하시면 여러 branch를 확인하실 수 있습니다.
git clone  git://git.ti.com/ti-u-boot/ti-u-boot.git
$ cd ti-u-boot/

$ git checkout -b  remotes/origin/u-boot-2013.01.y

※ 사용할 브랜치만 복제할 경우 
git clone  -b remotes/origin/u-boot-2013.01.y --depth=1  git://git.ti.com/ti-u-boot/ti-u-boot.git

※ 제 경우 버전은 u-boot u-boot-2009.11.y 을 사용해야 u-boot 메시지를 정상 확인할 수 있습니다. 버전별로 일부 지원되지 않는 녀석이 있는 것 같습니다. 
※ 이미지 용량이 그리 크지 않기에 전체를 클론 했습니다. 


1.크로스 컴파일 툴체인 설치

툴체인을 확인하시고 없다면 설치해주세요 툴체인은 linaro toolchain을 권장합니다. 
 $ arm-linux-gnueabihf-gcc --version 
 $ sudo apt-get install gcc-4.7-arm-linux-gnueabihf 

2. MLO 및 u-boot 컴파일
http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User's_Guide
상위 링크로 이동하시면 u-boot를 적용할 수 있는 컴파일 기본 환경 목록을 확인하실 수 있습니다.
소스파일 클린 
$ make CROSS_COMPILE=arm-linux-gnueabihf- distclean
$ rm -rf ./am335x_evm


환경 파일 적용 
$ make CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm am335x_evm_defconfig
컴파일 

$ make -j3 CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm

수행 중 오류가 발생했습니다.

*** Your GCC is older than 6.0 and is not supported

지원되지 않는 gcc라고 하지만 gcc가 언제부터 6.0이었다고 그러는지; 해당 코드를 없애겠습니다. 우선 문제가 되는 설정 파일을 찾습니다. 

$ grep -r 'Your GCC is older' ./*

./arch/arm/config.mk~: echo '*** Your GCC is older than 6.0 and is not supported'; \

요 파일에서 문제가 생깁니다. 다 주석 처리 해줍니다. 
gedit arch/arm/config.mk 
지워
$ make -j3 CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm 

sd카드에 이미지 배포 

$ sudo dd if=u-boot of=/dev/sdb bs=512 seek=2


3. tftp를 통한 sd카드 업데이트 
tftp boot을 이용하기 위해서는 먼저 환경 설정이 필요합니다. Yocto NFS & TFTP boot  문서 한글 화 를 참조하세요
우선 보드를 부팅 시키고, booting 시 2초내 키를 눌러 u-boot 인터페이스로 접속합니다.
※ 호스트 컴퓨터에 dfu-util이 필요합니다. $ sudo apt-get install dfu-util 

환경 설정 값을 초기화 합니다.
U-Boot # env default -f -a
U-Boot # saveenv 


새로운 환경 설정
U-Boot # setenv autoload no
U-Boot # dhcp 

※ 고정 ip를 쓸 경우 예 : setenv ipaddr 192.168.2.108

U-Boot # setenv serverip correct.server.ip 
※ ip 입력 예 : setenv serverip 192.168.2.100

zImage 업데이트
U-Boot # tftp 

위 명령을 수행할 경우 파일이 정상적으로 받아지면 아래 그림과 같은 형태의 메시지가 나타납니다. 
정상 진행된 경우 스크린

3. DFU를 통해 sd카드나 eMMC카드 업데이트 하기 
DFU를 통해 업데이트 할 수 있는 항목 
boot , rootfs, MLO, u-boot.img, uEnv.txt

U-Boot # mmc part

Partition Map for MMC device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     2048            143360          982f7645-01     0c Boot

  2     145408          8013824         982f7645-02     83

DFU 시작하기
U-Boot # setenv dfu_alt_info ${dfu_alt_info_mmc}
U-Boot # dfu 0 mmc 0

※ dfu 0 mmc 0 명령이 수행될 경우 u-boot 는 파일 전송 대기 상태에 들어가며 mmc 0으로 전송되는 파일을 받습니다.  vm에서 아래와 이미지와 같이 새로운 장치를 추가 할 수 있습니다. 


$ sudo dfu-util -D MLO -a MLO 

※ 정상적으로 MLO파일이 전송될경우  화면은 아래와 같습니다. 

$ sudo dfu-util -D fat.img -a boot 

4. SD카드 부팅 설정cd 


$ U-Boot# setenv bootargs 'console=ttyO0,115200n8 root=/dev/mmcblk0p2 mem=128M rootwait'
$ U-Boot# setenv bootcmd 'mmc rescan; fatload mmc 0 0x82000000 uImage; bootm 0x82000000'

2018년 3월 6일 화요일

texas 보드 (cortex-a8, am33x) kernel 빌딩

사용자 지정 커널 컴파일에 앞서 그간 깨닫게 된 툴 체인과 커널에 대한 정의는 이렇습니다.

1. 툴체인 (toolchain) 툴체인이란?
그동안  3개의 보드에 대해 kernel과 툴체인에 대해 작업하면서 ARM 그리고 LINUX에 대한 지식이 정말 부족했음을 깨닫습니다. toolchain은 그냥 쉽게 말해 도구 묶음입니다.
툴체인의 대략적인 구성은 이렇습니다.

텍스트 인코딩을 위한 프로그램 - libiconv
프로그램을 사용할 때 필요한 컴파일러 - gcc
디버깅 환경을 구성하는 - gdb
리눅스 용 c 라이브러리 - glibc
소수 연산을 위한 c 라이브러리 ? -  mpc
cloog-ppl, zlib, pkg-config, binutils....

toolchain.src 파일의 압축을 풀어보면 일일이 열거하고 설명하기 힘든 만큼 많은데 개념적인 것으로 확실해 진 것은 이렇습니다. windows를 설치하면 유용하게 쓰기 위한 각종 패키지를 설치하듯, linux 환경에서 유용한 도구들을 사전에 묶어 놓은 것이다. 정도로 생각하면 될 것 같습니다. 툴체인은 제조사에 따라서 지원하는 항목들이 다른 경우도 있습니다. (특정 보드에서는 busybox를 최소화 해서 명령어가 안먹는 경우도 있습니다. )

2. KERNEL이란?
커널의 경우 하드웨어에 대한 제어권을 갖고있는 LINUX 시스템 운영체제의 중추라고 생각하면 될 것 같습니다. 이렇게 생각하게 된 이유는 KERNEL의 MENUCONFIG를 확인해보면 수행할 수 있는 환경설정이 90%이상 하드웨어에 집중되어 있기 때문입니다.

하드웨어의 제조사가 달라짐에 따라 커널에 적재해야 할 드라이버 들의 종류가 달라지고, cpu의 종류가 달라지고, 여러 분류들이 달라집니다. 따라서 kernel은 각 제조사에서 배포를 하고 있습니다. 왠만하면 각 제조사의 지원 커널을 받는 것이 좋은 것 같습니다.

3. 툴체인 설치 

설치된 크로스 툴체인 목록이 있는지 확인 
$ update-alternatives --list arm-linux-gnueabihf
※update-alternatives는 여러 라이브러리 버전을 관리하는 명령입니다. 

arm-linux-gnueabihf-gcc --version

gcc 인스톨 (gcc가 원하는 버전이 설치되지 않았을 경우 ) 
$ sudo apt-get install gcc-4.7-arm-linux-gnueabihf
gcc가 여러개인 경우 update-alternatives를 설정합니다.
$ sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf /usr/bin/arm-linux-gnueabihf-gcc-4.7 473 --slave /usr/bin/arm-linux-gnueabihf-g++ arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++-4.7


다시 설치된 arm-linux-gnueabihf 목록을 확인합니다. 
$ sudo update-alternatives --config arm-linux-gnueabihf 

저는 등록된 녀석이 하나밖에 없습니다.  
/usr/bin/arm-linux-gnueabihf-gcc-4.7.3

버전정보를 확인해봅니다. 

$ arm-linux-gnueabihf-gcc --version 


arm-linux-gnueabihf-gcc (Ubuntu/Linaro 4.7.3-11ubuntu1) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ubuntu 12 버전 gcc-4.7-arm-linux-gnueabihf 설치법
$ sudo gedit  /etc/apt/sources.list
업데이트 사이트 추가
deb http://www.emdebian.org/debian/ unstable main
$ sudo apt-get install emdebian-archive-keyring
$ sudo apt-get update
$ sudo apt-get install gcc-4.7-arm-linux-gnueabihf


4. 커널 소스 다운로드 
커널은 전체 다운로드를 할 경우 용량이 어마어마 하므로, 릴리즈 노트를확인하여 원하는 버전의 브렌치만 다운로드 하세요

http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Kernel_Release_Notes#Generic_Kernel_Release_Notes
화면을 제일 아래로 내리면 Archived 라는 녀석이 있는데 여기에서 찾으시면 됩니다.


다시 사용자 디렉터리로 이동해서 kernel을 다운로드 합니다. 
$ cd ~/ 
git clone -b processor-sdk-linux-03.02.00 --depth=1 git://git.ti.com/processor-sdk/processor-sdk-linux.git
※ kernel version 이 4.대이므로 3.x 버전의 커널을 원하시면 processor-sdk-linux-01.00.00 버전이나 processor-sdk-linux-01.00.01 버전을 사용해야 합니다. 

$ cd processor-sdk-linux/

일단 커널을 클리닝 해줍니다. 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

5. 커널 환경 설정 
애먹었던 mx6와 다르게 am335x 는 커널 화경도구를 제공합니다. (mx6는 yocto 에 있는 파일을 복제해서 사용해야 하죠.. yocto를 모르면 아무것도 안됩니다. )

defconfig 빌더에서 자신의 보드에 맞는 환경이 있는지 확인합니다. 
$ ti_config_fragments/defconfig_builder.sh -t ti_sdk_AM335x_release
Cannot find the build type or a match for ti_sdk_AM335x_release
Maybe try one of the following:
1. ti_sdk_am3x_release
2. ti_sdk_am4x_release
3. ti_sdk_dra7x_release
4. ti_sdk_omap2_release
5. ti_sdk_k2g_release
6. ti_sdk_keystone_release
7. ti_sdk_am3x_debug
8. ti_sdk_am4x_debug
9. ti_sdk_dra7x_debug
10. ti_sdk_omap2_debug

11. ti_sdk_k2g_debug
맞는 환경설정이 없다고 나옵니다. 이 경우 ti_sdk_am3x_release 를 선택하면 되겠네요
defconfig는 환경설정을 저장해놓은 파일입니다. (각 제조사별 sdk, bsd에 포함되어 있습니다.)ㅇㄷ
$ ti_config_fragments/defconfig_builder.sh -t ti_sdk_am3x_release
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- ti_sdk_am3x_release_defconfig


※ 메인라인 커널 사용시
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 
omap2plus_defconfig
추가 커널설정이 필요한 경우 아래 명령을 통해 환경설정을 진행하세요
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

※ 메인라인 커널 보드에 맞는 defconfig가 없을경우 sdk 에 있는것을 복제하여 사용하시면 편리합니다.
예 : $ cp ../../texas-am335x/am335x_k_defconfig ./arch/arm/configs/am335x_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 
ti_sdk_am3x_release_defconfig


6. 소스파일 컴파일 

$ make -j3 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage 

※ -j3옵션은 코어 3개를 이용하겠다는 뜻입니다. 자신의 환경에 맞게 설정하세요 


메인라인 커널을 사용할 시에도 명령은 

make -j3 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage dtbs

※ make가 완료되면 /arch/arm/boot/dts에 디바이스 트리 파일이 생성됩니다. 이중 자신에게 맞는 dts파일을 빌드하세요 

예를들어 

$ find -name *am3*dts 명령을 통해 찾아보면 제 보드 am335 관련된 파일 목록이 이렇게 나옵니다. 
./arch/arm/boot/dts/am335x-base0033.dts
./arch/arm/boot/dts/am3517-craneboard.dts
./arch/arm/boot/dts/am335x-chiliboard.dts
./arch/arm/boot/dts/am335x-pepper.dts
./arch/arm/boot/dts/am335x-evmsk.dts
./arch/arm/boot/dts/am3517-evm.dts
./arch/arm/boot/dts/am335x-bonegreen.dts
./arch/arm/boot/dts/am335x-lxm.dts
./arch/arm/boot/dts/am335x-evm.dts
./arch/arm/boot/dts/am335x-nano.dts
./arch/arm/boot/dts/am335x-baltos-ir5221.dts
./arch/arm/boot/dts/am335x-boneblack-iot-cape.dts
./arch/arm/boot/dts/am335x-boneblack.dts
./arch/arm/boot/dts/am335x-icev2.dts
./arch/arm/boot/dts/am335x-wega-rdk.dts
./arch/arm/boot/dts/am335x-bone.dts
./arch/arm/boot/dts/am3517_mt_ventoux.dts

./arch/arm/boot/dts/am335x-sl50.dts
이중 -evm으로 명명 되어진 녀석이 범용 evm 이고 
boneblack 는 비글본 이라는 리눅스 버전용입니다. 

$ make -j3 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x-evm.dtb

※ uImage가 필요할 경우 아래 명령을 수행하세요 
$ make -j3 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage LOADADDR=0x82000000
uImage 를 만들려면 uboot-mkimage 툴이 필요합니다. 
$ sudo apt-get install uboot-mkimage
※ ubuntu 14.04 64bit 버전에서 uboot-mkimage가 설치되지 않습니다. 따라서 다음 명령으로 대체됩니다. 
$ sudo apt-get install u-boot-tools


7. 커널과 모듈을 컴파일
make -j3 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules

빌드된 결과 파일들은 arch/arm/boot 에 이렇게 들어있습니다. 
$ ls arch/arm/boot/

bootp  compressed  dts  Image  install.sh  Makefile  zImage
커널을 빌드할때 모듈을 같이 빌드하는 것이 좋습니다. 그렇지 않을 경우 커널 모듈이 로드되지 않거나 중간에 멈추는 현상이 발생합니다.

6. 커널 설치하기
이제 커널 이미지 및 장치 트리 바이너리 설치 단계 입니다. 아직 커널 소스 디렉토리에 계시쥬? 우선 커널 이미지를 적재할 sd카드를 연결한 후 마운트 시켜줍니다.
우선 디렉토리를 생성합니다. 
$ mkdir -pv /media/boot
$ mkdir -pv /media/rootfs
※ -pv옵션은 경로에 해당하는 디렉토리 모두 생성하라는 명령입니다. 

다음은 디스크를 마운트해줍니다. 
$ sudo mount /dev/sdb1 /media/boot/
$ sudo mount /dev/sdb2 /media/rootfs/
※ /dev/sdb1 은 boot파티션입니다. 파티션 확인 며령은 $ sudo fdisk -l입니다.
커널 이미지를 복사해줍니다.
$ sudo cp arch/arm/boot/zImage  /media/boot
$ sudo cp arch/arm/boot/dts/
am335x-evm.dtb /media/boot 
※ uImage가 있을때 
$ sudo cp arch/arm/boot/uImage  /media/boot

다음은 커널 모듈을 설치해줍니다.
$ sudo make ARCH=arm INSTALL_MOD_PATH=/media/rootfs modules_install


$ sync

sd카드의 uImage 를 통해 부팅하기 
tftp boot을 이용하기 위해서는 먼저 환경설정이 필요합니다. Yocto NFS & TFTP boot  문서 한글화 를 참조하세요
우선 booting 시 2초내 키를 눌러 u-boot 인터페이스로 접속합니다.
SD카드에서 uImage 읽기 및 실행  
fat32 형식의 파티션에 파일이 있어야 합니다. (boot 파티션)
U-Boot # mmc rescan
U-Boot # fatls mmc 0


sdcard에서 커널 부팅하기 
U-Boot# mmc rescan 
U-Boot# fatload mmc 0 0x82000000 uImage 
U-Boot# bootm 0x82000000

이 작업까지 수행해 본 결과 ti에서 제공하는 processor-sdk-linx 의 linux-03.02.00이 커널버전이 아님을 확인했습니다.
http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Kernel_Release_Notes를 확인해야 제대로 된 커널 버전을 확인할 수 있습니다. 지원을 오랜기간 해오다 보니 문서 관리상의 문제가 좀 있어 보입니다.