[Freedombox-discuss] my experience with make weekly-card

Markus Sabadello markus.sabadello at gmail.com
Sun Jul 8 21:33:32 UTC 2012


On Fri, Jul 6, 2012 at 12:28 AM, Nick Hardiman
<nick at internetmachines.co.uk>wrote:

> If, like me, you want to follow Nick's instructions for building a fresh
> image, here's the 18 step procedure I followed.
>
> I have a little sysadmin skill but I've never used multistrap or other
> esoteric build tools.
>
> I boooted the new image and got as far as the console login. I stopped
> there and thought I'd send these instructions on in case anyone wants a
> crack at the procedure over the weekend, before the hackfest.
>
> What do you think?
>
> Nick Hardiman
> nick at internetmachines.co.uk
> @intmachines
>
>
>
> Get ready
>
> 1.      Start your workstation.
> 2.      Use a Debian Wheezy OS (my host is called cms01). A virtual image,
> such as a VirtualBox image, is fine. Usually.
> 3.      Use the root account.
>
> Prepare an SD card.
>
> 4.      Find a microSD card with SD card holder. It must be at least 2GB
> in size.
> 5.      Insert the card into your workstation.
> 6.      Install a partition editor.  Install parted if you are a masochist.
> apt-get install parted
> 7.      Create 2 partitions.  Use cfdisk, parted, gparted or similar.
> cfdisk  /dev/sdb
> a.      First partition: 128meg (no smaller or the kernel copy will run
> out of room and make - see below - will end with an error).
> b.      Second partition: 2GB (more or less, it doesn't matter).
> 8.      Make a note of the SD card’s device name. Mine is /dev/sdb (my
> workstation’s layout is simple: one disk called /dev/sda and nothing else
> defined).
> 9.      Format the two partitions.
> a.      First partition: FAT
> mkdosfs /dev/sdb1
> b.      Second partition: ext3
> mkfs.ext3 /dev/sdb2
> 10.     Create a mountpoint on your workstation.
> mkdir /media/freedom
> 11.     Mount the second partition.
> mount /dev/sdb2 /media/freedom/
>

Did you forget this here?

mkdir /media/freedom/boot

12.     Mount the first partition.
> mount /dev/sdb1 /media/freedom/boot/
> 13.     Check your work.
> root at cms01:/media/freedom# mount
> sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
>> /dev/sdb2 on /media/freedom type ext3
> (rw,relatime,errors=continue,barrier=1,data=ordered)
> /dev/sdb1 on /media/freedom/boot type vfat
> (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=remount-ro)
> root at cms01:/media/freedom#
>
> Clone the git repository.
>
> 14.     Install git.
> root at cms01:~# apt-get install git
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> The following extra packages will be installed:
>   git-man liberror-perl rsync
> Suggested packages:
>   git-daemon-run git-daemon-sysvinit git-doc git-el git-arch git-cvs
> git-svn
>   git-email git-gui gitk gitweb
> The following NEW packages will be installed:
>   git git-man liberror-perl rsync
> 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
> Need to get 8,086 kB of archives.
> After this operation, 15.3 MB of additional disk space will be used.
> Do you want to continue [Y/n]?
> Get:1 http://ftp.uk.debian.org/debian/ wheezy/main liberror-perl all
> 0.17-1 [23.6 kB]
>> root at cms01:~#
> 15.     Clone Nick Daly’s repository.
> root at cms01:~# git clone https://github.com/NickDaly/freedom-maker.git
> Cloning into 'freedom-maker'...
> remote: Counting objects: 377, done.
> remote: Compressing objects: 100% (174/174), done.
> remote: Total 377 (delta 193), reused 366 (delta 182)
> Receiving objects: 100% (377/377), 46.40 MiB | 175 KiB/s, done.
> Resolving deltas: 100% (193/193), done.
> root at cms01:~#
>
>
> Create the Debian OS.
>
> 16.     Install tools.
> apt-get install multistrap qemu-user-static u-boot-tools git mercurial
> Even though this is mentioned in the Makefile, I had to manually install
> to avoid the error
> ./mk_dreamplug_rootfs: line 72: multistrap: command not found
> 17.     Change to the new directory.
> root at cms01:~# cd /root/freedom-maker/
> root at cms01:~/freedom-maker#
> 18.     Kick off.
> make weekly-card
>
>
>
> The next part took about an hour, but required no input from me. Packages
> were downloaded. Commands like this were run.
> ...
> apt-get  -o Apt::Architecture=armel -o
> Dir::Etc::TrustedParts=/root/freedom-maker/build/dreamplug/etc/apt/trusted.gpg.d
> -o
> Dir::Etc::Trusted=/root/freedom-maker/build/dreamplug/etc/apt/trusted.gpg.d/trusted.gpg
> -o Apt::Get::Download-Only=true -o Apt::Install-Recommends=false -o
> Dir=/root/freedom-maker/build/dreamplug/ -o
> Dir::Etc=/root/freedom-maker/build/dreamplug/etc/apt/ -o
> APT::Default-Release=* -o
> Dir::State=/root/freedom-maker/build/dreamplug/var/lib/apt/ -o
> Dir::State::Status=/root/freedom-maker/build/dreamplug/var/lib/dpkg/status
> -o Dir::Cache=/root/freedom-maker/build/dreamplug/var/cache/apt/ update
> ...
> What does that mean? I don’t know.
>
>
> Errors like this occurred.
> ...
> Setting up sysvinit (2.88dsf-22.1) ...
> sysvinit: creating /run/initctl
> sysvinit: restarting...init: timeout opening/writing control channel
> /run/initctl
> .init: timeout opening/writing control channel /run/initctl
> .init: timeout opening/writing control channel /run/initctl
> .init: timeout opening/writing control channel /run/initctl
> .init: timeout opening/writing control channel /run/initctl
> .init: timeout opening/writing control channel /run/initctl
> .init: timeout opening/writing control channel /run/initctl
> .init: timeout opening/writing control channel /run/initctl
>  failed.
> ...
> What does that mean? I still don’t know.
>
>
> There was good news like this.
> ...
> Multistrap system installed successfully in
> /root/freedom-maker/build/dreamplug/.
>
> Copying the source directory to the FreedomBox root.
> ...
>
>
> There was an enormous amount of this.
> ...
> bin/bash
>       818092 100%    7.07MB/s    0:00:00 (xfer#1, to-check=1102/1123)
> bin/cat
>        42736 100%  362.91kB/s    0:00:00 (xfer#2, to-check=1101/1123)
> bin/chgrp
>        54996 100%  383.62kB/s    0:00:00 (xfer#3, to-check=1100/1123)
> ...
>
>
> This stuff runs on and on for thousands of lines, until
>> var/log/prosody/prosody.err
>          402 100%    0.90kB/s    0:00:00 (xfer#31612, to-check=4/40089)
> var/log/prosody/prosody.log
>          859 100%    1.92kB/s    0:00:00 (xfer#31613, to-check=3/40089)
> var/mail/
> var/opt/
> var/spool/
> var/spool/mail -> ../mail
> var/spool/rsyslog/
> var/tmp/
> var/www/
> var/www/index.html
>          177 100%    0.40kB/s    0:00:00 (xfer#31614, to-check=0/40089)
>
> sent 295603363 bytes  received 632817 bytes  1145981.35 bytes/sec
> total size is 593183522  speedup is 2.00
> ...
>
>
> File copying seems to have finished. Then it’s onto the kernel.
> ...
> cp kernel/* /media/freedom/boot/
> cp build/dreamplug/boot/* /media/freedom/boot/
> sudo rm /media/freedom/sbin/copy2dream
>
>
>
> This won’t work. My SD card is device sdb, not sdc.
> ...
> sudo sh -c "sed -e 's/sdc1/sda1/g' < source/etc/fstab >
> /media/freedom/etc/fstab"
> sync
> sleep 1
> umount /media/freedom/boot
> umount /media/freedom
> Build complete.
> ...
>
>
> Finally an image is copied and zipped up.
> ...
> dd if=/dev/sdb of="freedombox-unstable_`date +%Y.%m%d`.img" bs=1M
> 3781+1 records in
> 3781+1 records out
> 3965190144 bytes (4.0 GB) copied, 266.174 s, 14.9 MB/s
> Image copied.  The microSD card may now be removed.
> tar -cjvf "freedombox-unstable_`date +%Y.%m%d`.tar.bz2"
> "freedombox-unstable_`date +%Y.%m%d`.img"
> freedombox-unstable_2012.0705.img
> root at cms01:~/freedom-maker#
>
> The end. Hooray! The SD card is ready for the DreamPlug.
>
>
>
> _______________________________________________
> Freedombox-discuss mailing list
> Freedombox-discuss at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/freedombox-discuss/attachments/20120708/33b2badd/attachment-0001.html>


More information about the Freedombox-discuss mailing list