faith's blog

気まぐれ日記

kmscubeが動いた (2)

kmscubeが動いた(1)の続きです。

u-bootのビルド

github から tegra-uboot-flasher を、 gitorious から u-boot を取得し、ビルドしました。

ソースコードの取得

tegra-uboot-flasher は repo で取得します。

その中に、u-boot もありますが、denx のものなので、動きませんでした。

manifestを書き換えて、Thierry Redding さんのものを使います。

パッチは github にあげてあります。

$ mkdir -p ${TEGRA_WORK}/bootloader/tegra-uboot-flasher
$ cd ${TEGRA_WORK}/bootloader/tegra-uboot-flasher
$ repo init -u git://github.com/NVIDIA/tegra-uboot-flasher-manifests.git
$ patch -p0 < 001-tegra-uboot-flassher.patch
$ pushd .repo/manifests
$ wget https://raw.githubusercontent.com/faith0x7dc/patches/master/jetson-tk1/tegra-uboot-flasher/use-thierryredings-uboot.patch
$ patch < use-thierryredings-uboot.patch
$ git commit -a -m "change u-boot repository from denx to gitorious" 
$ popd
$ repo sync -j4

ビルド $ cd scripts $ ./build-tools $ ./build build

libdrmのビルド

ソースコードの取得

$ cd /path/to/l4t-root
$ pushd home/ubuntu/src
$ git clone git://gitorious.org/thierryreding/drm.git libdrm
$ popd

/path/to/l4t-root は Linux4Tegra の rootfs を置いた作業ディレクトリへのパスです。

ここに chroot して、コンパイルを実行し、後で USB Flash に書き込みます。

パッケージのインストール

$ sudo chroot . chroot # apt-get install libpthread-stubs0-dev chroot # su ubuntu

ビルド

chroot $ cd ~/src/libdrm
chroot $ ./autogen.sh --prefix=/usr/local --enable-udev --enable-libkms --enable-nouveau --enable-tegra-experimental-api --disable-intel --disable-radeon --disable-vmwgfx
chroot $ make
chroot $ sudo make install

mesaのビルド

結構時間がかかります。

Core i7 4701 の環境でも 小一時間かかったかと。

読書でもしながら待ちます。

ソースコードの取得

mesa をビルドするには、いろいろとパッケージのインストールが必要となりますが、

glproto と dri2proto だけは、apt-get で見つからないので、ソースコードを取得してインストールします。

$ cd /path/to/l4t-root
$ pushd home/ubuntu/src
$ git clone git://anongit.freedesktop.org/git/xorg/proto/glproto
$ git clone git://anongit.freedesktop.org/xorg/proto/dri2proto
$ git clone git://anongit.freedesktop.org/mesa/mesa
$ popd

パッケージのインストール

$ sudo chroot .
chroot # apt-get install xutils-dev python-libxml2 bison flex libxext-dev libxdamage-dev libxfixes-dev libx11-xcb-dev libxcb-glx0-dev libxcb-dri2-0-dev libxcb-sync0-dev libxcb-xfixes0-dev libudev-dev libexpat-dev
chroot # su ubuntu
chroot $ cd ~/src

glproto

chroot $ pushd glproto
chroot $ ./autogen.sh --prefix=/usr/local
chroot $ sudo make install
chroot $ popd

dri2proto

chroot $ pushd dri2proto
chroot $ ./autogen.sh --prefix=/usr/local
chroot $ sudo make install
chroot $ popd

mesa

chroot $ pushd mesa
chroot $ ./autogen.sh --prefix=/usr/local --enable-gles1 --enable-gles2 --with-egl-platforms=drm --enable-shared-glapi --enable-gbm --enable-gallium-gbm --enable-gallium-egl --with-dri-drivers=nouveau --with-gallium-drivers="nouveau" --disable-dri3
chroot $ make
chroot $ sudo make install
chroot $ popd

続きます。