Note: This is currently incomplete.
Top of revision B board information
If you have any questions, improvements, or corrections email me at the address at the bottom of the page.This page documents how I made the image for flashing the BBB for the MFM reader/emulator.
Note:For this old image you need to update /etc/apt/sources.list and use apt-get update -o Acquire::Check-Valid-Until=false
For Debian images are available from here and testing images here.
NOTE: Don't use an image later than the 3.8 kernel. They don't
support the method I am using to configure the BBB pins.
I started with flashing BBB-eMMC-flasher-debian-7.8-console-armhf-2015-07-17-2gb.img.xz. onto the BBB.
The images frequently change so that one is likely to not be available.
Install various packages. Do the following logged into the BBB as root.
Setup repos.rcn-ee.net repo. Not sure if needed. wget https://repos.rcn-ee.net/debian/pool/main/r/rcn-ee-archive-keyring/rcn-ee-archive-keyring_2015.07.05~bpo70+20150705+1_all.deb dpkg -i rcn-ee-archive-keyring_2015.07.05~bpo70+20150705+1_all.deb sh -c "echo 'deb [arch=armhf] http://repos.rcn-ee.net/debian wheezy main' >> /etc/apt/sources.list" sh -c "echo '#deb-src [arch=armhf] http://repos.rcn-ee.net/debian wheezy main' >> /etc/apt/sources.list" # fetch package list apt-get update # bring all programs to current version apt-get -y upgrade # for power button apt-get -y install acpid # to build my software apt-get -y install binutils-dev gcc make am335x-pru-package binutils-dev device-tree-compiler # Set time on boot, only useful it BBB has network access apt-get -y install ntpdate # may be useful apt-get -y install git zip usbutils wireless-tools wpasupplicant # mount windows file system apt-get -y install cifs-utils # mount nfs file system apt-get -y install nfs-common # to get access to running process stdout apt-get -y install reptyr # binary patch programs apt-get -y install xdelta rdiff # For systemd-analize apt-get install python-dbus python-cairo #Enable usb ethernet address assignment apt-get install udhcpd #killall apt-get install psmisc #Installed on recent images apg-get install kpartx mtools #Disable stuff not normally needed. Below doesn't work since not really #systemd service even though is pretends to be one. #systemctl disable nfs-common.service update-rc.d nfs-common disable update-rc.d winbind disable # configure for my software echo options uio_pruss extram_pool_sz=1048576 > /etc/modprobe.d/uio_pruss.conf vi /boot/uEnv.txt Uncommented cape disable line to as shown below ##Disable HDMI (v3.8.x) cape_disable=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN (Change u-boot to not stop boot on any character received to prevent boot faulures). # u-boot git clone git://git.denx.de/u-boot.git cd u-boot/ git checkout v2015.07 -b tmp wget -c http://rcn-ee.com/repos/git/u-boot-patches/v2015.07/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch Edited include/configs/am335x_evm.h and added after #define CONFIG_SYS_I2C_MULTI_EEPROMS the lines #define CONFIG_AUTOBOOT_KEYED 1 #define CONFIG_AUTOBOOT_STOP_STR "s" make distclean make am335x_evm_defconfig make # These are only for the image I started with. u-boot is located in # different locations on other releases. dd if=MLO of=/dev/mmcblk0 count=1 seek=1 bs=128k dd if=u-boot.img of=/dev/mmcblk0 count=2 seek=1 bs=384k changed /etc/dhcp/dhclient.conf to limit delay on board startup if ethernet cable not plugged in and reduce time till address aquired when cable plugged in. timeout 5; retry 15; initial-interval 1; To prevent udhcpd not always starting commented out in /opt/scripts/boot/autoconfigure_usb0.sh #/usr/sbin/udhcpd -S ${deb_udhcpd_conf}Download latest mfm code .tgz file and copy it to BBB and build.
scp mfm_emu_powerfail*.tgz root@ipaddr: ssh root@ipaddr tar -xzf mfm_emu_powerfail_*.tgz cd mfm make cd ../emu make cd ../powerfail make exit (or poweroff) Created /etc/mfm_emu.conf and /etc/systemd/system/mfm_emu.service. Files referenced may not be the latest. Modified /opt/scripts/boot/am335x_evm.sh to prevent endless reboots and reflashing if mfm board installed since it does auto power back on. Making halt do what it is supposed to would be better. if [ ! "x${are_we_flasher}" = "x" ] ; then halt exit to if [ ! "x${are_we_flasher}" = "x" ] ; then sync echo 0 > /sys/class/leds/beaglebone\:green\:usr0/brightness echo 0 > /sys/class/leds/beaglebone\:green\:usr1/brightness echo 0 > /sys/class/leds/beaglebone\:green\:usr2/brightness echo 0 > /sys/class/leds/beaglebone\:green\:usr3/brightness halt -f exit Make small empty fatfs file /bin/dd if=/dev/zero of=/opt/empty_fatfs bs=1k count=50 /sbin/mkfs.vfat /opt/empty_fatfs Modified /opt/scripts/boot/am335x_evm.sh to enable serial, usb ethernet, and storage gadgets. Commented out #modprobe g_ether ${g_network} || true And added after it modprobe g_multi file=/tmp/empty_fatfs cdrom=0 ro=0 stall=0 removable=1 nofua=1 ${g_network} || true Note: There is no syncronization/locking so if you mount the filesystem on the beagelbone and both write bad things are likely to happen. Not sure if one side read only works ok. # To copy back to microSD, put card in BBB after boot starts to prevent # trying to boot from it apt-get clean mount /dev/mmcblk1p1 /mnt/ cp /root/u-boot/MLO /mnt/opt/backup/uboot/ cp /root/u-boot/u-boot.img /mnt/opt/backup/uboot/ # Save 215 MB rm -rf /root/u-boot # (-n to dry run, -v to show files copied rsync -aAx --delete /* /mnt/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/uEnv.txt,/boot,/var/log,/etc/ssh} Using zerofree command on partition can shrink image # uncomment the below line in /mnt/boot/uEnv.txt to disable HDMI interface cape_disable=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMINTo copy card to image (device name only right for my computer):
dd if=/dev/sdb bs=100k count=17408 | xz > BBB-mfm-emu.xz
To disable/enable flashing comment/uncomment boot/uEnv.txt cmdline= line
Issues
Enabling Ethernet seems to make poweroff and possibly startup wait for a while. The -f flag on poweroff/halt prevents that delay.
There are various issues with detecting when USB devices are plugged in. Hopefully a later kernel version will fix these and have the cape support needed for confiugring the BBB pins. I haven't investigated too much since they are only a minor nuisance for my usage.
If you wish to configure USB wireless device this is the first page I found that worked for me.