From owner-freebsd-arm@FreeBSD.ORG Sat Aug 9 00:16:57 2014 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 47D93D97 for ; Sat, 9 Aug 2014 00:16:57 +0000 (UTC) Received: from mail-wg0-x231.google.com (mail-wg0-x231.google.com [IPv6:2a00:1450:400c:c00::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D0A0E2151 for ; Sat, 9 Aug 2014 00:16:56 +0000 (UTC) Received: by mail-wg0-f49.google.com with SMTP id k14so6340102wgh.32 for ; Fri, 08 Aug 2014 17:16:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=z6OVJBJ/UWaAzmvubX8YFosRK3IfTpnp7pS6fmx43J8=; b=A4qj7PoMTXanh03gZ8uEoyyS9ZA61+M4SDlCSe37u86QBiSDb9FYLVtUZS7ZX2QG7g ZYza9u8GI0J3t5ikLo+LE/AUmALlbKvUg5bUP72Paj/EN034Wf2F1Csa6DP1R1jrddUQ Id8+/Ky7y0Uo1IdTbh/nP3mvuTj0QPbFALfi0T34x2NXrh4UgoHDgSF7g4vESjX6Pki2 qJ8CJKLBG3Z7F0XWDicLHbAZXFc7p/SRuxkydrxzUkjFNZPkyEnKtGkHYJ64IRicyjGg p++6q4QcR+sV1jb+RVZUPO94XcDiiSbELsxXrxmyKIJgs1KqCvuIBLNOb9dr3Qk2Riw6 j4Iw== X-Received: by 10.194.8.35 with SMTP id o3mr35043299wja.3.1407543415052; Fri, 08 Aug 2014 17:16:55 -0700 (PDT) Received: from ketas-laptop.mydomain (ketas-laptop6.si.pri.ee. [2001:ad0:91f:0:21a:6bff:fe66:2ad3]) by mx.google.com with ESMTPSA id r20sm12613696wik.0.2014.08.08.17.16.51 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 08 Aug 2014 17:16:54 -0700 (PDT) Sender: Sulev-Madis Silber Message-ID: <53E5686F.60007@hot.ee> Date: Sat, 09 Aug 2014 03:16:47 +0300 From: "Sulev-Madis Silber (ketas)" User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:15.0) Gecko/20120912 Thunderbird/15.0.1 MIME-Version: 1.0 To: Mattia Rossi Subject: Re: What platform do you use? References: <7EC2AB25-5949-40BF-A5AA-BF4C98F3F640@bsdimp.com> <20140805182438.GP88623@funkthat.com> <53E3E2C7.9000802@hot.ee> <24403276-D738-4CB1-A3BE-BBB72D4370C6@bsdimp.com> <724D10EE-F6DF-4366-91CF-AE4419847389@gromit.dlib.vt.edu> <53E4E53F.30905@gmail.com> In-Reply-To: <53E4E53F.30905@gmail.com> X-TagToolbar-Keys: D20140809031646666 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: freebsd-arm X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Aug 2014 00:16:57 -0000 On 2014-08-08 17:57, Mattia Rossi wrote: > > Am 08.08.2014 15:35, schrieb Paul Mather: >> On Aug 7, 2014, at 5:34 PM, Warner Losh wrote: >> >>> On Aug 7, 2014, at 2:34 PM, Sulev-Madis Silber (ketas) >>> wrote: >>> >>>> On 2014-08-05 21:24, John-Mark Gurney wrote: >>>>> I also have a BBW that I occasionally test w/ but since I haven't got >>>>> it netbooting, the cost of building an entire image and writing it to >>>>> SLOW microsd prevents me from testing as much... >>>> I wonder why people like to update their embedded systems by taking >>>> card >>>> out, completely overwriting it with new data and putting card back in. >>>> No wonder that it's slow, complex & heedlessly wears out your flash. >>>> >>>> If I do this in my BBB I would get myself pissed very soon because of >>>> the effort required. I never bothered to netboot too, because I wanted >>>> to test it in insecure network conditions. >>>> I mean, I don't remember a case where I needed to take HDD to another >>>> machine for upgrade. The issue where it's not practical to compile >>>> something locally is completely unrelated with this, too. >>> make installworld works too, as does extracting the binary sets. The >>> new installer >>> should work, but I’ve not tried it. >> It would be handy for those of us wanting to cross-build FreeBSD/arm >> for someone who is familiar with the build process to give a quick >> example of how to update a FreeBSD/arm installation that is cross-built >> on another system. In the past, I've had the impression that the build >> infrastructure on the target system sometimes needs to be in alignment >> with the new kernel/world you're trying to install, and so NFS-mounting >> /usr/src and /usr/obj or copying it to the target system fails to yield >> a successful "make installworld" on the target system. Maybe this is >> no longer the case, as I believe great strides have been made in the >> realm of cross-building. >> >> Up to now, I have largely used Crochet to build images for my R-PI and >> BBB. That's okay for initial install, but I'm much more familiar with >> updating from source and would like to do that from then on. In the >> past, FreeBSD/arm has been too flaky for me to do a native build (I've >> posted here about that in the past), but, besides that, it would be >> nice to cut down the long native build times by cross-building on a >> much faster system. >> >> I have an R-PI and BBB and would like to cross-build (for update >> purposes) on my FreeBSD/amd64 10-STABLE system. Could you post a known >> way to do this? I can NFS-mount from the FreeBSD/amd64 or else have it >> put /usr/src and /usr/obj on an USB external hard drive that I can then >> connect to my R-PI or BBB for updating. Either is okay with me. >> >> Thanks in advance. >> >> > The way I do it is cross-compiling everything needed on an ssh enabled > remote machine, and installing it into a folder on that machine with > DESTDIR= > On my arm machine then as root I do > "cd /" > and > "chflags -R noschg *" > and > "ssh user@host tar -cpf - /destdirfolder/* | tar -xpf - " > And voilà, world is installed. > I then copy the kernel from the obj dir to my boot partition via scp and > reboot. > Usually this works. > > Cheers, > > Mat I use rsync for this. Avoids unneeded writes and is much faster in any way. You want rsync with file flags patch for proper permissions sync (and it's still bit buggy, so I created workaround). Since I don't make any changes inside embedded system, I can just create full system locally and have exact copy of it in another system where it actually runs. I found that best way to create that locally is to unionfs-mount all the dirs together, however it blows up when you have overlay 30 levels deep. Especially if you try to run rsync on this impressive onion (workaround was to use tar to make copy of it first). You can bring your directory trees together with just tar too, however I didn't like how directory mtimes changed there. Those multiple dirs would contain things like result of installworld, your config, your ports, etc... What runs inside my BBB now and how I upgrade it, is largely described here: http://ketas.si.pri.ee/bbb/