kFreeBSD progress report week 8
In the past two weeks I focused on getting network configuration
working in debian-installer (d-i), without success.
I skipped the keyboard layout selection, because not a top priority,
and I didn't reach udeb download (and installation).
I focused on network configuration in d-i, mostly done by netcfg [din0].
I disabled unuseful udebs, to semplify debugging; in particular, I
disabled the ethdetect one [din1], concentrating on those cards whose
driver is automatically detected and loaded by the kernel (e.g.
NE2000, as QEMU's one).
I made a little portability fix in netcfg [din2] about a Linux
specific PCMCIA file.
While debugging netcfg, I discovered that "/var/log/syslog" is not
created, even manually executing syslogd. Currently, in d-i, BusyBox
syslogd is used.
Even without syslogd working, I managed to go forward in netcfg debug
manually running "dhclient ed0" [din3] (thanks to Julián Moreno
Patiño): the "ip" command is not found, because the dhclient-script
used in the dhcp3-client udeb is Linux specific; on the deb package,
there is a different script for GNU/kFreeBSD and GNU/Linux, but the
GNU/kFreeBSD version needs "ifconfig" and "route". I considered
porting and switching to BusyBox udhcpc.
I also worked on
+ realizing there is a FreeBSD port [bb0]
+ asking upstream [bb1] for partially reverting a commit, proposing a
patch rejected [bb2] because
- breaking GNU/Linux build
- against BusyBox policy about "#define"s, as I discovered later [bb3]
+ moving to [bb4] some patches:
- those from the previous efforts on version 1.01 [bb6], merging them in [bb5]
- those from FreeBSD [bb0], against version 1.13, almost useless; in
@ init is disabled
@ syslogd is enabled but not patched (so not working, I think)
- those I wrote in previous weeks [bb7] (against version 1.13),
reviewing and cleaning most of them; these [bb5] are the recommended
patches to use
+ looking for Linux-specific code in syslogd (and logger), without success
* enabling auxiliary consoles (alt-fX) in d-i [dic0] (read the commit log)
* merging some patches to d-i trunk
+ committing already proposed patches
- add cons25 terminfo file [dip0]
- more fine-grained wireless building and linking in netcfg [dip1]
+ proposing and committing new patches
- substitute Linux-specific code in get_all_ifs() using getifaddrs() [dip2]
- poll() portability issue [dip3]
- add ufs2 initrd support [dip4]; mkfs.ufs2 needs root rights,
perhaps NetBSD makefs (or its FreeBSD [dip4_0] or MirBSD version)
could be useful to run it as a normal user
- fix in the kfreebsd-i386 kernel udeb ABI and a dependency version [dip5]
- add kfreebsd-i386 monolithic config files [dip6]
+ proposing new patches (without committing them yet)
- generalize rootskel splitting Linux specific stuff [dip7]
(unblocked by [dip7_0])
To quickly test all this
* download the mini.iso cd at [test0], built from current d-i kfreebsd
* boot it in your favourite virtual machine
+ if it is qemu, "qemu -boot d -cdrom mini.iso" will suffice
In the next two weeks I should (still)
* get network configuration working
* get udeb download and installation working
For that I should work on
+ understanding if [todo0] fixes some known problems or is unuseful
+ network interface detected twice
+ filtering lo0
+ clean [dic0] for merging to d-i trunk