toward’s stew’s kernel 2.4.21-ac2-stew1

well, spank my arse and call me charlie – stoopid me had not enabled 1284 modes for parallel port.

this is probably why my newly acquired laserjet printer doesn’t work via parallel (but fine, albeit slowly, via serial).

-ac2 should correct some problems tim was having with the tulip and emu10k1 modules. Well, at least the emu10k1 problems….

He’s also done a pretty good intro to kernel compiling (http://members.datafast.net.au/tmccoy/kernel_compile.html) along with the other easy-to-understand "How-To’s" that he’s put together.

So, here I wait for the kernel to build again…. dammit I want a faster box. Anyone willing to donate a nice new athlon?

164kb of text

that’s what my blog exports to.

that’s ever so slightly scary.

Stew’s kernel for Debian Stable and Unstable!

finally built it for stable as well now. It actually works too (this is what’s powering my gateway). My linux workstation is being powered by Stew’s kernel too (the Unstable one).

.debs for Debian Stable 3.0 (Woody) are in /linux/kernel/debs/stable/

.debs for Debian testing/unstable (sid) are in /linux/kernel/debs/unstable/

sources are in /linux/kernel/debs/

Both GCC 2.95, so NVIDIA and CISCO should play nicely.

I’m not sure about APM…. My SMP box says “APM disabled: not SMP safe” but i don’t know if this is just because I have two processors :)

The stable machine is reporting “apm: overridden by ACPI”, as I would expect it to… ’cause ACPI actually *works* with the -ac patches.. :)

Good news is, Marcelo is coming to senses and 2.4.22 should be a lot better (and here soon).

REMEMBER TO INSTALL devfsd!!!! Otherwise you’ll have ickyness. I really should have put it in the “depends” thingy. Oops.

duplicate defs?

mainly a note to me:

duplicate definitions in include/linux/fs.h and include/linux/buffer_head.h??

buffer_##name

if this is so, i could probably shave a few bytes off a kernel! wow…..

stew’s kernel 2.4.21-ac1-stew1 revision 2.0

I’ve built those in /linux/kernel/debs/ on Debian Unstable, and am currently building the same kernel on a Debian stable machine. This shouldn’t really make a difference, but Timmeah! had an issue on a stable box, so i’m trying it this way.

I’ve also switched down to gcc 2.95 instead of 3.3 for reasons ‘compatibility’ and some reports of ‘mysterious problems’ from some people on lkml.

This is the kernel I’m running on my SMP box and it’s going fine. Will be switching my gateway to it tomorrow methinks…. (it needs an upgrade. :)

There are basically no other changes between this an the last release.

In other related news, Linus is moving places of work (for at least a year) and working full time on kernel. This is cool :)

lit review

well, i’m working on it.

bloody thing. all this other stuff we have to do instead of the project. It really does annoy me. I’d love to be able to get rid of coursework, assignments and these ‘intermediate’ things we have to do (which reminds me, i’ve got a heap of stuff to catch up on still) and just get on with the research. i.e. stuff that actually interests me/i care about.

i’m getting there on it – trying to work out what actually to talk about, in what order and all that. Not that we really get any help from this “subject” on these things. hmmm…..

a programmers website

I’ve been told this site looks like a programmers website. Well, I guess it is true. I’m attempting to be stardards compliant around the place, I keep my site in CVS, I rsync it across (’cause I do blog entries via a web interface).

I’ve yet to add any proper photos section to it (need some decent script to downsample my images)

There are more patches than pictures.

hons site up

got a site up (really basic) covering my honors stuff.

http://www.flamingspork.com/honors/

new “stew’s kernel”

http://www.flamingspork.com/linux/kernel/debs/

Debs for 2.4.21-rc7-ac1-stew1 are up. Basically a bit of a test release this – trying to see how pany people actually like compete, nice, remotely optimized builds of the kernel in an easy to swallow .deb package. That and I want an easy package for myself to carry around and give to people :)

I’ll probably have more of my own patches into the next revision… actually.. i should really port the generic-x86 one over.

I’ve also got http://www.flamingspork.com/linux/kernel/stew-patches/ set up (or it will be when i finally rsync the site back up again) where i’ll dump any patches i have or am currently working on. I might reorganize that directory though – maby split up into v2.4/ and v2.5/.

One day soon I swear I’m going to go through the CONFIG options and replace half the descriptions with something better….. hmmm….

gah – trying to fix build system

of the linux kernel, specifically lib.a and how things are built and linked in lib/

Hmmm….. had to get something tricky to do, couldn’t have just been an easy fix. Although, if i move some stuff around the previous patch might be accepted (there were some wrong things with the last one….

finally! fixed it!

From: Stewart Smith 
Date: Wed Jun 4, 2003  3:56:09  PM Australia/Melbourne
To: Linus Torvalds 
Cc: linux-kernel@vger.kernel.org, David Woodhouse , Stewart Smith 
Subject: [PATCH] fixed: CRC32=y && 8193TOO=m unresolved symbols

Linus,
please apply – this fixes unresolved symbols when CONFIG_CRC32=y and CONFIG_8139TOO=m (it also appeared on some other ethernet device drivers). I think this is the right way to fix this problem. It at least now builds, links and boots (and hey, even my ethernet works so it can’t all be bad :)

patches cleanly against 2.5.70 and 2.5.70-bk8

--- linux-2.5.70-orig/include/linux/crc32.h	2003-05-05 09:53:08.000000000 +1000
+++ linux-2.5.70-stew3/include/linux/crc32.h	2003-06-04 15:27:34.000000000 +1000
@@ -6,6 +6,7 @@
 #define _LINUX_CRC32_H

 #include 
+#include 

 extern u32  crc32_le(u32 crc, unsigned char const *p, size_t len);
 extern u32  crc32_be(u32 crc, unsigned char const *p, size_t len);
@@ -21,7 +22,16 @@
  * is in bit nr 0], thus it must be reversed before use. Except for
  * nics that bit swap the result internally...
  */
-#define ether_crc(length, data)    bitreverse(crc32_le(~0, data, length))
-#define ether_crc_le(length, data) crc32_le(~0, data, length)
+static inline u32 ether_crc(size_t length, unsigned char const *data)
+{
+  return bitreverse(crc32_le(~0, data, length));
+}
+EXPORT_SYMBOL(ether_crc);
+
+static inline u32 ether_crc_le(size_t length, unsigned char const *data)
+{
+  return crc32_le(~0, data, length);
+}
+EXPORT_SYMBOL(ether_crc_le);

 #endif /* _LINUX_CRC32_H */
--- linux-2.5.70-orig/kernel/ksyms.c	2003-06-02 23:28:32.000000000 +1000
+++ linux-2.5.70-stew3/kernel/ksyms.c	2003-06-04 15:11:37.000000000 +1000
@@ -58,6 +58,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 

 #if defined(CONFIG_PROC_FS)

meeting this weekend

Well, we’re heading towards our (second) face2face committee meeting. The first was at Linux.Conf.Au 2003 (just after we were elected).

We’re making progress and are in good spirits. Both privately and publicly we’re happy at where we are. True, we could be further, but considering our collective schedules and the fact that this is volunteer work, it’s pretty cool.

We’ve decided to take the sponsorship proposal by Kim for LinMagAU to the next level. I don’t forsee anything being rejected. This is a pretty cool project that’s nice and community oriented. Let’s face it, community is a HUGE part of open source and a part we all just love.

Information Security Drinking game

Finish your drink when the lecturer says:
– “15 year old Canadian”
– “Mafia Boy”
– “Microsoft”
– anything about a 1×1 image

Take a drink when:
– There is a spelling mistake in the notes
– When you can read one of the words written on the board
– any mention of “doubleclick.com” is made

rules for a better web

1) Web Browsers refuse to render non standards compliant sites
2) SVG is used for all applicable images.
3) META tags are used properly
4) Comic Sans MS is deleted from all computers, everywhere
5) Background music becomes impossible
6) ban the plugins

new ipods

well, there’s new ipods out. i still want one, but haven’t yet justified spending a few hundred (read MANY hundred) dollars on what is a music player. A portable cool one at that, but it is just a beefier version of my current mp3 player…

if the ipod had a recording capability (that was properly in there, not a seemingly hidden feature as in the new ones) then i may be more inclined to get one – recording lectures/talks etc would be really cool then…. although, i could just do that with my laptop now…. urgh.

although bootlegging with an ipod would be rather cool.

computing deltas for insert operations

snapshot like system for in-progress transactions, when committing, search for common substrings in blocks and the offsets of these (possibly indicating an insert operation) and on a per-block basis create a “shift N spaces” entry in the delta fork of the object

tazo (yoyo the next generation)

okay, so the $HOSTNAME-ng tag is getting a bit dated, it seems like it’s the monash favourite, so tazo (the “work-in-progress” name for the new yoyo) is up and I’m helping to get it up and running.

I seem to have been the guy doing most of the stuff so far, the /root/CHANGED file is mostly me. I’ve started to bitch in it. Bitch about FreeBSD that is.

The ports system is cool, when it works. and when you don’t have stupid proxy authentication to contend with. oh, and an incomplete mirror.aarnet.edu.au

i think i’m doing things the right way, well – the way the handbook tells me and using portupgrade \*

oh, installing PHP4 has segfaulted. that’s fun. NOT!

allocation groups and resizing

shrinking an FS with allocation groups should only involve the redistributing of data in the last allocation group.

expanding should be pretty simple. possible resizing of last allocation group, plus the adding of empty ones.

hmm… i want resize() call in vfs!

XFS and other cool things

Been re-reading a lot of the XFS papers that are on the SGI website (http://oss.sgi.com/projects/xfs/) and thinking more about what I want out of an object store. There are a lot of similar design goals (I think) yet some very different ways of implementing things.

Having a large B+Tree full of every object could be quite nice, kinda like inodes on conventional UNIX filesystems. On the object-store layer, we’d be able to store small objects inside the inodes. Above this, the namespace layer could find out if we can pack something into an inode, and if so, optimize for that (e.g. linear list of files for directories under 1k).

The idea of having a very layered system is increasingly appealing to me.
This means we could have some very nice optimizations for some applications. Some systems would only ever care about the object-store itself (a squid like caching system for example) and others could care a lot about a namespace system (or even be one). An example of the latter could be a database.

Expandability for the future is a given, it has to be. 64bits seems like a lot now, but no doubt somebody will be pushing it in 10 years or so.

updated…

Added my “MacOS X as UNIX” talk to the talks page, the linked list code to the junkcode page and generally thinking about actually putting up all that old stuff i’ve got lying around on my .mac account.

Which reminds me, i should really start migrating everything over to flamingspork.com…..