linux

Compiling XDR for NFSv4 on Linux

On Fedora at least, you need:

sudo yum -y install libgssglue-devel
sudo yum -y install nfs-utils-lib-devel

in order to get this to work.

Update: For modern Fedora systems:

sudo yum install -y nfs-utils libtirpc-devel

seems to do the trick!

Configuring Fedora Core 14 network interfaces in a dual-hosted VM

I’ve got several VMs running with eth0 being bridged and eth1 being host only. I see the routes:

[thomas@mage ~]$ ip route
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.21 
172.16.1.0/24 dev eth1  proto kernel  scope link  src 172.16.1.3 
default via 172.16.1.1 dev eth1

The problem being that is flipped from what I want for the default route. I suspect the issue is that eth0 is set up to be configured via DHCP.

I read a bit and it was suggested that not only does /etc/sysconfig/network-scripts/ifcfg-eth0 have to have:

DEFROUTE=yes

But /etc/sysconfig/network-scripts/ifcfg-eth1 should have:

DEFROUTE=no

I made that change and cleared that hurdle:

[thomas@mage ~]$ ip route
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.21 
172.16.1.0/24 dev eth1  proto kernel  scope link  src 172.16.1.3 
default via 192.168.1.1 dev eth0 

FWIW, here are my config files:

[thomas@mage ~]$ more /etc/sysconfig/network-scripts/ifcfg-eth?
::::::::::::::
/etc/sysconfig/network-scripts/ifcfg-eth0
::::::::::::::
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT=yes
HWADDR=00:50:56:2E:52:F0
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERROUTES=yes
IPV6INIT=no
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
::::::::::::::
/etc/sysconfig/network-scripts/ifcfg-eth1
::::::::::::::
DEVICE=eth1
HWADDR=00:0C:29:97:74:DB
TYPE=Ethernet
BOOTPROTO=none
IPADDR=172.16.1.3
PREFIX=24
GATEWAY=172.16.1.1
DNS1=172.16.1.2
DOMAIN=internal.loghyr.com
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
UUID=539d9802-fe1a-4b44-8d80-8a03f35aa844
ONBOOT=yes
DEFROUTE=no

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