summaryrefslogtreecommitdiff
path: root/hurd/dde
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2012-05-24 23:08:09 +0200
committerThomas Schwinge <thomas@codesourcery.com>2012-05-24 23:08:09 +0200
commit2910b7c5b1d55bc304344b584a25ea571a9075fb (patch)
treebfbfbc98d4c0e205d2726fa44170a16e8421855e /hurd/dde
parent35b719f54c96778f571984065579625bc9f15bf5 (diff)
Prepare toolchain/logs/master branch.
Diffstat (limited to 'hurd/dde')
-rw-r--r--hurd/dde/guide.mdwn227
-rw-r--r--hurd/dde/guide/discussion.mdwn17
2 files changed, 0 insertions, 244 deletions
diff --git a/hurd/dde/guide.mdwn b/hurd/dde/guide.mdwn
deleted file mode 100644
index bf41dd79..00000000
--- a/hurd/dde/guide.mdwn
+++ /dev/null
@@ -1,227 +0,0 @@
-[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]]
-
-[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
-id="license" text="Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no Invariant
-Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
-is included in the section entitled [[GNU Free Documentation
-License|/fdl]]."]]"""]]
-
-This guide explains how to build and set up
-a DDE-based network card driver
-with Debian GNU/Hurd,
-if your (wired) network card
-is not supported by the old in-kernel drivers shipped with gnumach.
-
-This guide assumes that you have
-an installation of Debian GNU/Linux on the same machine,
-which helps in fetching the required packages
-in absence of working networking in the Hurd.
-The whole process is much more cumbersome otherwise.
-It also assumes that apart from networking,
-your Hurd system is already installed and operational.
-
-Debian now already includes dde support in both gnumach (>=
-2:1.3.99.dfsg.git20120219-1) and hurd (>= 20120219-1), so in the steps below,
-building gnumach will not be needed. Also, be sure to use the dde-debian branch
-instead of dde.
-
-
-We start by booting into Debian GNU/Linux,
-so we can download everything we will need for building DDE. If you have already a way to download things from the Hurd image, skip to "Get DDE code" below.
-
-Once there, first mount the Hurd partition (as root):
-
- $ mount /dev/hdd1 /mnt -t ext2 # assuming your Hurd partition is hdd1 -- replace with whatever matches your setup
-
-Prepare apt offline configuration so we can get necessary packages:
-
- $ cd /mnt/etc/apt
-
- $ echo "deb http://ftp.debian-ports.org/debian unreleased main" >> sources.list # if you don't have sources.list set up yet on the Hurd system
-
- $ echo "deb-src http://ftp.debian-ports.org/debian unreleased main" >> sources.list
-
- $ echo "deb http://ftp.uk.debian.org/debian unstable main" >> sources.list
-
- $ echo "deb-src http://ftp.uk.debian.org/debian unstable main" >> sources.list
-
- $ wget http://www.gnu.org/software/hurd/hurd/running/debian/DebianAptOffline/apt.conf.offline
-
-Download the packages for offline installation:
-
- $ cd /mnt
-
- $ apt-get -c etc/apt/apt.conf.offline update
-
- $ apt-get -c etc/apt/apt.conf.offline build-dep hurd gnumach
-
- $ apt-get -c etc/apt/apt.conf.offline install git-core build-essential libpciaccess-dev libpcap0.8-dev hurd-dev zlib1g-dev
-
-Get DDE code:
-
- $ cd /mnt/home/me # assuming your user name on the Hurd system is "me"
-
- $ mkdir dde && cd dde
-
-Note: here, use dde-debian instead of dde if you have gnumach >=
-2:1.3.99.dfsg.git20120219-1 already installed and running. Otherwise you will
-get "vm_allocate_contiguous: (ipc/mig) bad request message ID" error messages.
-
- $ git clone git://git.sv.gnu.org/hurd/incubator.git -b dde hurd
-
- $ git clone git://git.sv.gnu.org/hurd/gnumach.git -b master-user_level_drivers
-
-Now comes the tricky part:
-you need to find out
-whether there is already a driver for your card
-in the DDE source tree,
-and otherwise get the driver code
-from the official Linux source tree.
-
-For this, you have to find out which Linux driver
-is responsible for your network card.
-In this guide we will use the forcedeth driver
-(for Nvidia nForce chipsets) as example.
-We check whether there is already a `dde_forcedeth` directory
-in the newly cloned `hurd_dde` tree.
-If there isn't, we have to find and download
-the right source file from Linux:
-
-Point a (JavaScript-capable) web browser at
-
- http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=tree;f=drivers/net;hb=refs/heads/linux-2.6.29.y
-
-(Note: you **have** to use some 2.6.29.y (whatever the y, prefer the latest), as
-this is the version DDE is currently based on.)
-
-Find the right file to download
-(forcedeth.c in this example);
-then hit the "raw" link,
-and save the resulting file (page) to /mnt/home/me/dde
-
-(If you happen to need one of the few drivers
-that consist of more than one source file,
-the process will be more complicated,
-and can't be covered in this guide...)
-
-
-Now everything should be in place,
-so we can boot into Hurd to do the actual work.
-
-Once there, install the packages previously downloaded (again as root):
-
- $ apt-get build-dep hurd gnumach
-
- $ apt-get install git-core build-essential libpciaccess-dev libpcap0.8-dev hurd-dev zlib1g-dev
-
-Make sure we can build stuff as normal user:
-
- $ chown -R me ~me/dde
-
-Now you can log in with the normal user account to build stuff.
-
-Build a DDE-enabled Mach. Not needed if you have gnumach >= 2:1.3.99.dfsg.git20120219-1 already installed and running:
-
- $ cd ~me/dde/gnumach
-
- $ autoreconf -i && ./configure --enable-kdb --enable-device-drivers=none --enable-lpr --enable-floppy --enable-ide
-
- $ make
-
-
-If not already present in DDE,
-we need to prepare the driver for the network card (else, skip to "Having prepared the driver" below):
-
- $ cd ~me/dde/hurd
-
- $ cp -r dde_pcnet32 dde_forcedeth # using pcnet32 as template
-
- $ cd dde_forcedeth
-
- $ rm pcnet32.c # don't want the actual pcnet32 code here...
-
- $ cp ~me/dde/forcedeth.c . # ...but rather the forcedeth code
-
- $ sed -i 's/pcnet32/forcedeth/g' Makefile # adapt Makefile accordingly
-
- $ sed -i 's/pcnet32/forcedeth/g' .gitignore
-
- $ sed -i 's:-lhurd-slab:../libhurd-slab/libhurd-slab.a:' Makefile # fix up build system... XXX I guess this part is obsolete
-
- $ sed -i 's:-I/include:-I..:' Makefile # same
-
- $ nano forcedeth.c # Near the top of the file, there will be many #include lines. After the last one, add this:
-
- #include <ddekit/timer.h>
-
- $ cd ..
-
-Commit the new driver with git.
-This will be helpful if we update the DDE code later;
-as well as for creating a patch for later reuse
-and/or upstream submission:
-
- $ git add dde_forcedeth
-
- $ git commit -a -m 'Add forcedeth driver'
-
-
-Having prepared the driver,
-we can now build the necessary Hurd and DDE bits:
-
- $ autoreconf -i && ./configure
-
- $ make libddekit libmachdev devnode pfinet # Hurd components. This is not needed if you have the Debian hurd-dev >= 20120219-1 package already installed.
-
- $ make -C libdde_linux26 # common DDE driver code -- uses a different Makefile system than the Hurd components! This is not needed if you have the Debian hurd-dev >= 20120219-2 package already installed.
-
-If you have the Debian hurd-dev >= 20120219-2 package already installed (and thus skipped the previous steps), run:
-
- $ make -C dde_forcedeth PKGDIR=/usr/share/libdde_linux26 # actual driver
-
-otherwise, after doing the previous steps, use:
-
- $ make -C dde_forcedeth # actual driver
-
-Install the various built components to their final destinations (as root). You only need to install dde_forcedeth if you are already running the Debian gnumach >= 2:1.3.99.dfsg.git20120219-1 and hurd-dev >= 20120219-1 packages:
-
- $ cd ~me/dde/
-
- $ cp gnumach/gnumach /boot/gnumach_dde
-
- $ cp hurd/devnode/devnode hurd/pfinet/pfinet hurd/dde_forcedeth/dde_forcedeth /hurd
-
-
-Now everything should be ready.
-Before we can use the driver,
-we have to boot with the newly built gnumach_dde
-instead of the standard kernel.
-(Adapt your grub configuration;
-or manually edit the entry
-in the boottime grub menu while testing.)
-
-Once there, set up the translators for the driver (as root):
-
- $ settrans -cap /dev/forcedeth /hurd/dde_forcedeth
-
-If that spews error "vm_allocate_contiguous: (ipc/mig) bad request message ID",
-you are mixing things: either use the debian kernel and the dde-debian incubator
-branch, or use your kernel built from the master-user_level_drivers branch and
-the dde incubator branch, but don't make any mixture.
-
- $ settrans -cap /dev/eth0 /hurd/devnode -M /dev/forcedeth eth0
-
-Finally, we can set up the actual network translator,
-using something like:
-
- $ settrans -cap /servers/socket/2 /hurd/pfinet -i /dev/eth0 -a 192.168.1.194 -g 192.168.1.254 -m 255.255.255.0
-
-For the exact syntax,
-see the normal network setup documentation.
-The only differences here
-are the different location of the pfinet binary,
-and the different syntax for the -i option.
-
-Check Arch/Hurd recipe on git://projects.archhurd.org/packages.git
diff --git a/hurd/dde/guide/discussion.mdwn b/hurd/dde/guide/discussion.mdwn
deleted file mode 100644
index a1cccad4..00000000
--- a/hurd/dde/guide/discussion.mdwn
+++ /dev/null
@@ -1,17 +0,0 @@
-[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]
-
-[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
-id="license" text="Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no Invariant
-Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
-is included in the section entitled [[GNU Free Documentation
-License|/fdl]]."]]"""]]
-
-ToDo:
-
-[[!tag open_issue_documentation]]
-
-* This guide is probably out of date in some points: the build system got reworked in the meantime I believe...
-* The formatting here needs serious cleanup
-* Might be nice to explain how to find out the right Linux driver, and in which source file it resides