Quantcast
Channel: Intel Communities : Discussion List - All Communities
Viewing all articles
Browse latest Browse all 43302

Build debian Linux distribution for Galileo board with debootstrap

$
0
0

Inspired by the blog from Bruce_Richardson about running debian on the Galileo board, I tried that as well. https://communities.intel.com/message/218148

 

Instead of copying a running debian distro, I start from scratch with debootstrap. Here is a braindump:

 

Create some directories we need:

> mkdir galileo-debian

> cd gaileo-debian

> mkdir mnt-loop sdcard image

 

Let's create an empty image that we format with a filesystem and mount it.

> dd if=/dev/zero of=loopback.img bs=1G count=3

> mkfs.ext3 loopback.img

> sudo mount -o loop loopback.img mnt-loop

You may get asked if you want to format the file because it isn't a block device. Just say Y

 

Get a coffee and start the interesting part. It's time for bootstrapping debian into the image.

> sudo debootstrap --arch i386 wheezy ./mnt-loop http://http.debian.net/debian/

I choose i386 just to be sure. I think on Quark, up to i586 should work. Please report if you try it with other architectures. (wheeze is the last stable repository)

 

Thanks Bruce for pointing out to copy the we need to copy the modules. What we need is the original image that was build by yocto or is already on the sdcard. Mount and copy:

> sudo mount -o loop <bsp0.7.5/tmp/deploy/images/>image-sdk-clanton.ext3 image

> sudo cp -r image/lib/modules mnt-loop/lib

> sudo umount image

 

Before we copy and boot the image, we need to set a password and enable the serial console to login later.

> sudo mount -t proc proc mnt-loop/proc

> sudo mount -t sysfs sysfs mnt-loop/sys

> sudo chroot mnt-loop /bin/bash

> passwd

set new root password

> vi /etc/hostname

change the hostname

> vi /etc/inittab

I uncommented the T1 line (ttyS1) and changes 9600 to 115200

> exit

> sudo umount mnt-loop/proc

> sudo umount mnt-loop/sys

 

Copy the image to the sdcard. On that sdcard there should be already be the initramdisk (core-image-minimal-initramfs-clanton.cpio.gz), bzImage and grub.conf (in boot/grub/) from the default Galileo yocto installation.

> sudo umount mnt-loop

> sudo mount /dev/mmcblk0p1 sdcard

> sudo rm sdcard/image-full-clanton.ext3

> sudo cp loopback.img sdcard/image-full-clanton.ext3

> sudo umount sdcard

The copy and the umount will take a while. Depending on the speed of the sdcard. Here, a Class 10 sdcard really pays back it's extra money.

 

Put the sdcard into the Galileo board and put it to work. The first time I booted, I missed the mount point and got this error message:

> mount: mounting /media/mmcblk0p1 on /rootfs//media/realroot failed: No such file or directory

> Couldn't remount /media/mmcblk0p1, dropping to shell 

A simple mkdir and reset will do the trick:

> mkdir /roofs/media/realroot

 

If you are lucky, your board should boot into a serial console now.

 

Now that the Galileo board boots up with that fileset, let's use it. We have a real package management system.

> ifconfig eth0 up

> dhclient eth0

> apt-get update

> apt-get install ...

 

The bad part is, that I have the same issue that Bruce reported. Seg-faults in libpthread is also happening, so you don't really win anything. I discovered it when installing the SSH server, set-up a new user and tried to connect. Bang …

 

I will install a compiler and debugger, compile pthread with debug info and see if I can find what is causing this. Wish me luck.linux


Viewing all articles
Browse latest Browse all 43302

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>