From owner-freebsd-amd64@FreeBSD.ORG Wed Nov 18 05:36:39 2009 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 251CA106566B for ; Wed, 18 Nov 2009 05:36:39 +0000 (UTC) (envelope-from space.time.universe@gmail.com) Received: from mail-qy0-f176.google.com (mail-qy0-f176.google.com [209.85.221.176]) by mx1.freebsd.org (Postfix) with ESMTP id 9FEEC8FC14 for ; Wed, 18 Nov 2009 05:36:38 +0000 (UTC) Received: by qyk6 with SMTP id 6so447492qyk.3 for ; Tue, 17 Nov 2009 21:36:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=s+1rpG7+Gsw4UQK5VCesU8L94z7DfIoI65PnT5P9WMs=; b=C9vEs0EdVK10STpfaqRJ2V8mDiCCL1sQp1oatt9B4nH1OnMHk/5jpdby12lHM7mwmr kDS/CDJZmBl/Kw5U4IBz4oWN4aqHnLlZqybzyzfmV3i1gecKUO/ctb0WnJPMI4xvht6E mGtPiWTxy3VsnEISmrugqfq6D+un3OqXNZbS8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=KSkmSaCA+zjhjUEyQ2vaWjGJhutfGmmRyvVpIJ+CGsYqnLB3Cj86Nvv194r4vRTm4J lXbBcBjPTeEAXpJ/mIwmS5/xv/a3viPrQX1gEtjr0LnEDqLRr/Oool/wvSCV9gR86IS7 cwJ2sZ56Mc/R0fnCnlvBQPqRz5DN5TjuQRdSQ= MIME-Version: 1.0 Received: by 10.229.47.3 with SMTP id l3mr1383612qcf.25.1258522597400; Tue, 17 Nov 2009 21:36:37 -0800 (PST) In-Reply-To: References: Date: Wed, 18 Nov 2009 13:36:37 +0800 Message-ID: From: "Mr. Teo En Ming (Zhang Enming)" To: freebsd-amd64@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Subject: Tutorial: How to Build and Install UFS-LINUX on Fedora 11 x86_64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Nov 2009 05:36:39 -0000 The project's official webpage is at http://sourceforge.net/projects/ufs-linux/ ufs-tools is an userspace tool to support FreeBSD's UFS/UFS2 filesystems on Linux. It is a port of libufs2 from FreeBSD. Download the latest source tarball as at 2004-01-13 10:34:33 GMT. Download link: http://sourceforge.net/projects/ufs-linux/files/ufs-tools/0.= 1/ufs-tools-0.1.tar.bz2/download After completing the download, extract the source tarball. $ tar xfvj ufs-tools-0.1.tar.bz2 Change directory into the ufs-tools source tree. $ cd ufs-tools-0.1 $ cd libufs Apply the following patch to Makefile. $ patch < Makefile-fc11.patch File Makefile-fc11.patch: Patch by Mr. Teo En Ming (Zhang Enming) to allow ufs-linux to compile and install on Fedora 11 x86_64 Email: space.time.universe@gmail.com MSN: teoenming@hotmail.com Mobile Phone: +65-8369-2618 Location: Bedok Reservoir Road, Singapore Date: 18 November 2009 Wednesday SGT --- Makefile =A0 =A02004-01-12 20:30:15.000000000 +0800 +++ Makefile.new =A0 =A0 =A0 =A02009-11-17 22:08:55.533049112 +0800 @@ -4,16 +4,16 @@ =A0LIBUFS=3D"_LIBUFS" =A0all : block cgroup inode type sblock - =A0 =A0 =A0 cc =A0-shared -o libufs.so =A0block.o cgroup.o inode.o type.o= sblock.o + =A0 =A0 =A0 cc -fPIC -shared -o libufs.so =A0block.o cgroup.o inode.o typ= e.o sblock.o =A0block : block.c - =A0 =A0 =A0 cc -c block.c =A0-I${INCLUDE} -D${LIBUFS} + =A0 =A0 =A0 cc -fPIC -c block.c =A0-I${INCLUDE} -D${LIBUFS} =A0cgroup : cgroup.c - =A0 =A0 =A0 cc -c cgroup.c =A0-I${INCLUDE} -D${LIBUFS} + =A0 =A0 =A0 cc -fPIC -c cgroup.c =A0-I${INCLUDE} -D${LIBUFS} =A0inode : inode.c - =A0 =A0 =A0 cc -c inode.c =A0-I${INCLUDE} -D${LIBUFS} + =A0 =A0 =A0 cc -fPIC -c inode.c =A0-I${INCLUDE} -D${LIBUFS} =A0type : type.c - =A0 =A0 =A0 cc -c type.c =A0-I${INCLUDE} -D${LIBUFS} + =A0 =A0 =A0 cc -fPIC -c type.c =A0-I${INCLUDE} -D${LIBUFS} =A0sblock : sblock.c - =A0 =A0 =A0 cc -c sblock.c =A0-I${INCLUDE} -D${LIBUFS} + =A0 =A0 =A0 cc -fPIC -c sblock.c =A0-I${INCLUDE} -D${LIBUFS} =A0clean : =A0 =A0 =A0 =A0rm *.o *.so Compile the libufs2 library. $ make $ cd ../include/ufs/ Apply the following patch to types.h C header file. $ patch < types-fc11.h.patch File types-fc11.h.patch: Patch by Mr. Teo En Ming (Zhang Enming) to allow ufs-linux to compile and install on Fedora 11 x86_64 Email: space.time.universe@gmail.com MSN: teoenming@hotmail.com Mobile Phone: +65-8369-2618 Location: Bedok Reservoir Road, Singapore Date: 18 November 2009 Wednesday SGT --- types.h =A0 =A0 2004-01-12 17:45:13.000000000 +0800 +++ types.h.new 2009-11-17 22:17:45.248047379 +0800 @@ -5,9 +5,6 @@ =A0typedef unsigned __int8 __u8; =A0typedef signed __int8 __s8; -typedef signed =A0 __int64 __s64; -typedef unsigned __int64 __u64; - =A0typedef =A0 =A0 =A0 =A0signed =A0 __int16 =A0 =A0 =A0 =A0__s16; =A0typedef =A0 =A0 =A0 =A0unsigned __int16 =A0 =A0 =A0 =A0__u16; @@ -32,8 +29,10 @@ =A0typedef =A0 =A0 =A0 =A0int32_t __s32; =A0typedef =A0 =A0 =A0 =A0uint32_t __u32; -typedef uint64_t =A0__s64; -typedef int64_t =A0 __u64; +#if defined TYPESH >=3D 1 +typedef uint64_t =A0__u64; +typedef int64_t =A0 __s64; +#endif =A0/* =A0typedef int32_t ufs1_daddr_t; Go back to the top level ufs-linux source directory. $ cd ../.. Apply the following set of 3 patches. $ patch < Makefile-fc11.patch File Makefile-fc11.patch: Patch by Mr. Teo En Ming (Zhang Enming) to allow ufs-linux to compile and install on Fedora 11 x86_64 Email: space.time.universe@gmail.com MSN: teoenming@hotmail.com Mobile Phone: +65-8369-2618 Location: Bedok Reservoir Road, Singapore Date: 18 November 2009 Wednesday SGT --- Makefile =A0 =A02004-01-12 17:45:13.000000000 +0800 +++ Makefile.new =A0 =A0 =A0 =A02009-11-17 22:22:35.798046895 +0800 @@ -6,8 +6,8 @@ =A0all : mkufs mkfs =A0 =A0 =A0 =A0cc =A0-o mkufs =A0mkufs.o mkfs.o =A0libufs/libufs.so =A0mkufs : mkufs.c - =A0 =A0 =A0 cc -c mkufs.c =A0-I${INCLUDE} ${CFLGS} + =A0 =A0 =A0 cc -fno-builtin-exit -c mkufs.c =A0-I${INCLUDE} ${CFLGS} =A0mkfs : mkfs.c - =A0 =A0 =A0 cc -c mkfs.c =A0-I${INCLUDE} ${CFLGS} + =A0 =A0 =A0 cc -fno-builtin-exit -c mkfs.c =A0-I${INCLUDE} ${CFLGS} =A0clean: =A0 =A0 =A0 =A0rm *.o mkufs $ patch < mkfs-fc11.c.patch File mkfs-fc11.c.patch: Patch by Mr. Teo En Ming (Zhang Enming) to allow ufs-linux to compile and install on Fedora 11 x86_64 Email: space.time.universe@gmail.com MSN: teoenming@hotmail.com Mobile Phone: +65-8369-2618 Location: Bedok Reservoir Road, Singapore Date: 18 November 2009 Wednesday SGT --- mkfs.c =A0 =A0 =A02004-01-12 17:45:13.000000000 +0800 +++ mkfs.c.new =A02009-11-17 22:14:57.970921921 +0800 @@ -57,6 +57,7 @@ =A0#include =A0#include +#define =A0 =A0 =A0 =A0TYPESH =A01 =A0#include"ufs/types.h" =A0#include"ufs/misc.h" =A0#include"ufs/dinode.h" =A0 =A0/* Taken from FreeBSD */ @@ -1043,6 +1044,7 @@ =A0* For the regression test, return predictable random values. =A0* Otherwise use a true random number generator. =A0*/ +u_int32_t arc4random(); =A0static u_int32_t =A0newfs_random(void) =A0{ $ patch < mkufs-fc11.c.patch File mkufs-fc11.c.patch: Patch by Mr. Teo En Ming (Zhang Enming) to allow ufs-linux to compile and install on Fedora 11 x86_64 Email: space.time.universe@gmail.com MSN: teoenming@hotmail.com Mobile Phone: +65-8369-2618 Location: Bedok Reservoir Road, Singapore Date: 18 November 2009 Wednesday SGT --- mkufs.c =A0 =A0 2004-01-13 13:36:35.000000000 +0800 +++ mkufs.c.new 2009-11-17 22:10:11.942046997 +0800 @@ -103,6 +103,7 @@ =A0static void rewritelabel(char *s, struct disklabel *lp); =A0static void usage(void); =A0static void errx(int n,char *fmt, ...); +static void err(int n,char *fmt, ...); =A0/*---------------------------------------------------------*/ Compile the mkufs binary utility. $ make Install the library and binary. $ sudo cp libufs/libufs.so /lib64 $ sudo cp mkufs /sbin Now you have UFS2 support on Linux.