Older blog entries for jhb (starting at number 1)

Well, it has been a while since I've added an entry, so I'll start off with several updates.

  • First, I did get the USB install stuff finished and committed to -current. I hope to MFC it in time for 4.1 release. Currently, we have problems with USB keyboards during install as follows:

    • USB keyboards on the x86 arch can't be used in installation because the kernel userconfig only works with AT keyboards. The solution is to make userconfig MI and move it into the loader, which is now a WIP.

    • USB keyboards on the alpha arch should work, except that I haven't enabled USB in the GENERIC kernel yet, and SRM doesn't support a USB keyboard.

  • PXE support is now done and committed to both -current and -stable. We used a polling method of reading packets, removing the need for ISR hooks in BTX, so the support for ISR's in BTX was dropped.

  • Automagical LBA/EDD support in the bootstrap is still on the todo list.

  • I graduated May 13 (11 days ago).

Now that school is over, it's time to start work. I've got a job with BSDi out at the WC office (former home of WC CDROM) and will be starting that in a couple of weeks. I'll be spending most of next week driving across the country to get there. Once I do get there, I still have to find an apartment, and will then turn around and head down to Usenix with the rest of the gang.

In other FBSD news, we now have the latest and greatest version of binutils, including a gas(1) that actually groks 16-bit x86 assembly. As such, I've been on a rampage recently going through and cleaning up all the old 16-bit code in the bootstrap to be actual assembly now w/o faking the arguments or using M4 macros to work around deficiencies.

Well, I finally got my final, cleaned-up version of the PXE boot loader for FreeBSD tested. With that out of the way, I committed all my current patches to the boot loader, cleaning up some things, and adding PXE support. Next up on the todo list for the loader is to add support in the BTX environment for hooking hardware interrupts. Client apps will register an ISR that I call at PL3 like the rest of the application. This way the ISR can be written in C and use the same vm86 entry points as the rest of the loader. I also have another set of patches to look at to detect the int 13 EDD extensions and turn on LBA support automatically in the loader. I plan on merging similar functionality into the other stages of the boot process so that LBA support will no longer have to be manually enabled after installation.

In other news, my latest USB-install release is broken due to silliness on my part. The end result is a kernel that has no console device and thus can't perform any I/O when it tries to boot. Now that I have tracked this silly typo down, I am waiting for the recent world breakge to be fixed so that I can roll another test release. Thankfully, almost all of my changes to enable USB support in the installation floppies can be merged easily into the main installation floppies. However, USB keyboards do not work with the kernel's userconfig utility. Thus, the INSTRO_USERCONFIG option cannot be compiled into the USB boot floppy's kernel. As a result, it looks like we will have to have a seperate kern.flp image for systems with USB keyboards until userconfig can be moved out of the kernel and into the loader.

47 days to graduation now; I can't wait.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!