summaryrefslogtreecommitdiff
path: root/user
diff options
context:
space:
mode:
Diffstat (limited to 'user')
-rw-r--r--user/jkoenig.mdwn203
-rw-r--r--user/kam.mdwn41
-rw-r--r--user/zhengda.mdwn15
3 files changed, 199 insertions, 60 deletions
diff --git a/user/jkoenig.mdwn b/user/jkoenig.mdwn
index 14e40bf6..8827d986 100644
--- a/user/jkoenig.mdwn
+++ b/user/jkoenig.mdwn
@@ -17,78 +17,156 @@ has been accepted by the Debian project.
I will be keeping track of my progress on this page.
-### Latest news
+### Links
- * *busybox*:
- patches [posted](http://lists.debian.org/debian-bsd/2010/05/msg00048.html).
- I need to test them on kFreeBSD,
- then submit them upstream and to #323670.
- * installation images boot with the following changes:
- * rebuild hurd-udeb from with the latest pkg-hurd patches
- * use busybox from my osports-debian branch (see link above)
- * tweak the d-i image build scripts
- * the symlink /lib/ld.so -> ld.so.1 needs to be created somehow
- (youpi mentionned it being the job of libc0.3-udeb I think)
- * fix the poll() issue in libdebian-installer
- (patch to be submitted soon),
- also there is some hurd doxygen short-circuiting stuff
- there which does not apply any more and prevents is to build.
- * initrd support coming soon (BTW gnumach does not like gcc-4.4),
- for the time being it needs to be fed to qemu as a hard drive
- (with some more space added to avoid it from becoming full)
+ * [Modified packages](http://jk.fr.eu.org/debian/unstable)
+ * [Latest images](http://jk.fr.eu.org/debian/hurd-installer)
+ * [Debian bugs](http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=jk@jk.fr.eu.org&tag=gsoc2010)
+ * [BusyBox port](http://lists.debian.org/debian-bsd/2010/05/msg00048.html)
+ * [GNU Mach initrd](http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00047.html)
### Roadmap
-#### Week 2 (2010-05-31 to 2010-06-06)
-
-* see what breaks in the installer and fix the problems one by one
- (install-time netcfg, cdrom detection, whatever)
-* start working on mach initrd support
-
-#### Week 3 (2010-06-07..13)
-
-* try to get the busybox changes merged upstream
- and integrated into the debian package
-* tweak the hurd debian package to handle
- what native-install used to be required for
-
-#### Week 4 (2010-06-14..20)
+* **mach**: initrd support
+ * (./) preliminary patch posted and self-built (2010-06-12)
+ * adjustments will be needed (postponed)
+ * consider the alternatives discussed on bug-hurd (postponed)
+
+* **glibc**: fix `mkdir("/")` which returned `EINVAL`
+ * (./) eglibc 2.11.2-1 includes a quick fix by youpi (2010-06-15)
+ * (./) more complete patch posted to bug-hurd,
+ since other calls return incorrect errors under some circumstances
+ (2010-06-16)
+ * more work on it will be needed to make it fix the whole thing
+ (postponed)
+
+* (./) **partman** (2010-06-23)
+ * (./) add hurd-i386 to
+ `partman-partitioning/lib/disk-label.sh`
+ (2010-06-16, commited by youpi on 2010-06-23)
+ * (./) short-circuit
+ `partman-basicfilesystems/init.d/kernelmodules_basicfilesystems`
+ (2010-06-16)
+ * (./) partman-auto recipes:
+ make the default filesystem os-dependent
+ when it has not been preseeded (ie. the *seen* flag is clear)
+ * (./) force 4k blocks and 128 bytes inodes
+ * (./) submit patches to bugs.debian.org
+ ([[!debbug 586870]] and [[!debbug 586871]])
+ * (./) rebuild with responsible version numbers and upload to my repository
+
+* (./) **libparted** (2010-06-23)
+ * (./) fix device paths ([[!debbug 586696]])
+ * (./) fix crash on exit for part:* stores ([[!debbug 586682]])
+
+* **hurd-udeb** (2010-06-23)
+ * (./) rebuild with the hack suggested by youpi for qemu network configuration
+ * (./) fix mount to accept `-o defaults`
+ * cleanup, ask youpi to commit
+
+* reloading the partition table (2010-06-25)
+ * User-space part stores
+ * (./) hurd-udeb now uses `part:N:device:X` for partition devices
+ (2010-06-23)
+ * (./) it also provides /lib/partman/commit.d/??hurd\_reloadpart,
+ which basically does `settrans -ag /dev/[hs]d*`.
+ (2010-06-24)
+ * Kernel-based partition devices
+ * (./) Mach's drivers from Linux support reloading partitions.
+ With help from youpi this has been made available through a
+ device\_set\_status() call.
+ * (./) make libparted use it
+ * Reminder:
+ I should file a bug against libparted with the patch sometime.
+
+* **busybox**: submit upstream and to [[!debbug 323670]]
+ (waiting for upstream to review)
+ * (./) I have mentioned my work on the upstream mailing list,
+ * (./) merge the recent changes from upstream,
+ notably to the build system.
+ (2010-06-23)
+ * (./) ask upstream for review and merge
+ (2010-06-25)
+ * backport any additional changes onto the debian branch
+ * hijack [[!debbug 323670]] and submit my patches
+
+* (./) The `/servers/exec` issue (2010-06-26)
+ * Due to /servers being inexistant,
+ the bootstrap ext2fs could not register the initial exec server,
+ meaning that non-bootstrap filesystems used a different one
+ (started from the passive translator),
+ which for some reason died on shell scripts, making them stall.
+ * Adding the `/servers` directory to hurd-udeb fixed it,
+ as well as the /hurd/proc issue
+ (failed to be run by init the first time around).
+ * Reminder: report the non-bootstrap exec servers failure on scripts.
+
+* (./) **base-installer**: (2010-06-26)
+ * Work around non-existant /proc/mounts.
+ * Firmlink /servers into /target after debootstrap
+ to make the network available.
+
+* **grub-installer** (expected 2010-06-28)
+ * review the whole thing and add hurd to the supported cases
+
+* **d-i/installer/build**: (expected 2010-06-28)
+ * publish the patch I use
+ * sort out the changes suitable for inclusion
+ and ask youpi and/or debian-boot@l.d.o to commit them
+
+**Milestone (expected 2010-06-28):
+installer kindof works, with documented manual intervention required**
+
+* **partman**: further adjustments
+ * hide irrelevant mount options? (sync, relatime)
+
+* **busybox**: port
+ * fix stty/stat/ipcs on kFreeBSD,
+ * generally port more stuff,
+ * *ip* is needed for network configuration,
+ * *mount*, *swaponoff* can be from hurd-udeb for now,
+ though the kFreeBSD people will need them
+
+* <strike>tweak the hurd debian package to handle
+ what native-install used to be required for</strike>
+ (debootstrap does it)
+
+* netcfg: make it work on Hurd somehow (port `busybox ip`?)
* Hurd-specific partitionning (use supported fs types and options).
NB: we will need support in mach to reload the partition tables,
or alternatively use the parted support in libstore somehow.
-* grub2 installation
-
-#### Week 5-6 (2010-06-21..07-04)
-
-* unexpected stuff
-* cleanup
-* call for testing
-* fix bugs
-
-At this point we would have a basic but working installer.
-Hopefully the summer would not be over yet...
-#### Week 7-8 (2010-07-05..18)
+* grub2 installation
-* hurd console
+**Milestone (expected 2010-07-05):
+installer works but it's still somewhat ugly and broken**
+
+* call for testing and fix the bugs
+* improve the [initrd situation](FIXME: link to bug-hurd post):
+ ajust the ramdisk support in Mach,
+ use tmpfs if possible,
+ possibly add `module -nounzip` to grub2.
+* mklibs{,-copy}:
+ test library reduction,
+ make it copy the ld.so -> ld.so.1 symlink.
+* hurd console fonts
* better DHCP support during and after installation
-* support more types of installation images
-
-#### Week 9-10 (2010-07-19..08-01)
-* give a shot at the graphical installer ?
-
-#### Week 11-12 (2010-08-02..15)
+**Milestone (expected 2010-07-19):
+it works great and it's beautiful**
* test, fix, document
-
+* support more types of installation images
+* give a shot at the graphical installer if time permits
+* see how [[zhengda]]'s work on DDE could be integrated
+* etc..
### Mostly done
#### Week 1 (2010-05-24)
-* genext2fs: patches [submitted](http://bugs.debian.org/562999)
+* genext2fs: patches submitted, [[!debbug 562999]]
which add support for all block sizes and choosing them at runtime.
* busybox: started porting the upstream and Debian package to Hurd and FreeBSD
* rebuilding hurd-udeb from the pkg-hurd version
@@ -97,3 +175,22 @@ Hopefully the summer would not be over yet...
(BTW would there be a mean to detect this from the libdiskfs bootstrap code
and report it ?)
+#### Week 2 (2010-05-31 to 2010-06-06)
+
+* *busybox*: patches [posted](http://lists.debian.org/debian-bsd/2010/05/msg00048.html).
+* *libdebian-installer4*: [[!debbug 584538]]
+* started working on mach initrd support
+* the installation images could boot into the main-menu
+ with the following changes:
+ * rebuild hurd-udeb from with the latest pkg-hurd patches
+ * use busybox from my osports-debian branch (see link above)
+ * tweak the d-i image build scripts
+ * the symlink /lib/ld.so -> ld.so.1 needs to be created somehow
+ (youpi mentionned it being the job of libc0.3-udeb I think)
+ * fix the poll() issue in libdebian-installer
+ (patch to be submitted soon),
+ also there is some hurd doxygen short-circuiting stuff
+ there which does not apply any more and prevents is to build.
+ * feed the initrd as a hard drive in qemu
+ (with some more space added to avoid it from becoming full)
+
diff --git a/user/kam.mdwn b/user/kam.mdwn
index da820f62..04160d0f 100644
--- a/user/kam.mdwn
+++ b/user/kam.mdwn
@@ -55,6 +55,7 @@ Understanding how gnumach ticks [ at least the parts related to the project ]
###Coding Phase:
+Stage 1:
####24th of May - 26th of May:
@@ -72,38 +73,46 @@ Understanding how gnumach ticks [ at least the parts related to the project ]
* Off ( Oral Exams )
----
-
####2nd of May - 4th of June:
* Finish the port of the previous phase.
---
+Stage 2:
+
####5th of June - 11th of June:
* Modify the API of the libpager to support multipages.
---
+Stage 3:
+
####12th of June - 26th of June:
* Modify the of the translators code to implement the new libpager interface.
---
+Stage 4:
+
####27th of June - 30th of June:
* port OSF Mach's clustered pageout ( [src]/vm/vm_pageout.c )
---
+Stage 5:
+
####1st of July - 4th of July:
* Fix the bootmem_allocator patch along with my proposal.
---
+Stage 6:
+
### Testing Phase:
---
@@ -113,3 +122,31 @@ Understanding how gnumach ticks [ at least the parts related to the project ]
#### Final exams :
Starts at 12th of June for two weeks [maybe 2 or 3 days longer than this , not sure]
+
+---
+
+Stage 1:
+
+* clustered_paging.diff patch http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00024.html
+
+TODO:
+
+* Update the headers of the modified files in GNU Mach to reflect the fact that they were ported from OSF Mach.
+
+* Implement madvise() in glibc.
+
+* Update the documentation of GNU Mach with the new interfaces.
+
+* Revise and finish the code related to default_memory_manager management in GNU Mach.
+
+* Port the vm_page "clustered" attribute. [ to mark that the page wasn't requested but was paged-in as part of the cluster ].
+
+---
+
+Stage 2:
+
+Stage 3:
+
+Stage 4:
+
+Stage 5:
diff --git a/user/zhengda.mdwn b/user/zhengda.mdwn
index 39af5699..0c3b26bb 100644
--- a/user/zhengda.mdwn
+++ b/user/zhengda.mdwn
@@ -12,23 +12,28 @@ porting DDE developed by DROPS to the Hurd, and it will still run in the user sp
##Introduction
The introduction of DDE/DDEKit can be found in [here](http://wiki.tudos.org/DDE/DDEKit) and more information can be found [here](http://os.inf.tu-dresden.de/pipermail/l4-hackers/2009/004291.html). DDE/DDEKit is a library, and it should be compiled with the code of Linux or FreeBSD drivers. DDE Linux26 is still under development and it can now support network and block devices (but doesn't support SCSI).
+##The current status
+Currently a few NIC cards work now. I tested pcnet32, e100, e1000, ne2k-pci and rtl8139 in VMWare and Qemu. But the DDE e100 driver cannot work for some e100 cards as currently DDE doesn't support firmware. Someone also reported sis900 cannot work, unfortunately, I cannot test it myself. I appreciate if someone can try some other NIC drivers and give me some feedbback. Please run DDE with GNUMach in the [master-user_level_drivers](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/) branch.
+
## My work
I separate DDE Linux26 to 2 parts: libddekit and libdde_linux26. I also provide a library called libmachdev on the top of the Linux code to provide the Mach device interface, so it is easy for the user to compile a Linux driver and run it in the Hurd. The latest code can be found in the dde branch of the incubator repository.
-The current status: the pcnet32 driver can work very well in DDE Linux26 now. I hope someone can try other NIC drivers. Please run DDE with GNUMach in the [master-user_level_drivers](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/) branch.
-
There is a minor problem when we compile a Linux driver. Linux drivers use jiffies to measure time. Unfortunately, Mach doesn't provide it, so whenever we need it, we need to calculate it by ourselves. I decide to provide a macro to calculate it for the sake of performance and the cost is that the source code of Linux drivers has to include ddekit/timer.h.
## Build and run DDE drivers
-It is better to disable the corresponding kernel drivers in GNU Mach. For example, if we use the pcnet card, we'd better disable lance and pcnet32 drivers while building GNU Mach. DDE requires the pfinet with the modification during my GSoC project in 2008 and that pfinet requires libpcap-dev. To build DDE, we have to first install libpciaccess. libdde_linux26 has to be compiled manually (building dde_pcnet32 doesn't compile libdde_linux26 automatically).
+To build a Linux driver with DDE Linux, we need libddekit, libdde_linux26, libmachdev and libhurd-slab. libddekit and libmachdev use the same Makefile system as other Hurd components but libdde_linux26 does not, so we have to build libdde_linux26 in its source file directory. DDE drivers use the same makefile system as libdde_linux26 and thus we need to build them in their source file directories as well.
+
+The repository has all DDE drivers I have tested, but in case you want to try other drivers, the easiest way is to use dde_pcnet32 as a template. The directory of dde_pcnet32 has Makefile, Makeconf.local, default.ld, pcnet32.c and main.c. If we need to build a new driver file, we only need to replace pcnet32.c with the new file and change Makefile accordingly. You also need to change DDEKITLIBDIR, DDEKITINCDIR, DDE26LIBDIR and OBJ_BASE in Makeconf.local to indicate the path to ddekit and dde_linux26.
-To build a Linux driver with DDE Linux, the easiest way is to use dde_pcnet32 (also in the dde branch) as a template. The directory of dde_pcnet32 has Makefile, Makeconf.local, default.ld, pcnet32.c and main.c. If we need to build a new driver file, we only need to replace pcnet32.c with the new file and change Makefile accordingly. You also need to change DDEKITLIBDIR, DDEKITINCDIR, DDE26LIBDIR and OBJ_BASE in Makeconf.local to indicate the path to ddekit and dde_linux26.
+When all parts are ready, we can start to build DDE drivers now. In case someone hasn't installed libpciaccess, please install it first. We first build libddekit, libdde-slab, then libdde_linux26, then libmachdev and at last the DDE driver. It's better to install libddekit, libdde-slab and libmachdev to the system, so libdde_linux26 and the DDE driver find the library files and header files.
-To run a DDE NIC driver:
+To run a DDE NIC driver: It is better to disable the corresponding kernel drivers in GNU Mach. For example, if we use the pcnet card, we'd better disable lance and pcnet32 drivers in gnumach. DDE requires the pfinet with modification during my GSoC project in 2008 and that pfinet requires libpcap-dev (this pfinet is also in the dde branch).
settrans -acfg pcnet32 hurd/dde_pcnet32/dde_pcnet32
+
settrans -acfg /dev/eth0 hurd/devnode/devnode eth0 -M pcnet32
+
settrans -acfg /servers/socket/2 hurd/pfinet/pfinet -i /dev/eth0 -a 172.16.172.10 -g 172.16.172.2 -m 255.255.255.0
---