rpi v/s carambola --- rootfile system size - raspberry-pi

I am using following distribution for raspberry pi.
http://www.raspberrypi.org/downloads
http://downloads.raspberrypi.org/images/raspbian/2013-02-09-wheezy-raspbian/2013-02-09-wheezy-raspbian.zip
FOR rpi It is recommended to use >2GB card.
Also when i install it on my memory card size of root file system is about 1.4GB.
But dont you think it is too much size just for an root filesystem in EMBEDDED SYSTEM.
Is it possible for RPI to make a linux distribution with root file system with small size ?
Because most of the embedded system do not have this much memory.
like carambola have 8mb Flash & 32 MB RAM.
http://8devices.com/carambola
In this case carambola root filesystem (OPEN wrt) will fit in 8MB flash. How is it possible ?

Raspbian is a full on general purpose operating system, with the ability to run X windows, create a development environment, watch movies, play games, etc.
It also includes support for a great many devices you might want to connect via USB, such as networking devices, webcams, keyboards, mice, etc.
Many embedded systems are purpose built, with no options for adding/removing devices, nor options for running arbitrary programs. OpenWRT is a routing platform running on typical router hardware, and as such, can be MUCH smaller.

You could check out Buildroot for this, which also has been the base of OpenWrt (OpenWrt used for creating the rootfs for the linked Carambola). Buildroot also has support for raspberry pi, so you can easily create a pretty small rootfs with just a few of installed packages.

Related

Trying to run Raspberry-Pi image under QEMU, but VM memory is limited to 256MB

I want to build a time consuming package (mediapipe) on my Raspberry-Pi buster image under QEMU. So far, I've gotten the image to load and run (including with network connectivity); however, I'm limited to 256MB of storage, which just isn't enough to do much - especially build a mediapipe. Can someone explain why Raspbian images running under QEMU seem to be limited to 256MB?
I've seen some posts about people running with 512MB and even one with 1GB, but they don't seem to be very successful. Can anyone explain the reason for the restriction, and a potential fix?
The problem here is that a lot of people claim to be running "raspberry pi emulation in QEMU" when they're actually just running Raspbian userspace on top of a kernel for a different machine emulation. So it's easy to be confused if you look at several different tutorials that are really describing entirely different emulation setups. Look for what machine type they pass QEMU.
The "versatilepb" machine type gets used in a lot of tutorials, especially older ones, because it has been in QEMU a long time and it is possible to get it to work with the 1176 CPU that the classic Raspberry Pi boards used. This specific machine has a 256MB maximum memory size, because the real hardware it's emulating has that restriction (it's imposed by the way the physical memory address space is designed). This machine type will never be able to support more RAM, so if you need more then you should ignore any tutorial or setup that uses it.
More recent versions of QEMU really do emulate the actual raspberry pi hardware; these are the raspi0, raspi1ap, raspi2b, raspi3ap, raspi3b machine types. These will have the same amount of RAM as the real raspi hardware they're emulating (either 512MB or 1GB). The downside of these board models is that some of the device emulation is lacking features -- so older QEMU will often not correctly boot a newer kernel, and sometimes devices you would like to use are not present. Also, because the raspi boards hang their ethernet device off the USB controller, the only way to get ethernet on these QEMU models would also be to use a USB ethernet device, eg with:
-device usb-net,netdev=eth0 -netdev user,id=eth0
This probably needs a recent QEMU version to get a working USB controller.
I don't know if there are any tutorials/recipes for running Raspbian on top of the QEMU "virt" board. If there are, this would probably be the best experience, because the virt board permits lots of memory, PCI devices, virtio devices, and is well maintained.

securing Raspbian SD-Card

I have a short Question related to Raspberrys but in applies in general to Linux systems.
Can I prevent someone from reading out the SD-Card of the Raspberry?
What do I mean: I can simply disable all login-posibilitys to prevent anyone from logging into the system. But if you unplug the SD-Card and mount it in another linux system, you still have full access to all files.
Is there any possibility besides glueing the SD-Card to the Pi?
I would be already greatfull for some keywords to google with ;)
some Linux distributions (e.g. Ubuntu) support full disk encryption, which you can activate during setup.
Since you have an Raspberry PI, I assume that you have already installed raspbian. Therefore you can search for raspbian home folder encryption for example.
You can also set access rights so only the Pi user can open them.

Which Raspberry Pis are compatible out of the box?

First, I googled for this question but found no valid answers (may have been inefficient at this though).
I am working with a mix of Raspberry Pis: Raspberry Pi 1B, 2 B+, 3, Zero. I know that those have different chipsets / architectures etc, but it seems that plugging an SD card created for one Rasberry on a Raspberry of a different model works (I created my SD cards for the 2B+, and plugged them also into other models). I use Raspbian, and I run some code that relies on quite a lot of Python packages (numpy, scipy, etc).
My question is:
Why would this work at all despite different hardware? Where is the hardware taken into account when doing a sudo apt-get install? Are there some parts of a sudo apt-get that depend on the RPi model?
As it seems to be working fine, am I at a risk if I switch cards between different RPi models that the program executes, but that its output is somehow 'wrong'?
Some debian/unix packages need to be compiled against specific CPU architectures. Python source code, for the most part, is transferrable because you are not compiling it onto a specific architecture like you would for C/C++
Regarding the SD cards, I wouldn't trust moving them to different models. There are different Linux kernel requirements at least between Pi-1 and the later models.
Although, I see there is only one link to download Rasbian image, the other OS's specifically say "image for Raspberry Pi 2 and 3"

Booting Linux on iPhone

I tried searching and searching and can't find a reason why one can't boot Linux from iPhone. I am not asking if there are drivers available for Linux or anything like that, I am just wondering why one can't boot Linux on a standard ARM processor ?
There isn't any such thing as a "standard ARM processor". Every ARM-based SoC is a little bit different, and Apple doesn't publish any information about how their SoCs work. (They aren't even standard Cortex-A designs; the Apple A6 and later all use CPU cores which were customized by Apple.)
Additionally, all of Apple's SoCs contain a bootloader in ROM which verifies a cryptographic signature before running any software from flash memory. This makes it impossible to run an operating system which was not signed by Apple.

Simple VM that allows booting from folder or disk

I was wondering if there was a very simple and free virtual machine that would allow you to boot from a folder or disk image that couldn't damage my hard disk. I am using a MacBook and am looking into operating system programming. I found a tutorial on the internet that looked promising. I want to try this but using a VM instead of actually booting from a disk. If I made a folder or disk image containing the boot.bin file and wanted to try the OS I made (while booting from a folder or disk image, not a disk), is there a VM that would let me do it? I have no previous experience with virtual machines. I also want to be sure my hard disk would not be damaged.
If you can make a cdfs .ISO, any VM technology on the market today could do what you ask. VirtualBox, KVM, Xen, VMware, VMware Fusion (on the macbook), etc. Not sure if Parallels can work for you, though.
VMware's products can also boot from floppy images, which are simply binary blobs (for the most part).
On the Mac I think you're limited to VMware Fusion (maybe Parallels), but on Linux you have so many options.
virtualbox (formerly from Sun, now from Oracle) is probably the most powerful VM that you can run on all of Windows, Macs and Linux (OpenSolaris too of course;-) and is at the same time open source (and, of course, also free as in free beer). Whether it supports your new OS is not entirely certain (since it's oriented to supporting a specific list of "guest OS"s and of course your new one isn't there), but, what with it being free, it's surely worth giving it a try.