Hello Plan9People!

I finally stumbled across Richard Miller's Raspberry Pi image a while back and 
managed to install it on an RPi, and have been learning more about it. I've 
used the 9P protocol for a couple of projects, but haven't actually used Plan 9 
itself until now...


So far I've patched my installation in a couple of small ways, which has been a 
useful exercise to get started with:

I think the v6fs support in tapefs has a bug: the last line of doread() should 
be
return buf+off;
rather than
return buf;
This only shows up if your reads are unaligned with block boundaries. I think 
v32fs.c has the same bug, but it's okay in v10fs.c.
I realise the number of people who care about this may be very small. :)


I also made a fix to exportfs.c:reply() so it works with the Linux v9fs on my 
other RPi, which was otherwise pretty much not working for me (???!): I got 
error 526 which is ESERVERFAULT - untranslatable error, which should supposedly 
not leak through into Linux user space, but does...
It seems there's a mismatch between the error strings that the plan 9 kernel 
produces and the ones that v9fs knows how to deal with, as exportfs just passes 
them along:
Plan 9 produces:
'foo' does not exist
in /sys/src/9/port/chan.c:namelenerror()
v9fs apparently currently expects:
file does not exist
or
file not found
in github/torvalds/linux/net/9p/error.c:p9_errstr2errno()
What I have replaces the 'nice' error string with what v9fs expects. It's not a 
great fix, but I'm not sure what (or where?) the fix *should* be??
I see the same problem between Ubuntu and 9front as I do between RPi Debian and 
Rpi Plan 9, so this seems to be a general problem. Without this fix, I couldn't 
actually create a file on a Plan 9 export from Linux via v9fs. It's not just a 
weird error message.


Currently I'm trying to build a 'drawterm' server for my experimental OS - so 
far I can run the clock program on Plan 9 and have it display on my window 
system (not the catclock - that one gives me the creeps!). I also have bitmaps 
and text beginning to work, but there's not enough there to run sam or rio yet.

I'm having trouble with bind-mounting my 9p server on Plan 9's /dev, though: 
the old /dev files are all there, but when I bind -b over it from /n only the 
files in the directory I'm binding show up in ls! It's like the -b is being 
ignored by bind(1), but if I ls /dev/null (for example) it's actually there - 
but after the bind I can no longer see it when I ls /dev! Very odd.
This is not actually blocking me at the moment, but if anyone has any clues 
about what I might be doing wrong it would save me a lot of hair-pulling?

------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Tbc78d29ab04652a2-M2d8b0b7bbb2f59b0acb40d34
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to