1 <?xml version=
"1.0" encoding=
"ISO-8859-1"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/'
>
4 <title>Petter Reinholdtsen - Entries from February
2014</title>
5 <description>Entries from February
2014</description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
10 <title>Testing sysvinit from experimental in Debian Hurd
</title>
11 <link>http://people.skolelinux.org/pere/blog/Testing_sysvinit_from_experimental_in_Debian_Hurd.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Testing_sysvinit_from_experimental_in_Debian_Hurd.html
</guid>
13 <pubDate>Mon,
3 Feb
2014 13:
40:
00 +
0100</pubDate>
14 <description><p
>A few days ago I decided to try to help the Hurd people to get
15 their changes into sysvinit, to allow them to use the normal sysvinit
16 boot system instead of their old one. This follow up on the
17 <a href=
"https://teythoon.cryptobitch.de//categories/gsoc.html
">great
18 Google Summer of Code work
</a
> done last summer by Justus Winter to
19 get Debian on Hurd working more like Debian on Linux. To get started,
20 I downloaded a prebuilt hard disk image from
21 <a href=
"http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz
">http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz
</a
>,
22 and started it using virt-manager.
</p
>
24 <p
>The first think I had to do after logging in (root without any
25 password) was to get the network operational. I followed
26 <a href=
"https://www.debian.org/ports/hurd/hurd-install
">the
27 instructions on the Debian GNU/Hurd ports page
</a
> and ran these
28 commands as root to get the machine to accept a IP address from the
29 kvm internal DHCP server:
</p
>
31 <p
><blockquote
><pre
>
32 settrans -fgap /dev/netdde /hurd/netdde
33 kill $(ps -ef|awk
'/[p]finet/ { print $
2}
')
34 kill $(ps -ef|awk
'/[d]evnode/ { print $
2}
')
36 </pre
></blockquote
></p
>
38 <p
>After this, the machine had internet connectivity, and I could
39 upgrade it and install the sysvinit packages from experimental and
40 enable it as the default boot system in Hurd.
</p
>
42 <p
>But before I did that, I set a password on the root user, as ssh is
43 running on the machine it for ssh login to work a password need to be
44 set. Also, note that a bug somewhere in openssh on Hurd block
45 compression from working. Remember to turn that off on the client
48 <p
>Run these commands as root to upgrade and test the new sysvinit
51 <p
><blockquote
><pre
>
52 cat
> /etc/apt/sources.list.d/experimental.list
&lt;
&lt;EOF
53 deb http://http.debian.net/debian/ experimental main
57 apt-get install -t experimental initscripts sysv-rc sysvinit \
58 sysvinit-core sysvinit-utils
59 update-alternatives --config runsystem
60 </pre
></blockquote
></p
>
62 <p
>To reboot after switching boot system, you have to use
63 <tt
>reboot-hurd
</tt
> instead of just
<tt
>reboot
</tt
>, as there is not
64 yet a sysvinit process able to receive the signals from the normal
65 'reboot
' command. After switching to sysvinit as the boot system,
66 upgrading every package and rebooting, the network come up with DHCP
67 after boot as it should, and the settrans/pkill hack mentioned at the
68 start is no longer needed. But for some strange reason, there are no
69 longer any login prompt in the virtual console, so I logged in using
72 <p
>Note that there are some race conditions in Hurd making the boot
73 fail some times. No idea what the cause is, but hope the Hurd porters
74 figure it out. At least Justus said on IRC (#debian-hurd on
75 irc.debian.org) that they are aware of the problem. A way to reduce
76 the impact is to upgrade to the Hurd packages built by Justus by
77 adding this repository to the machine:
</p
>
79 <p
><blockquote
><pre
>
80 cat
> /etc/apt/sources.list.d/hurd-ci.list
&lt;
&lt;EOF
81 deb http://darnassus.sceen.net/~teythoon/hurd-ci/ sid main
83 </pre
></blockquote
></p
>
85 <p
>At the moment the prebuilt virtual machine get some packages from
86 http://ftp.debian-ports.org/debian, because some of the packages in
87 unstable do not yet include the required patches that are lingering in
88 BTS. This is the completely list of
"unofficial
" packages installed:
</p
>
90 <p
><blockquote
><pre
>
91 # aptitude search
'?narrow(?version(CURRENT),?origin(Debian Ports))
'
92 i emacs - GNU Emacs editor (metapackage)
94 i hurd-recommended - Miscellaneous translators
95 i isc-dhcp-client - ISC DHCP client
96 i isc-dhcp-common - common files used by all the isc-dhcp* packages
97 i libc-bin - Embedded GNU C Library: Binaries
98 i libc-dev-bin - Embedded GNU C Library: Development binaries
99 i libc0.3 - Embedded GNU C Library: Shared libraries
100 i A libc0.3-dbg - Embedded GNU C Library: detached debugging symbols
101 i libc0.3-dev - Embedded GNU C Library: Development Libraries and Hea
102 i multiarch-support - Transitional package to ensure multiarch compatibilit
103 i A x11-common - X Window System (X.Org) infrastructure
104 i xorg - X.Org X Window System
105 i A xserver-xorg - X.Org X server
106 i A xserver-xorg-input-all - X.Org X server -- input driver metapackage
108 </pre
></blockquote
></p
>
110 <p
>All in all, testing hurd has been an interesting experience. :)
111 X.org did not work out of the box and I never took the time to follow
112 the porters instructions to fix it. This time I was interested in the
113 command line stuff.
<p
>