RetroBSD

2.11bsd.jpg

2.11bsd-2.jpg

RetroBSD is an embedded version of 2.11BSD for PIC32 micro-controllers.

Setup

First we need to fetch a working cross-compiler. RetroBSD supports this one in Linux.

cd /usr/local
wget https://github.com/downloads/jasonkajita/chipKIT-cxx/pic32-tools-chipKIT-cxx-master-Linux32-image-20120720.zip
unzip pic32-tools-chipKIT-cxx-master-Linux32-image-20120720.zip

Checkout

Now we fetch the RetroBSD source from GitHUB.

mkdir -p /embedded
cd /embedded
git clone https://github.com/RetroBSD/retrobsd.git
cd retrobsd

Configure

In this example we will configure RetroBSD for the SDXL board.

First select the SDXL.

sed -i 's/(MAX32)/(SDXL)/' Makefile

Now we will enable two UARTS. Edit the following file,

vi sys/pic32/sdxl/Makefile

and add the following within the DEFS section, save the file.

DEFS += -DUART1_BAUD=115200
DEFS += -DUART1_ENABLED=YES
DEFS += -DUART2_BAUD=115200
DEFS += -DUART2_ENABLED=YES

Now edit the kernel configuration to enable the devices.

vi sys/pic32/sdxl/SDXL

Add the following options to enable the UARTS.

# tty0
device uart1 baud=115200
# tty1
device uart2 baud=115200

Build

Building will create the unix boot image and the SD card image for the system.

make cleanall
make

Install

First we create the file system image on a micro SD card.

dd if=sdcard.img of=/dev/sdc bs=4M

Next, Hold the PROG button and toggle RESET on the SDXL board to enter the boot laoder. We will use PIC32Prog to install the kernel.

pic32prog -d /dev/ttyACM0 ./sys/pic32/sdxl/unix.hex
Programmer for Microchip PIC32 microcontrollers, Version 1.119M
    Copyright: (C) 2011-2014 Serge Vakulenko
      Adapter: STK500v2 Bootloader
 Program area: 1d000000-1d07ffff
    Processor: Bootloader
 Flash memory: 512 kbytes
  Boot memory: 12 kbytes
         Data: 157004 bytes
        Erase: done
Program flash: ####################################### done
 Verify flash: ####################################### done
Rate: 40790 bytes per second

Login

A virtual com port should have been detected after installation.

The kernel will log something similar to the following.

usb 1-1.4: new full-speed USB device number 12 using dwc_otg
usb 1-1.4: New USB device found, idVendor=04d8, idProduct=000a
usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.4: Product: RetroBSD Console
usb 1-1.4: Manufacturer: Microchip Technology Inc.
cdc_acm 1-1.4:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device

Connecting with a terminal emulator to the virtual com port and pressing enter will boot the system.

screen /dev/ttyACM0 115200

Enter the username root with an empty password to login.

2.11 BSD Unix for PIC32, revision G205 build 2:
     Compiled 2015-03-09 by root@beethoven:
     /embedded/retrobsd/sys/pic32/sdxl
cpu: 795F512H 80 MHz, bus 80 MHz
oscillator: external, PLL div 1:2 mult x20
console: ttyUSB0 (6,0)
sd0: port SPI2, select pin G9
sd0: type SDHC, size 3932160 kbytes, speed 13 Mbit/sec
phys mem  = 128 kbytes
user mem  = 96 kbytes
root dev  = rd0a (0,1)
root size = 102400 kbytes
swap dev  = rd0b (0,2)
swap size = 2048 kbytes
/dev/rd0a: 659 files, 10738 used, 91261 free
Starting daemons: update /var/cron: No such file or directory
/var/cron: created
tabs: No such file or directory
tabs: created
cron 


2.11 BSD UNIX (pic32) (console)

login: root
Password:
Welcome to RetroBSD!
erase, kill ^U, intr ^C
# ps axl
  F S   UID   PID  PPID CPU PRI NICE  ADDR  SZ WCHAN    TTY  TIME COMMAND
  3 S     0     0     0  54   0   0 0x6800   3 runout   ?    0:03 swapper
200 S     0     1     0   1  30   0   0x69  45 proc     ?    0:00 init - 
200 S     0    11     1  23  40   0    0xd   6 u        ?    0:00 update 
200 S     0    13     1  42  26   0    0x9  73 selwait  ?    0:00 cron 
200 S     0    14     1   0  30   0   0x19  56 proc     USB  0:00 -sh 
  1 R     0    17    14  24  51   0 0x7400  52          USB  0:00 ps axl 
#
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies