From 8b2dd87cbe05e232963c86e305cb415ae6ba6584 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 28 Jan 2014 23:48:56 +0100 Subject: Document -f option of boot --- hurd/subhurd.mdwn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn index 55927fdd..0c7677a9 100644 --- a/hurd/subhurd.mdwn +++ b/hurd/subhurd.mdwn @@ -103,7 +103,9 @@ practice [that doesn't work at the moment](http://savannah.gnu.org/bugs/?17341).) You can provide the subhurd with a network card by passing a `-f` option to -`boot`. +`boot`. For instance, if you have a second network card `/dev/eth1` in your +host hurd, pass `-f eth0=/dev/eth1` to make it appear as device eth0 in the +subhurd. Now the subhurd should boot just like a normal Hurd started directly from GRUB, finally presenting a login prompt. The `boot` program serves as proxy for the -- cgit v1.2.3 From 514472f2d86a5905ed3df4d346403064e751316c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 28 Jan 2014 23:49:17 +0100 Subject: pfinet is now fine with netdde going away --- contributing.mdwn | 8 -- hurd/translator/pfinet/implementation.mdwn | 139 ----------------------------- 2 files changed, 147 deletions(-) (limited to 'hurd') diff --git a/contributing.mdwn b/contributing.mdwn index cfc4dc0e..11cedba3 100644 --- a/contributing.mdwn +++ b/contributing.mdwn @@ -81,14 +81,6 @@ people who would like to dive into the code but just lack a "somewhere to begin with". * Some translators do not support fsysopts, such as `remap`. -* Make pfinet OK with the ethernet device going away. This would be a very -nice feature: being able to just restart the ethernet driver; we've just not -taken the time to fix it yet, but it shouldn't be very hard. The code begins -at `hurd/pfinet/ethernet.c`, `ethernet_open()`, the `device_open` call, which -produces `edev->ether_port`. Basically, one needs to catch errors like EIEIO -when using it, and in that case re-open the device. -See also the notes on [[hurd/translator/pfinet/implementation]], *Bugs*, *IRC, -freenode, #hurd, 2013-09-03*. * Add a futex kernel trap to GNU Mach. This can be useful for nicer locking primitives, including inter-process primitives. `vm_allocate` can be used as an example in the `gnumach` source tree for how to add a kernel trap. [[!GNU_Savannah_task 6231]] diff --git a/hurd/translator/pfinet/implementation.mdwn b/hurd/translator/pfinet/implementation.mdwn index 3e66c870..77162d8a 100644 --- a/hurd/translator/pfinet/implementation.mdwn +++ b/hurd/translator/pfinet/implementation.mdwn @@ -27,145 +27,6 @@ implementation. oh http://jl-icase.home.comcast.net/~jl-icase/LinuxTCP2.html -## IRC, freenode, #hurd, 2013-09-03 - -In context of the item on [[/contributing]]. - - About this task: "Make pfinet OK with the ethernet device going - away." --- how can I test this? How can I remove the ethernet device? - settrans on the ethernet device, handled by the netdde - translator - that is, make it go away (settrans -fg) - Ah, I see. - Thanks - check its status before with showtrans - then, after having made it go away, set it again - I don't think I'm doing this right... After `settrans -fg - /dev/eth0` I should not be able to access the network anymore, but it - still works. - How can I figure out which of the four network devices is actually - used? - rekado: the file system is used to open files, i.e. access - services - it's not used to revoke access - once pfinet has obtained a port to the network device, it keeps it - oh, yes, of course. Sorry, this is all very - new to me. - I'm not sure what the problem is that this task describes. In - what way is pfinet "not OK" with the ethernet device going away? - rekado: the idea is to make pfinet able to cope with a driver - crash - Can I trigger a driver crash for test purposes? (Or do I have to - build a purposefully broken driver first?) - use kill - Oh, good. - iirc, netdde doesn't restart correctly :x - you'll probably have to fix it a bit - i guess there is some persistent state that prevents it from - reinitializing correctly - okay - I may need one more pointer: where can I find the netdde code? - Grep'ing around I only see it only mentioned as an argument to - /hurd/devnode; also: should I work in some incubator branch or directly - in the hurd repo? - rekado: incubator branch - Okay. Thank you for your patience. I'll play with this in the - next few days. - enjoy - :) - - -### IRC, freenode, #hurd, 2013-09-05 - - When I kill the /hurd/netdde process I can no longer access the - network (as expected); - To restore connectivity I run "settrans -g eth0 /hurd/devnode -M - /dev/netdde eth0" from the /dev directory. - When I access the network again everything is fine. (I do see a - message telling me "irq handler 11: release an dead delivery port" - ) - Is it the goal to avoid having to run settrans again to run netdde - after it crashes or is killed? - you don't need to run settrans again - that should get triggered automatically - Hmm, after killing netdde I get "Resource lost" when using wget. - It doesn't seem to be restarted automatically. - try again - the first wget makes pfinet try to use netdde and fail, thus crash - the second wil respawn pfinet - ideally pfinet shouldn't die, that's a TODO mentioned in the - "contributing page" - Ah, so that's what should be prevented. - it's just a matter of making pfinet be fine with errors from the - eth translator, and simply reopen it instead of dying - That's the thing I've been trying to figure out. - when I run wget a second (or third) time I get a different error; - "Name or service not known." - It's only okay again when I use settrans - maybe the devnode translator also needs some fixing - it's odd that I don't have the issue though - I'm using the qemu image, updated just yesterday. - same here - anyway, now you know where to put your hands :) - yes, thanks a lot. - - -### IRC, freenode, #hurd, 2013-09-07 - - in pfinet/ethernet.c:ethernet_open there's an assertion: - edev->ether_port == MACH_PORT_NULL - This is violated when netdde was killed and the device is - reopened. - I'm not sure what should be done: destroy the port before - reopening or drop the assertion? - If I drop the assertion, Mach seems to handle this just fine. - Says "irq handler 11: release an [sic] dead delivery port" and - then carries on without problems. - Is this a warning or an error, or can this be ignored? - (or none of the above?) - - -### IRC, freenode, #hurd, 2013-09-08 - - I have a simple patch for pfinet that lets it recover from an - error in ethernet_xmit when /hurd/netdde and /hurd/devnode have been - killed. - It doesn't work, though, when only netdde has been killed. - With devnode still around device_open fails with "(ipc/send) - invalid destination port" - I don't know where device_open is defined and why this error is - returned. - I guess the error refers to the "master_device" port returned by - file_name_lookup() in ethernet_open() - Why would file_name_lookup() return an invalid port when netdde is - dead but devnode is still running? - rekado: maybe because devnode needs to perform a fresh lookup as - well - - -### IRC, freenode, #hurd, 2013-09-09 - - braunr: re devnode: devnode only performs a single lookup in - parse_opt(), i.e. at start-up. - I'll try to understand devnode enough to patch it. - rekado: that's the problem - it should perform a lookup every time it's opened - -[[!message-id "1378730237-8091-1-git-send-email-rekado@elephly.net"]], -[[!message-id "1378731824-8928-1-git-send-email-rekado@elephly.net"]]. - - I submitted two patches to the mailing list. I've tested them on - Debian GNU/Hurd but based them on the incubator/dde branch. - rekado: awesome, reliability fixes are very much welcome - - -### IRC, freenode, #hurd, 2013-09-18 - - youpi: my apologies for the delay in getting back to you with - improvements to my pfinet/devnode patches. Been very busy. - rekado: development pace on the hurd has always been slow, no need - to apologize - ## MAC Addresses [[!tag open_issue_hurd]] -- cgit v1.2.3 From e763c28e9aabc10660f5085e6af69de80ab71c9a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 30 Jan 2014 23:26:27 +0100 Subject: mention IUCLC being a GNU extension --- hurd/porting/guidelines.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'hurd') diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn index d28a777e..e029744d 100644 --- a/hurd/porting/guidelines.mdwn +++ b/hurd/porting/guidelines.mdwn @@ -317,6 +317,10 @@ Use instead. This is not actually standard; cfsetspeed, cfsetispeed, or cfsetospeed should be used instead. +## IUCLC + +IUCLC is a GNU extension. `#define _GNU_SOURCE' thus has to be used to get the definition (even if Linux unconditionally provides it, it should not). + ## `errno` values When dealing with `errno`, you should always use the predefined error codes defined with the `E*` constants, instead of manually comparing/assigning/etc with their values. -- cgit v1.2.3