From ashpackelec at btconnect.com Mon Dec 1 13:25:31 2014 From: ashpackelec at btconnect.com (HomeDepot.com) Date: Mon, 1 Dec 2014 20:25:04 +0700 Subject: Order Info Message-ID: <70e6bbba70d9d120696df2f230bae396@dichvudienlanh.org> More saving. More doing.* SING UP FOR THE HOME DEPOT EMAIL EXCLUSIVE SAVINGS > Appliances Bath Appliances Electronics Flooring Outdoors Tools & Hardware We are happy to inform you that our online store HomeDepot.com has an order whose recipients details match yours. The order could be received in any Local Store of HomeDepot.com within the period of 5 days. Open this link to see full information about your order. Our blessings to you on a Thanksgiving Day! HomeDepot.com WEEKLY AD | STORE FINDER | APPLY FOR THE HOME DEPOT CREDIT CARD 2000-2014 Homer TLC, Inc. All Rights Reserved. From mischif at mischivous.com Thu Dec 25 00:35:09 2014 From: mischif at mischivous.com (Jeremy Brown) Date: Wed, 24 Dec 2014 19:34:21 -0500 Subject: Help Compiling armv6 Ports from x64 Message-ID: I have a VM running FreeBSD 10.1 x64 that I'm trying to use to create an image that will run on a Raspberry Pi. I've managed to get the base system working, but I can't figure out how to compile ports for the image. I know my cross-compilation toolchain is working, as I can build the kernel and world without issue. For sake of example, say my arm root is at /tmp/rootfs, my toolchain is at /usr/armv6-freebsd/usr/bin and some other assorted cross-compilation items are at /usr/obj/armv6-freebsd. Some of the commands I have tried to build a port are: PATH=/path/to/toolchain:${PATH} make TARGET=arm TARGET_ARCH=armv6 install (this typically fails during compilation) PATH=/path/to/toolchain:${PATH} make TARGET=arm TARGET_ARCH=armv6 configure install (this typically fails during configuration, the error I get is something along the lines of "cannot read C-compiled file"; in addition the configure script never notices that I am trying to cross-compile) PATH=/path/to/toolchain:${PATH} make CONFIGURE_ARGS="--host=armv6-freebsd" configure install (this typically fails during compilation for varying reasons, but at least it'll recognize that I'm cross-compiling; including TARGET and TARGET_ARCH makes no difference) make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs install (this was what I originally tried, when the chroot kicked in it would try to run the ARM version of /bin/sh; as the VM is x64 this would always give an exec format error before failing) make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs CHROOTED=no install (this would seem to work, but would install the port to the VM instead of the filesystem for the image, and in addition would be compiled x64 instead of armv6) There are others, but these are the ones I can remember the best right now. I understand there won't be any precompiled ports, and I don't want to have to build my desired ports on the Pi itself (despite the fact that doing so would be agonizingly slow, the space required to store the ports tree and compile what I need would explode the size of the image from ~400MB to >2GB). I've tried many different websites (see here , here , here , here , here ), but none of their methods have resulted in a successful compilation. Do you know of a method to compile armv6 ports on an x64 machine, or can you direct me to someone who might? -Jeremy From sbruno at ignoranthack.me Thu Dec 25 01:17:01 2014 From: sbruno at ignoranthack.me (Sean Bruno) Date: Wed, 24 Dec 2014 17:16:52 -0800 Subject: Help Compiling armv6 Ports from x64 In-Reply-To: References: Message-ID: <549B6584.3000608@ignoranthack.me> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 12/24/14 16:34, Jeremy Brown wrote: > I have a VM running FreeBSD 10.1 x64 that I'm trying to use to > create an image that will run on a Raspberry Pi. I've managed to > get the base system working, but I can't figure out how to compile > ports for the image. I know my cross-compilation toolchain is > working, as I can build the kernel and world without issue. > > For sake of example, say my arm root is at /tmp/rootfs, my > toolchain is at /usr/armv6-freebsd/usr/bin and some other assorted > cross-compilation items are at /usr/obj/armv6-freebsd. > > Some of the commands I have tried to build a port are: > > PATH=/path/to/toolchain:${PATH} make TARGET=arm TARGET_ARCH=armv6 > install (this typically fails during compilation) > > PATH=/path/to/toolchain:${PATH} make TARGET=arm TARGET_ARCH=armv6 > configure install (this typically fails during configuration, the > error I get is something along the lines of "cannot read C-compiled > file"; in addition the configure script never notices that I am > trying to cross-compile) > > PATH=/path/to/toolchain:${PATH} make > CONFIGURE_ARGS="--host=armv6-freebsd" configure install (this > typically fails during compilation for varying reasons, but at > least it'll recognize that I'm cross-compiling; including TARGET > and TARGET_ARCH makes no difference) > > make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs install > (this was what I originally tried, when the chroot kicked in it > would try to run the ARM version of /bin/sh; as the VM is x64 this > would always give an exec format error before failing) > > make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs CHROOTED=no > install (this would seem to work, but would install the port to the > VM instead of the filesystem for the image, and in addition would > be compiled x64 instead of armv6) > > There are others, but these are the ones I can remember the best > right now. I understand there won't be any precompiled ports, and I > don't want to have to build my desired ports on the Pi itself > (despite the fact that doing so would be agonizingly slow, the > space required to store the ports tree and compile what I need > would explode the size of the image from ~400MB to >> 2GB). > > I've tried many different websites (see here > , here > > > , here > > > , here , here > ), > > but none of their methods have resulted in a successful compilation. > > Do you know of a method to compile armv6 ports on an x64 machine, > or can you direct me to someone who might? > > -Jeremy At this point, poudriere can build packages by default. If you want armv6 packages for RPi or BBB, get poudriere 3.1 on your system with qemu-bsd-user. Setup this arcane binmiscctl(8) command: /usr/sbin/binmiscctl add armv6 --interpreter "/usr/local/bin/qemu-arm" \ - --magic "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \ - --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \ - --size 20 --set-enabled That is the command that will redirect execution of armv6 binaries to qemu-bsd-user. Build an armv6 jail with: poudriere jail -c -j armv6 -m svn -v head -a arm.armv6 -x And build your ports with poudriere via: poudriere bulk -j amrv6 You can fetch packages from the freebsd cluster arm builder if you wish as well: http://chips.ysv.freebsd.org/packages/11armv6-11armv6/ Sean -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAEBCgBmBQJUm2WBXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwAAoJEBIB78oecn5kDx0H/0UnXCslpqnT1JrHDCuN+trS IvC2eMIaaLa2jZ/6BM6FVqmMdRpt+sGnToZSL/3iaFyLQhgadOqojBtsuna8W2rd jagvmhQaZtG0TOfCBPI6B0LDAZMwzAcczgSc+ta+39rU3sGrI3u9Cu7aUf6xWOJZ GMmbvH3idiLLcyVzwKSL2D8B3y7mg1E+cNB5y61nNxpnrIsQNLmaASjikaJXOif4 8AV7/yzq5tLkeiBkxjnsq0t3UBCUh/omMwGwQn6jXD8qa4JfjtFWFN23hpVyPBpi jfL6IycR7JauqXK1JQzYHiNCgGD8JthNNCwp4UQvvDfY8w/0cwFwXPdzy4qedYc= =lkbv -----END PGP SIGNATURE----- From mischif at mischivous.com Thu Dec 25 01:30:11 2014 From: mischif at mischivous.com (Jeremy Brown) Date: Wed, 24 Dec 2014 20:29:21 -0500 Subject: Help Compiling armv6 Ports from x64 In-Reply-To: <549B6584.3000608@ignoranthack.me> References: <549B6584.3000608@ignoranthack.me> Message-ID: Sean, Does poudriere work with previously-established roots or does it have to generate its own? I'm using crochet to create my image, so I can do whatever I want to the filesystem it creates and have it apply to the image. Also, will poudriere actually install a package and modify necessary files to let the system know a port is installed, or does it only create the package and leave it to me to install? -Jeremy On Wed, Dec 24, 2014 at 8:16 PM, Sean Bruno wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On 12/24/14 16:34, Jeremy Brown wrote: > > I have a VM running FreeBSD 10.1 x64 that I'm trying to use to > > create an image that will run on a Raspberry Pi. I've managed to > > get the base system working, but I can't figure out how to compile > > ports for the image. I know my cross-compilation toolchain is > > working, as I can build the kernel and world without issue. > > > > For sake of example, say my arm root is at /tmp/rootfs, my > > toolchain is at /usr/armv6-freebsd/usr/bin and some other assorted > > cross-compilation items are at /usr/obj/armv6-freebsd. > > > > Some of the commands I have tried to build a port are: > > > > PATH=/path/to/toolchain:${PATH} make TARGET=arm TARGET_ARCH=armv6 > > install (this typically fails during compilation) > > > > PATH=/path/to/toolchain:${PATH} make TARGET=arm TARGET_ARCH=armv6 > > configure install (this typically fails during configuration, the > > error I get is something along the lines of "cannot read C-compiled > > file"; in addition the configure script never notices that I am > > trying to cross-compile) > > > > PATH=/path/to/toolchain:${PATH} make > > CONFIGURE_ARGS="--host=armv6-freebsd" configure install (this > > typically fails during compilation for varying reasons, but at > > least it'll recognize that I'm cross-compiling; including TARGET > > and TARGET_ARCH makes no difference) > > > > make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs install > > (this was what I originally tried, when the chroot kicked in it > > would try to run the ARM version of /bin/sh; as the VM is x64 this > > would always give an exec format error before failing) > > > > make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs CHROOTED=no > > install (this would seem to work, but would install the port to the > > VM instead of the filesystem for the image, and in addition would > > be compiled x64 instead of armv6) > > > > There are others, but these are the ones I can remember the best > > right now. I understand there won't be any precompiled ports, and I > > don't want to have to build my desired ports on the Pi itself > > (despite the fact that doing so would be agonizingly slow, the > > space required to store the ports tree and compile what I need > > would explode the size of the image from ~400MB to > >> 2GB). > > > > I've tried many different websites (see here > > , here > > < > http://allskyee.blogspot.com/2014/02/freebsd-10-ports-cross-compile-amd64-to.html > > > > > > > , here > > < > http://ray-freebsd.blogspot.kr/2011/09/cross-compiling-ports-for-freebsd.html > > > > > > > , here , here > > < > http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037469.html > >), > > > > > but none of their methods have resulted in a successful compilation. > > > > Do you know of a method to compile armv6 ports on an x64 machine, > > or can you direct me to someone who might? > > > > -Jeremy > > At this point, poudriere can build packages by default. > > If you want armv6 packages for RPi or BBB, get poudriere 3.1 on your > system with qemu-bsd-user. > > Setup this arcane binmiscctl(8) command: > /usr/sbin/binmiscctl add armv6 --interpreter "/usr/local/bin/qemu-arm" \ > - --magic > > "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" > \ > - --mask > > "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" > \ > - --size 20 --set-enabled > > > That is the command that will redirect execution of armv6 binaries to > qemu-bsd-user. > > Build an armv6 jail with: > > poudriere jail -c -j armv6 -m svn -v head -a arm.armv6 -x > > And build your ports with poudriere via: > poudriere bulk -j amrv6 > > You can fetch packages from the freebsd cluster arm builder if you > wish as well: > > http://chips.ysv.freebsd.org/packages/11armv6-11armv6/ > > Sean > > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQF8BAEBCgBmBQJUm2WBXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w > ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw > MDAwMDAwMDAwMDAwMDAwAAoJEBIB78oecn5kDx0H/0UnXCslpqnT1JrHDCuN+trS > IvC2eMIaaLa2jZ/6BM6FVqmMdRpt+sGnToZSL/3iaFyLQhgadOqojBtsuna8W2rd > jagvmhQaZtG0TOfCBPI6B0LDAZMwzAcczgSc+ta+39rU3sGrI3u9Cu7aUf6xWOJZ > GMmbvH3idiLLcyVzwKSL2D8B3y7mg1E+cNB5y61nNxpnrIsQNLmaASjikaJXOif4 > 8AV7/yzq5tLkeiBkxjnsq0t3UBCUh/omMwGwQn6jXD8qa4JfjtFWFN23hpVyPBpi > jfL6IycR7JauqXK1JQzYHiNCgGD8JthNNCwp4UQvvDfY8w/0cwFwXPdzy4qedYc= > =lkbv > -----END PGP SIGNATURE----- > From sbruno at ignoranthack.me Thu Dec 25 01:56:07 2014 From: sbruno at ignoranthack.me (Sean Bruno) Date: Wed, 24 Dec 2014 17:56:03 -0800 Subject: Help Compiling armv6 Ports from x64 In-Reply-To: References: <549B6584.3000608@ignoranthack.me> Message-ID: <549B6EB3.90204@ignoranthack.me> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 12/24/14 17:29, Jeremy Brown wrote: > Sean, > > Does poudriere work with previously-established roots or does it > have to generate its own? I'm using crochet > to create my image, > so I can do whatever I want to the filesystem it creates and have > it apply to the image. > Poudirere's main purpose is to create a package repo for remote installation. So, I'm guessing that you don't want that. What you "want" is the magical binmiscctl command on your host system and then copy /usr/local/qemu-user-arm into your jail. Modify the binmiscctl(8) command I pointed you at below to point to /usr/local/bin/qemu-user-arm. Then you should be able to "chroot" into your existing chroot and it will act like an arm box. It will be slow, but currently there's no reliable way that I am aware of to get what you and other need done. sean > Also, will poudriere actually install a package and modify > necessary files to let the system know a port is installed, or does > it only create the package and leave it to me to install? > > -Jeremy > > On Wed, Dec 24, 2014 at 8:16 PM, Sean Bruno > wrote: > > On 12/24/14 16:34, Jeremy Brown wrote: >>>> I have a VM running FreeBSD 10.1 x64 that I'm trying to use >>>> to create an image that will run on a Raspberry Pi. I've >>>> managed to get the base system working, but I can't figure >>>> out how to compile ports for the image. I know my >>>> cross-compilation toolchain is working, as I can build the >>>> kernel and world without issue. >>>> >>>> For sake of example, say my arm root is at /tmp/rootfs, my >>>> toolchain is at /usr/armv6-freebsd/usr/bin and some other >>>> assorted cross-compilation items are at >>>> /usr/obj/armv6-freebsd. >>>> >>>> Some of the commands I have tried to build a port are: >>>> >>>> PATH=/path/to/toolchain:${PATH} make TARGET=arm >>>> TARGET_ARCH=armv6 install (this typically fails during >>>> compilation) >>>> >>>> PATH=/path/to/toolchain:${PATH} make TARGET=arm >>>> TARGET_ARCH=armv6 configure install (this typically fails >>>> during configuration, the error I get is something along the >>>> lines of "cannot read C-compiled file"; in addition the >>>> configure script never notices that I am trying to >>>> cross-compile) >>>> >>>> PATH=/path/to/toolchain:${PATH} make >>>> CONFIGURE_ARGS="--host=armv6-freebsd" configure install >>>> (this typically fails during compilation for varying reasons, >>>> but at least it'll recognize that I'm cross-compiling; >>>> including TARGET and TARGET_ARCH makes no difference) >>>> >>>> make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs >>>> install (this was what I originally tried, when the chroot >>>> kicked in it would try to run the ARM version of /bin/sh; as >>>> the VM is x64 this would always give an exec format error >>>> before failing) >>>> >>>> make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs >>>> CHROOTED=no install (this would seem to work, but would >>>> install the port to the VM instead of the filesystem for the >>>> image, and in addition would be compiled x64 instead of >>>> armv6) >>>> >>>> There are others, but these are the ones I can remember the >>>> best right now. I understand there won't be any precompiled >>>> ports, and I don't want to have to build my desired ports on >>>> the Pi itself (despite the fact that doing so would be >>>> agonizingly slow, the space required to store the ports tree >>>> and compile what I need would explode the size of the image >>>> from ~400MB to >>>>> 2GB). >>>> >>>> I've tried many different websites (see here >>>> , here < > http://allskyee.blogspot.com/2014/02/freebsd-10-ports-cross-compile-amd64-to.html >>>> >>>> >>>> > > , here >>>> < > http://ray-freebsd.blogspot.kr/2011/09/cross-compiling-ports-for-freebsd.html >>>> >>>> >>>> > > , here , here >>>> < > http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037469.html >>>> > ), >>>> >>>> > but none of their methods have resulted in a successful > compilation. >>>> >>>> Do you know of a method to compile armv6 ports on an x64 >>>> machine, or can you direct me to someone who might? >>>> >>>> -Jeremy > > At this point, poudriere can build packages by default. > > If you want armv6 packages for RPi or BBB, get poudriere 3.1 on > your system with qemu-bsd-user. > > Setup this arcane binmiscctl(8) command: /usr/sbin/binmiscctl add > armv6 --interpreter "/usr/local/bin/qemu-arm" \ --magic > > "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" > > \ > --mask > > "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" > > \ > --size 20 --set-enabled > > > That is the command that will redirect execution of armv6 binaries > to qemu-bsd-user. > > Build an armv6 jail with: > > poudriere jail -c -j armv6 -m svn -v head -a arm.armv6 -x > > And build your ports with poudriere via: poudriere bulk -j amrv6 > > > You can fetch packages from the freebsd cluster arm builder if you > wish as well: > > http://chips.ysv.freebsd.org/packages/11armv6-11armv6/ > > Sean > > > >> > -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAEBCgBmBQJUm26wXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwAAoJEBIB78oecn5kcoAH/RqUaEJdWYo3hjimFzaTWlR6 v6DzcuV3agbc5pf47JU7OszU2BQC7oSlRKfgL3yPqosK6gVGYwr5ZxIXet5YKvnG aaLQ6b++7PjXm9WvLRufShYusO1QVuwa5Witj3zAKbjgC3F6e0qFyRdX/wbOpnFW 871Jc/QdxNrgHWw2o31m3GsVi4OtondB2Fifz7us9bSYNFn84S3pz73Nf8DV9KtS HXG42qDGNFz7Ov/k9apDC1Jr1ejMhfP3sX9Jnsg1z2vqDHZC2KuB6fGOEvL9n1DJ 45R2H5UYgXH/T+rJ36lrTkVxVSvwt+s+oEIdDDFbOsGJx/rqP79adrAcWUzWD/I= =uOZl -----END PGP SIGNATURE----- From mischif at mischivous.com Thu Dec 25 15:17:55 2014 From: mischif at mischivous.com (Jeremy Brown) Date: Thu, 25 Dec 2014 10:17:05 -0500 Subject: Help Compiling armv6 Ports from x64 In-Reply-To: <549B6EB3.90204@ignoranthack.me> References: <549B6584.3000608@ignoranthack.me> <549B6EB3.90204@ignoranthack.me> Message-ID: Sean, It seems the binmiscctl command was the last part of the puzzle, now everything's working. But I have one last issue I'm trying to solve: Now I'm trying to use the x64 cross compiler instead of emulating through the arm one. I've copied my toolchain over and I've set up variables for CC, et al to refer to the x64 versions in /root/.profile, but I can't get make to pick up on them. Is there something else I need to do? -Jeremy On Wed, Dec 24, 2014 at 8:56 PM, Sean Bruno wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On 12/24/14 17:29, Jeremy Brown wrote: > > Sean, > > > > Does poudriere work with previously-established roots or does it > > have to generate its own? I'm using crochet > > to create my image, > > so I can do whatever I want to the filesystem it creates and have > > it apply to the image. > > > > Poudirere's main purpose is to create a package repo for remote > installation. > > So, I'm guessing that you don't want that. > > What you "want" is the magical binmiscctl command on your host system > and then copy /usr/local/qemu-user-arm into your jail. > > Modify the binmiscctl(8) command I pointed you at below to point to > /usr/local/bin/qemu-user-arm. > > Then you should be able to "chroot" into your existing chroot and it > will act like an arm box. It will be slow, but currently there's no > reliable way that I am aware of to get what you and other need done. > > > sean > > > Also, will poudriere actually install a package and modify > > necessary files to let the system know a port is installed, or does > > it only create the package and leave it to me to install? > > > > -Jeremy > > > > > > > > On Wed, Dec 24, 2014 at 8:16 PM, Sean Bruno > > wrote: > > > > On 12/24/14 16:34, Jeremy Brown wrote: > >>>> I have a VM running FreeBSD 10.1 x64 that I'm trying to use > >>>> to create an image that will run on a Raspberry Pi. I've > >>>> managed to get the base system working, but I can't figure > >>>> out how to compile ports for the image. I know my > >>>> cross-compilation toolchain is working, as I can build the > >>>> kernel and world without issue. > >>>> > >>>> For sake of example, say my arm root is at /tmp/rootfs, my > >>>> toolchain is at /usr/armv6-freebsd/usr/bin and some other > >>>> assorted cross-compilation items are at > >>>> /usr/obj/armv6-freebsd. > >>>> > >>>> Some of the commands I have tried to build a port are: > >>>> > >>>> PATH=/path/to/toolchain:${PATH} make TARGET=arm > >>>> TARGET_ARCH=armv6 install (this typically fails during > >>>> compilation) > >>>> > >>>> PATH=/path/to/toolchain:${PATH} make TARGET=arm > >>>> TARGET_ARCH=armv6 configure install (this typically fails > >>>> during configuration, the error I get is something along the > >>>> lines of "cannot read C-compiled file"; in addition the > >>>> configure script never notices that I am trying to > >>>> cross-compile) > >>>> > >>>> PATH=/path/to/toolchain:${PATH} make > >>>> CONFIGURE_ARGS="--host=armv6-freebsd" configure install > >>>> (this typically fails during compilation for varying reasons, > >>>> but at least it'll recognize that I'm cross-compiling; > >>>> including TARGET and TARGET_ARCH makes no difference) > >>>> > >>>> make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs > >>>> install (this was what I originally tried, when the chroot > >>>> kicked in it would try to run the ARM version of /bin/sh; as > >>>> the VM is x64 this would always give an exec format error > >>>> before failing) > >>>> > >>>> make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs > >>>> CHROOTED=no install (this would seem to work, but would > >>>> install the port to the VM instead of the filesystem for the > >>>> image, and in addition would be compiled x64 instead of > >>>> armv6) > >>>> > >>>> There are others, but these are the ones I can remember the > >>>> best right now. I understand there won't be any precompiled > >>>> ports, and I don't want to have to build my desired ports on > >>>> the Pi itself (despite the fact that doing so would be > >>>> agonizingly slow, the space required to store the ports tree > >>>> and compile what I need would explode the size of the image > >>>> from ~400MB to > >>>>> 2GB). > >>>> > >>>> I've tried many different websites (see here > >>>> , here < > > > http://allskyee.blogspot.com/2014/02/freebsd-10-ports-cross-compile-amd64-to.html > >>>> > >>>> > >>>> > > > > > , here > >>>> < > > > http://ray-freebsd.blogspot.kr/2011/09/cross-compiling-ports-for-freebsd.html > >>>> > >>>> > >>>> > > > > > , here , here > >>>> < > > > http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037469.html > >>>> > > > ), > >>>> > >>>> > > but none of their methods have resulted in a successful > > compilation. > >>>> > >>>> Do you know of a method to compile armv6 ports on an x64 > >>>> machine, or can you direct me to someone who might? > >>>> > >>>> -Jeremy > > > > At this point, poudriere can build packages by default. > > > > If you want armv6 packages for RPi or BBB, get poudriere 3.1 on > > your system with qemu-bsd-user. > > > > Setup this arcane binmiscctl(8) command: /usr/sbin/binmiscctl add > > armv6 --interpreter "/usr/local/bin/qemu-arm" \ --magic > > > > > "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" > > > > > \ > > --mask > > > > > "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" > > > > > \ > > --size 20 --set-enabled > > > > > > That is the command that will redirect execution of armv6 binaries > > to qemu-bsd-user. > > > > Build an armv6 jail with: > > > > poudriere jail -c -j armv6 -m svn -v head -a arm.armv6 -x > > > > And build your ports with poudriere via: poudriere bulk -j amrv6 > > > > > > You can fetch packages from the freebsd cluster arm builder if you > > wish as well: > > > > http://chips.ysv.freebsd.org/packages/11armv6-11armv6/ > > > > Sean > > > > > > > >> > > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQF8BAEBCgBmBQJUm26wXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w > ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw > MDAwMDAwMDAwMDAwMDAwAAoJEBIB78oecn5kcoAH/RqUaEJdWYo3hjimFzaTWlR6 > v6DzcuV3agbc5pf47JU7OszU2BQC7oSlRKfgL3yPqosK6gVGYwr5ZxIXet5YKvnG > aaLQ6b++7PjXm9WvLRufShYusO1QVuwa5Witj3zAKbjgC3F6e0qFyRdX/wbOpnFW > 871Jc/QdxNrgHWw2o31m3GsVi4OtondB2Fifz7us9bSYNFn84S3pz73Nf8DV9KtS > HXG42qDGNFz7Ov/k9apDC1Jr1ejMhfP3sX9Jnsg1z2vqDHZC2KuB6fGOEvL9n1DJ > 45R2H5UYgXH/T+rJ36lrTkVxVSvwt+s+oEIdDDFbOsGJx/rqP79adrAcWUzWD/I= > =uOZl > -----END PGP SIGNATURE----- > From sbruno at ignoranthack.me Fri Dec 26 21:11:16 2014 From: sbruno at ignoranthack.me (Sean Bruno) Date: Fri, 26 Dec 2014 13:11:13 -0800 Subject: Help Compiling armv6 Ports from x64 In-Reply-To: References: <549B6584.3000608@ignoranthack.me> <549B6EB3.90204@ignoranthack.me> Message-ID: <549DCEF1.2040401@ignoranthack.me> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 12/25/14 07:17, Jeremy Brown wrote: > Sean, > > It seems the binmiscctl command was the last part of the puzzle, > now everything's working. But I have one last issue I'm trying to > solve: > > Now I'm trying to use the x64 cross compiler instead of emulating > through the arm one. I've copied my toolchain over and I've set up > variables for CC, et al to refer to the x64 versions in > /root/.profile, but I can't get make to pick up on them. Is there > something else I need to do? > > -Jeremy I think these things are actually controlled by /etc/make.conf in the jail/chroot that you are using. e.g. poudriere sets up some CC= and friends that does some of this for me, but you'll have to replicate by hand: % cat /usr/local/poudriere/jails/11-armv6/etc/make.conf CC=/nxb-bin/usr/bin/cc CPP=/nxb-bin/usr/bin/cpp CXX=/nxb-bin/usr/bin/c++ AS=/nxb-bin/usr/bin/as NM=/nxb-bin/usr/bin/nm LD=/nxb-bin/usr/bin/ld OBJCOPY=/nxb-bin/usr/bin/objcopy SIZE=/nxb-bin/usr/bin/size STRIPBIN=/nxb-bin/usr/bin/strip SED=/nxb-bin/usr/bin/sed READELF=/nxb-bin/usr/bin/readelf RANLIB=/nxb-bin/usr/bin/ranlib YACC=/nxb-bin/usr/bin/yacc NM=/nxb-bin/usr/bin/nm MAKE=/nxb-bin/usr/bin/make STRINGS=/nxb-bin/usr/bin/strings AWK=/nxb-bin/usr/bin/awk FLEX=/nxb-bin/usr/bin/flex > > On Wed, Dec 24, 2014 at 8:56 PM, Sean Bruno > wrote: > > On 12/24/14 17:29, Jeremy Brown wrote: >>>> Sean, >>>> >>>> Does poudriere work with previously-established roots or does >>>> it have to generate its own? I'm using crochet >>>> to create my >>>> image, so I can do whatever I want to the filesystem it >>>> creates and have it apply to the image. >>>> > > Poudirere's main purpose is to create a package repo for remote > installation. > > So, I'm guessing that you don't want that. > > What you "want" is the magical binmiscctl command on your host > system and then copy /usr/local/qemu-user-arm into your jail. > > Modify the binmiscctl(8) command I pointed you at below to point > to /usr/local/bin/qemu-user-arm. > > Then you should be able to "chroot" into your existing chroot and > it will act like an arm box. It will be slow, but currently > there's no reliable way that I am aware of to get what you and > other need done. > > > sean > >>>> Also, will poudriere actually install a package and modify >>>> necessary files to let the system know a port is installed, >>>> or does it only create the package and leave it to me to >>>> install? >>>> >>>> -Jeremy > > > > >>>> >>>> On Wed, Dec 24, 2014 at 8:16 PM, Sean Bruno >>>> wrote: >>>> >>>> On 12/24/14 16:34, Jeremy Brown wrote: >>>>>>> I have a VM running FreeBSD 10.1 x64 that I'm trying to >>>>>>> use to create an image that will run on a Raspberry Pi. >>>>>>> I've managed to get the base system working, but I >>>>>>> can't figure out how to compile ports for the image. I >>>>>>> know my cross-compilation toolchain is working, as I >>>>>>> can build the kernel and world without issue. >>>>>>> >>>>>>> For sake of example, say my arm root is at /tmp/rootfs, >>>>>>> my toolchain is at /usr/armv6-freebsd/usr/bin and some >>>>>>> other assorted cross-compilation items are at >>>>>>> /usr/obj/armv6-freebsd. >>>>>>> >>>>>>> Some of the commands I have tried to build a port are: >>>>>>> >>>>>>> PATH=/path/to/toolchain:${PATH} make TARGET=arm >>>>>>> TARGET_ARCH=armv6 install (this typically fails during >>>>>>> compilation) >>>>>>> >>>>>>> PATH=/path/to/toolchain:${PATH} make TARGET=arm >>>>>>> TARGET_ARCH=armv6 configure install (this typically >>>>>>> fails during configuration, the error I get is >>>>>>> something along the lines of "cannot read C-compiled >>>>>>> file"; in addition the configure script never notices >>>>>>> that I am trying to cross-compile) >>>>>>> >>>>>>> PATH=/path/to/toolchain:${PATH} make >>>>>>> CONFIGURE_ARGS="--host=armv6-freebsd" configure >>>>>>> install (this typically fails during compilation for >>>>>>> varying reasons, but at least it'll recognize that I'm >>>>>>> cross-compiling; including TARGET and TARGET_ARCH makes >>>>>>> no difference) >>>>>>> >>>>>>> make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs >>>>>>> install (this was what I originally tried, when the >>>>>>> chroot kicked in it would try to run the ARM version of >>>>>>> /bin/sh; as the VM is x64 this would always give an >>>>>>> exec format error before failing) >>>>>>> >>>>>>> make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs >>>>>>> CHROOTED=no install (this would seem to work, but >>>>>>> would install the port to the VM instead of the >>>>>>> filesystem for the image, and in addition would be >>>>>>> compiled x64 instead of armv6) >>>>>>> >>>>>>> There are others, but these are the ones I can remember >>>>>>> the best right now. I understand there won't be any >>>>>>> precompiled ports, and I don't want to have to build my >>>>>>> desired ports on the Pi itself (despite the fact that >>>>>>> doing so would be agonizingly slow, the space required >>>>>>> to store the ports tree and compile what I need would >>>>>>> explode the size of the image from ~400MB to >>>>>>>> 2GB). >>>>>>> >>>>>>> I've tried many different websites (see here >>>>>>> , here < >>>> > http://allskyee.blogspot.com/2014/02/freebsd-10-ports-cross-compile-amd64-to.html >>>>>>> >>>>>>> >>>>>>> >>>> >>>> > > , here >>>>>>> < >>>> > http://ray-freebsd.blogspot.kr/2011/09/cross-compiling-ports-for-freebsd.html >>>>>>> >>>>>>> >>>>>>> >>>> >>>> > > , here , here >>>>>>> < >>>> > http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037469.html >>>>>>> >>>> > > ), >>>>>>> >>>>>>> >>>> but none of their methods have resulted in a successful >>>> compilation. >>>>>>> >>>>>>> Do you know of a method to compile armv6 ports on an >>>>>>> x64 machine, or can you direct me to someone who >>>>>>> might? >>>>>>> >>>>>>> -Jeremy >>>> >>>> At this point, poudriere can build packages by default. >>>> >>>> If you want armv6 packages for RPi or BBB, get poudriere 3.1 >>>> on your system with qemu-bsd-user. >>>> >>>> Setup this arcane binmiscctl(8) command: /usr/sbin/binmiscctl >>>> add armv6 --interpreter "/usr/local/bin/qemu-arm" \ --magic >>>> >>>> > "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" >>>> >>>> > > \ >>>> --mask >>>> >>>> > "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" >>>> >>>> > > \ >>>> --size 20 --set-enabled >>>> >>>> >>>> That is the command that will redirect execution of armv6 >>>> binaries to qemu-bsd-user. >>>> >>>> Build an armv6 jail with: >>>> >>>> poudriere jail -c -j armv6 -m svn -v head -a arm.armv6 -x >>>> >>>> And build your ports with poudriere via: poudriere bulk -j >>>> amrv6 >>>> >>>> You can fetch packages from the freebsd cluster arm builder >>>> if you wish as well: >>>> >>>> http://chips.ysv.freebsd.org/packages/11armv6-11armv6/ >>>> >>>> Sean >>>> >>>> >>>> >>>>> >>>> > >> > -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAEBCgBmBQJUnc7vXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwAAoJEBIB78oecn5k5cYH/2NxHEtE8sgVzoWZ84nHL26B 2U7IRHypCrPuSxtkcBb8hnQJk1F2ybeC/i56BwuT1Gjois/0Yu3EeybBw2zHxU5q hvyyvGJXptUTnXD/JQHEcV/hqbD6j5ng5iXds+LB8htmbfoROtH1Bxs+ZXhmwqsH aJ7cL4Ufmx0/VtbPevFU9Lzxes1r3JpbeOrX54DfLgLmEEe8sbj+eSNW/St49so9 jk5wXxPy6VbSz/YC4gMl0S6Ev1VQtBeyEg+2kRmaUf/1JlxYh+dG8j5FaihZnjo9 SBloROfgjIRzWRtEgCKZVsOjlREg8kvIik0s3jOUgwjwvRJW3Pc4UnyFyBmoEMc= =8zMx -----END PGP SIGNATURE----- From mischif at mischivous.com Sat Dec 27 19:05:31 2014 From: mischif at mischivous.com (Jeremy Brown) Date: Sat, 27 Dec 2014 14:04:42 -0500 Subject: Help Compiling armv6 Ports from x64 In-Reply-To: <549DCEF1.2040401@ignoranthack.me> References: <549B6584.3000608@ignoranthack.me> <549B6EB3.90204@ignoranthack.me> <549DCEF1.2040401@ignoranthack.me> Message-ID: Okay, I just had to add the directory they were in to my PATH and now they're being picked up, but I'm getting two new errors during configuration, and I think solving one might lead to solving the other. The first is that cpp is failing the sanity check, it throws a syntax error when it tries to compile the test file. The second error is that /libexec/ld-elf.so.1 cannot be found; I assume this is due to some incompatibility between the x64 binaries I'm trying to use and the armv6 chroot, but is there any way to solve it? -Jeremy On Fri, Dec 26, 2014 at 4:11 PM, Sean Bruno wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On 12/25/14 07:17, Jeremy Brown wrote: > > Sean, > > > > It seems the binmiscctl command was the last part of the puzzle, > > now everything's working. But I have one last issue I'm trying to > > solve: > > > > Now I'm trying to use the x64 cross compiler instead of emulating > > through the arm one. I've copied my toolchain over and I've set up > > variables for CC, et al to refer to the x64 versions in > > /root/.profile, but I can't get make to pick up on them. Is there > > something else I need to do? > > > > -Jeremy > > I think these things are actually controlled by /etc/make.conf in the > jail/chroot that you are using. > > e.g. poudriere sets up some CC= and friends that does some of this for > me, but you'll have to replicate by hand: > > % cat /usr/local/poudriere/jails/11-armv6/etc/make.conf > CC=/nxb-bin/usr/bin/cc > CPP=/nxb-bin/usr/bin/cpp > CXX=/nxb-bin/usr/bin/c++ > AS=/nxb-bin/usr/bin/as > NM=/nxb-bin/usr/bin/nm > LD=/nxb-bin/usr/bin/ld > OBJCOPY=/nxb-bin/usr/bin/objcopy > SIZE=/nxb-bin/usr/bin/size > STRIPBIN=/nxb-bin/usr/bin/strip > SED=/nxb-bin/usr/bin/sed > READELF=/nxb-bin/usr/bin/readelf > RANLIB=/nxb-bin/usr/bin/ranlib > YACC=/nxb-bin/usr/bin/yacc > NM=/nxb-bin/usr/bin/nm > MAKE=/nxb-bin/usr/bin/make > STRINGS=/nxb-bin/usr/bin/strings > AWK=/nxb-bin/usr/bin/awk > FLEX=/nxb-bin/usr/bin/flex > > > > > > On Wed, Dec 24, 2014 at 8:56 PM, Sean Bruno > > wrote: > > > > On 12/24/14 17:29, Jeremy Brown wrote: > >>>> Sean, > >>>> > >>>> Does poudriere work with previously-established roots or does > >>>> it have to generate its own? I'm using crochet > >>>> to create my > >>>> image, so I can do whatever I want to the filesystem it > >>>> creates and have it apply to the image. > >>>> > > > > Poudirere's main purpose is to create a package repo for remote > > installation. > > > > So, I'm guessing that you don't want that. > > > > What you "want" is the magical binmiscctl command on your host > > system and then copy /usr/local/qemu-user-arm into your jail. > > > > Modify the binmiscctl(8) command I pointed you at below to point > > to /usr/local/bin/qemu-user-arm. > > > > Then you should be able to "chroot" into your existing chroot and > > it will act like an arm box. It will be slow, but currently > > there's no reliable way that I am aware of to get what you and > > other need done. > > > > > > sean > > > >>>> Also, will poudriere actually install a package and modify > >>>> necessary files to let the system know a port is installed, > >>>> or does it only create the package and leave it to me to > >>>> install? > >>>> > >>>> -Jeremy > > > > > > > > > >>>> > >>>> On Wed, Dec 24, 2014 at 8:16 PM, Sean Bruno > >>>> wrote: > >>>> > >>>> On 12/24/14 16:34, Jeremy Brown wrote: > >>>>>>> I have a VM running FreeBSD 10.1 x64 that I'm trying to > >>>>>>> use to create an image that will run on a Raspberry Pi. > >>>>>>> I've managed to get the base system working, but I > >>>>>>> can't figure out how to compile ports for the image. I > >>>>>>> know my cross-compilation toolchain is working, as I > >>>>>>> can build the kernel and world without issue. > >>>>>>> > >>>>>>> For sake of example, say my arm root is at /tmp/rootfs, > >>>>>>> my toolchain is at /usr/armv6-freebsd/usr/bin and some > >>>>>>> other assorted cross-compilation items are at > >>>>>>> /usr/obj/armv6-freebsd. > >>>>>>> > >>>>>>> Some of the commands I have tried to build a port are: > >>>>>>> > >>>>>>> PATH=/path/to/toolchain:${PATH} make TARGET=arm > >>>>>>> TARGET_ARCH=armv6 install (this typically fails during > >>>>>>> compilation) > >>>>>>> > >>>>>>> PATH=/path/to/toolchain:${PATH} make TARGET=arm > >>>>>>> TARGET_ARCH=armv6 configure install (this typically > >>>>>>> fails during configuration, the error I get is > >>>>>>> something along the lines of "cannot read C-compiled > >>>>>>> file"; in addition the configure script never notices > >>>>>>> that I am trying to cross-compile) > >>>>>>> > >>>>>>> PATH=/path/to/toolchain:${PATH} make > >>>>>>> CONFIGURE_ARGS="--host=armv6-freebsd" configure > >>>>>>> install (this typically fails during compilation for > >>>>>>> varying reasons, but at least it'll recognize that I'm > >>>>>>> cross-compiling; including TARGET and TARGET_ARCH makes > >>>>>>> no difference) > >>>>>>> > >>>>>>> make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs > >>>>>>> install (this was what I originally tried, when the > >>>>>>> chroot kicked in it would try to run the ARM version of > >>>>>>> /bin/sh; as the VM is x64 this would always give an > >>>>>>> exec format error before failing) > >>>>>>> > >>>>>>> make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/tmp/rootfs > >>>>>>> CHROOTED=no install (this would seem to work, but > >>>>>>> would install the port to the VM instead of the > >>>>>>> filesystem for the image, and in addition would be > >>>>>>> compiled x64 instead of armv6) > >>>>>>> > >>>>>>> There are others, but these are the ones I can remember > >>>>>>> the best right now. I understand there won't be any > >>>>>>> precompiled ports, and I don't want to have to build my > >>>>>>> desired ports on the Pi itself (despite the fact that > >>>>>>> doing so would be agonizingly slow, the space required > >>>>>>> to store the ports tree and compile what I need would > >>>>>>> explode the size of the image from ~400MB to > >>>>>>>> 2GB). > >>>>>>> > >>>>>>> I've tried many different websites (see here > >>>>>>> , here < > >>>> > > > http://allskyee.blogspot.com/2014/02/freebsd-10-ports-cross-compile-amd64-to.html > >>>>>>> > >>>>>>> > >>>>>>> > >>>> > >>>> > > > > > , here > >>>>>>> < > >>>> > > > http://ray-freebsd.blogspot.kr/2011/09/cross-compiling-ports-for-freebsd.html > >>>>>>> > >>>>>>> > >>>>>>> > >>>> > >>>> > > > > > , here , here > >>>>>>> < > >>>> > > > http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037469.html > >>>>>>> > >>>> > > > > > ), > >>>>>>> > >>>>>>> > >>>> but none of their methods have resulted in a successful > >>>> compilation. > >>>>>>> > >>>>>>> Do you know of a method to compile armv6 ports on an > >>>>>>> x64 machine, or can you direct me to someone who > >>>>>>> might? > >>>>>>> > >>>>>>> -Jeremy > >>>> > >>>> At this point, poudriere can build packages by default. > >>>> > >>>> If you want armv6 packages for RPi or BBB, get poudriere 3.1 > >>>> on your system with qemu-bsd-user. > >>>> > >>>> Setup this arcane binmiscctl(8) command: /usr/sbin/binmiscctl > >>>> add armv6 --interpreter "/usr/local/bin/qemu-arm" \ --magic > >>>> > >>>> > > > "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" > >>>> > >>>> > > > > > \ > >>>> --mask > >>>> > >>>> > > > "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" > >>>> > >>>> > > > > > \ > >>>> --size 20 --set-enabled > >>>> > >>>> > >>>> That is the command that will redirect execution of armv6 > >>>> binaries to qemu-bsd-user. > >>>> > >>>> Build an armv6 jail with: > >>>> > >>>> poudriere jail -c -j armv6 -m svn -v head -a arm.armv6 -x > >>>> > >>>> And build your ports with poudriere via: poudriere bulk -j > >>>> amrv6 > >>>> > >>>> You can fetch packages from the freebsd cluster arm builder > >>>> if you wish as well: > >>>> > >>>> http://chips.ysv.freebsd.org/packages/11armv6-11armv6/ > >>>> > >>>> Sean > >>>> > >>>> > >>>> > >>>>> > >>>> > > > >> > > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQF8BAEBCgBmBQJUnc7vXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w > ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw > MDAwMDAwMDAwMDAwMDAwAAoJEBIB78oecn5k5cYH/2NxHEtE8sgVzoWZ84nHL26B > 2U7IRHypCrPuSxtkcBb8hnQJk1F2ybeC/i56BwuT1Gjois/0Yu3EeybBw2zHxU5q > hvyyvGJXptUTnXD/JQHEcV/hqbD6j5ng5iXds+LB8htmbfoROtH1Bxs+ZXhmwqsH > aJ7cL4Ufmx0/VtbPevFU9Lzxes1r3JpbeOrX54DfLgLmEEe8sbj+eSNW/St49so9 > jk5wXxPy6VbSz/YC4gMl0S6Ev1VQtBeyEg+2kRmaUf/1JlxYh+dG8j5FaihZnjo9 > SBloROfgjIRzWRtEgCKZVsOjlREg8kvIik0s3jOUgwjwvRJW3Pc4UnyFyBmoEMc= > =8zMx > -----END PGP SIGNATURE----- >