December 2010

Building SlugOS 5.3-beta on Fedora Core 14

  102  yum install help2man
  104  yum install texi2html
  116  yum install glibc-static
  117  vi /kanigix/slugos/5.3/slugos-nslu2be.tmp/work/x86_64-linux/unifdef-native-2.6.18+git-r0/unifdef.c

The last was to change getline() to getline2() to avoid a conflict.

Very nasty one here for this message:

[tdh@wont 5.3]$ more /kanigix/slugos/5.3/slugos-nslu2be.tmp/work/armv5teb-linux-gnueabi/linux-libc-headers-2.6.23-r3/temp/log.do_configure.13663
NOTE: make -e MAKEFLAGS= allnoconfig ARCH=arm
Makefile:416: *** mixed implicit and normal rules.  Stop.
FATAL: oe_runmake failed

(Note: You could probably build easier against make-3.81 instead of make-3.82 !)

Edit these two files to apply this diff:

[tdh@wont 5.3]$ find . -name Makefile | grep glibc | grep  manual./slugos-nslu2be.tmp/work/armv5teb-linux-gnueabi/glibc-initial-2.6.1-r15/glibc-2.6.1/manual/Makefile
./slugos-nslu2be.tmp/work/armv5teb-linux-gnueabi/glibc-2.6.1-r15/glibc-2.6.1/manual/Makefile

And also apply this patch to

/kanigix/slugos/5.3/slugos-nslu2be.tmp/work/armv5teb-linux-gnueabi/linux-libc-headers-2.6.23-r3/linux-2.6.23/Makefile
[tdh@wont linux-2.6.23]$ diff -u Makefile Makefile.STOCK 
--- Makefile	2010-12-29 18:23:58.176755981 -0600
+++ Makefile.STOCK	2010-12-29 18:21:43.405298124 -0600
@@ -413,11 +413,7 @@
 include $(srctree)/arch/$(ARCH)/Makefile
 export KBUILD_DEFCONFIG
 
-config: scripts_basic outputmakefile FORCE
-	$(Q)mkdir -p include/linux include/config
-	$(Q)$(MAKE) $(build)=scripts/kconfig $@
-
-%config: scripts_basic outputmakefile FORCE
+config %config: scripts_basic outputmakefile FORCE
 	$(Q)mkdir -p include/linux include/config
 	$(Q)$(MAKE) $(build)=scripts/kconfig $@
 
@@ -1467,10 +1463,7 @@
 	$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
 
 # Modules
-/: prepare scripts FORCE
-	$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
-	$(build)=$(build-dir)
-%/: prepare scripts FORCE
+/ %/: prepare scripts FORCE
 	$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
 	$(build)=$(build-dir)
 %.ko: prepare scripts FORCE

And do the getline2() trick here:

/kanigix/slugos/5.3/slugos-nslu2be.tmp/work/armv5teb-linux-gnueabi/linux-libc-headers-2.6.23-r3/linux-2.6.23/scripts/unifdef.c 

And more:


[tdh@wont busybox-1.13.2]$ pwd
/kanigix/slugos/5.3/slugos-nslu2be.tmp/work/armv5teb-linux-gnueabi/busybox-1.13.2-r16/busybox-1.13.2
[tdh@wont busybox-1.13.2]$ diff Makefile Makefile.STOCK 
421,425c421
< config: scripts_basic outputmakefile FORCE
< 	$(Q)mkdir -p include
< 	$(Q)$(MAKE) $(build)=scripts/kconfig $@
< 	$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
< %config: scripts_basic outputmakefile FORCE
---
> config %config: scripts_basic outputmakefile FORCE
1273,1276c1269
< /: prepare scripts FORCE
< 	$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
< 	$(build)=$(build-dir)
< %/: prepare scripts FORCE
---
> / %/: prepare scripts FORCE

Keep on fixing these as you found they broke. Consider again trying make-3.81!

Annoying lag in “command not found”

[tdh@wont ~]$ jjj
Command not found.

Followed by an annoying lag. FC13 does not do this, but FC14 does.

It turns out there is a package called PackageKit-command-not-found and it is controlling this behavior.

[root@wont PackageKit]# pwd
/etc/PackageKit
[root@wont PackageKit]# diff CommandNotFound.conf CommandNotFound.conf.STOCK
35c35
< SoftwareSourceSearch=false
---
> SoftwareSourceSearch=true

And problem solved! I.e., I want to keep the other features of the package (for now), so this gives the solution with the least impact.

Have btrfs installed and running

I went ahead and reinstalled wont with FC14 – I probably could have done a:

[root@wont ~]# yum install btrfs-progs
[root@wont ~]# modprobe btrfs
[root@wont ~]# mkfs.btrfs -L VMstordev /dev/sdb /dev/sdc /dev/sdd
[root@wont ~]# mount /dev/sdb /kanigix

The hardest thing was getting the /etc/fstab correct because of the need to probe for devices after boot time:

/dev/sdb /kanigix btrfs defaults,device=/dev/sdb,device=/dev/sdc,device=/dev/sdd 0 1

npfs

I’m planning on designing a new filesystem over the break. I want a portable example I can use to illustrate implementation details.

It has to be dead simple, run in userland, and be virtualized. I’m thinking of making them be file based.

Anyway, since there are too many acronyms for filesystems, my first thought was on what to call it: npfs

  • non-production filesystem
  • network parallel filesystem
  • not-pretty filesystem
  • nasty|neat python filesystem
  • near perfect filesystem
  • non-profit filesystem

Believe me, the name is the hardest part!

Guruplug server for Xmas

I got a Guruplug Server for Xmas and right away I noticed the noise – the system is loud.

I bought a 8G thumb drive for the filesystem, so once I upgrade the kernel, I’ll have a hot spare sitting there for my dns, nis, mail, etc.

Disks from zfs pool not letting system boot

I had put some disks in a zfs pool on another system. When that went away, I eventually added the disks to my son’s old system. And it would not boot.

I had issues with the system back when it was running OpenSolaris circa build 42, so rather than suspecting the system, I was wondered whether it might be an issue with the disk format.

So I pulled the drives and Windows 7 did not recognize them (and by the way, I evidently still have several disks from a zfs pool on my desktop, because they were not recognized either). I initialized them and then put them back into the machine now running Fedora Core 14. And boot!

Now I need to figure out how to make them work as a filesystem. I’m thinking btrfs, but I want to keep the root as is and use the three new drives as a different filesystem.