Kernel Configuration changes needed in 2.4.27 series kernel....
"Gary L. Greene, Jr." <[email protected]> Mon, 12 Jul 2004 01:49:02 -0400
| Newsgroups | gmane.linux.arklinux.devel |
|---|---|
| Organization | Ark Open Source Labs |
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I've been doing some dinking around with our 2.4 kernel to get the PDC202xx controllers working, and while doing so, I've uncovered a few things that need changed in our kernel's config and a few patches from MDK that might be of internest at the same time for it that they use. First: To get the PDC202xx (old and new) controllers to work, they cannot be built as a module. These must be built into the kernel, since without being built-in, they will not allow access to the IDE drives on the controller. IMPROTANT - for some strange reason when the system has it built in, the PDC202xx controller will become the first set of IDE controllers according to the kernel, making the VIA IDE controller the secondary. This causes the harddisks to chow up like this: PDC20265: hda - hdd VIA Apollo: hde - hdh This is something that teh installer will need to be aware of to handle the install gracefully. Second: I have found that submount is conpletely unusable under the 2.4 kernel, generating errors similar to old versions of supermount. I opt for it's removal from 2.4.x. After taking a look at the current kernel from MDK's cooker, it would seem that they are still using supermount-ng in their 2.4.27 kernel without issues. Since it works and submount is completely broken, I'm in favour of reverting to it. Their patch is attached. Third: Also, of interest, while browsing the MDK patch set, I noted that they have a fully working SGI XFS patch to allow the POSIX ACL's to be selected in the config tools for the kernel. This too is attached. Fourth: I have noted a sever degradation of the alsa drivers in our kernel. Where teh advanced mixer controls will no longer show up under any account but root. While attempting to see if I could remedy this in the kernel, I found that the alsa driver options were completely missing from the configuration tools for 2.4.x, please fix this since this is a serious development bug that has forced me to endure no sound undre my system at this time. - -- Gary L. Greene, Jr. Sent from uriel.tolharadyne.net 01:23:45 up 2:56, 3 users, load average: 0.13, 0.06, 0.07 ============================================================ Volunteer developer for the Ark Linux Project check out http://www.arklinux.org/ for more info. Also http://www.csis.gvsu.edu/~greeneg/ EMAIL : [email protected] ============================================================ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA8iZSynMfbISpaCwRAoDhAKCX22J5HDh4w0X2EyeeLg+9jk3HwQCfSIEd GhiL1+tAXaEu4PVTibMSOc8= =SIsn -----END PGP SIGNATURE-----
FS70_supermount-1.2.11a-2.4.24.patch
(text/x-diff, 169.2 KB) - not displayed
FB04_enable_xfs_acl.patch
(text/x-diff, 2.5 KB)
--- linux-2.4.25/fs/Config.in 2004-02-22 19:12:48.000000000 +0100 +++ linux-2.4.25/fs/Config.in.tmb 2004-02-22 19:11:42.000000000 +0100 @@ -111,6 +111,7 @@ dep_mbool ' Quota support' CONFIG_XF dep_mbool ' Realtime support (EXPERIMENTAL)' CONFIG_XFS_RT $CONFIG_XFS_FS $CONFIG_EXPERIMENTAL dep_mbool ' Tracing support (EXPERIMENTAL)' CONFIG_XFS_TRACE $CONFIG_XFS_FS $CONFIG_EXPERIMENTAL dep_mbool ' Debugging support (EXPERIMENTAL)' CONFIG_XFS_DEBUG $CONFIG_XFS_FS $CONFIG_EXPERIMENTAL +dep_mbool ' ACL support' CONFIG_XFS_POSIX_ACL $CONFIG_XFS_FS if [ "$CONFIG_NET" = "y" ]; then diff -Nurp linux-2.4.25/include/linux/posix_acl_xattr.h linux-2.4.25/include/linux.tmb/posix_acl_xattr.h --- linux-2.4.25/include/linux/posix_acl_xattr.h 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.4.25/include/linux.tmb/posix_acl_xattr.h 2004-02-22 19:03:17.000000000 +0100 @@ -0,0 +1,67 @@ +/* + File: linux/posix_acl_xattr.h + + Extended attribute system call representation of Access Control Lists. + + Copyright (C) 2000 by Andreas Gruenbacher <[email protected]> + Copyright (C) 2002 SGI - Silicon Graphics, Inc <[email protected]> + */ +#ifndef _POSIX_ACL_XATTR_H +#define _POSIX_ACL_XATTR_H + +/* Extended attribute names */ +#define POSIX_ACL_XATTR_ACCESS "system.posix_acl_access" +#define POSIX_ACL_XATTR_DEFAULT "system.posix_acl_default" + +/* Supported ACL a_version fields */ +#define POSIX_ACL_XATTR_VERSION 0x0002 + + +/* An undefined entry e_id value */ +#define ACL_UNDEFINED_ID (-1) + +/* ACL entry e_tag field values */ +#define ACL_USER_OBJ (0x01) +#define ACL_USER (0x02) +#define ACL_GROUP_OBJ (0x04) +#define ACL_GROUP (0x08) +#define ACL_MASK (0x10) +#define ACL_OTHER (0x20) + +/* ACL entry e_perm bitfield values */ +#define ACL_READ (0x04) +#define ACL_WRITE (0x02) +#define ACL_EXECUTE (0x01) + + +typedef struct { + __u16 e_tag; + __u16 e_perm; + __u32 e_id; +} posix_acl_xattr_entry; + +typedef struct { + __u32 a_version; + posix_acl_xattr_entry a_entries[0]; +} posix_acl_xattr_header; + + +static inline size_t +posix_acl_xattr_size(int count) +{ + return (sizeof(posix_acl_xattr_header) + + (count * sizeof(posix_acl_xattr_entry))); +} + +static inline int +posix_acl_xattr_count(size_t size) +{ + if (size < sizeof(posix_acl_xattr_header)) + return -1; + size -= sizeof(posix_acl_xattr_header); + if (size % sizeof(posix_acl_xattr_entry)) + return -1; + return size / sizeof(posix_acl_xattr_entry); +} + +#endif /* _POSIX_ACL_XATTR_H */
FS71_missing_xfs_acl_defines.patch
(text/x-diff, 827 B)
--- linux-2.4.22/include/linux/fs.h.fx05.orig 2003-09-06 23:23:35.000000000 +0200 +++ linux-2.4.22/include/linux/fs.h 2003-09-06 23:24:16.000000000 +0200 @@ -112,6 +112,7 @@ extern int leases_enable, dir_notify_ena #define MS_MOVE 8192 #define MS_REC 16384 #define MS_VERBOSE 32768 +#define MS_POSIXACL 65536 /* VFS does not apply the umask */ #define MS_SUPERMOUNTED (1<<17) #define MS_ACTIVE (1<<30) #define MS_NOUSER (1<<31) @@ -163,6 +164,7 @@ extern int leases_enable, dir_notify_ena #define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE) #define IS_NOATIME(inode) (__IS_FLG(inode, MS_NOATIME) || ((inode)->i_flags & S_NOATIME)) #define IS_NODIRATIME(inode) __IS_FLG(inode, MS_NODIRATIME) +#define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL) #define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD)