You are not logged in.

#1 2004-02-29 20:39:07

jon
Member
Registered: 2002-11-28
Posts: 87

uDEV HowTo

Ok, for everyone who want to convert the system to uDev & sysfs; here is how I did it. 
Install the latest (019) udev package, make sure you copy out a script in the "extras" directory called "start_udev" and put it in you /etc directory. I think that if you make a PKGBUILD package that a symlink gets messed up.
Next you need to build a kernel WITHOUT devfs support, but DONT reboot yet.
Next change you're /etc/rc.sysinit to something like the following:

#!/bin/sh
#
# /etc/rc.sysinit
#

. /etc/rc.conf
. /etc/rc.d/functions

echo " "
printhl "Arch Linux v0.6 $C_OTHER(${C_H2}Widget$C_OTHER)n"
printhl "${C_H2}http://www.archlinux.org"
printhl "Copyright 2002-2004 Judd Vinet"
printhl "Distributed under the GNU General Public License (GPL)"
printsep

# start up our mini logger until syslog takes over
/sbin/minilogd

# anything more serious than KERN_WARNING goes to the console
/bin/dmesg -n 3

status "Mounting /sys" /bin/mount -n -t sysfs none /sys

status "Mounting /proc" /bin/mount -n -t proc none /proc

status "Starting uDEV" /etc/start_udev




#if [ -e /dev/.devfsd -a -x /sbin/devfsd ]; then
#    status "Starting DevFS Daemon" /sbin/devfsd /dev
#fi

#if [ -f /etc/lvmtab ]; then
    # /proc is temporarily mounted to check for LVM support - it is
    # re-mounted later from /etc/fstab
#    /bin/mount -n -t proc none /proc
#    if [ -f /proc/lvm/global -a -x /sbin/vgchange ]; then
#        stat_busy "Activating LVM groups"
#        /sbin/vgchange -a y
#        stat_done
#    fi
#    umount /proc
#fi

status "Activating Swap" /sbin/swapon -a

status "Mounting Root Read-only" /bin/mount -n -o remount,ro /

if [ -x /sbin/fsck ]; then
    stat_busy "Checking Filesystems"
    /sbin/fsck -A -T -C -a
    if [ $? -gt 1 ]; then
        stat_fail
        echo
        echo "*****************  FILESYSTEM CHECK FAILED  ****************"
        echo "*                                                          *"
        echo "*  Please repair manually and reboot. Note that the root   *"
        echo "*  file system is currently mounted read-only. To remount  *"
        echo "*  it read-write type: mount -n -o remount,rw /            *"
        echo "*  When you exit the maintenance shell the system will     *"
        echo "*  reboot automatically.                                   *"
        echo "*                                                          *"
        echo "************************************************************"
        echo
        /sbin/sulogin -p
        echo "Automatic reboot in progress..."
        /bin/umount -a
        /bin/mount -n -o remount,ro /
        /sbin/reboot -f
        exit 0
    fi
    stat_done
fi

stat_busy "Mounting Local Filesystems"
/bin/mount -n -o remount,rw /
/bin/rm -f /etc/mtab*
#/bin/mount /proc
/bin/mount -a -t nonfs,nosmbfs,noncpfs
stat_done

The code after that is the same as normal. Notice what I commented out, it can be removed (not the LVM section if you have that). I left it in "just in case".

Then you have to change the /etc/start_udev because some of the syntax makes it break. Change line 54 to say:

cut -d / -f 3-'

because the current syntax of "cut" makes it break. 
Make sure you put "cut" in /bin/ otherwise it wol'nt work I think you also need "grep" in /bin/ othewise you'll get an error message, but i don't remember if it was serious.

You will need to mkdir /dev/pts/

Change you're /etc/inittab to say

 c1:2345:respawn:/sbin/agetty 38400 tty1 linux 

in the part where you put the "gettys" and use tty1, tty2, etc.

You NEED to create a /dev/console so that you can get to atleast single user mode use:

mknod /dev/console c 5 1

also make a /dev/null and /dev/zero

mknod -m 666 /dev/null c 1 3
mknod -m 666 /dev/zero c 1 5

You need to change the /etc/udev/udev.permissions to something like the following:

#name:user:group:mode
ttyUSB0:root:uucp:0660
ttyUSB1:root:uucp:0666
pl2303:500:500:0666
visor:root:uucp:0666
camera*:500:500:0666

# For ATerm & RXVT
ptmx:root:tty:0660

# For Sound
dsp*:root:audio:0660
snd/pcm*:root:audio:0660
mixer*:root:audio:0660

# /dev/null
null:root:root:0666

# For Printer
lp*:root:root:lp:0666

If you want to use xterm, aterm, rxvt, etc you need at add yourself to the "tty" group.

If you wish to use the NVIDIA driver then add the following to your /etc/rc.local

# Nvidia Modules uDEV
mknod /dev/nvidia0 c 195 0
mknod /dev/nvidiactl c 195 255

Now reboot, or you can't do everthing in one step, use a rescue disk, the arch .04 works fine for me. (I used the rescue disk method)

Ok, it wasnt the best HOWTo but it works for me. Although i havent got OpenGL working yet. Although i think it's a nvidia problem.


Good Luck,
Jon

Offline

Board footer

Powered by FluxBB