path of least resistance to Debian

I am fairly certain that this has been answered but I have spent the last two hours perusing the Wiki, the website, and the forums looking for a definitive path to move my BBB from Angstrom to Debian. I am left with some questions which I am pretty certain someone has already answered but I still need pointers.

  1. Is it better to run Debian from MicroSD or from the eMMC?
  2. My native OS environment is MacOS. I have decompressed both Debian images on my Mac. For the MicroSD it seems the easy way to write the image is with dd using a 512-byte blocksize (one sector), right?
  3. Is there a way to write the eMMC image from MacOS? I’d rather not have to boot up Windows if I can avoid it. (After all, we are trying to run linux and having to run Windows in order to do maintenance on a Linux system just seems … wrong.)
  4. Is there a way to write the eMMC image from the running BBB? Seems that maybe I get it running from MicroSD and then rewrite the eMMC.
    Thank you.

Brian

I don't always use my Mac, but when I do, I follow this guide:
https://learn.adafruit.com/beaglebone-black-installing-operating-systems/mac-os-x

I have always run with the eMMC flasher image, but space is getting
tight on the 2GB image. I can't speak to performance. If storage is an
issue, you can wait for a rev C with the 4GB eMMC, or use the micro SD.

Not sure about #4.

Josh

#1 Personally I would run from a uSD card to make sure it is what you want. Plus it doesnt hurt to run from the sd card, unless you do not have a uSD card + sd card adapter, and do not care to spend money on this.

#2 I’ll defer to someone else, as I am not a MAC person.

#3 NO idea where you got this impression. All the instructions I’ve seen are *NIX based, and I DO personally run Windows for my own desktop environment.

#4 You would have to boot up via uSD to write out the eMMC I believe.

You may want to consider dedicating a machine, or perhaps use virtualbox to have a Debian wheezy i386 support system. This really depends on how serious you are. As an example, I compile my own kernel based on Robert Nelsons instructions, and build a custom rootfs also based on his bare rootfs stuff. Which I mount rootfs over our network ( to prevent me from ruining flash media while I experiment / tweak various things ).

I don’t always use my Mac, but when I do, I follow this guide:
https://learn.adafruit.com/beaglebone-black-installing-operating-systems/mac-os-x

Ah, thank you. That has precisely what I am looking for.

I have always run with the eMMC flasher image, but space is getting
tight on the 2GB image. I can’t speak to performance. If storage is an
issue, you can wait for a rev C with the 4GB eMMC, or use the micro SD.

I would hope I could

Not sure about #4.

Turns out the instructions for loading the eMMC are there too. Thank you!

btw, if you start with the "microSD" image and are happy with it, you
can kick off the eMMC flasher via:

cd /opt/scripts/tools/
sudo ./beaglebone-black-eMMC-flasher.sh

Regards,

#1 Personally I would run from a uSD card to make sure it is what you
want. Plus it doesnt hurt to run from the sd card, unless you do not have a
uSD card + sd card adapter, and do not care to spend money on this.

I have a 16GB uSD card to run from. Just wondering what the pros and cons
are. Seems that the cons are worry that the eMMC will reach its write
limit. I don't think that will be an issue for my application as I intend
to use the BBB as an embedded system. (See below.)

#2 I'll defer to someone else, as I am not a MAC person.

Mac is just FreeBSD once you are in the shell (for the most part). There
are worse places to be. :wink:

#3 NO idea where you got this impression. All the instructions I've seen
are *NIX based, and I *DO* personally run Windows for my own desktop
environment.

I couldn't find any instructions other than for doing it from Windows until
I was pointed to the Adafruit site.

#4 You would have to boot up via uSD to write out the eMMC I believe.

I now have Debian running from the uSD card and it is working just peachy.
Attempts to copy the eMMC version to the eMMC didn't work but I only want
that as a backup to the uSD. Eventually I will probably want to run from
eMMC when I close everything up and shove it into a rack.

You may want to consider dedicating a machine, or perhaps use virtualbox
to have a Debian wheezy i386 support system. This really depends on how
serious you are. As an example, I compile my own kernel based on Robert
Nelsons instructions, and build a custom rootfs also based on his bare
rootfs stuff. Which I mount rootfs over our network ( to prevent me from
ruining flash media while I experiment / tweak various things ).

Thank you. I may go that route. I have a couple of machines I plan to
dedicate to Linux (one is already running ubuntu -- not sure that is going
to stay that way). Is there a good cross-development environment or is it
just as easy to build on the BBB itself?

The project right now is turning the BBB into a GPS-disciplined NTP server.
The plan is to have a local UTC display (I think Nixies would be cool for
that classic retro look but 7-segment LED displays would be OK too and
easier to drive) and eventually use it to discipline my Rubidium reference
as well.

Thank you. The information is out there but just scattered. I just don't
know where to look ... yet.

There are some incompatibilities with OSX, but if you use “MacPort” or “HomeBrew” or “Fink” to get the GNU tool versions. Since the GNU version are the same as Debian or Ubuntu, the same instructions will work on Mac.

The only issue preventing me from using OSX for all my BBB development is Linaro does not have a cross compiler for OSX. Also OpenEmbedded/Angstrom/Yocto do not work on OSX. Since running Robert Nelson’s scripts depend on Linaro, you cannot use his build scripts either. For now I use an Ubuntu 14.04 box. You might want to consider Parallels and install Ubuntu x64 which works great.

Regards,
John

I can not disagree more with John on this last point. If you need a support system for Debian, use Debian as the support system. Also, stay away from using X, and Window managers if you can help it.

Cross compiling from Windows does work, I’ve had this working since early on, but for most ( some ? ) people this is probably less than optimal. Definitely if you’re using OSX as your desktop.

Sorry I missed a question.

There are a couple ways to view cross compiling versus compiling native. In the end though it is up to you whether one way or another is better.

For example, it might be quicker to cross compile the dependencies for Node.js, etc. But setting up the environment for such may be more pain that it is worth. Myself, I chose to compile natively in this instance, even though the compile took around an hour. Mostly due to my own lack of knowledge on a few different aspects of this process.

One thing you will probably never want to compile natively is the kernel. But again, that would be your call.

Anyway, the really cool thing about my own setup is that I run my rootfs from an NFS share. One of the cooler things this enables me to do is setup Samba on my support system( instead of the BBB ) to share directories / file out on. Then I edit source code via my text editor of choice on my own desktop ( Win 7 x64 enterprise ) . After whcih i can compile natively on the BBB, or cross compile on my support system. I even have the Linaro binaries for Windows to cross compile from my desktop when I feel like it.

Now someone like Robert would probably say something like " Just spend ~$200 on a quad core dev board with 2GB RAM, with SATA, and compile natively . . " Which i have to admit sounds pretty cool but . . .I can not justify the costs personally just yet.

Hi Brian,

NixieTubeArticle.pdf (1.5 MB)

May you recommend me a GPS module that can be used as time reference for BB or RPI applications, please?

Omikron

Stellar! Thank you. I might have to multiplex the control lines for the
digits but there are some really nice high-voltage shift registers that
could be used.

I figured someone had gotten here before me. For people wanting to
interface GPS to BB for position and timing functions here is an excellent
article which includes how to build a very simple GPS cape for BB using a
GPS module from Adafruit.

http://the8thlayerof.net/2013/12/08/adafruit-ultimate-gps-cape-creating-custom-beaglebone-black-device-tree-overlay-file/

I can not disagree more with John on this last point. If you need a support system for Debian, use Debian as the support system. Also, stay away from using X, and Window managers if you can help it.

I wasn’t suggesting that anyone use Ubuntu for development, I was just describing my own setup. BTW, I did try Debian Wheezy and it didn’t go very well. First my Nvidia GTX670 didn’t work with the open source driver given that I have 3 x 30 inch Dell monitors. I was somewhat surprised that Debian is still using Linux Kernel V3.2 and I had to hunt around for so many repositories to get just the basic tools I need. I’m no fan of Ubuntu, but for now it does the job for me and I’m familiar with it. One more thing, developing on Windows is a nightmare given NTFS which is case insensitive.

Regards,
John

Well John, this is why people like me research hardware to use with various OSes, and distro’s Unlike Windows that can almost have any hardware tossed at it ( whether it works well or not ), Linux, or specifically Debian in this case can be very finicky.

I dont recall what the topic was of the Video, but if you search youtube for Linus torvalds + F*** nVidia . . . Yeah lets just say you might be mildly amused. nVidia in the past and probably still does not play nice with the open source community.

As far as the older kernel goes. Debian is known to move slower and more purposeful when compared to other distro;s. And as a result is generally very, very stable. However, because of this, also generally you need to pay attention to supported hardware.

Well John, this is why people like me research hardware to use with various OSes, and distro’s Unlike Windows that can almost have any hardware tossed at it ( whether it works well or not ), Linux, or specifically Debian in this case can be very finicky.

Windows, really? Talking about a flaky OS and let’s not talk about all those patches that I have to wait 5 or 15 minutes every day when I boot and then when I shutdown and all those reboots for upgrades. Windows is a piece of crap, period. I only use windows because some of the tools I use only run on Windows, but if I could ditch it, I would.

I use OSX and everything just works. One of these days I’m going to get the Linaro ARM cross compiler working and then I’ll ditch Ubuntu as well.

I dont recall what the topic was of the Video, but if you search youtube for Linus torvalds + F*** nVidia . . . Yeah lets just say you might be mildly amused. nVidia in the past and probably still does not play nice with the open source community.

I changed from ATI because of driver issues and nVidia open source driver works find with Ubuntu.

As far as the older kernel goes. Debian is known to move slower and more purposeful when compared to other distro;s. And as a result is generally very, very stable. However, because of this, also generally you need to pay attention to supported hardware.

You are right about this, Debian is rock solid. I did try the testing repo and that looks pretty stable as well. My only hesitation is that I’m not that familiar with all the repos I need and I don’t have the time to research this right now.

Hi William,
In several years I have not found I need to be picky about PC hardware including laptops, I buy mainly on price and they work. Installing Linux on other people's laptops have also not caused a problem.

On ARM the biggest problem has been continued support for older hardware, e.g Pandaboard A series using openSUSE, Ubuntu or Fedora when upgraded and more usually when a large number of packages are installed, they become unbootable.

I have an ODROID-X and can see support from hardkernel on the wane but for now I have been able to keep it performing though the MAX98090 sound refuses to work but I circumvent that by using USB sound cards. Kernel 3.8.13.19 is fine, 3.8.13.21 eventually freezes and there is no support for later kernels because of hardkernel's "proprietary" but open source bits which can get in a muddle. Furthermore they have told me that support for their hardware will NEVER be part of the mainline kernel.

I have just put the Pandaboard to one side in favour of the Parallella-16 which has a few quirks which hopefully will be fixed so releasing it's full potential.

I still run a Beaglebone White with Ubuntu and building large applications natively such as qt-5 and gnuradio has been possible though it takes a very long time.

Cross compiling is quite messy so I avoid it 100%.

Linus' rant at NVidia was mainly to do with support for their mobile GPU support which was supposed to be open. That has since been resolved, but their x86/x86_64 GPU support has fallen away since Christian Zander left and it still has the infernal proprietary blob whilst still tied to the kernel.
They have said they are contributing to the kernel nouveau driver but looking at the nouveau mailing list posts, there are problems across the board with NVidia GPU's.

As one who uses the latest git kernels using nouveau, 2 or 3 boxes are fine and there is one that with 2 different NVidia GPU's will only work up to 3.14.0 kernels. With 3.15.0-rc kernels this one box will not work properly with KDE, kmix runs but displays no GUI, thundebird comes up but I can't get an email displayed , etc.

I am about to try the NVidia driver but I will probably find, as has been often the case that the driver will not build or work with 3.15.0-rc kernels though we are at 3.14.0-rc5 and heading close to 3.15.0 final. The fix for 3.15.0 may turn out to be trivial but that begs the question as to why NVidia can't keep up.

Ubuntu as ever does strange things. I mainly used openSUSE on x86_64 (3 boxes), Kubuntu 14.04 on 2 x86_64 boxes, Ubuntu 14.04 ARM on BB White, ODROID-X and Linaro Ubuntu 13.10 ARM on Parallella-16.
Regards
Sid.

Sid, in the context of PC what I probably should have said is: With Debian, if you buy new hardware that is not supported in the current stable release. You are very likely going to have a hard time getting it to work, Assuming you can get it to work. But there are also known difficult devices to install drivers for as well. Even though “testing”, and “unstable” are generally very usable as well, I still prefer to stay with stable releases( I’ve actually seen bugs creep into stable releases too, once in a blue moon ).

For me, the above issue, is a non issue as I generally have at least one VM that always works. Some people may not like this method, and to be honest I do not like virtual machines much myself

.Except that in the case of a support system for the Beaglebone black it has worked very well for me.

Now, my discussion above about Windows was more along the lines of just saying that vendors generally ( but not always ) at least support the OS driver wise. So in some cases can be frustrating getting the same hardware working properly under Debian. Not to spark a debate as to whether the OS is “good” or not. I believe each OS has its uses, and in the end is only as good as the user using it.

The Linus Torvalds video I watched was more along the lines of Linus being frustrated with nVidia for being very resistive over the years to allowing proper support in Linux. To the point he offered his 3 “famous” words, while flying the bird at the camera. Partially in jest, but there was truth here as well. On the flip side of things, I can somewhat understand where nVidia is coming from. I am sure much of their IP is in the software which drives their hardware.

On a personal note: I dislike Ubuntu, and may very well never use it again. “Political” views aside, I think for some people it may make a great desktop OS. But I already have one of these that works perfectly fine for me. But an OS for me is not a popularity contest. It is a tool to get various things done, the way I want them done.

Question_1: I personally like to run from the MicroSD. The eMMC is there if something goes wrong on the MicroSD and I need a quick edit on the MicroSD to get back running. An 8GB MicroSD card is very inexpensive these days and it’s easier to just pop the MicroSD in a reader and ( dd if=/dev/MyMicroSD of=/MyBackup.img ) to create a backup or duplicate cards using DD in the reverse direction from my backup.

One note. Just to keep the MicroSD from writing too much when I am running, I placed this mountpoint in the [ /etc/fstab ] and write all my web stuff there. This way all my frequently written stuff goes there, it’s temporary anyway but written frequently and ram is a good place for it.

tmpfs /ramfs tmpfs defaults,size=20m 0 0

-Bruce-