RetroBSD

2.11BSD operating system for microcontrollers
It is currently Thu Dec 13, 2018 5:45 am

All times are UTC




Post new topic Reply to topic  [ 40 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Tue Sep 29, 2015 12:10 pm 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
Hi, as the retrobsd becomes more and more mature :) it seems it could be used for some serious design. What I see important for such design is following:
1. booting directly into system, no login, starting couple of user apps in bg, and cron scheduled one apps
2. "halt" upon power loss (with a backup source)
3. flashing unix.hex via pickit
4. no USB running (also to decrease power consumption)
5. 2 uarts (1 console + uart)
6. 2 SPI
7. gpio
8. adc
9. running at lower clock (power consumption).

5,6,7,8 - is configurable and I did it in past (Matt's configs)
9 - never done at lower clocks (ie 16MHz)
4 - probably barebone config - we need to set clock, etc.
3 - -"- barebone config
1, 2 - I've never done it before, "halt upon power down" is essential - a blackbox with an On/Off switch only, none personnel at the data center waiting on my service ticket for a shutdown of the mainframe at the specific time :)

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Tue Sep 29, 2015 12:40 pm 
Committer
User avatar

Joined: Thu Oct 11, 2012 8:45 am
Posts: 1801
Location: Room 217, Floor 8, Arm 8, Wheel S7, Mars Base Alpha 3
The best solution for the power down problem is to configure the system so that the majority of the flash is never mounted read-write. The main root partition should be read only so it never gets corrupted - it's only a data partition that ever gets mounted read-write, and you can mitigate most damage to that FS on power loss by forcing a sync() after your writing sessions.

Yes, it's still good to do a clean shutdown, but with a read-only system partition a dirty shutdown won't affect the system at all and will still boot up fine - at least far enough for you to then log into the system remotely and repair the data partition should it ever be needed.

_________________
Why not visit my shop? http://majenko.co.uk/catalog
Universal IDE: http://uecide.org
"I was trying to find out if it was possible to only eat one Jaffa Cake. I had to abandon the experiment because I ran out of Jaffa Cakes".


Top
 Profile  
 
PostPosted: Tue Sep 29, 2015 12:54 pm 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
The goal is never have data/partition corrupt. So I would put inside a small battery to backup the shutdown process - 2-3seconds duration, up to 300mA of current.

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Tue Sep 29, 2015 1:30 pm 
Committer
User avatar

Joined: Thu Oct 11, 2012 8:45 am
Posts: 1801
Location: Room 217, Floor 8, Arm 8, Wheel S7, Mars Base Alpha 3
A supercap is what you want for that - incredibly rapid recharge, large current delivery, long duration.

That way you're not having to worry about replacing dead batteries, or worry that if the power is going on and off lots and lots that it won't have a chance to recharge the batteries enough.

What you're really looking for is something akin to the ACPI power subsystem in a PC. You want:

  • An input to sense the state of main power
  • An input to trigger a manual shutdown
  • An output to control the power from the batteries
  • An output to control the main power

Press the power button and it connects the main power to the chip so it starts to boot up. One of the first things the kernel does is then latch the main power and battery power outputs high so the power from both is allowed through (so when you release the power button it stays on).

Press the power button again and the kernel senses the change (though the power doesn't change at that point) and initiates a shutdown.

If the main power should vanish the kernel initiates a shutdown.

Once shutdown is complete both the battery and main power are isolated (their outputs go low - you don't want to run the batteries down if you don't need to).

To have auto-poweron when the main power returns you could add external circuitry that essentially presses the power button for you - when the input voltage exceeds a threshold it provides a long pulse on the gate of a FET that bypasses the button to power on the system.

_________________
Why not visit my shop? http://majenko.co.uk/catalog
Universal IDE: http://uecide.org
"I was trying to find out if it was possible to only eat one Jaffa Cake. I had to abandon the experiment because I ran out of Jaffa Cakes".


Top
 Profile  
 
PostPosted: Tue Sep 29, 2015 2:05 pm 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
As the starting point I would be happy to have a pinX which when activated provides "halt" immediately (and it should work even during booting somehow).
:) With supercap or battery - it does not matter..
Building the standalone from the sources will be the another story :)

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Tue Sep 29, 2015 3:18 pm 
Committer
User avatar

Joined: Thu Oct 11, 2012 8:45 am
Posts: 1801
Location: Room 217, Floor 8, Arm 8, Wheel S7, Mars Base Alpha 3
Making it work wherever it is during boot is tricky.

There's basically two stages to worry about - booting the kernel (you can just power off without doing anything here) and executing init. Once init has started the way to shut down is to send init the correct signal (which I guess the kernel can do), but the code that responds to the input would have to know what state the kernel is in (running init or not) and be able to do its thing at any time no matter what the kernel is doing. That really says interrupt pin to me.

_________________
Why not visit my shop? http://majenko.co.uk/catalog
Universal IDE: http://uecide.org
"I was trying to find out if it was possible to only eat one Jaffa Cake. I had to abandon the experiment because I ran out of Jaffa Cakes".


Top
 Profile  
 
PostPosted: Tue Sep 29, 2015 3:38 pm 
Committer
User avatar

Joined: Thu Oct 11, 2012 8:45 am
Posts: 1801
Location: Room 217, Floor 8, Arm 8, Wheel S7, Mars Base Alpha 3
I've just remembered...

I already wrote this system.

Check sys/pic32/power_control.c

Press and hold a button for 5 seconds (by default) and it will shut down.

_________________
Why not visit my shop? http://majenko.co.uk/catalog
Universal IDE: http://uecide.org
"I was trying to find out if it was possible to only eat one Jaffa Cake. I had to abandon the experiment because I ran out of Jaffa Cakes".


Top
 Profile  
 
PostPosted: Tue Sep 29, 2015 4:46 pm 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
I know, you did it at early stages of your being with retrobsd :)
But still, we need a person at data center to push the button.

Imagine the situation, where you have your retrobsd system plugged in via an usb connector into a PC. I did it many times - I switched off the PC, or plugged off the usb connector while retrobsd system was still on.
So the system must "halt" clean when power is starting to go off (and to log the event with the proper date and time).
Of course, there could be the button with your driver in addition.
But a clean shutdown upon _any_ power source situation is essential for retrobsd or litebsd..

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Tue Sep 29, 2015 6:57 pm 
Committer
User avatar

Joined: Thu Oct 11, 2012 8:45 am
Posts: 1801
Location: Room 217, Floor 8, Arm 8, Wheel S7, Mars Base Alpha 3
Who says the button has to be a physical thing? It's just an IO pin. 3.3V on the input = system running. 0V on the input for more than 5 seconds = shutdown now.

The 5s delay is useful as it doesn't shut down if it's just a brief outage (moving cable from one USB to another for instance).

_________________
Why not visit my shop? http://majenko.co.uk/catalog
Universal IDE: http://uecide.org
"I was trying to find out if it was possible to only eat one Jaffa Cake. I had to abandon the experiment because I ran out of Jaffa Cakes".


Top
 Profile  
 
PostPosted: Sat Oct 03, 2015 7:35 pm 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
How to:
1. bypass the login
2. redirect console from usb to uart2?
Any advice is welcomed.

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Sat Oct 03, 2015 8:03 pm 
Committer
User avatar

Joined: Thu Oct 11, 2012 8:45 am
Posts: 1801
Location: Room 217, Floor 8, Arm 8, Wheel S7, Mars Base Alpha 3
1. Why do you need to?
2. Just change it in the configuration of the kernel.

_________________
Why not visit my shop? http://majenko.co.uk/catalog
Universal IDE: http://uecide.org
"I was trying to find out if it was possible to only eat one Jaffa Cake. I had to abandon the experiment because I ran out of Jaffa Cakes".


Top
 Profile  
 
PostPosted: Sat Oct 03, 2015 9:47 pm 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1079
Location: Sunnyvale, CA
Pito wrote:
How to:
1. bypass the login
It's a good question. Sometimes a need arises to skip the startup script (/etc/rc) and directly enter a single-user mode. In my last commit, I added an new kernel option, like:
Code:
signal          "BUTTON1"   pin RE7 invert  # PRG button, active low

When the kernel starts with this button pressed (signal low in this case), it calls /etc/init with -s option, which skips /etc/rc and just invokes /bin/sh on a console. See fubarino/Config for an example.

Pito wrote:
2. redirect console from usb to uart2?
Any advice is welcomed.
The console device is defined in the kernel Config file. For uart2 port, it would be:
Code:
options         "CONS_MAJOR=UART_MAJOR"     # UART device
options         "CONS_MINOR=1"              # /dev/tty1

For USB console:
Code:
options         "CONS_MAJOR=UARTUSB_MAJOR"  # UARTUSB device


Top
 Profile  
 
PostPosted: Sat Oct 03, 2015 10:18 pm 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1079
Location: Sunnyvale, CA
Pito wrote:
Hi, as the retrobsd becomes more and more mature :) it seems it could be used for some serious design. What I see important for such design is following:
1. booting directly into system, no login, starting couple of user apps in bg, and cron scheduled one apps
Two alternative approaches are possible.

1A: Replace /sbin/init with your application. In this case you are in complete control over the system. Nothing in the system happens without your consent. No filesystem check, no logins, np buffer flushing, no cron daemon. Your application has to do all of it explicitly.

1B: Modify /sbin/rc for your needs. Comment out the console login in /etc/ttys.

Pito wrote:
2. "halt" upon power loss (with a backup source)
Discussed in a separate thread. I would propose to enhance the existing gpio driver to translate an input pin change into a software signal event, and add an option to existing /sbin/update daemon to invoke /sbin/halt or /sbin/reboot.

Pito wrote:
3. flashing unix.hex via pickit
Use pickit2. See baremetal/Config, explorer16/Config or starter-kit/Config as examples.

Pito wrote:
4. no USB running (also to decrease power consumption)
Just comment out 'device uartusb' in your kernel Config file.

Pito wrote:
5. 2 uarts (1 console + uart)
You can add as many uarts as you wish (up to 6) in your kernel Config file.

Pito wrote:
6. 2 SPI
It's possible to configure up to 4 spi interfaces in the Config file. Just watch for pin conflicts with uarts.

Pito wrote:
7. gpio
A set of available goip pins is highly board-dependent and should be defined by flags option in the Config file. For example:
Code:
# Flags define a mask of available pins
# For 64-pin devices:
device          gpio1   flags 0xffff    # port B
device          gpio2   flags 0xf000    # port C
device          gpio3   flags 0x0fff    # port D
device          gpio4   flags 0x00ff    # port E
device          gpio5   flags 0x003b    # port F
device          gpio6   flags 0x03cc    # port G

# For 100-pin devices:
device          gpio0   flags 0xc6ff    # port A
device          gpio1   flags 0xffff    # port B
device          gpio2   flags 0xf01e    # port C
device          gpio3   flags 0xffff    # port D
device          gpio4   flags 0x03ff    # port E
device          gpio5   flags 0x313f    # port F
device          gpio6   flags 0xf3cf    # port G


Pito wrote:
8. adc
We already have adc driver, although it still lacks a possibility to specify which ports are allowed for the user and which are not. May be later.

Pito wrote:
9. running at lower clock (power consumption).
Use options "CPU_KHZ=80000" and "BUS_KHZ=80000" in the Config file. In case of bootloader, we need to modify the kernel to switch to the lower clock when needed.


Top
 Profile  
 
PostPosted: Sun Oct 04, 2015 7:39 am 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
How are the built commands for the latest sources? For example for fubarino?
I cannot find the guide for the latest releases.. (the ones after kconfig introduction)
So far I've done:
1. I installed my old (2y) environment where I built fubarino 100x
2. downloaded 392 sources into Retronew
3. looking for Makefile.user :)

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Sun Oct 04, 2015 8:11 am 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1079
Location: Sunnyvale, CA
Everything remains essentially the same. To rebuild the whole system, including sd image and kernels for all boards, all you need is to go to the top retrobsd directory and run "make".

If you need only a new kernel, first build a kconfig utility:
Code:
cd tools/kconfig
make

Then for a Fubarino board:
Code:
cd ../../sys/pic32/fubarino
# edit Config file to add new drivers or modify options
make reconfig
make


Top
 Profile  
 
PostPosted: Sun Oct 04, 2015 8:17 am 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
Code:
pito@ubuntu:~/Retronew$ make
make -C tools
make[1]: Entering directory `/home/pito/Retronew/tools'
for i in elf2aout fsutil virtualmips mkrd kconfig icache; do make -C $i -w DESTDIR= all; done
make[2]: Entering directory `/home/pito/Retronew/tools/elf2aout'
gcc -g -O -Wall   -c -o elf2aout.o elf2aout.c
gcc -g  -o elf2aout elf2aout.o
make[2]: Leaving directory `/home/pito/Retronew/tools/elf2aout'
make[2]: Entering directory `/home/pito/Retronew/tools/fsutil'
gcc -g -O -Wall   -c -o fsutil.o fsutil.c
gcc -g -O -Wall   -c -o superblock.o superblock.c
gcc -g -O -Wall   -c -o inode.o inode.c
gcc -g -O -Wall   -c -o create.o create.c
gcc -g -O -Wall   -c -o check.o check.c
gcc -g -O -Wall   -c -o file.o file.c
gcc -g -O -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse   -c -o mount.o mount.c
gcc -g -O -Wall   -c -o manifest.o manifest.c
gcc -g  -o fsutil fsutil.o superblock.o block.c inode.o create.o check.o file.o mount.o manifest.o -pthread -lfuse -lrt -ldl 
make[2]: Leaving directory `/home/pito/Retronew/tools/fsutil'
make[2]: Entering directory `/home/pito/Retronew/tools/virtualmips'
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32.o -MD -MP -MF .deps/pic32.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32.o pic32.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_flash.o -MD -MP -MF .deps/pic32_dev_flash.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_flash.o pic32_dev_flash.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_uart.o -MD -MP -MF .deps/pic32_dev_uart.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_uart.o pic32_dev_uart.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_intcon.o -MD -MP -MF .deps/pic32_dev_intcon.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_intcon.o pic32_dev_intcon.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_spi.o -MD -MP -MF .deps/pic32_dev_spi.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_spi.o pic32_dev_spi.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_gpio.o -MD -MP -MF .deps/pic32_dev_gpio.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_gpio.o pic32_dev_gpio.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT dev_sdcard.o -MD -MP -MF .deps/dev_sdcard.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o dev_sdcard.o dev_sdcard.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT dev_swap.o -MD -MP -MF .deps/dev_swap.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o dev_swap.o dev_swap.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_bmxcon.o -MD -MP -MF .deps/pic32_dev_bmxcon.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_bmxcon.o pic32_dev_bmxcon.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_dmacon.o -MD -MP -MF .deps/pic32_dev_dmacon.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_dmacon.o pic32_dev_dmacon.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_syscon.o -MD -MP -MF .deps/pic32_dev_syscon.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_syscon.o pic32_dev_syscon.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_prefetch.o -MD -MP -MF .deps/pic32_dev_prefetch.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_prefetch.o pic32_dev_prefetch.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_adc.o -MD -MP -MF .deps/pic32_dev_adc.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_adc.o pic32_dev_adc.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_devcfg.o -MD -MP -MF .deps/pic32_dev_devcfg.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_devcfg.o pic32_dev_devcfg.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_rtcc.o -MD -MP -MF .deps/pic32_dev_rtcc.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_rtcc.o pic32_dev_rtcc.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT pic32_dev_timer.o -MD -MP -MF .deps/pic32_dev_timer.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o pic32_dev_timer.o pic32_dev_timer.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT dev_cs8900.o -MD -MP -MF .deps/dev_cs8900.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o dev_cs8900.o dev_cs8900.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT dev_nand_flash_1g.o -MD -MP -MF .deps/dev_nand_flash_1g.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o dev_nand_flash_1g.o dev_nand_flash_1g.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT dev_ram.o -MD -MP -MF .deps/dev_ram.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o dev_ram.o dev_ram.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT dev_vtty.o -MD -MP -MF .deps/dev_vtty.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o dev_vtty.o dev_vtty.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT device.o -MD -MP -MF .deps/device.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o device.o device.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT vm.o -MD -MP -MF .deps/vm.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o vm.o vm.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT cpu.o -MD -MP -MF .deps/cpu.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o cpu.o cpu.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT mips.o -MD -MP -MF .deps/mips.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o mips.o mips.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT mips_cp0.o -MD -MP -MF .deps/mips_cp0.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o mips_cp0.o mips_cp0.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT mips_exec.o -MD -MP -MF .deps/mips_exec.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o mips_exec.o mips_exec.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT mips_fdd.o -MD -MP -MF .deps/mips_fdd.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o mips_fdd.o mips_fdd.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT crc.o -MD -MP -MF .deps/crc.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o crc.o crc.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT mips_hostalarm.o -MD -MP -MF .deps/mips_hostalarm.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o mips_hostalarm.o mips_hostalarm.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT mempool.o -MD -MP -MF .deps/mempool.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o mempool.o mempool.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT sbox.o -MD -MP -MF .deps/sbox.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o sbox.o sbox.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT utils.o -MD -MP -MF .deps/utils.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o utils.o utils.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT vp_clock.o -MD -MP -MF .deps/vp_clock.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o vp_clock.o vp_clock.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT vp_timer.o -MD -MP -MF .deps/vp_timer.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o vp_timer.o vp_timer.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT net_io.o -MD -MP -MF .deps/net_io.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o net_io.o net_io.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT mips_memory.o -MD -MP -MF .deps/mips_memory.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o mips_memory.o mips_memory.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT debug.o -MD -MP -MF .deps/debug.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o debug.o debug.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT gdb_interface.o -MD -MP -MF .deps/gdb_interface.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o gdb_interface.o gdb_interface.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT main.o -MD -MP -MF .deps/main.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o main.o main.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT mips-dis.o -MD -MP -MF .deps/mips-dis.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o mips-dis.o mips-dis.c
gcc -g -DSIM_PIC32 -DPIC32MX7 -DMAX32 -Wall -MT config.o -MD -MP -MF .deps/config.dep -I/opt/local/include -I/opt/local/include/libelf -O   -c -o config.o config.c
gcc -g  -o pic32 pic32.o pic32_dev_flash.o pic32_dev_uart.o pic32_dev_intcon.o pic32_dev_spi.o pic32_dev_gpio.o dev_sdcard.o dev_swap.o pic32_dev_bmxcon.o pic32_dev_dmacon.o pic32_dev_syscon.o pic32_dev_prefetch.o pic32_dev_adc.o pic32_dev_devcfg.o pic32_dev_rtcc.o pic32_dev_timer.o dev_cs8900.o dev_nand_flash_1g.o dev_ram.o dev_vtty.o device.o vm.o cpu.o mips.o mips_cp0.o mips_exec.o mips_fdd.o crc.o mips_hostalarm.o mempool.o sbox.o utils.o vp_clock.o vp_timer.o net_io.o mips_memory.o debug.o gdb_interface.o main.o mips-dis.o config.o -lpthread -lelf -lrt                             
make[2]: Leaving directory `/home/pito/Retronew/tools/virtualmips'
make[2]: Entering directory `/home/pito/Retronew/tools/mkrd'
cc -Wall -Werror -O   -c -o mkrd.o mkrd.c
cc -o mkrd mkrd.o 
make[2]: Leaving directory `/home/pito/Retronew/tools/mkrd'
make[2]: Entering directory `/home/pito/Retronew/tools/kconfig'
byacc -d  config.y
byacc: 6 reduce/reduce conflicts.
mv -f y.tab.c config.c
gcc -g -O -Wall -Werror   -c -o config.o config.c
gcc -g -O -Wall -Werror   -c -o main.o main.c
lex  -t lang.l > lang.c
gcc -g -O -Wall -Werror   -c -o lang.o lang.c
gcc -g -O -Wall -Werror   -c -o mkioconf.o mkioconf.c
gcc -g -O -Wall -Werror   -c -o mkmakefile.o mkmakefile.c
gcc -g -O -Wall -Werror   -c -o mkswapconf.o mkswapconf.c
gcc -g  -o kconfig config.o main.o lang.o mkioconf.o mkmakefile.o mkswapconf.o
nroff -man kconfig.8 > kconfig.0
rm lang.c config.c
make[2]: Leaving directory `/home/pito/Retronew/tools/kconfig'
make[2]: Entering directory `/home/pito/Retronew/tools/icache'
gcc -g -O -Wall   -c -o ice2aout.o ice2aout.c
gcc -g  -o ice2aout ice2aout.o
make[2]: Leaving directory `/home/pito/Retronew/tools/icache'
make[1]: Leaving directory `/home/pito/Retronew/tools'
make -C lib
make[1]: Entering directory `/home/pito/Retronew/lib'
ln -s -f ../include/a.out.h .
ln -s -f ../include/ar.h .
ln -s -f ../include/nlist.h .
ln -s -f ../include/ranlib.h .
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o ar.o /home/pito/Retronew/src/cmd/ar/ar.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o append.o /home/pito/Retronew/src/cmd/ar/append.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o archive.o /home/pito/Retronew/src/cmd/ar/archive.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o contents.o /home/pito/Retronew/src/cmd/ar/contents.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o delete.o /home/pito/Retronew/src/cmd/ar/delete.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o extract.o /home/pito/Retronew/src/cmd/ar/extract.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o misc.o /home/pito/Retronew/src/cmd/ar/misc.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o move.o /home/pito/Retronew/src/cmd/ar/move.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o print.o /home/pito/Retronew/src/cmd/ar/print.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o replace.o /home/pito/Retronew/src/cmd/ar/replace.c
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o strmode.o /home/pito/Retronew/src/cmd/ar/strmode.c
cc -g -o ar ar.o append.o archive.o contents.o delete.o extract.o misc.o move.o print.o replace.o strmode.o
cc -std=gnu89 -fno-builtin -g -Werror -Wall -DCROSS -I. -idirafter /home/pito/Retronew/include -idirafter /home/pito/Retronew/src/cmd/ar -idirafter /home/pito/Retronew/src/cmd/as   -c -o as.o /home/pito/Retronew/src/cmd/as/as.c
In file included from /home/pito/Retronew/src/cmd/as/as.c:35:
./a.out.h:36: fatal error: sys/exec_aout.h: No such file or directory
compilation terminated.
make[1]: *** [as.o] Error 1
make[1]: Leaving directory `/home/pito/Retronew/lib'
make: *** [all] Error 2
pito@ubuntu:~/Retronew$

 

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Sun Oct 04, 2015 8:32 am 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1079
Location: Sunnyvale, CA
Seems like your source tree is damaged.
Symlink is missing: /home/pito/Retronew/include/sys -> ../sys/include
Does your unzip support symlinks?

I would recommend to get a source snapshot directly from GitHub:
Code:
git clone https://github.com/RetroBSD/retrobsd.git


Top
 Profile  
 
PostPosted: Sun Oct 04, 2015 8:49 am 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
Code:
rm -f sdcard.img
tools/fsutil/fsutil --repartition=fs=100M:swap=2M:fs=100M sdcard.img
Allocated partition 1, type b7, start 2, size 204800 sectors
Allocated partition 2, type b8, start 204802, size 4096 sectors
Allocated partition 3, type b7, start 208898, size 204800 sectors
tools/fsutil/fsutil --new --partition=1 --manifest=rootfs.manifest sdcard.img .
Created filesystem at partition 1 of sdcard.img - 102400 kbytes
Installed 50 directories, 1177 files, 98 devices, 348 links, 3 symlinks
make[1]: Leaving directory `/home/pito/Retronew/retrobsd'
pito@ubuntu:~/Retronew/retrobsd$

Ok, thanks!
So, the sdcard.img is the same for any board?

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Sun Oct 04, 2015 8:51 am 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1079
Location: Sunnyvale, CA
Yes, all the user space binaries are the same.
Only kernels are different.


Top
 Profile  
 
PostPosted: Sun Oct 04, 2015 9:46 am 
Committer
User avatar

Joined: Thu Oct 11, 2012 8:45 am
Posts: 1801
Location: Room 217, Floor 8, Arm 8, Wheel S7, Mars Base Alpha 3
vak wrote:
Yes, all the user space binaries are the same.
Only kernels are different.

Just like you don't need a special version of Word just because you have a different graphics card to Bill Gates.

_________________
Why not visit my shop? http://majenko.co.uk/catalog
Universal IDE: http://uecide.org
"I was trying to find out if it was possible to only eat one Jaffa Cake. I had to abandon the experiment because I ran out of Jaffa Cakes".


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 40 posts ]  Go to page 1, 2  Next

All times are UTC


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 post attachments in this forum

Search for:
cron




Powered by phpBB® Forum Software © phpBB Group

BSD Daemon used with permission