Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Bootable 64-bit RPi3 Gentoo image (OpenRC/Xfce/VC4) UPDATED
View unanswered posts
View posts from last 24 hours

Goto page 1, 2, 3 ... 18, 19, 20  Next  
This topic is locked: you cannot edit posts or make replies.    Gentoo Forums Forum Index Gentoo on ARM
View previous topic :: View next topic  
Author Message
Sakaki
Guru
Guru


Joined: 21 May 2014
Posts: 409

PostPosted: Mon Jan 30, 2017 2:06 am    Post subject: Bootable 64-bit RPi3 Gentoo image (OpenRC/Xfce/VC4) UPDATED Reply with quote

Hello

Do you own a Raspberry Pi 3 Model B single board computer, and would like to try running Gentoo on it in 64-bit mode?

If so, you may be interested to know that I've just released a bootable (~arm64) Gentoo image for the RPi3 on GitHub (available here).

Update 18 June 2019: a new 1.4.2 release of the image is available; please see this post for more details.

You can burn the image (~675MiB compressed) to a microSD card (>=8GB), then boot your RPi3 from it directly (the root partition will be automatically resized to fill the card on first boot). Full instructions for download and use are provided on the project's GitHub page.

The image contains a complete (OpenRC-based) Gentoo system (including a full Portage tree, up-to-date as of 28 Jan 2017) - so you can run emerge operations immediately - and has a reasonably populated userland (Xfce v4.12, Firefox v50.1.0, Claws Mail v3.14.1, VLC v2.2.4, AbiWord v3.0.2 etc.) so that you can get productive without having to compile anything first (unless you wish to do so, of course ^-^).

WiFi and Bluetooth both work, as does sound (via onboard headphone jack, and over HDMI). VC4 acceleration is supported via the mixed-mode vc4-fkms-v3d device-tree overlay / kernel module / Mesa driver, and performance seems reasonable (glxgears 400-750fps, real-time video playback). The kernel on the image is 4.10.0-rc5-v8 from raspberrypi/linux, in pure bcmrpi3_defconfig form.

Additional instructions are provided on the project's wiki about setting up an RPi3-compatible crossdev (and distccd) on your Gentoo PC, should you wish to do that to speed up builds (not necessary simply to play around with the image of course). A Portage binhost for the project is also available here.

If you get a chance to try it out, please let me know how you get on ^-^

PS I'd like to acknowledge NeddySeagoon's work getting Gentoo to run in 64-bit mode on the RPi3 (see particularly this thread, which was a really useful reference when putting this project together).

PPS To quote the Gentoo wiki: "Rpi3 in 64-bit mode has issues. It remains unstable and is not recommended. [...] Proceeding down the 64-bit path may enter a world of pain." Well... it's maybe not quite that bad, but you have been warned ^-^
_________________
Regards,

sakaki


Last edited by Sakaki on Tue Jun 18, 2019 12:34 am; edited 8 times in total
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54586
Location: 56N 3W

PostPosted: Mon Jan 30, 2017 12:06 pm    Post subject: Reply with quote

Sakaki,

First off, well done! Its downloading as I write.
I've been working on keywording mostly. I can add icedtea, libreoffice and a few other things to the mix. Like you, I can't get thunderbird to work either.
It segfaults a few minutes after startup, exactly like older Firefox.

icedtea is keyworded ~arm64 as of a few days ago.

-- edit --

Also works from Sakakis image. :)
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
will_flint
n00b
n00b


Joined: 30 Jan 2017
Posts: 1
Location: UK

PostPosted: Mon Jan 30, 2017 4:25 pm    Post subject: Amazing! Reply with quote

Awesome work guys , were currently toying with the idea of a 64bit build of Flint OS (chromium OS fork) for the Pi3.

Are you seeing any performance improvements?

I will download and test the Gentoo build and let you know if I find anything interesting.

Again awesome work there arn't many decent 64bit Pi OS out there at the moment.
Back to top
View user's profile Send private message
Sakaki
Guru
Guru


Joined: 21 May 2014
Posts: 409

PostPosted: Mon Jan 30, 2017 9:33 pm    Post subject: Re: Amazing! Reply with quote

will_flint wrote:
Awesome work guys , were currently toying with the idea of a 64bit build of Flint OS (chromium OS fork) for the Pi3..
Thanks ^-^
Still early days for 64-bit Pi on Gentoo though...
will_flint wrote:
Are you seeing any performance improvements?
Well, speaking of performance, as NeddySeagoon noted the 1.0.0 image uses a standard bcmrpi3_defconfig kernel, which defaults to the powersave frequency governor, holding the CPU clock at 600MHz.

To address this, I've just released an updated 1.0.1 image which switches to the ondemand governor during boot (and also fixes a few other minor glitches in 1.0.0). That allows the CPU to range between 600MHz and 1.2GHz, and significantly improves performance. Therefore, I'd suggest testing either with the new 1.0.1 release, or, if you want to stay with 1.0.0 to save another download, just create the file /etc/local.d/ondemand_freq_scaling.start and put your desired performance settings there; for example (from the 1.0.1 image):
Code:
#!/bin/bash

# switch to on-demand frequency scaling for better performance
# (Pi's default is powersave)

echo "Switching to on-demand CPU freqency scaling..." > /dev/console
SYS_CPUFREQ_GOVERNOR=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
if [ -e "${SYS_CPUFREQ_GOVERNOR}" ]; then
    echo "ondemand" > "${SYS_CPUFREQ_GOVERNOR}"
    echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
    echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
    echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
    echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
fi


Make this file executable, and it will be run when you next reboot. You can also emerge xfce-extra/xfce4-cpufreq-plugin to view the 'live' frequency settings.
_________________
Regards,

sakaki
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54586
Location: 56N 3W

PostPosted: Mon Jan 30, 2017 10:04 pm    Post subject: Reply with quote

Sakaki,

I've added /etc/local.d/ondemand_freq_scaling.start and emerged xfce-extra/xfce4-cpufreq-plugin. That all looks good.
Firefox appears to start faster.

The SD card still runs at 22Mb/sec for sequential reads according to
Code:
hdparm -tT


From your /etc/portage/package.accept_keywords/* it looks like you have done a lot of ~arm64 keywording.
Do you intend to file PR to upstream them?

I did mupdf over the weekend. hexchat is on my list of things to do.
There are others we have duplicated too.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Sakaki
Guru
Guru


Joined: 21 May 2014
Posts: 409

PostPosted: Tue Jan 31, 2017 12:58 pm    Post subject: Reply with quote

NeddySeagoon wrote:
From your /etc/portage/package.accept_keywords/* it looks like you have done a lot of ~arm64 keywording.
Do you intend to file PR to upstream them?

Yes, I guess it would be sensible to do that. ~arm64 is quite inconsistent at the moment.

Matching the explicitly keyworded packages on the 1.0.1 image (which are all "* ~*" or "*"; I dont have any = or ~ version keywording in there), using
Code:
pi64 ~ # grep -f <(cat /etc/portage/package.accept_keywords/* | grep -o '^\w\S*' | sort | uniq) <(eix-installed -q all)

yields:
Code:
app-arch/p7zip-16.02-r1
app-crypt/seahorse-3.20.0
app-editors/emacs-25.1
app-editors/mousepad-0.4.0
app-emacs/emacs-common-gentoo-1.5
app-eselect/eselect-emacs-1.18
app-eselect/eselect-wxwidgets-20140423
app-office/abiword-3.0.2-r1
app-office/orage-4.12.1
app-portage/euses-2.5.9
app-portage/mirrorselect-2.2.2-r2
app-portage/porthole-0.6.1-r4
app-text/dos2unix-7.3.4
app-text/enchant-1.6.0
app-text/evince-3.22.1
app-text/libspectre-0.2.8
app-text/mupdf-1.10a
app-text/psutils-1.17-r2
app-text/wv-1.2.9-r2
dev-libs/appstream-glib-0.5.0
dev-libs/libdbusmenu-12.10.2-r2
dev-libs/libindicate-12.10.1-r2
dev-libs/libindicator-12.10.1-r301
dev-libs/userspace-rcu-0.9.2
dev-perl/File-Next-1.160.0
dev-python/dbus-python-1.2.4
dev-qt/qtlockedfile-2.4.1_p20150629
dev-qt/qtsingleapplication-2.6.1_p20150629
dev-qt/qttranslations-4.8.7
dev-tcltk/expect-5.45
dev-util/appdata-tools-0.1.8-r1
dev-util/meld-3.16.4
gnome-extra/libgsf-1.14.41
gnome-extra/nm-applet-1.4.2
mail-client/claws-mail-3.14.1
media-fonts/cantarell-0.0.25
media-fonts/libertine-5.3.0.20120702-r2
media-gfx/imagemagick-6.9.7.4
media-gfx/ristretto-0.8.1
media-libs/glfw-3.2.1
media-libs/libcanberra-0.30-r5
media-libs/libdvdcss-1.4.0
media-libs/libdvdread-5.0.3
media-libs/x264-0.0.20160712
media-libs/xvid-1.3.4
media-plugins/gst-plugins-alsa-0.10.36-r1
media-sound/mpg123-1.23.8
media-video/ffmpeg-3.2.2
media-video/ffmpegthumbnailer-2.2.0
media-video/mplayer-1.3.0
media-video/smplayer-16.11.0
media-video/vlc-2.2.4-r1
net-analyzer/iptraf-ng-1.1.4-r2
net-analyzer/netselect-0.3-r4
net-irc/hexchat-2.12.4-r2
net-libs/libetpan-1.7.2-r1
net-libs/libmbim-1.14.0
net-libs/libqmi-1.16.2
net-misc/chrony-3.0
net-misc/iperf-3.1.5
net-misc/modemmanager-1.6.4
net-misc/networkmanager-openvpn-1.2.6
net-misc/openvpn-2.4.0-r1
net-wireless/b43-fwcutter-019
net-wireless/blueman-2.0.4
net-wireless/iw-4.9
net-wireless/rfkill-0.5-r1
sys-apps/ack-2.14
sys-apps/gnome-disk-utility-3.22.1
sys-apps/qdiskusage-1.0.4
sys-apps/smartmontools-6.5
sys-auth/consolekit-1.1.0-r1
sys-firmware/b43-firmware-6.30.163.46
sys-firmware/bluez-firmware-1.2
sys-fs/eudev-3.2.1
sys-fs/zerofree-1.0.4
sys-power/powertop-2.8
sys-process/iotop-0.6
virtual/cron-0-r1
virtual/emacs-25
www-client/links-2.14
x11-base/xorg-server-1.19.1
x11-drivers/xf86-input-synaptics-1.9.0
x11-libs/fltk-1.3.3-r5
x11-libs/goffice-0.10.32
x11-libs/gtksourceview-2.10.5-r3
x11-libs/gtksourceview-3.22.2
x11-libs/wxGTK-3.0.2.0-r3
x11-misc/xdiskusage-1.51
x11-themes/sound-theme-freedesktop-0.8
xfce-extra/thunar-archive-plugin-0.3.1-r2
xfce-extra/thunar-volman-0.8.1
xfce-extra/tumbler-0.1.31-r1
xfce-extra/xfce4-alsa-plugin-0.1.1
xfce-extra/xfce4-cpufreq-plugin-1.1.3
xfce-extra/xfce4-indicator-plugin-2.3.3-r1
xfce-extra/xfce4-mixer-4.11.0
xfce-extra/xfce4-power-manager-1.6.0
xfce-extra/xfce4-screenshooter-1.8.2
xfce-extra/xfce4-taskmanager-1.1.0

How does that match against your system (the gold/gcc 6 one)? If we can agree a common list I'm happy to submit some or all as (presumably, atomic?) PRs.

It'd also be good to upstream some of the firmware nasties like /lib/firmware/brcm/brcmfmac43430-sdio.txt, custom hciattach, proper init scripts (rather than .starts) etc. etc.. Probably someone should look at getting a systemd version together too (deathly silence). But should all be doable.

The RPi3 does seem to be at critical mass of usability now on 64-bit, so it'd be worth pushing this forward...
_________________
Regards,

sakaki
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54586
Location: 56N 3W

PostPosted: Tue Jan 31, 2017 1:27 pm    Post subject: Reply with quote

Sakaki,

I started out using the keywording suggested by portage, which is =. I need to go back and fix that to be <9999 so I get updates.
Code:
cat /etc/portage/package.accept_keywords/* | sort | uniq
<app-admin/killproc-9999 **
<app-emulation/libvirt-9999 **
<app-emulation/virt-manager-9999 **
<app-eselect/eselect-ruby-9999999999 **
<app-office/libreoffice-5.2.9999 **
<app-office/libreoffice-l10n-9999 **
<app-portage/mirrorselect-9999 **
<app-portage/ufed-9999 **
<app-text/enchant-9999 **
<app-text/gspell-9999 **
<app-text/gtkspell-9999 **
<app-text/libabw-9999 **
<app-text/libebook-9999 **
<app-text/libetonyek-9999 **
<app-text/libexttextcat-9999 **
<app-text/liblangtag-9999 **
<app-text/libmspub-9999 **
<app-text/libmwaw-9999 **
<app-text/libodfgen-9999 **
<app-text/libwpd-9999 **
<app-text/libwpg-9999 **
<app-text/libwps-9999 **
<app-text/mythes-9999 **
<dev-cpp/clucene-9999 **
<dev-cpp/libcmis-9999 **
<dev-db/unixODBC-9999 **
<dev-lang/mujs-9999 **
<dev-lang/ruby-9999 **
<dev-libs/crossguid-0_pre99999999 **
<dev-libs/gmime-9999 **
<dev-libs/hyphen-9999 **
<dev-libs/libixion-0.12 **
<dev-libs/liborcus-9999 **
<dev-libs/librevenge-9999 **
<dev-libs/rasqal-9999 **
<dev-libs/redland-9999 **
<dev-python/dbus-python-9999 **
<dev-python/feedparser-9999 **
<dev-python/html2text-9999 **
<dev-python/libvirt-python-9999 **
<dev-python/pillow-9999 **
<dev-python/ssl-fetch-9999 **
<dev-qt/qtmultimedia-9999 **
<dev-ruby/json-9999 **
<dev-ruby/kpeg-9999 **
<dev-ruby/racc-9999 **
<dev-ruby/rake-9999 **
<dev-ruby/rdoc-9999 **
<dev-ruby/rubygems-9999 **
<dev-util/colm-9999 **
<dev-util/mdds-9999 **
<dev-util/ragel-9999 **
<games-emulation/sdlmame-9999 **
<gnome-base/libgtop-9999 **
<mail-client/balsa-9999 **
<media-fonts/libertine-9999 **
<media-libs/fdk-aac-9999  **
<media-libs/glm-9999 **
<media-libs/gst-plugins-bad-9999 **
<media-libs/libao-9999 **
<media-libs/libcanberra-9999 **
<media-libs/libcdr-9999 **
<media-libs/libfreehand-9999 **
<media-libs/libmp4v2-9999 **
<media-libs/libpagemaker-9999 **
<media-libs/libsdl2-9999 **
<media-libs/libvisio-9999 **
<media-libs/portaudio-9999 **
<media-libs/portmidi-9999 **
<media-libs/raptor-9999 **
<media-libs/sbc-9999 **
<media-libs/sdl2-ttf-9999 **
<media-plugins/alsa-plugins-9999 **
<media-sound/bluez-alsa-9999 **
<media-sound/flac123-9999 **
<media-sound/pulseaudio-9999 **
<media-tv/kodi-9999 **
<media-video/ffmpeg-9999 **
<media-video/vlc-9999 **
<net-analyzer/netselect-9999 **
<net-analyzer/wireshark-99999999 **
<net-dialup/wvdial-9999 **
<net-irc/hexchat-9999 **
<net-irc/quassel-9999 **
<net-libs/libasyncns-9999 **
<net-libs/libmbim-9999 **
<net-libs/libqmi-9999 **
<net-libs/ortp-9999 **
<net-libs/webkit-gtk-9999 **
<net-libs/wvstreams-9999 **
<net-misc/curl-9999 **
<net-misc/mediatomb-9999 **
<net-misc/modemmanager-9999 **
<net-misc/npapi-sdk-9999 **
<net-misc/strongswan-9999 **
<net-wireless/blueman-9999 **
<net-wireless/rfkill-9999 **
<sci-libs/colamd-9999 **
<sci-libs/suitesparseconfig-9999 **
<sci-mathematics/lpsolve-5.5.2.0 **
<sys-apps/rescan-scsi-bus-9999 **
<sys-apps/sg3_utils-9999 **
<sys-apps/smartmontools-9999 **
<sys-apps/usbredir-9999 **
<sys-devel/boost-m4-9999 **
<sys-devel/gcc-7 **
<sys-devel/ucpp-9999 **
<sys-firmware/bluez-firmware-9999 **
<sys-fs/udisks-9999 **
<virtual/rubygems-9999 **
<www-client/midori-9999 **
<x11-libs/libump-9999 **
<x11-themes/sound-theme-freedesktop-9999 **
<x11-themes/xfwm4-themes-9999 **
<xfce-extra/xfce4-alsa-plugin-9999 **
<xfce-extra/xfce4-cellmodem-plugin-9999 **
<xfce-extra/xfce4-cpufreq-plugin-9999 **
<xfce-extra/xfce4-cpugraph-plugin-9999 **
<xfce-extra/xfce4-datetime-plugin-9999 **
<xfce-extra/xfce4-equake-plugin-9999 **
<xfce-extra/xfce4-mixer-9999 **
<xfce-extra/xfce4-mount-plugin-9999 **
<xfce-extra/xfce4-netspeed-plugin-9999 **
<xfce-extra/xfce4-taskmanager-9999 **
<xfce-extra/xfce4-verve-plugin-9999 **
=app-editors/hexedit-1.2.13 **
=app-emulation/libvirt-glib-0.2.3 **
=app-emulation/spice-protocol-0.12.11 **
=app-misc/geoclue-2.4.4 **
=app-text/rman-3.2-r1 **
=dev-libs/libIDL-0.8.14 **
=dev-libs/libdbusmenu-12.10.2-r2 **
=dev-perl/Text-CSV-1.330.0 **
=dev-python/ipaddr-2.1.11 **
=games-misc/fortune-mod-1.99.1-r2 **
=games-misc/fortune-mod-all-1 **
=games-misc/fortune-mod-bofh-excuses-1.2 **
=games-misc/fortune-mod-calvin-0.1.1 **
=games-misc/fortune-mod-chucknorris-0.1 **
=games-misc/fortune-mod-dubya-20050118 **
=games-misc/fortune-mod-familyguy-0.2 **
=games-misc/fortune-mod-firefly-2.1.1 **
=games-misc/fortune-mod-futurama-0.2 **
=games-misc/fortune-mod-gentoo-dev-20090306 **
=games-misc/fortune-mod-gentoo-forums-20041207 **
=games-misc/fortune-mod-hitchhiker-0.1 **
=games-misc/fortune-mod-homer-0.1 **
=games-misc/fortune-mod-humorixfortunes-1.4-r1 **
=games-misc/fortune-mod-kernelcookies-9 **
=games-misc/fortune-mod-osfortune-1 **
=games-misc/fortune-mod-powerpuff-0.3 **
=games-misc/fortune-mod-pqf-6.0 **
=games-misc/fortune-mod-simpsons-chalkboard-0.1 **
=games-misc/fortune-mod-smac-0.1 **
=games-misc/fortune-mod-sp-fortunes-0.2 **
=games-misc/fortune-mod-starwars-0.1 **
=games-misc/fortune-mod-strangelove-20041203 **
=games-misc/fortune-mod-tao-1 **
=games-misc/fortune-mod-zx-error-1.0 **
=mail-filter/spamdyke-4.3.0-r1 **
=mail-filter/spamdyke-5.0.0 **
=mail-filter/spamdyke-5.0.1 **
=mail-mta/netqmail-1.06-r4 **
=media-libs/celt-0.5.1.3 **
=media-libs/opus-1.1.2 **
=media-libs/vo-aacenc-0.1.3 **
=media-libs/xvid-1.3.4 **
=media-plugins/gst-plugins-libav-1.6.3 **
=media-video/ffmpeg-2.8.6 **
=net-libs/gtk-vnc-0.5.4 **
=net-mail/checkpassword-0.90-r3 **
=net-mail/dot-forward-0.71-r3 **
=net-mail/queue-repair-0.9.0-r1 **
=net-misc/spice-gtk-0.31 **
=net-misc/x11-ssh-askpass-1.2.4.1-r1 **
=netqmail/netqmail-1.06-r4 **
=sys-apps/ucspi-ssl-0.94-r1 **
=sys-apps/ucspi-tcp-0.88-r18 **
=sys-libs/libosinfo-0.3.0 **
=sys-process/daemontools-0.76-r7 **
=virtual/checkpassword-0 **
=virtual/daemontools-0 **
=virtual/mailx-1 **
=virtual/qmail-1.03 **
=www-client/palemoon-26.2.1 **
=x11-drivers/xf86-video-fbturbo-9999 **
=x11-libs/vte-0.36.5 **
mail-client/thunderbird **
Pi3 64bit ~ #


Its not just keywords. fortune needs a patch. I have yet to test the newer version.
bluez seems to need some Pi 3 specific patches, which have been upstreamed but only one has been accepted so far.
Not everything in my list builds, never mind builds and works.

My practice has been one PR per group of related keywords. e.g. for icedtea

I'll fix those = keywords and update my Pi 3

I became a dev as a forums mod, so I don't have commit access to the repository.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Sakaki
Guru
Guru


Joined: 21 May 2014
Posts: 409

PostPosted: Wed Feb 01, 2017 7:35 pm    Post subject: Re: Amazing! Reply with quote

will_flint wrote:
Are you seeing any performance improvements?

Decided to have a quick look at this, via some simple benchmarks. I used Roy Longbottom's RPi/Pi2/Pi3 basic benchmark test suite (see this page; zip downloadable here), and wrote a simple script that would compile and run these benchmarks on both a 32-bit and 64-bit Pi3 (script available on GitHub, here).

I then used the script (run from the "Source Code" directory unpacked from the above zip file) to generate a set of basic benchmark stats for my RPi3 in 32-bit mode (Raspbian, gcc-4.9.2) (referred to as B in what follows), and in 64-bit mode (using the bootable gentoo-on-rpi3-64bit image, and both the gcc-4.9.4 (C) and gcc-5.4.0 (D) compiler).

I have tabulated the stats below. The 32-bit gcc-4.9.2 results I have compared (as a control) to those reported by Roy Longbottom on his Pi benchmark page (system A in the below). These are pretty close, which is good. The most directly comparable 32-bit vs 64-bit results are probably B vs C, as these use essentially the same compiler and same source and board, so those factors are removed, while the "32-vs-64-bit" factor remains.

In all cases, I ran the tests on a system with no graphical desktop (or any significantly CPU-consuming) process running, with the default governor set to "performance", so a 1.2GHz clock was used. Instructions for doing this are at the top of the test script, for anyone wanting to try this themselves.

Summary

On a controlled basis it appears that the RPi3 in 64-bit mode exhibits (to nearest 5%):
  • 45% Whetstone improvement vs 32-bit
  • 55% Dhrystone 2 improvement vs 32-bit
  • 80% (non-NEON) double-precision Linpack improvement vs 32-bit
  • 130% (non-NEON) single-precision Linpack improvement vs 32-bit
  • 15% (NEON) single precision Linpack improvement vs 32-bit
  • 5% Livermore Loops improvement vs 32-bit
  • 60% MemSpeed (array ops, non-NEON) speedup vs 32-bit
  • 45% MemSpeed (array ops, NEON) speedup vs 32-bit
  • 0% raw memory read speedup (BusSpeed, in-cache) vs 32-bit

Subject of course to the usual caveats that many real-world programs are IO bound or GPU bound, there may be bugs in the software, I may have copied some numbers across incorrectly etc., these are still quite promising results.

You can easily try the tests yourself if you like (or want to dive into more details than are present here - the test outputs are quite verbose).

Tabulated Results

Code:

Whetstone Benchmark (bigger is better)
-----------------  ------  ------MFLOPS-------   -------------MOPS---------------  --------------
System              MWIPS    1      2      3      COS   EXP  FIXPT      IF  EQUAL      Notes
-----------------  ------  -------------------   --------------------------------  --------------
A) 32-bit gcc-4.8   711.6   336.5  329.7  256.9  12.2   8.8 1498.5  1796.7 1198.7  per Longbottom
B) 32-bit gcc-4.9   709.7   335.2  337.2  255.9  12.2   8.7 1492.6  1790.4 1193.9  control
C) 64-bit gcc-4.9  1026.8   331.0  348.4  283.0  20.6  12.8 1474.1  1767.8 1179.0  1.45 * B
D) 64-bit gcc-5.4  1029.2   330.9  348.4  283.1  20.5  12.9 1473.7  1768.1 1179.0  1.00 * C


Dhrystone 2 Benchmark (bigger is better)
-----------------  --------  --------------
System             VAX MIPS      Notes
-----------------  --------  --------------
A) 32-bit gcc-4.8    2469    per Longbottom
B) 32-bit gcc-4.9    2181    control
C) 64-bit gcc-4.9    3338    1.53 * B
D) 64-bit gcc-5.4    3423    1.03 * C

Linpack Benchmark (bigger is better)
-----------------   -------MFLOPS-------   -----------GAIN-----------  --------------
System              DP      SP   NEON SP    DP    SP    NEON  Against      Notes       
-----------------  ---------------------   --------------------------  --------------
A) 32-bit gcc-4.8   180     194     486                                per Longbottom
B) 32-bit gcc-4.9   176     193     434                                control
C) 64-bit gcc-4.9   315     448     493    1.79  2.32   1.14     B
D) 64-bit gcc-5.4   355     479     478    1.13  0.97   0.97     C

Livermore Loops Benchmark (bigger is better)
-----------------  -----------------LOOPS------------------ ------GAIN------  --------------
System             Maximum Average Geomean Harmean Minimum   Geomean Against      Notes       
-----------------  ----------------------------------------  ---------------  --------------
A) 32-bit gcc-4.8    398.4   210.6   185.9   160.2    56.5                    per Longbottom
B) 32-bit gcc-4.9    475.6   229.7   208.5   184.2    57.2                    control
C) 64-bit gcc-4.9    564.0   245.9   220.0   196.7    89.9      1.06    B
D) 64-bit gcc-5.4    635.5   270.8   241.6   214.8    90.9      1.10    C

Memory Speed Benchmark (bigger is better) - Results on 8KiB Buffer shown
-----------------  -------------------------------------------------------------  --------------
                   x[m]=x[m]+s*y[m] Int+   x[m]=x[m]+y[m]         x[m]=y[m]
                    Dble   Sngl  Int32   Dble   Sngl  Int32   Dble   Sngl  Int32
System              MB/S   MB/S   MB/S   MB/S   MB/S   MB/S   MB/S   MB/S   MB/S      Notes     
-----------------  -------------------------------------------------------------  --------------
A) 32-bit gcc-4.8  1619   1812   3448   2375   2237   3793   2698   3121   3147   per Longbottom
B) 32-bit gcc-4.9  1587   1361   3451   2377   2005   3452   2702   3147   3148   control
C) 64-bit gcc-4.9  3934   2504   3751   4984   3411   4164   3717   4643   4645
D) 64-bit gcc-5.4  4158   2505   3749   5339   3411   4164   4632   3727   3728
-----------------  -------------------------------------------------------------  --------------
  GAIN C vs B      2.48   1.84   1.09   2.10   1.70   1.21   1.38   1.48   1.48   geomean: 1.59
  GAIN D vs C      1.06   1.00   1.00   1.07   1.00   1.00   1.25   0.80   0.80   geomean: 0.99

Memory Speed Benchmark (bigger is better) - NEON - Results on 8KiB Buffer shown
-----------------  -------------------------------------------------------------  --------------
                   x[m]=x[m]+s*y[m] Int+  x[m]=x[m]+y[m]         x[m]=y[m]
                    Dble   Sngl  Int32  Dble   Sngl  Int32   Dble   Sngl  Int32
System              MB/S   MB/S   MB/S  MB/S   MB/S   MB/S   MB/S   MB/S   MB/S      Notes     
-----------------  -------------------------------------------------------------  --------------
A) 32-bit gcc-4.8  1627   2387   3467   2387   3181   3812   2713   3164   3149   per Longbottom
B) 32-bit gcc-4.9  1587   2237   3452   2378   2924   3452   2703   3148   3148   control
C) 64-bit gcc-4.9  3935   2497   3746   4982   3409   4160   3721   4645   4637
D) 64-bit gcc-5.4  4157   2506   3745   5335   3410   4163   4628   3727   3727
-----------------  -------------------------------------------------------------  --------------
  GAIN C vs B      2.48   1.12   1.09   2.10   1.17   1.21   1.38   1.48   1.47   geomean: 1.44
  GAIN D vs C      1.06   1.00   1.00   1.07   1.00   1.00   1.24   0.80   0.80   geomean: 0.99

Bus Speed Benchmark (bigger is better) - Results on 16KiB Buffer shown
-----------------  ----------------------------------------  --------------
                   Reading Speed 4 Byte Words in MBytes/sec
                   Inc32  Inc16   Inc8   Inc4   Inc2   Read
System             Words  Words  Words  Words  Words    All     Notes     
-----------------  ----------------------------------------  --------------
A) 32-bit gcc-4.8   3335   3741   4075   4371   4388   4413  per Longbottom
B) 32-bit gcc-4.9   3302   3711   4044   4279   4357   4365  control
C) 64-bit gcc-4.9   2992   3660   4059   4300   4365   4226
D) 64-bit gcc-5.4   3352   3667   4070   4288   4270   3733
  GAIN C vs B       0.91   0.99   1.00   1.00   1.00   0.97  geomean: 0.98
  GAIN D vs C       1.12   1.00   1.00   1.00   0.98   0.88  geomean: 0.99

Edited to fix improperly rounded statistic
Edited to change "gain" (ambiguous) to "improvement"
_________________
Regards,

sakaki


Last edited by Sakaki on Wed Feb 01, 2017 11:16 pm; edited 2 times in total
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54586
Location: 56N 3W

PostPosted: Wed Feb 01, 2017 8:18 pm    Post subject: Reply with quote

Team,

Buried in the benchmarks cited by Sakaki is this wee gem.

Roy Longbottom wrote:
For Cray 1 comparison purposes, it is more appropriate to use Cray 1S results, as these are from running all 24 kernels. Geometric mean for this system is 11.9 MFLOPS. In 1978, the Cray 1 supercomputer cost $7 Million, weighed 10,500 pounds and had a 115 kilowatt power supply. It was, by far, the fastest computer in the world. The Raspberry Pi costs around $70 (CPU board, case, power supply, SD card), weighs a few ounces, uses a 5 watt power supply and is more than 4.5 times faster than the Cray 1.

_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
celerrime
n00b
n00b


Joined: 04 Feb 2017
Posts: 1

PostPosted: Sat Feb 04, 2017 4:15 am    Post subject: Reply with quote

Thanks for all your work on this and the detailed info!

Currently running the latest RPi3 optimized builds from funtoo on my original microsd (workstation profile). Still taking a while to get it updated.

Looking forward to trying this out and taking notes.
_________________
real newb. excuse any stupid questions and kindly point me to a resource. loving gentoo.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54586
Location: 56N 3W

PostPosted: Sat Feb 04, 2017 12:16 pm    Post subject: Reply with quote

Sakaki,

I've been able to reproduce your 64 bit VC4 success following your pointers. Thank you.
The hard bit was getting sound over HDMI to work. I had installed bluealsa and set up audio over bluetooth as the system default and forgotten how to disable it.
Anyway, its all good now.

The Pi just fails to play DVD .vob files (mpeg2) at 1920x1080 at 60Hz using Kodi.
VLC works for audio but makes Xorg segfault with mpeg2
My test is the opening sequence of "The Good, The Bad and The Ugly" where the dog walks across the screen. If its smooth, alls good but it makes dropped frames stand out.

sdlmame setup is usable. It wasn't under framebuffer-turbo. I need to install some ROMs to test further.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Sakaki
Guru
Guru


Joined: 21 May 2014
Posts: 409

PostPosted: Sat Feb 04, 2017 12:30 pm    Post subject: Reply with quote

NeddySeagoon wrote:
VLC works for audio but makes Xorg segfault with mpeg2
Have you tried disabling xv on your xserver? On the image I have (in /etc/X11/xorg.conf.d/50-disable-Xv.conf):
Code:
# Xv currently crashes; use gl output for video instead
Section "Extensions"
        Option      "XVideo" "Disable"
EndSection
With this, VLC and mplayer use gl mode by default for video output. Otherwise they seem to try xv first and I found that often killed the xserver. Not sure why.

PS submitted a few keyword PRs as a test, seemed to go OK, so will try doing the rest (ffmpeg etc) over the next few days.
_________________
Regards,

sakaki
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54586
Location: 56N 3W

PostPosted: Sat Feb 04, 2017 12:42 pm    Post subject: Reply with quote

Sakaki,

Being Old SKool, I still have an xorg.conf.
Turning off XVideo stopped the crash.

Thank you.

If you file too many PRs, you might get recruited, so you can commit your own work.
Keep it up.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Sakaki
Guru
Guru


Joined: 21 May 2014
Posts: 409

PostPosted: Mon Feb 06, 2017 4:30 pm    Post subject: Reply with quote

64-bit vs 32-bit performance

I sent Roy Longbottom a link to the 64-bit image and preliminary benchmark results a few days ago. He has now tried his own 64-bit variants of the benchmarks (compiled on GCC 6) on both this image and OpenSUSE 64-bit for Raspberry Pi. The results are here ff.

These seem to bear out the results reported above, for the most part. Looks like 64-bit is faster, quite a bit faster, at least for certain workloads...
_________________
Regards,

sakaki
Back to top
View user's profile Send private message
roylongbottom
n00b
n00b


Joined: 13 Feb 2017
Posts: 64
Location: Essex, UK

PostPosted: Tue Feb 14, 2017 10:43 am    Post subject: Reply with quote

64 Bit Benchmarks


Confirming Sakaki’s report, I have compiled and run the first set of 64 bit benchmarks. Full details and results are in the following, with benchmarks and source codes in the tar.gz file:

http://www.roylongbottom.org.uk/Raspberry%20Pi%20Benchmarks.htm
http://www.roylongbottom.org.uk/Rpi3-64-Bit-Benchmarks.tar.gz

The Classic Benchmarks are the first programs that set standards of performance for computers in the 1970s and 1980s. They are Whetstone, Dhrystone, Linpack and Livermore Loops. Improvements indicated relate to comparisons of gcc-6 64 bit versions and 32 bit compilations from gcc 4.8 via Raspbian.

Whetstone - This includes simple test loops that do not benefit from advanced instructions. There was a 40% improvement in overall performance. This was due to limited but dominant tests using such as COS and EXP functions.

Dhrystone - rated in VAX MIPS AKA DMIPS produced a 43% improvement, but this benchmark is susceptible to over optimisation.

Linpack - double and single precision versions (DP and SP), with results reported in MFLOPS. Speed improvements, over the 32 bit version, were around 1.9 times DP and 2.5 times SP. There is also a version that uses NEON intrinsic functions where, at 32 bits and 64 bits, are compiled as different varieties of vector instructions, with only a 10% improvement.

Livermore Loops - has 24 test kernels, where 64 bit performance increased between 1.02 and 2.88 times. The official average was 34% faster, at 279 MFLOPS. This is 21 times faster than the Cray 1 supercomputer, where this benchmark confirmed the original selection.

Memory tests - These measure cache and RAM speeds with results in MB/second. As could be expected, RAM speeds were generally quite similar for particular test functions.

MemSpeed - Nine tests measure speeds using floating point (FP) and integer calculations. Cache based improvements were 1.64 to 2.60 DPFP, 1.17 to 1.55 SPFP and 1.03 to 1.23 integer.

BusSpeed - this reads data via loops with 64 AND instructions, attempting to measure maximum data transfer speeds. It includes variable address increments to identify burst reading and to provide a means of estimating bus speeds. Main differences were on using L1 cache data, where average bursts speeds were 38% faster but reading all data was slower. This is surprising as the 64 bit disassembly indicate that far more registers were used, with fewer load instructions, and the same type of AND instructions.

NeonSpeed - All floating point data is single precision. The source code carries out the same calculations using normal arithmetic and more complicated NEON intrinsic functions, the latter being compiled as different types of vector instructions, with no real average 64 bit improvement. The normal SP calculations were slightly faster.
_________________
Regards

Roy
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3740
Location: Rasi, Finland

PostPosted: Wed Feb 15, 2017 12:29 pm    Post subject: Reply with quote

Nice work!

I have few questions:
  • I assume this image has glibc. Is it possible to use musl µlibc?
  • What hardware parts/functions do not work yet? I have long planned to buy the offical RPi 7" touchscreen. I do remember It needed some extra software to work...

_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
roylongbottom
n00b
n00b


Joined: 13 Feb 2017
Posts: 64
Location: Essex, UK

PostPosted: Wed Feb 15, 2017 4:49 pm    Post subject: Reply with quote

Zucca wrote:
Nice work!

I have few questions:
  • I assume this image has glibc. Is it possible to use musl µlibc?
  • What hardware parts/functions do not work yet? I have long planned to buy the offical RPi 7" touchscreen. I do remember It needed some extra software to work...


For detail you need to consult the experts here. The resolution of the first monitor I tried was 1620 x 1050 which eventually produced a jumpy display. Next was an HD TV that works perfectly. Later, I tried a 1920 x 1080 monitor that produced a good display, but did not fill the screen. Msg from sakaki indicated that there are numerous settings, selected in config.txt.

LAN and WiFi both work, for connection to Internet. I understand that there are some difficulties in connecting to a Windows Workgroup, but I haven't tried yet, as USB drives can be used, and that meets my needs. Bluetooth did not work, but I didn't really try.
_________________
Regards

Roy
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54586
Location: 56N 3W

PostPosted: Wed Feb 15, 2017 5:20 pm    Post subject: Reply with quote

roylongbottom,

Thank you for the benchmarks and for joining the forums to comment.

All the onboard hardware works. Some is easier to get to go than others.
Bluez-5 needs some patches that have been unstreamed but were not in Gentoo at the end of 2016
I made a bluetooth keyboard work but bluetooth audio is harder, I've not got a satisfactory result there.

I don't have a camera or dsi device, so that's not tested.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Sakaki
Guru
Guru


Joined: 21 May 2014
Posts: 409

PostPosted: Thu Feb 16, 2017 12:43 am    Post subject: Reply with quote

Zucca wrote:
Nice work!

I have few questions:
  • I assume this image has glibc. Is it possible to use musl µlibc?
  • What hardware parts/functions do not work yet? I have long planned to buy the offical RPi 7" touchscreen. I do remember It needed some extra software to work...

Yes, the image uses glibc. In fact, you can see a list of all installed packages on the image (with version numbers) here.

As to making it use musl or uClibc(-ng?)... I guess this would be possible, but I'm not sure of the exact status of either library in Gentoo on arm64 (perhaps someone else can jump in here and comment, you could also look at e.g. the Hardened uClibc wiki page and Hardened musl wiki page). But as there are no (official) arm64 stage-3's available for either uClibc or musl at the time of writing, you'll have to do a full crossdev-style (Linux-from-scratch style?) bootstrap, most likely, if you want to go this route.

As to hardware, as NeddySeagoon said, most stuff works right now. For example, basic VC4 acceleration works (gl-based video, glamor etc.), basic sound-over-HDMI, Bluetooth (at least for simple keyboard / mouse stuff, you may have issues with e.g. audio), WiFi etc. You cannot yet do h/w accelerated H264 decoding (it is possible to get raspberrypi-userland to build, if you force DARM64=on, but as you can see from this commit, MMAL is currently masked). A lot of the stuff is still in active development (e.g. vc4-fkms-v3d) so you will experience issues. Many packages require keywording to build. Nevertheless, the system is broadly usable now and things can only improve as arm64 transitions out of 'experimental' status at Gentoo.

As to the touchscreen - not sure as I don't have one myself (the RPi3 I use lives in my husband's Pi-Top, which I must give him back someday ^-^) but the image's kernel does have the necessary CONFIG_TOUCHSCREEN_RPI_FT5406 included. Per these instructions, you may also need to set dtoverlay=rpi-ft5406 in /boot/config.txt (but this is just a text-file edit).

While on the topic of config.txt, as roylongbottom just noted you may experience resolution issues with non-HDMI monitors if using the image, since I set hdmi_drive=2 in config.txt to ensure HDMI audio would definitely be available (on hardware that supports this). If you are using e.g. a DVI monitor, you may get a better picture by commenting out hdmi_drive=2, or even setting hdmi_drive=1, in /boot/config.txt. This isn't a 64-bit issue per-se; for more details, please see these notes.
_________________
Regards,

sakaki
Back to top
View user's profile Send private message
Ormaaj
Guru
Guru


Joined: 28 Jan 2008
Posts: 319

PostPosted: Thu Feb 16, 2017 2:47 am    Post subject: Reply with quote

Is this using AArch64 with ILP32 ABI or full LLP64? Is the former possible? Or multilib? I just glanced at the gcc manual and notice -mabi=ilp32 as an option and would think that would be the obvious choice given we only have 1G RAM to play with.

Coincidentally my pi is arriving tomorrow so I haven't done much research yet.
Back to top
View user's profile Send private message
R0b0t1
Apprentice
Apprentice


Joined: 05 Jun 2008
Posts: 264

PostPosted: Thu Feb 16, 2017 3:09 am    Post subject: Reply with quote

Hello,

Sakaki, the default config.txt is incompatible with some monitors - unfortunately I don't know precisely which (besides mine). Commenting hdmi_drive=2 solves it but gives a very low resolution screen. Moving or deleting the file gives a better boot environment. I'll do some testing of the best configuration options later, maybe after I get my own system going. I decided to use yours when I ran into a wall just so I could see it boot all the way up. Cheers!
Back to top
View user's profile Send private message
Sakaki
Guru
Guru


Joined: 21 May 2014
Posts: 409

PostPosted: Thu Feb 16, 2017 10:51 am    Post subject: Reply with quote

R0b0t1 wrote:
Sakaki, the default config.txt is incompatible with some monitors - unfortunately I don't know precisely which (besides mine). Commenting hdmi_drive=2 solves it but gives a very low resolution screen. Moving or deleting the file gives a better boot environment. I'll do some testing of the best configuration options later, maybe after I get my own system going. I decided to use yours when I ran into a wall just so I could see it boot all the way up. Cheers!

It is probably best not to delete or rename config.txt, as otherwise you will lose audio and VC4 support (as the necessary device-tree overlays won't be loaded). The issue is most likely that your monitor's resolution is not auto-detected by the RPi3. Does it boot OK with stock Raspbian (same monitor, cable etc.)?
Things to try, in order (using the shipped config.txt):
Code:
# force DVI
htmi_drive=1

if that fails, then:
Code:
# force DVI and DMT
htmi_drive=1
hdmi_group=2

and failing that, set a particular (known-good-for-your-monitor) resolution, using the table on this page (scroll down to HDMI_MODE table for DMT). For example:
Code:
# force DVI and DMT, set 1920x1080, 60Hz
htmi_drive=1
hdmi_group=2
hdmi_mode=82


PS, I got the image started off using the stage-3 and a crossdev-built kernel initially (just untarred the stage-3 into the root partition, edited it to set appropriate fstab, /etc/shadow, keymap etc, then with appropriate cmdline.txt booted to a console, then with attached screen/keyboard setup /etc/portage/make.conf and other baseline Portage stuff, configured basic OpenRC networking, emerge-webrsync'd, locally emerged distcc, and then did an emptytree emerge under distcc. Then set profile to desktop and (with liberal application of keywording!) pulled the rest of the image together (fairly normal build process by this point). Then cleaned everything up.
_________________
Regards,

sakaki
Back to top
View user's profile Send private message
R0b0t1
Apprentice
Apprentice


Joined: 05 Jun 2008
Posts: 264

PostPosted: Thu Feb 16, 2017 5:43 pm    Post subject: Reply with quote

Sakaki wrote:
R0b0t1 wrote:
Sakaki, the default config.txt is incompatible with some monitors - unfortunately I don't know precisely which (besides mine). Commenting hdmi_drive=2 solves it but gives a very low resolution screen. Moving or deleting the file gives a better boot environment. I'll do some testing of the best configuration options later, maybe after I get my own system going. I decided to use yours when I ran into a wall just so I could see it boot all the way up. Cheers!

It is probably best not to delete or rename config.txt, as otherwise you will lose audio and VC4 support (as the necessary device-tree overlays won't be loaded). The issue is most likely that your monitor's resolution is not auto-detected by the RPi3. Does it boot OK with stock Raspbian (same monitor, cable etc.)?
Things to try, in order (using the shipped config.txt):
Code:
# force DVI
htmi_drive=1

if that fails, then:
Code:
# force DVI and DMT
htmi_drive=1
hdmi_group=2

and failing that, set a particular (known-good-for-your-monitor) resolution, using the table on this page (scroll down to HDMI_MODE table for DMT). For example:
Code:
# force DVI and DMT, set 1920x1080, 60Hz
htmi_drive=1
hdmi_group=2
hdmi_mode=82



This would explain why it looked like it was using software rendering (it was). I will try those settings when I get a chance. Yes, raspbian detects the kernel properly, as does the 32-bit arm stage3, though it is missing a config.txt.

Sakaki wrote:

PS, I got the image started off using the stage-3 and a crossdev-built kernel initially (just untarred the stage-3 into the root partition, edited it to set appropriate fstab, /etc/shadow, keymap etc, then with appropriate cmdline.txt booted to a console, then with attached screen/keyboard setup /etc/portage/make.conf and other baseline Portage stuff, configured basic OpenRC networking, emerge-webrsync'd, locally emerged distcc, and then did an emptytree emerge under distcc. Then set profile to desktop and (with liberal application of keywording!) pulled the rest of the image together (fairly normal build process by this point). Then cleaned everything up.


I was able to do this to get the arm32 stage3 working with the foundation provided kernel (I didn't compile a kernel as I wished to move directly to aarch64). I'm not sure my installation has been complicated by avoiding the provided aarch64 stage3, but for now I am avoiding it as a signed version is not available. I will see what happens as soon as I get a kernel to detect a valid root. (Right now my kernel happens to barf, and I'm looking at your image to see if I can find out why.)
Back to top
View user's profile Send private message
R0b0t1
Apprentice
Apprentice


Joined: 05 Jun 2008
Posts: 264

PostPosted: Thu Feb 16, 2017 7:24 pm    Post subject: Reply with quote

I apologize for the double post, but having just re-imaged the SD card I am using it does not seem like video acceleration is used. Moving the mouse around the screen lags. Unlike the previous monitor I was using, however, (which is FullHD but nearly 10 years old) the display resolution is detected properly.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54586
Location: 56N 3W

PostPosted: Thu Feb 16, 2017 9:05 pm    Post subject: Reply with quote

R0b0t1,

You can boot the Pi with a 64 bit kernel and 32 bit userland. If you try that, don't forget to put your 64 bit kernel modules into /lib/modules. [fixed in an edit /usr/lib was incorrect]

Video acceleration depends on loading a device tree overlay. That's done by config.txt.
Code:
# lets have the VC4 hardware accelerated video
dtoverlay=vc4-fkms-v3d


bootcode.bin recognises three default kernel names and sets the CPU into 32 bit or 64 bit mode accordingly.
Well, it does nothing for 32 bit mode as that's the default.

It looks at the CPU, if its 64 bit capable and kernel8.img exists, it sets the CPU into 64 bit mode, then loads and executes kernel8.img.
If you use another 64 bit kernel name, you must set the CPU into 64 bit mode in config.txt. Sakakis' setup does this.

If kernel8.img is missing, on a Pi 2 and Pi 3 kernel7.img is loaded and executed.
On an original Pi, kernel.img is run.

Sound is disabled by default. You need a config.txt entry to turn it on.
Code:
# Enable audio (loads snd_bcm2835)
dtparam=audio=on


To run in 64 bit mode with no config.txt, your kernel must be called kernel8.img
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.


Last edited by NeddySeagoon on Thu Feb 16, 2017 9:59 pm; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
This topic is locked: you cannot edit posts or make replies.    Gentoo Forums Forum Index Gentoo on ARM All times are GMT
Goto page 1, 2, 3 ... 18, 19, 20  Next
Page 1 of 20

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum