piCore - mxmxmx/terminal_tedium GitHub Wiki
setting up piCore
- if you don't mind a little more config-tediousness, piCore (tinycore for ARMv6/v7) seems to offer slightly better performance than raspbian. +/- a few quirks, setting things up is pretty similar. the easiest thing is probably using a older raspberry with ethernet or usb/serial dongle, if you have one. then port your working pd sketches. you can then also set up wireless, of course (s.b.)
steps:
-
get piCore here (9.0.3 at the time of writing)
-
move the image onto your SD card.
-
ssh into piCore.
ssh [email protected]; password ispiCore -
first thing you have to do is expand the partition:
- type:
sudo fdisk -u /dev/mmcblk0 - type
p, that will list two partitions:/dev/mmcblk0p1and/dev/mmcblk0p2 - write down the start cylinder of
/dev/mmcblk0p2 - delete
/dev/mmcblk0p2: typed, then2(= partition #2) - write the changes: type
w - reboot: type
sudo reboot - ssh into piCore again, as above
- type
sudo fdisk -u /dev/mmcblk0 - recreate
/dev/mmcblk0p2: type typen(new), thenp(primary), then2(= partition #2), then the number you've written down (start cylinder); enter (default stop cylinder) and then save:w - reboot: type
sudo reboot
- type:
-
once rebooted, resize the filesystem:
sudo resize2fs /dev/mmcblk0p2 -
now, we can install/configure the few things we need to make things work; the concept involved are bit different, if you're used to raspbian, ubuntu, or the like but not drastically different. to install stuff ("extensions") you use
tce-load; to make persistent changes, you have to usefiletool.sh -b. -
first then, install some things we'll need (the
-wiflag meaning the app will be available "onboot"):tce-load -wi alsa.tcz(alsa)tce-load -wi alsa-utils.tcz(more things for alsa)- also install (using
tce-load -wi):git.tcz,make.tcz,gcc.tcz,compiletc.tcz,wget.tcz,tar.tcz,acl.tcz,wiringpi.tcz,wiringpi-dev.tcz,libunistring.tcz, andnano.tcz(or whichever editor you prefer)
-
if you intend to use wifi, you'll also need
wireless_tools.tczandwpa_supplicant.tcz -
next, edit the device-tree overlay. in piCore, the file in question is
/mnt/mmcblk0p1/config.txt:-
mount the partition:
mount /mnt/mmcblk0p1 -
open the file:
sudo nano /mnt/mmcblk0p1/config.txt(you may have toexport TERM=xtermfirst) -
and add the following:
dtparam=audio=off gpu_mem=16 dtparam=i2c_arm=on dtparam=spi=on dtparam=i2s=on device_tree_overlay=i2s-mmap ### wm8731: device_tree_overlay=rpi-proto -
save the file.
-
-
next, get pd and the externals:
- get pd from the man himself:
wget http://msp.ucsd.edu/Software/pd-0.46-7.armv6.tar.gz(note this is for ARMv6. you'll need a different .gz file for ARMv7. see http://msp.ucsd.edu/Software) - untar the zip file:
tar -zxvf pd-0.46-7.armv6.tar.gz, and remove it:rm pd-0.46-7.armv6.tar.gz - get the terminal tedium stuff:
git clone git://github.com/mxmxmx/terminal_tedium - compile the externals using gcc or simply move the pre-compiled ones to the
../pd-0.46-7/extra/folder; for example:
mv /home/tc/terminal_tedium/software/externals/*.pd_linux /home/tc/pd-0.46-7/extra/ - get pd from the man himself:
-
back up everything:
filetool.sh -band reboot -
once rebooted, give pd a testrun: e.g.
sudo /home/tc/pd-0.46-7/bin/pd -nogui -noadc -rt /home/tc/terminal_tedium/software/adc_test.pd(this shouldn't complain)
start up script:
- at this point, things should be ready to use. a start up script will start things at set-up; in the following example, we put one called start.sh into the home directory:
-
touch /home/tc/start.sh -
nano /home/tc/start.sh -
the contents of the file might simply look like so:
#!/bin/sh sudo /home/tc/pd-0.46-7/bin/pd -nogui -noadc -rt -audiobuf XX /path/to/patchname.pd & -
where patchname.pd is your patch,
XXsome number that works for you (= size of audiobuffer; the lower, the less latency) -
make it executable:
sudo chmod 755 /home/tc/start.sh -
and add it to bootlocal.sh (which runs after the boot):
sudo nano /opt/bootlocal.sh(also change the CPU frequency governor to performance ):
-
#!/bin/sh
# Start serial terminal
/usr/sbin/startserialtty &
# Set CPU frequency governor to performance
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Load modules
/sbin/modprobe i2c-dev
# Start openssh daemon
/usr/local/etc/init.d/openssh start
# ------ Put other system startup commands below this line
/home/tc/start.sh
- back up everything:
filetool.sh -b. pd should now be running your patch after piCore booted up.
wireless:
One way that works is the following:
- first run
wpa_passphrase [SSID] [password], where SSID is your network name and password the password; copy the output, you'll need it in the next step - now, create a file called
wpa_configure.confin/opt:sudo nano /opt/wpa_configure.conf - it'll look somewhat like so (details will depend on your network):
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="[the name of your network]"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
psk=[the long number you've just copied]
}
-
add the path (ie
/opt/wpa_configure.conf) to/opt/.filetool.lst -
now add you can add the wlan stuff to your start-up script:
#!/bin/sh
sudo /home/tc/pd-0.46-7/bin/pd -nogui -noadc -rt -audiobuf 15 /home/tc/mypatch.pd &
sleep 2
sudo wpa_supplicant -B -D wext -i wlan0 -c /opt/wpa_configure.conf &
sleep 2
sudo /sbin/udhcpc -b -i wlan0 -x hostname:$(/bin/hostname) -p /var/run/udhcpc.wlan0.pid &
- note: to make this work reliably with my wifi dongle, i also had to add
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
to /etc/modprobe.conf . (and add /etc/modprobe.conf to /opt/.filetool.lst)
filetool.sh -b