From fa44f0ef921875e8190db6845c50e7cd257197e8 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 21 Jun 2010 23:59:13 +0200 Subject: DDE. hurd/dde: New. hurd/running/dde_guide -> hurd/dde/guide. --- hurd.mdwn | 1 + hurd/dde.mdwn | 22 ++++++ hurd/dde/guide.mdwn | 158 ++++++++++++++++++++++++++++++++++++++++++++ hurd/running/dde_guide.mdwn | 158 -------------------------------------------- hurd/status.mdwn | 8 +-- 5 files changed, 182 insertions(+), 165 deletions(-) create mode 100644 hurd/dde.mdwn create mode 100644 hurd/dde/guide.mdwn delete mode 100644 hurd/running/dde_guide.mdwn diff --git a/hurd.mdwn b/hurd.mdwn index e1bb861d..067a15fc 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -61,6 +61,7 @@ in the *unstable* branch of the Debian archive. * [[running/Distrib]] -- Distributions * [[Public_Hurd_Boxen]] * [[Neighborhurd]]s and [[Subhurd]]s +* [[DDE]] -- Device Driver Environment ## Common Problems diff --git a/hurd/dde.mdwn b/hurd/dde.mdwn new file mode 100644 index 00000000..dedb7d10 --- /dev/null +++ b/hurd/dde.mdwn @@ -0,0 +1,22 @@ +[[!meta copyright="Copyright © 2009, 2010 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]]."]]"""]] + + * [[community/gsoc/project ideas/driver glue code]] + + * [[open issues/user-space device drivers]] + + * [[open issues/device drivers and io systems]] + +--- + +There is an effort going on to make [[/DDE]] usable in GNU/Hurd +userspace. + +See Zheng Da's [[project page|zhengda]], as well as another [[guide]]. diff --git a/hurd/dde/guide.mdwn b/hurd/dde/guide.mdwn new file mode 100644 index 00000000..6518e0e4 --- /dev/null +++ b/hurd/dde/guide.mdwn @@ -0,0 +1,158 @@ +[[!meta copyright="Copyright © 2010 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]]."]]"""]] + +If you haven't: install hurd to partition +get grub image +boot hurd in single user (change grub entry accordingly to the installed partition) + +> $ export TERM=mach + +> $ ./native-install + +reboot to other debian + +suppose hurd partition is hdd1 + +as root + +> $ mount /dev/hdd1 /mnt -t ext2 + +> $ cd /mnt/etc/apt + +> $ echo "deb http://ftp.debian-ports.org/debian unreleased main" >> sources.list + +> $ 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 + +> $ cd /mnt + +> $ apt-get -c etc/apt/apt.conf.offline update + +> $ apt-get -c etc/apt/apt.conf.offline upgrade + +> $ apt-get -c etc/apt/apt.conf.offline install git-core + +> $ apt-get -c etc/apt/apt.conf.offline build-dep hurd gnumach + +> $ apt-get -c etc/apt/apt.conf.offline install build-essential libpciaccess-dev libpcap0.8-dev + +> $ cd /mnt/home + +> $ git clone git://git.sv.gnu.org/hurd/incubator.git -b dde hurd_dde + +> $ git clone git://git.sv.gnu.org/hurd/gnumach.git -b master-user_level_drivers gnumach_dde + + +suppose you need forcedeth driver + +Download http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.29.y.git;a=blob_plain;f=drivers/net/forcedeth.c;hb=HEAD from mozilla like +browser to /mnt/home as forcedeth.c + +Download http://pastebin.com/RJAJT2MR the same way and rename it to 0001-Fix-up-DDE-paths.patch + +reboot back to hurd (multiuser) + +> $ apt-get update + +> $ apt-get upgrade + +> $ apt-get install git-core + +> $ apt-get build-dep hurd gnumach + +> $ apt-get install build-essential libpciaccess-dev libpcap0.8-dev + + +> $ cd /home/gnumach_dde + +> $ autoreconf -i && ./configure --enable-kdb --enable-device-drivers=none --enable-lpr --enable-floppy --enable-ide + +> $ make + +> $ cd ../hurd_dde + +> $ git am ../0001-Fix-up-DDE-paths.patch + +> $ cp -r dde_pcnet32 dde_forcedeth + +> $ cd dde_forcedeth + +> $ rm pcnet32.c + +> $ cp /home/forcedeth.c ./ + +> $ sed -i 's/pcnet32/forcedeth/g' Makefile + +> $ sed -i 's/pcnet32/forcedeth/g' .gitignore + +> $ sed -i 's:-lhurd-slab:../libhurd-slab/libhurd-slab.a:' Makefile + +> $ sed -i 's:-I/include:-I..:' Makefile + +> $ nano forcedeth.c + +add these 2 lines after the last #include + + #include + void get_random_byter(void *buf, int nbytes) { } + +> $ cd .. + +> $ git add dde_forcedeth + +> $ git commit -a -m 'Add forcedeth driver' + +> $ autoreconf -i && ./configure + +> $ mkdir -p hurd/include/ddekit + +> $ make libddekit libmachdev devnode pfinet + +> $ cd libdde_linux26 + +> $ make + +> $ cd ../dde_forcedeth + +> $ make + +If the make fails it might be necassary to replace some of the -l options (or all) in Makefile with the real path to the library objects (example: change *-lhurd-slab* to *../libhurd-slab/libhurd-slab.a*) + +> $ cp /home/gnumach_dde/gnumach /boot/gnumach_dde + +> $ mkdir /hurd/dde + +> $ cp /home/hurd_dde/devnode/devnode /hurd/dde + +> $ cp /home/hurd_dde/pfinet/pfinet /hurd/dde + +> $ cp /home/hurd_dde/dde_forcedeth/dde_forcedeth /hurd/dde/forcedeth + +reboot to hurd with the new gnumach_dde + +> $ settrans -c /dev/forcedeth /hurd/dde/forcedeth + +> $ settrans -c /dev/eth0 /hurd/dde/devnode -M /dev/forcedeth eth0 + +> $ settrans -c /servers/socket/2 /hurd/dde/pfinet -i /dev/eth0 -a 192.168.1.194 -g 192.168.1.254 -m 255.255.255.0 + + +replace the ip, gateway and mask with your own ones + +> $ nano /etc/resolv.conf + +add line: nameserver 192.168.1.254 + +DONE diff --git a/hurd/running/dde_guide.mdwn b/hurd/running/dde_guide.mdwn deleted file mode 100644 index 6518e0e4..00000000 --- a/hurd/running/dde_guide.mdwn +++ /dev/null @@ -1,158 +0,0 @@ -[[!meta copyright="Copyright © 2010 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]]."]]"""]] - -If you haven't: install hurd to partition -get grub image -boot hurd in single user (change grub entry accordingly to the installed partition) - -> $ export TERM=mach - -> $ ./native-install - -reboot to other debian - -suppose hurd partition is hdd1 - -as root - -> $ mount /dev/hdd1 /mnt -t ext2 - -> $ cd /mnt/etc/apt - -> $ echo "deb http://ftp.debian-ports.org/debian unreleased main" >> sources.list - -> $ 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 - -> $ cd /mnt - -> $ apt-get -c etc/apt/apt.conf.offline update - -> $ apt-get -c etc/apt/apt.conf.offline upgrade - -> $ apt-get -c etc/apt/apt.conf.offline install git-core - -> $ apt-get -c etc/apt/apt.conf.offline build-dep hurd gnumach - -> $ apt-get -c etc/apt/apt.conf.offline install build-essential libpciaccess-dev libpcap0.8-dev - -> $ cd /mnt/home - -> $ git clone git://git.sv.gnu.org/hurd/incubator.git -b dde hurd_dde - -> $ git clone git://git.sv.gnu.org/hurd/gnumach.git -b master-user_level_drivers gnumach_dde - - -suppose you need forcedeth driver - -Download http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.29.y.git;a=blob_plain;f=drivers/net/forcedeth.c;hb=HEAD from mozilla like -browser to /mnt/home as forcedeth.c - -Download http://pastebin.com/RJAJT2MR the same way and rename it to 0001-Fix-up-DDE-paths.patch - -reboot back to hurd (multiuser) - -> $ apt-get update - -> $ apt-get upgrade - -> $ apt-get install git-core - -> $ apt-get build-dep hurd gnumach - -> $ apt-get install build-essential libpciaccess-dev libpcap0.8-dev - - -> $ cd /home/gnumach_dde - -> $ autoreconf -i && ./configure --enable-kdb --enable-device-drivers=none --enable-lpr --enable-floppy --enable-ide - -> $ make - -> $ cd ../hurd_dde - -> $ git am ../0001-Fix-up-DDE-paths.patch - -> $ cp -r dde_pcnet32 dde_forcedeth - -> $ cd dde_forcedeth - -> $ rm pcnet32.c - -> $ cp /home/forcedeth.c ./ - -> $ sed -i 's/pcnet32/forcedeth/g' Makefile - -> $ sed -i 's/pcnet32/forcedeth/g' .gitignore - -> $ sed -i 's:-lhurd-slab:../libhurd-slab/libhurd-slab.a:' Makefile - -> $ sed -i 's:-I/include:-I..:' Makefile - -> $ nano forcedeth.c - -add these 2 lines after the last #include - - #include - void get_random_byter(void *buf, int nbytes) { } - -> $ cd .. - -> $ git add dde_forcedeth - -> $ git commit -a -m 'Add forcedeth driver' - -> $ autoreconf -i && ./configure - -> $ mkdir -p hurd/include/ddekit - -> $ make libddekit libmachdev devnode pfinet - -> $ cd libdde_linux26 - -> $ make - -> $ cd ../dde_forcedeth - -> $ make - -If the make fails it might be necassary to replace some of the -l options (or all) in Makefile with the real path to the library objects (example: change *-lhurd-slab* to *../libhurd-slab/libhurd-slab.a*) - -> $ cp /home/gnumach_dde/gnumach /boot/gnumach_dde - -> $ mkdir /hurd/dde - -> $ cp /home/hurd_dde/devnode/devnode /hurd/dde - -> $ cp /home/hurd_dde/pfinet/pfinet /hurd/dde - -> $ cp /home/hurd_dde/dde_forcedeth/dde_forcedeth /hurd/dde/forcedeth - -reboot to hurd with the new gnumach_dde - -> $ settrans -c /dev/forcedeth /hurd/dde/forcedeth - -> $ settrans -c /dev/eth0 /hurd/dde/devnode -M /dev/forcedeth eth0 - -> $ settrans -c /servers/socket/2 /hurd/dde/pfinet -i /dev/eth0 -a 192.168.1.194 -g 192.168.1.254 -m 255.255.255.0 - - -replace the ip, gateway and mask with your own ones - -> $ nano /etc/resolv.conf - -add line: nameserver 192.168.1.254 - -DONE diff --git a/hurd/status.mdwn b/hurd/status.mdwn index e8282091..721cdeda 100644 --- a/hurd/status.mdwn +++ b/hurd/status.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2009 Free Software +[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -106,9 +106,3 @@ possibility that they would want to try the Hurd again in the future. > > [But] unlike a few years back [...] the system is stable enough under > load nowadays [...]. - -## DDE network card drivers - -### Jakub Daniel, 2010-06-09 - -[[guide|running/dde_guide]] -- cgit v1.2.3