goals:
- even more hassle-free installation and configuration of a raspbian distro tailored for modartt pianoteq, compared to raspianoteq
- fast headless boot for casual playing
- created with linaro-gcc-based buildroot
- once-for-all configuration via distant X11 server
- headless as regular operation
results:
- ~27mb download, installation takes 200mb, you can reuse your old sdcard if you may...
unattended 10min installation +1min manual copying- casual playing in less than 15s, not very good :-/
prerequisites:
- download this file : pianoroot.img.xz (aka as a 'system image' or 'image')
- download and install etcher, a hassle-free image-to-sdcard burner
- download and install an X11 server (e.g. XQuartz (macos, tested) or Xming (win, untested) or XSDL (android, untested)) on your PC (and not on your pi!)
- a pianoteq ARM binary e.g. the demo one over at modartt
- burn image on sdcard with etcher
- mount the FAT32 partition of the sdcard on your computer, and
- put the pianoteq binary/executable in the FAT32 partition (aka /boot)
- create a file named X11DISPLAY in the FAT32 partition (aka /boot) containing the address of the computer that will be running the X11 server e.g. '192.168.1.49', or 'mycomputer' if it has a name (without the quotes)
- start an X11 server on your computer and type 'xhost +' in an X11 terminal
- put sdcard in pi, power on. The pianoteq GUI should appear on your machine after ~20s.
- configure pianoteq according to your setup, try to play a few notes to make sure it's running ok.
- et voilà !
- (optional) if you want to run headless, put the sdcard in your computer, rename X11DISPLAY to something else e.g. NOX11DISPLAY, put the sdcard back in the pi and reboot the pi. The Aliens will let you know when pianoteq is ready (after ~10s).
caveats:
- it works with my hifimydiy usb sound card that has no gain control, hence does not require alsamixer. alsamixer is on the system in case you need to unmute your sound card.
- might work with a usb sound card only, but it can be configured differently with the sources.
- no pianoteq GUI appearing: it won't work if there is no X11 server running and if there is a X11DISPLAY defined, as Pianoteq will continuously be relaunched trying to connect to an X11 server. You can however launch an X11 server after powering on the pi, pianoteq will eventually connect to it and display something.
- no sound: your sound card might need to be unmuted.
faq:
- why no X11 server in the image? because I wanted fast installation and fast boot. Left as an exercise for the user ;-)
- why no VNC? see previous question. Besides X11 is already a client-server architecture, there is no need for another layer. Granted, vnc viewers are more widespread than X11 servers...
- where are the sources? it's planned for the near future.
- wait, I thought that buildroot could not run regular glibc binaries?! True with buildroot internal compiler, but you can use linaro gcc as a buildroot toolchain, which makes those binaries work...
- the people over @ buildroot, and stackoverflow of course
Hi, I'm interested in adding Pianoteq touch screen GUI to your project, could you share your Buildroot settings?
RépondreSupprimersorry, I just noticed your message. I cannot start vagrant anymore, so I do not have files to share. However, here are my notes, you may succeed in replicating the process:
RépondreSupprimeruse vagrant
curl -O https://buildroot.org/downloads/Vagrantfile; vagrant up
vagrant ssh
cd buildroot
then:
make raspberrypi3_defconfig
make menuconfig
select an external toolchain: linaro
Build options —> [*] Enable compiler cache
to avoid a full git clone of a kernel, select a tgz of an existing one from https://github.com/raspberrypi/linux/releases
ex: https://github.com/raspberrypi/linux/archive/raspberrypi-kernel_1.20171029-1.tar.gz
enlarge size for filesystem
select:
openssh (networking application)
dejavu
freetype in graphics
fontconfig in graphics
alsa in library sound
/dev
/edev pour modprobe
modprobe snd-seq still necessary
add a user
see https://raspberrypi.stackexchange.com/questions/41568/how-to-connect-and-use-ssh-without-a-screen-using-buildroot/69246#69246
and... that's it for a working base configuration
then:
make source
to grab all required archives
make BR2_JLEVEL=4
cp output/images/zImage output/images/sdcard.img /vagrant/
in the image:
cmdline.txt smsc95xx.turbo_mode=N
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
600000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave
$ echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1200000