Me on Stuff

June 30, 2008

FreeBSD on the Neo1973 update

I’ve just released a patch to FreeBSD 8-CURRENT to get it booting to single user mode on the Neo1973 emulator. I’ve written up some notes on using it the OpenMoko wiki. It’s best if you already know a bit about building FreeBSD as it can take some effort to build everything needed. However if you have an interest in testing it and giving me feedback I encourage you to give it a go.

In other news it appears I’m famous in Russia (Google translation)

Filed under: FreeBSD, OpenMoko — Andrew @ 9:38 pm

June 8, 2008

BSDCan 2008 trip report

The following is my trip report for the recent BSDCan 2008 conference.

Contacts I made

I met Philip Paeps, Warner Losh, Rafal Jaworowski, Marcel Moolenaar, Joe Marcus Clarke, Andrew Thompson, Murray Stokely, Scott Ullrich from pfSence who I have had contact with previously.

I also met with Adrian Clark at the airport the day after the conference who lent me an OLPC to start porting the FreeBSD loader to.

What I accomplished by attending the conference

  • Worked around a bug with ACPI on my Dell laptop where reading from the Embedded Controller could fail leaving me with no CPU fan. This means I can boot FreeBSD on my laptop for more than 5 minutes.
  • Managed to get the port of FreeBSD to the NEO 1973 to the point it is running init. More work is needed in the CPU code to get the UART to act as a tty. These changes are in Perforce.
  • I discussed with Rafel the current status of the Efika port of FreeBSD/powerpc as I have done most of the previous work to get FreeBSD working on this platform.
  • With Rafal and Marcel we started to think about a generic On Chip Bus driver to describe the devices attached to a cpu’s internal bus without having to rewrite generic code too much. We looked into using parts of ACPI to describe the devices as there are already tools in the base system to handle the compliation of it’s description language.
  • Creating a new (joke) module, compat_debian, to be compatable with the Debian openssl security issue announced during the conference.
  • I started a poert of the FreeBSD i386 loader to the OLPC. It contains a copy of OpenFirmware. The firmware on the laptop I had access to doesn’t however emulate the BIOS.

What I learned

The main things I learned was the around FreeBSD on smaller and embedded systems. The most useful was the changed Rafel has made to U-Boot. I intend to use this work to help the port of FreeBSD to the NEO1973 cellphone by allowing it’s copy of U-Boot to load loader and give users more control on loading and to set kernel arguments.

His other talk helped my understanding of the naming scheme of the various ARM families/architecture versions/cores. Warner’s talk on the history of the MIPS talk was useful as it allowed me to meet with him for the first time and get an idea on his thoughts on what needs to be done for FreeBSD on embedded systems.

Filed under: FreeBSD — Andrew @ 10:03 pm

July 22, 2007

FreeBSD update front end update

My work towards creating a front end for freebsd-update is progressing. I have it at the point where it is exchanging dummy information about the patches on a machine. I’ve added signal handlers to shut down the back end correctly. The network code is fixed when the back end attempts to disconnect and reconnect.

I still need to write the code to detect the downloaded and installed patches. I am also working on the install_patches handler. It will need a functions written to extract the relevant data from the calls argument. When the install_patches handler is able to at least return some dummy information I will hook the new install button to a call.

When the list_updates and install_patches handlers work I’ll have to wait for a security announcement to test it with. Until then I’ll just have to use my local update server.

Filed under: Summer of Code, freebsd-update frontend — Andrew @ 11:20 pm

June 14, 2007

NZFUG Wiki

Andrew Thompson informed the NZFUG list there is now a New Zealand FreeBSD wiki. It’s for *BSD users in New Zealand.

Filed under: FreeBSD — Andrew @ 8:43 pm

June 10, 2007

FreeBSD update front end first cut

I’ve managed to get my front and back ends talking to each other. The front-end is written in Python. It loads a Glade file and uses that to generate the window to display.

To run it you need a copy of //depot/projects/soc2007/andrew-update/ from perforce. Run ‘make’ to build it. Next, from the backend directory, run ‘facund-be -c freebsd-config-control.conf’. This starts the backend. In a new terminal, from the frontend directory, run ‘python facund.py’. It will open a window with what will become a list of computers on the left with a connect and disconnect button under it. When the connect button is clicked it should attempt to connect to the back-end over the /tmp/facund unix socket and send a start message to the back-end. On disconnect it will send a stop message and wait for the back-end to do the same.

The rest of the communication is yet to be defined but I have a basic idea of the front-end sending a request something like <get value=”available_updates” id=”random_id”/>. The back-end then sends a <return id=”random_id” data=”none”/>. The return data may be changes to allow for non-string types, e.g. bool, int, array, etc.

Filed under: Summer of Code, freebsd-update frontend — Andrew @ 11:37 am

May 28, 2007

FreeBSD ports are NOT branched

While reading Planet FreeBSD today Florent Thoumie pointed me to this post. The author is not happy they can’t update a single package they installed with FreeBSD 6.2-RELEASE to the latest version. The problem is they assume the ports collection follows the FreeBSD base.

The first point I noticed is they named 6.2-STABLE 6.2-CURRENT. This tells me they, while may have some experience in using the FreeBSD, don’t know enough about it’s structure. Next they attempt to remove Firefox. They then complain how other ports depend on Firefox. This is because Firefox provides the HTML rendering used by other ports and removing it manually then reinstalling the port is not the best way to update the port.

Next they get to the point of this posting, they attempt to build the Firefox port, find they have to update Xorg and complain this should have gone to 7-CURRENT first. The problem is there is no 7-CURRENT branch for the FreeBSD ports collection. 7-CURRENT is the name of FreeBSD built from the cvs HEAD branch. The ports collection is only tagged for releases (a tag is just a point along a branch). The best strategy is to keep all the ports as up to date as possible so each update is relatively small. It also appears they read the ports UPDATING file, as they pasted some id it to their post, but they didn’t realise they had to update the Xorg port. Sometimes you can get away with not updating a port’s dependencies, but not always. As the ports collection is not branched it is an all or none style update.

They then complain about pkg_add in remote mode. It’s broken due in part to the way FreeBSD packages store their dependencies. They are by exact version, not minimum/maximum versions. This is something I want to fix when I have enough time and libpkg is able to work, without user input, with multiple package formats.

Filed under: FreeBSD — Andrew @ 6:52 pm

April 13, 2007

Summer of Code ‘07

My proposal for the Google Summer of Code to create a frontend for freebsd-update was accepted by the FreeBSD project.

My current design it to have a backend to control freebsd-update. This then talks to the frontend that lets the administrator update the machine and restart services as needed. I will have to come up with a protocol for the back and front ends to communicate in a secure manor. I also want to be able to extend what the backend can do, eg. update ports/packages, restart services or the whole computer.

Filed under: Summer of Code, freebsd-update frontend — Andrew @ 11:32 am

April 6, 2007

The EFIKA is (kind of) booting

I managed to get my EFIKA to get to the point where it will complain there is no device to mount the root file system from. It is using a few dirty hacks and some code from NetBSD but these should be able to be removed when Peter Grehan has finished his changes to the openfirmware function.

I have made a tarball of the patches and extra files required here.

Filed under: Efika, FreeBSD — Andrew @ 11:58 am

March 23, 2007

pkg_deps 0.20070323

I’ve written a small script to find the ports that will be installed when the current port is installed. All it does is look at the dependencies of the port and remove all the ports that are currently installed.

I’ve written a port for it so hopefully it will be in the port collection soon.

Update: There is an undocumented target in the Ports collection to do this. To use i run:

make missing

from a ports directory.

Filed under: pkg_deps — Andrew @ 8:45 pm

March 5, 2007

I’ve got the golden ticket

Last night I camped outside Real Groovy Christchurch to get a ticket to one of the New Zealand Red Hot Chili Peppers concerts. I arrived not long after 5pm and had to wait 16 hours until 9am this morning. Luckily I managed to get my ticket not long before they sold out. The Newstalk ZB site claims the tickets sold out in 20 minutes but I got mine at 9:25. It took a few attempts by the lady behind the counter so there must not have been many left.

Filed under: RHCP — Andrew @ 7:11 pm
Next Page »

Powered by WordPress