U-boot
Jetson 용 소스를 받기 위해서 U-boot 홈피에 간다.
http://www.denx.de/wiki/U-Boot/SourceCode
에 가면 소스에 아래와 같이 나오는데
- The current source code is available through the git repository at git.denx.de.
git.denx.de 에 가보면 아랫부분에 forks라고 된곳에 포크된 프로젝트들이 있다.
여기에는 nvidia tegra 가 안보이니까 ... 을 눌러서 더 뒤져보자
http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=forks
에 가면
이렇게 tegra fork 가 있는데 이것을 다운받자.
$ git clone git://git.denx.de/u-boot-tegra.git
잘 되는건가 싶어서 검색해보니 http://lists.denx.de/pipermail/u-boot/2014-May/179425.html 이렇게 booting은 된다고 하니 일단 해보자.
다운받은 소스에서 configs 에 가보면 jetson tk1 용 defconfig 파일이 있다.
$ make jetson-tk1_defconfig
해주고. 컴파일을 하자.
$ make -j24
scripts/kconfig/conf --silentoldconfig Kconfig
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config.h
UPD include/config.h
GEN include/autoconf.mk
GEN include/autoconf.mk.dep
GEN spl/include/autoconf.mk
CHK include/config/uboot.release
CHK include/generated/timestamp_autogenerated.h
UPD include/generated/timestamp_autogenerated.h
./scripts/dtc-version.sh: 줄 17: dtc: 명령어를 찾을 수 없음
./scripts/dtc-version.sh: 줄 18: dtc: 명령어를 찾을 수 없음
*** Your dtc is too old, please upgrade to dtc 1.4 or newer
make: *** [checkdtc] 오류 1
make: *** 끝나지 않은 작업을 기다리고 있습니다....
UPD include/config/uboot.release
안된다.
device tree 파일을 컴파일하는 dtc가 버전이 낮아서 안된다고 한다. dtc는 커널소스에도 들어있는데.
그냥 우분투 저장소에서 업그레이드 하자.
뭘 업그레이드 해야되는지 모르니까 찾자
$ sudo apt-cache search dtc
[sudo] password for messijeon:
device-tree-compiler - Device Tree Compiler for Flat Device Trees
dtc-xen - SOAP daemon and scripts to allow control panel management for Xen VMs
dtc-xen-firewall - small firewall script for your dom0
libatdgen-ocaml - OCaml code generator for biniou and JSON - plugins
libatdgen-ocaml-dev - OCaml code generator for biniou and JSON - executable and dev files
sbox-dtc - CGI chroot wrapper script for safer hosting environment
ddtc - ddts 메일들을 처리
음~
device-tree-compiler 이걸 하면 될거 같다.
$ sudo apt-get install device-tree-compiler
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
device-tree-compiler
0개 업그레이드, 1개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
356 k바이트 아카이브를 받아야 합니다.
이 작업 후 546 k바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 http://mirror.premi.st/ubuntu/ trusty/main device-tree-compiler amd64 1.4.0+dfsg-1 [356 kB]
내려받기 356 k바이트, 소요시간 0초 (4,539 k바이트/초)
Selecting previously unselected package device-tree-compiler.
(데이터베이스 읽는중 ...현재 609717개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../device-tree-compiler_1.4.0+dfsg-1_amd64.deb ...
Unpacking device-tree-compiler (1.4.0+dfsg-1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for doc-base (0.10.5) ...
Processing 2 added doc-base files...
Registering documents with scrollkeeper...
device-tree-compiler (1.4.0+dfsg-1) 설정하는 중입니다 ...
이제 될것 같다.
다시
$ make -j24
줄줄줄줄 ....
OBJCOPY examples/standalone/hello_world.bin
LD spl/lib/built-in.o
LD spl/u-boot-spl
LD u-boot
OBJCOPY spl/u-boot-spl.bin
OBJCOPY u-boot.srec
OBJCOPY u-boot.bin
MKIMAGE u-boot.img
CAT u-boot-nodtb-tegra.bin
DTC arch/arm/dts/tegra20-harmony.dtb
DTC arch/arm/dts/tegra20-medcom-wide.dtb
DTC arch/arm/dts/tegra20-paz00.dtb
DTC arch/arm/dts/tegra20-plutux.dtb
DTC arch/arm/dts/tegra20-seaboard.dtb
DTC arch/arm/dts/tegra20-tec.dtb
DTC arch/arm/dts/tegra20-trimslice.dtb
DTC arch/arm/dts/tegra20-ventana.dtb
DTC arch/arm/dts/tegra20-whistler.dtb
DTC arch/arm/dts/tegra20-colibri_t20_iris.dtb
DTC arch/arm/dts/tegra30-apalis.dtb
DTC arch/arm/dts/tegra30-beaver.dtb
DTC arch/arm/dts/tegra30-colibri.dtb
DTC arch/arm/dts/tegra30-cardhu.dtb
DTC arch/arm/dts/tegra114-dalmore.dtb
DTC arch/arm/dts/tegra30-tec-ng.dtb
DTC arch/arm/dts/tegra124-nyan-big.dtb
DTC arch/arm/dts/tegra124-jetson-tk1.dtb
DTC arch/arm/dts/tegra124-venice2.dtb
SHIPPED dts/dt.dtb
COPY u-boot.dtb
CAT u-boot-dtb.bin
CAT u-boot-dtb-tegra.bin
MKIMAGE u-boot-dtb.img
컴파일 끝.!
되는지 올려보자.