coLinux
Advertisement

Converting native Fedora Core 11 to colinux

accessing hwclock

Disable the access to hardware RTC by removing the executable bit from file:

chmod -x /sbin/hwclock

Or rename the file to something like "hwclock.old".

udev: renamed network interface eth0 to eth1

  • Edit file /lib/udev/rules.d/75-persistent-net-generator.rules and set a bypass for coLinux in same way as xen or UML does it. Add the with + marked lines after the entry Xen (near line 26):
--- /lib/udev/rules.d/75-persistent-net-generator.rules.orig
+++ /lib/udev/rules.d/75-persistent-net-generator.rules
@@ -23,6 +23,9 @@
 # ignore Xen virtual interfaces
 SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end"

+# ignore coLinux virtual interfaces
+DRIVERS=="conet", GOTO="persistent_net_generator_end"
+
 # read MAC address
 ENV{MATCHADDR}="$attr{address}"

  • Edit file /etc/udev/rules.d/70-persistent-net.rules and remove all lines. You will mostly find a lot of them. Please remove them all.
Here is a typically patch:
--- /etc/udev/rules.d/70-persistent-net.rules.orig
+++ /etc/udev/rules.d/70-persistent-net.rules
@@ -4,5 +4,3 @@
 #
 # You can modify it, as long as you keep each rule on a single line.

-# Networking Interface (rule written by anaconda)
-SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:f2:4f:6b", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

/sbin/start_udev line: 257 cannot redirect standard input from /dev/null

Locate the file near line 257 and remove the Ampersand at end of line. Here is the patch:

--- /sbin/start_udev.orig
+++ /sbin/start_udev
@@ -254,7 +254,7 @@
        ret=$[$ret + $?]
 }

-make_extra_nodes &
+make_extra_nodes
 cmdline=$(cat /proc/cmdline)
 kill_udevd > "$udev_root/null" 2>&1
 rm -fr $udev_root/.udev > "$udev_root/null" 2>&1

Disable udev and use static /dev

It's a pain, that udev needs so mutch cpu load while spawning such many processes. You can save a lot of booting time with a statically /dev, created from currently populated directory.

  • Make a copy of file "/sbin/start_udev"
  • Edit the file /sbin/start_udev and add some lines before the "/dev/.in_sysinit" near line 35:
Be carefully with this edit! Errors make system non usable.
--- /sbin/start_udev.orig
+++ /sbin/start_udev
@@ -32,6 +32,21 @@
 [ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
 udev_root=${udev_root-/dev}

+# Create static /dev
+if [ -f /staticdev.tgz ]
+then
+       echo "Create static /dev ..."
+       mount -o remount,rw /
+       if tar xzf /staticdev.tgz -C /
+       then
+               chmod -x /sbin/udevd
+               rm /staticdev.tgz
+               sync ; sleep 1
+               mount -o remount,ro /
+               exit 0
+       fi
+fi
+
 if [ -f /dev/.in_sysinit ]; then
        exec >/dev/console 2>/dev/console </dev/console
 fi
  • Create a tar archive from current /dev and reboot:
cd /
tar --exclude ".udev" -czf staticdev.tgz dev
reboot

An error "tar: dev/log: socket ignored" can ignore.

Re-enable udev

To have the udev running back, do follow step. This can also do in the system maintaince mode:

mount -o remount,rw /
chmod -x /sbin/udevd
reboot
Advertisement