From owner-freebsd-questions@freebsd.org Mon Oct 16 05:51:41 2017 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 156E6E2F172 for ; Mon, 16 Oct 2017 05:51:41 +0000 (UTC) (envelope-from per@hedeland.org) Received: from outbound1f.eu.mailhop.org (outbound1f.eu.mailhop.org [52.28.59.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9FA1E6DFFB for ; Mon, 16 Oct 2017 05:51:39 +0000 (UTC) (envelope-from per@hedeland.org) X-MHO-User: e943f19f-b235-11e7-a893-25625093991c X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 81.228.155.109 X-Mail-Handler: DuoCircle Outbound SMTP Received: from hedeland.org (unknown [81.228.155.109]) by outbound1.eu.mailhop.org (Halon) with ESMTPSA id e943f19f-b235-11e7-a893-25625093991c; Mon, 16 Oct 2017 05:50:27 +0000 (UTC) Received: from pluto.hedeland.org (pluto.hedeland.org [10.1.1.5]) by tellus.hedeland.org (8.15.2/8.15.2) with ESMTPS id v9G5oNSn099379 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Mon, 16 Oct 2017 07:50:24 +0200 (CEST) (envelope-from per@hedeland.org) Subject: Re: NanoBSD: Current/NANO_ARCH=aarch64: chroot: : No such file or directory To: "O. Hartmann" Cc: freebsd-arm@FreeBSD.org, FreeBSD Questions References: <20171011204722.3622d73c@thor.intern.walstatt.dynvpn.de> <1507762426.8386.24.camel@freebsd.org> <20171012153922.6e747356@hermann> <20171015210935.5a50a85a@thor.intern.walstatt.dynvpn.de> From: Per Hedeland Message-ID: <7dde9642-c45b-ac92-b130-05cbd4bdeed4@hedeland.org> Date: Mon, 16 Oct 2017 07:50:23 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20171015210935.5a50a85a@thor.intern.walstatt.dynvpn.de> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Oct 2017 05:51:41 -0000 On 2017-10-15 21:09, O. Hartmann wrote: > Am Thu, 12 Oct 2017 15:39:26 +0200 > "Hartmann, O." schrieb: > > > >> On Wed, 11 Oct 2017 16:53:46 -0600 >> Ian Lepore wrote: >> >>> On Wed, 2017-10-11 at 20:47 +0200, O. Hartmann wrote: >>>> Trying to install a successfully cross compiled FreeBSD >>>> (TARGET=arm64) as NanoBSD. NanoBSD is configure using >>>> NANO_ARCH="aarch64". >>>> >>>> Port emulators/qemu-user-static is installed and loaded: >>>> >>>> 8 1 0xffffffff8243f000 1564 imgact_binmisc.ko >>>> >>>> When installing NanoBSD's world and then running mtree, the nanobsd >>>> script runs into this error: >>>> >>>> /pool/nanobsd/aarch64/NANO_aarch64/_.w/./boot/loader.conf.local >>>> 283 blocks >>>> + [ -n /home/user/Projects/router/nanobsd/mtree/Files.mtree -a \ >>>> -f /home/user/Projects/router/nanobsd/mtree/Files.mtree >>>> ] >>>> + CR 'mtree -eiU -p /' >>>> + chroot /pool/nanobsd/aarch64/NANO_aarch64/_.w '' /bin/sh -exc >>>> 'mtree -eiU -p /' chroot: : No such file or directory >> >> Oops, I confused the output. >> >> The correct one is: >> >> [ from _.cust.cust_install_files ] >> >> ... >> + chroot /pool/nanobsd/aarch64/NANO_aarch64/_.w /bin/sh -exc 'mtree >> -eiU -p /' chroot: /bin/sh: No such file or directory >> >> The empty '' is due to my (hopeless helpless) attempt to fit-in another >> variable which was set to an empty string. >> >> The error looks to me as chroot does't find the proper shell, /bin/sh, >> but it has been properly installed: >> >> # file _.w/bin/sh >> _.w/bin/sh: ELF 64-bit LSB executable, ARM aarch64, version 1 >> (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for >> FreeBSD 12.0 (1200051), FreeBSD-style, stripped >> >> # ll _.w/bin/sh >> 839832 -r-xr-xr-x 1 root wheel uarch 261K 12 Okt. 15:32 _.w/bin/sh >> >> NanoBSD works on the native host when building on host arch amd64 for >> host arch amd64 and I guess it is due to the properly installed OS of >> the host. >> >> I do not get the problem here. qemu_user_static should catch up with >> the alien binary here - I suppose it does. The absolute path should >> ensure the use of the right binary ... >> >> Regards, >> >> Oliver >> >>>> >>> >>> I'm not sure how or why it's happening (I've never used nanobsd), but >>> the complaint is about those empty quotes ('') between the pathname >>> and the /bin/sh in the chroot command. It's trying to run a program >>> named '' and chroot is complaining that it can't find anything named >>> that. >>> >>> -- Ian >>> >>>> Is there anything I miss here with the QEMU emulator catching up? >>>> >>>> Thanks in advance, >>>> >>>> Oliver >>>> >> > > I didn't find a solution to this problem, it might be that someone has already have such > a problem solved, so I'm sending CC'ed also to the list "questions". > > The background is above described. > > Running most recent qemu-user-static (qemu-user-static-2.9.94.g20171011), loaded and > running a kernel module, chrooting into a cross-compiled aarch64 installation of recent > 12-CURRENT (r324621) fails with error (from NanoBSD): > > [...] > chroot /pool/nanobsd/aarch64/NANO_aarch64/_.w /bin/sh -exc 'mtree -eiU -p /' > chroot: /bin/sh: No such file or directory I have no idea if this is your problem, nor actually what you're trying to do - I just want to point out that you can get this ENOENT error for an executable not only when the executable doesn't exist, but also when the loader a.k.a. "interpreter" that the executable wants doesn't exist. I.e. check whether you have /libexec/ld-elf.so.1 in the chroot tree. --Per Hedeland > There is no further output so I fly blind. As mentioned above, /bin/sh is installed and > present in the chrooted target folder and file states, that it has been compiled for > aarch64. > > I tried manually the very same command - amongst other attempts to chroot and execute a > command - but always the same: I get the error shown above, no such file or directory. > > Do I miss something here? Do I have to install some crosse development tools/libs into > the chrooted target first, so /bin/sh can be emulated correctly? > > I'm quite new to cross compiling. But at this point with this thin, fainting amount of > information why it fails, I can't even start searching ... > > Hopefully someone can shed some light on this. > > Thanks in advance, > > oh >