Update README for xf86-video-freedreno and fbterm
This commit is contained in:
parent
5b47e73b6a
commit
26eaa7becc
6 changed files with 229 additions and 8 deletions
47
PKGBUILD.libdrm
Normal file
47
PKGBUILD.libdrm
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# $Id: PKGBUILD 204511 2014-01-21 18:58:35Z lcarlier $
|
||||||
|
# Maintainer: Jan de Groot <jgc@archlinux.org>
|
||||||
|
|
||||||
|
pkgname=libdrm
|
||||||
|
pkgver=2.4.52
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Userspace interface to kernel DRM services"
|
||||||
|
arch=(i686 x86_64)
|
||||||
|
license=('custom')
|
||||||
|
depends=('glibc' 'libpciaccess')
|
||||||
|
makedepends=('valgrind')
|
||||||
|
checkdepends=('cairo')
|
||||||
|
replaces=('libdrm-new' 'libdrm-nouveau')
|
||||||
|
#options=(debug !strip)
|
||||||
|
options=(!strip)
|
||||||
|
url="http://dri.freedesktop.org/"
|
||||||
|
source=("libdrm::git://anongit.freedesktop.org/mesa/drm"
|
||||||
|
COPYING)
|
||||||
|
sha256sums=('SKIP'
|
||||||
|
'9631d4f694952e3e6ae5a05534c2e93e994e47d3413677a3a00e45c8cef6db93')
|
||||||
|
|
||||||
|
pkgver(){
|
||||||
|
cd $pkgname
|
||||||
|
git describe --long | sed -r 's/([^-]*-g)/r\1/;s/-/./g'
|
||||||
|
}
|
||||||
|
build() {
|
||||||
|
cd $pkgname
|
||||||
|
|
||||||
|
# pthread is useless in Linux
|
||||||
|
sed -i "/pthread-stubs/d" configure.ac
|
||||||
|
autoreconf --force --install
|
||||||
|
|
||||||
|
./configure --prefix=/usr --enable-freedreno-experimental-api
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
cd $pkgname
|
||||||
|
make -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd $pkgname
|
||||||
|
make DESTDIR="$pkgdir" install
|
||||||
|
install -m755 -d "$pkgdir/usr/share/licenses/$pkgname"
|
||||||
|
install -m644 ../COPYING "$pkgdir/usr/share/licenses/$pkgname/"
|
||||||
|
}
|
104
PKGBUILD.mesa
Normal file
104
PKGBUILD.mesa
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
# $Id: PKGBUILD 205069 2014-02-04 11:01:18Z andyrtr $
|
||||||
|
# Maintainer: Jan de Groot <jgc@archlinux.org>
|
||||||
|
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
|
||||||
|
|
||||||
|
pkgbase=mesa
|
||||||
|
pkgname=('freedreno-dri' 'mesa' 'mesa-libgl')
|
||||||
|
pkgver=10.0.3
|
||||||
|
pkgrel=1
|
||||||
|
arch=('i686' 'x86_64')
|
||||||
|
makedepends=('python2' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'libxxf86vm' 'libxdamage'
|
||||||
|
'libvdpau' 'wayland' 'elfutils' 'systemd')
|
||||||
|
url="http://mesa3d.sourceforge.net"
|
||||||
|
license=('custom')
|
||||||
|
options=(debug !strip)
|
||||||
|
#source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2
|
||||||
|
source=("Mesa-10::git://github.com/freedreno/mesa.git"
|
||||||
|
LICENSE)
|
||||||
|
md5sums=('SKIP'
|
||||||
|
'5c65a0fe315dd347e09b1f2826a1df5a')
|
||||||
|
|
||||||
|
prepare(){
|
||||||
|
cd ${srcdir}/?esa-*
|
||||||
|
echo $(cat VERSION | tr "-" "_").$(git rev-list --count HEAD)
|
||||||
|
}
|
||||||
|
build() {
|
||||||
|
cd ${srcdir}/?esa-*
|
||||||
|
|
||||||
|
autoreconf -vfi # our automake is far too new for their build system :)
|
||||||
|
|
||||||
|
./configure --prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--with-dri-driverdir=/usr/lib/xorg/modules/dri \
|
||||||
|
--with-dri-drivers= --with-gallium-drivers=freedreno,swrast \
|
||||||
|
--with-egl-platforms=x11 --enable-gles2 --enable-gles1 \
|
||||||
|
--enable-gallium-egl --disable-gallium-llvm --enable-xa --disable-dri3 \
|
||||||
|
--enable-gbm
|
||||||
|
#--enable-debug
|
||||||
|
make
|
||||||
|
|
||||||
|
# fake installation
|
||||||
|
mkdir $srcdir/fakeinstall
|
||||||
|
make DESTDIR=${srcdir}/fakeinstall install
|
||||||
|
}
|
||||||
|
|
||||||
|
package_freedreno-dri() {
|
||||||
|
pkgdesc="Mesa drivers for AMD/ATI Radeon"
|
||||||
|
depends=('mesa-libgl' 'libtxc_dxtn' "mesa=${pkgver}")
|
||||||
|
conflicts=('xf86-video-ati<6.9.0-6')
|
||||||
|
|
||||||
|
install -m755 -d ${pkgdir}/usr/lib/dri
|
||||||
|
mkdir -p ${pkgdir}/usr/lib/xorg/modules/dri/
|
||||||
|
mv -v ${srcdir}/fakeinstall/usr/lib/xorg/modules/dri/{kgsl,msm}_dri.so ${pkgdir}/usr/lib/xorg/modules/dri/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
package_mesa() {
|
||||||
|
pkgdesc="an open-source implementation of the OpenGL specification"
|
||||||
|
depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'systemd' 'elfutils' )
|
||||||
|
optdepends=('opengl-man-pages: for the OpenGL API man pages')
|
||||||
|
provides=('libglapi' 'osmesa' 'libgbm' 'libgles' 'libegl' 'khrplatform-devel')
|
||||||
|
conflicts=('libglapi' 'osmesa' 'libgbm' 'libgles' 'libegl' 'khrplatform-devel')
|
||||||
|
replaces=('libglapi' 'osmesa' 'libgbm' 'libgles' 'libegl' 'khrplatform-devel')
|
||||||
|
|
||||||
|
mv -v ${srcdir}/fakeinstall/* ${pkgdir}
|
||||||
|
# rename libgl/EGL/glesv*.so to not conflict with blobs - may break .pc files ?
|
||||||
|
mv ${pkgdir}/usr/lib/libGL.so.1.2.0 ${pkgdir}/usr/lib/mesa-libGL.so.1.2.0
|
||||||
|
mv ${pkgdir}/usr/lib/libEGL.so.1.0.0 ${pkgdir}/usr/lib/mesa-libEGL.so.1.0.0
|
||||||
|
mv ${pkgdir}/usr/lib/libGLESv1_CM.so.1.1.0 ${pkgdir}/usr/lib/mesa-libGLESv1_CM.so.1.1.0
|
||||||
|
mv ${pkgdir}/usr/lib/libGLESv2.so.2.0.0 ${pkgdir}/usr/lib/mesa-libGLESv2.so.2.0.0
|
||||||
|
|
||||||
|
rm ${pkgdir}/usr/lib/lib{GL,EGL,GLESv1_CM,GLESv2}.so*
|
||||||
|
install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
|
||||||
|
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/"
|
||||||
|
}
|
||||||
|
|
||||||
|
package_mesa-libgl() {
|
||||||
|
pkgdesc="Mesa 3-D graphics library"
|
||||||
|
depends=("mesa=${pkgver}")
|
||||||
|
provides=("libgl=${pkgver}")
|
||||||
|
replaces=('libgl')
|
||||||
|
|
||||||
|
# See FS#26284
|
||||||
|
install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
|
||||||
|
ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
|
||||||
|
|
||||||
|
#ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so
|
||||||
|
#ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1
|
||||||
|
#ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1.2.0
|
||||||
|
ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so
|
||||||
|
ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1
|
||||||
|
ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1.2.0
|
||||||
|
ln -s mesa-libEGL.so.1.0.0 ${pkgdir}/usr/lib/libEGL.so
|
||||||
|
ln -s mesa-libEGL.so.1.0.0 ${pkgdir}/usr/lib/libEGL.so.1
|
||||||
|
ln -s mesa-libEGL.so.1.0.0 ${pkgdir}/usr/lib/libEGL.so.1.0.0
|
||||||
|
ln -s mesa-libGLESv1_CM.so.1.1.0 ${pkgdir}/usr/lib/libGLESv1_CM.so
|
||||||
|
ln -s mesa-libGLESv1_CM.so.1.1.0 ${pkgdir}/usr/lib/libGLESv1_CM.so.1
|
||||||
|
ln -s mesa-libGLESv1_CM.so.1.1.0 ${pkgdir}/usr/lib/libGLESv1_CM.so.1.1.0
|
||||||
|
ln -s mesa-libGLESv2.so.2.0.0 ${pkgdir}/usr/lib/libGLESv2.so
|
||||||
|
ln -s mesa-libGLESv2.so.2.0.0 ${pkgdir}/usr/lib/libGLESv2.so.2
|
||||||
|
ln -s mesa-libGLESv2.so.2.0.0 ${pkgdir}/usr/lib/libGLESv2.so.2.0.0
|
||||||
|
|
||||||
|
install -m755 -d "${pkgdir}/usr/share/licenses/mesa-libgl"
|
||||||
|
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-libgl/"
|
||||||
|
}
|
20
README.md
20
README.md
|
@ -10,8 +10,6 @@ If you cannot get it booting you will need to
|
||||||
reboot into recovery and check /proc/last_kmsg for the errors. Or try and build
|
reboot into recovery and check /proc/last_kmsg for the errors. Or try and build
|
||||||
the UART cable (which I failed at)
|
the UART cable (which I failed at)
|
||||||
|
|
||||||
There is only xf86-video-fbdev working and no DRM or anything fancy
|
|
||||||
|
|
||||||
The Software Refresher in the kernel does not work. You will need to run my
|
The Software Refresher in the kernel does not work. You will need to run my
|
||||||
refresher app or fix the kernel :)
|
refresher app or fix the kernel :)
|
||||||
|
|
||||||
|
@ -23,6 +21,8 @@ kgsl_bo_gpuaddr comes back a 0
|
||||||
https://github.com/borh/nexus-7-2013-arch-scripts to get a working chroot
|
https://github.com/borh/nexus-7-2013-arch-scripts to get a working chroot
|
||||||
first.
|
first.
|
||||||
|
|
||||||
|
1a: remove trimslice packages from chroot
|
||||||
|
|
||||||
2: Edit the init script to point to your arch.img or partition
|
2: Edit the init script to point to your arch.img or partition
|
||||||
|
|
||||||
3: Edit and Run makebootimage.sh
|
3: Edit and Run makebootimage.sh
|
||||||
|
@ -56,13 +56,17 @@ details
|
||||||
|
|
||||||
Note: Disable the wpa_supplicant hook in /etc/dhcpcd.conf
|
Note: Disable the wpa_supplicant hook in /etc/dhcpcd.conf
|
||||||
|
|
||||||
## To get X working
|
## To get fbterm console
|
||||||
Since there is no framebuffer console you cannot start X manually (unless you
|
Copy fbterm/getty@.service to /etc/systemd/system/ and fbterm/fbterm-login to
|
||||||
are able to get ssh working, see above) Auto login is your friend.
|
/opt/fbterm-login and then systemctl enable getty@tty1.service
|
||||||
|
|
||||||
Be sure to install a window manager or something first and then follow
|
ln -s getty@.service autovt@.service to get it on all vt's
|
||||||
https://wiki.archlinux.org/index.php/Automatic_login_to_virtual_console and
|
|
||||||
https://wiki.archlinux.org/index.php/Start_X_at_Login
|
## To get X working
|
||||||
|
Install xf86-video-freedreno-git (aur) Use the xorg.conf included
|
||||||
|
|
||||||
|
Instead of filling the AUR with crap you can use the mesa and libdrm PKGBUILDs
|
||||||
|
included. Always use the git versions as they have the latest freedreno fixes
|
||||||
|
|
||||||
Your .xinitrc should contain something like
|
Your .xinitrc should contain something like
|
||||||
~/refresher &
|
~/refresher &
|
||||||
|
|
4
fbterm/fbterm-login
Executable file
4
fbterm/fbterm-login
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# example: fbterm-login fb1 tty1
|
||||||
|
export FRAMEBUFFER=/dev/$1
|
||||||
|
exec /usr/bin/fbterm -r 1 -s 24 -- /usr/bin/login < /dev/$2
|
45
fbterm/getty@.service
Normal file
45
fbterm/getty@.service
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
# This file is part of systemd.
|
||||||
|
#
|
||||||
|
# systemd is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU Lesser General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Getty on %I
|
||||||
|
Documentation=man:agetty(8) man:systemd-getty-generator(8)
|
||||||
|
Documentation=http://0pointer.de/blog/projects/serial-console.html
|
||||||
|
After=systemd-user-sessions.service plymouth-quit-wait.service
|
||||||
|
|
||||||
|
# If additional gettys are spawned during boot then we should make
|
||||||
|
# sure that this is synchronized before getty.target, even though
|
||||||
|
# getty.target didn't actually pull it in.
|
||||||
|
Before=getty.target
|
||||||
|
IgnoreOnIsolate=yes
|
||||||
|
|
||||||
|
# On systems without virtual consoles, don't start any getty. Note
|
||||||
|
# that serial gettys are covered by serial-getty@.service, not this
|
||||||
|
# unit.
|
||||||
|
ConditionPathExists=/dev/tty0
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
# the VT is cleared by TTYVTDisallocate
|
||||||
|
ExecStart=-/opt/fbterm-login fb0 %I
|
||||||
|
Type=idle
|
||||||
|
Restart=always
|
||||||
|
RestartSec=0
|
||||||
|
UtmpIdentifier=%I
|
||||||
|
TTYPath=/dev/%I
|
||||||
|
TTYReset=yes
|
||||||
|
TTYVHangup=yes
|
||||||
|
TTYVTDisallocate=yes
|
||||||
|
KillMode=process
|
||||||
|
IgnoreSIGPIPE=no
|
||||||
|
SendSIGHUP=yes
|
||||||
|
|
||||||
|
# Unset locale for the console getty since the console has problems
|
||||||
|
# displaying some internationalized messages.
|
||||||
|
Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=getty.target
|
17
xorg.conf
Normal file
17
xorg.conf
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
Section "Device"
|
||||||
|
Identifier "Video Device"
|
||||||
|
Driver "freedreno"
|
||||||
|
# Uncomment for addition debug traces in xorg log:
|
||||||
|
Option "Debug" "true"
|
||||||
|
# The below two options are not needed if you are using the
|
||||||
|
# msm drm/kms driver:
|
||||||
|
Option "fb" "/dev/fb0"
|
||||||
|
Option "SWCursor" "true"
|
||||||
|
Option "SWRefresher" "false"
|
||||||
|
Option "NoAccel" "true"
|
||||||
|
EndSection
|
||||||
|
Section "Screen"
|
||||||
|
Identifier "Screen"
|
||||||
|
Monitor "Monitor"
|
||||||
|
Device "Video Device"
|
||||||
|
EndSection
|
Loading…
Reference in a new issue