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
続きます。