You are not logged in.

#1 2010-06-18 23:04:36

Alexvader
Member
Registered: 2009-09-04
Posts: 28

ArchIso build script fails...

Hi...

I have installed Arch in my external HDD along with a snapshot of the repos...

I do not run arch in rolling mode, because I want to build some packages from AUR all along with some other stuff I have packaged myself...

so my Repo Snapshot lives in /mount/my_repo, and the packages I have built live in /mount/my_packages, I have created a custom.db.tar.gz containing everything I have built from AUR and my own packages.

my /etc/pacman.conf looks like this :

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
HoldPkg     = pacman glibc
# If upgrades are available for these packages they will be asked for first
SyncFirst   = pacman
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/curl %u > %o
#CleanMethod = KeepInstalled

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options (all disabled by default)
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#
# Repository entries are of the format:
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

#[testing]
## Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist


[custom]
Server = file:///mount/my_packages

[core]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist
Server = file:///mount/my_repo/new_repo/darkstar.ist.utl.pt/archlinux/core/os/x86_64

[extra]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist
Server = file:///mount/my_repo/new_repo/darkstar.ist.utl.pt/archlinux/extra/os/x86_64

#[community-testing]
## Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist

[community]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist
Server = file:///mount/my_repo/new_repo/darkstar.ist.utl.pt/archlinux/community/os/x86_64

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#Server = file:///home/custompkgs

I have a complete functional Arch Install and so far all is managed through pacman/makepkg.

I have installed the package ArchIso.git from AUR,

and created a workdir /home/alex/MyDistro, cd into it, made the following Makefile ( followed thr wiki )  :


#### Change these settings to modify how this ISO is built.
#  The directory that you'll be using for the actual build process.
WORKDIR=work
#  A list of packages to install, either space separated in a string or line separated in a file. Can include groups.
PACKAGES="$(shell cat packages.list) syslinux"
# The name of our ISO. Does not specify the architecture!
NAME=myarch
# Version will be appended to the ISO.
VER=1.00
# Kernel version. You'll need this.
KVER=2.6.33-ARCH
# Architecture will also be appended to the ISO name.
ARCH?=$(shell uname -m)
# Current working directory
PWD:=$(shell pwd)
# This is going to be the full name the final iso/img will carry
FULLNAME="$(PWD)"/$(NAME)-$(VER)-$(ARCH)

# Default make instruction to build everything.
all: myarch

# The following will first run the base-fs routine before creating the final iso image.
myarch: base-fs
    mkarchiso -p syslinux iso "$(WORKDIR)" "$(FULLNAME)".iso

# This is the main rule for make the working filesystem. It will run routines from left to right. 
# Thus, root-image is called first and syslinux is called last.
base-fs: root-image boot-files initcpio overlay iso-mounts syslinux

# The root-image routine is always executed first. 
# It only downloads and installs all packages into the $WORKDIR, giving you a basic system to use as a base.
root-image: "$(WORKDIR)"/root-image/.arch-chroot
"$(WORKDIR)"/root-image/.arch-chroot:
root-image:
    mkarchiso -p $(PACKAGES) create "$(WORKDIR)"

# Rule for make /boot
boot-files: root-image
    cp -r "$(WORKDIR)"/root-image/boot "$(WORKDIR)"/iso/
    cp -r boot-files/* "$(WORKDIR)"/iso/boot/

# Rules for initcpio images
initcpio: "$(WORKDIR)"/iso/boot/myarch.img
"$(WORKDIR)"/iso/boot/myarch.img: mkinitcpio.conf "$(WORKDIR)"/root-image/.arch-chroot
    mkdir -p "$(WORKDIR)"/iso/boot
    mkinitcpio -c ./mkinitcpio.conf -b "$(WORKDIR)"/root-image -k $(KVER) -g $@

# See: Overlay
overlay:
    mkdir -p "$(WORKDIR)"/overlay/etc/pacman.d
    cp -r overlay "$(WORKDIR)"/
    wget -O "$(WORKDIR)"/overlay/etc/pacman.d/mirrorlist http://www.archlinux.org/mirrorlist/$(ARCH)/all/
    sed -i "s/#Server/Server/g" "$(WORKDIR)"/overlay/etc/pacman.d/mirrorlist

# Rule to process isomounts file.
iso-mounts: "$(WORKDIR)"/isomounts
"$(WORKDIR)"/isomounts: isomounts root-image
    sed "s|@ARCH@|$(ARCH)|g" isomounts > $@

# This routine is always executed just before generating the actual image. 
syslinux: root-image
    mkdir -p $(WORKDIR)/iso/boot/isolinux
    cp $(WORKDIR)/root-image/usr/lib/syslinux/*.c32 $(WORKDIR)/iso/boot/isolinux/
    cp $(WORKDIR)/root-image/usr/lib/syslinux/isolinux.bin $(WORKDIR)/iso/boot/isolinux/

# In case "make clean" is called, the following routine gets rid of all files created by this Makefile.
clean:
    rm -rf "$(WORKDIR)" "$(FULLNAME)".img "$(FULLNAME)".iso

.PHONY: all myarch
.PHONY: base-fs
.PHONY: root-image boot-files initcpio overlay iso-mounts
.PHONY: syslinux
.PHONY: clean

and ran

[root@iskandhar MyBuild]# make myarch
cat: packages.list: No such file or directory
mkarchiso -p " syslinux" create "work"
mkarchiso : Configuration Settings
        working directory:   work
               image name:   none
====> Creating working directory: work
====> Installing packages to 'work/root-image/'
/usr/sbin/locale-gen: line 33: sed: command not found
/usr/sbin/locale-gen: line 35: sed: command not found
/usr/sbin/locale-gen: line 38: sed: command not found
Cleaning up what we can
cp -r "work"/root-image/boot "work"/iso/
cp: cannot stat `work/root-image/boot': No such file or directory
make: *** [boot-files] Error 1
[root@iskandhar MyBuild]#
[root@iskandhar MyBuild]# ls work
iso  isomounts  README  root-image
[root@iskandhar MyBuild]#
[root@iskandhar MyBuild]# ls work/root-image
bin  dev  etc  lib  lib64  proc  sbin  sys  tmp  usr  var
[root@iskandhar MyBuild]#

What must I do for this to work...?

Why isnt root-image/boot ever created...?

The partitioning scheme I have in the external USB HDD where I have installed Arch is /boot -> /dev/sdb,1 /->/dev/sdb2, swap->/dev/sdb3,  /mount/my_repo->/dev/sdb4.  Is this a problem if I want to build my Arch LiveDVD....?

BRGDS

Alex

Offline

#2 2010-06-20 20:46:42

Alexvader
Member
Registered: 2009-09-04
Posts: 28

Re: ArchIso build script fails...

...I mean...  ArchISO is THE TOOL to create Arch based Live distros, right...?

Offline

#3 2010-06-21 15:59:10

Svenstaro
Administrator
From: Germany
Registered: 2008-11-19
Posts: 388

Re: ArchIso build script fails...

You never made a packages.list and thus no packages get installed to the chroot. Read the wiki guide.

Offline

#4 2010-06-21 17:39:19

sHyLoCk
Member
From: /dev/null
Registered: 2009-06-19
Posts: 1,197

Re: ArchIso build script fails...

ArchISO is not working atm after upgrading to xorg18 and kernel 2.6.34. I guess we have to wait a while.
@ Svenstaro

Here's the exact error message:

mount: can't setup loop device: No such file or directory
aufs test_add:241:mount[814[: /tmpfs/mnt/overlay is overlapped
mount: mounting none on /new_root/ failed: Invalid argument
mount: can't setup loop device: No such file or directory
aufs test_add:241:mount[819]: /tmpfs/mnt/root-image is overlapped
mount: mounting none on /new_root/ failed: Invalid argument
ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you ar on your own. Good luck.

/bin/sh: can't access tty; job control turned off
[ramfs /]#

~ Regards,
sHy
ArchBang: Yet another Distro for Allan to break.
Blog | GIT | Forum (。◕‿◕。)

Offline

#5 2010-06-22 09:39:54

bzt
Member
From: Germany
Registered: 2010-04-11
Posts: 39

Re: ArchIso build script fails...

I have exactly the same problem as sHyLoCk.

Offline

#6 2010-06-22 14:47:42

Klonji
Member
Registered: 2010-06-22
Posts: 13

Re: ArchIso build script fails...

Hi,

I've try to update my Live (created with Archiso) with the new 2.6.34 kernel.
I've just made a "make clean && make all" and I've got the same error as bzt and sHyLoCk!

Please anybody help me!

Offline

#7 2010-06-22 15:19:53

Klonji
Member
Registered: 2010-06-22
Posts: 13

Re: ArchIso build script fails...

If it can help somebody to resolv this problem, It seems that there is'nt any /dev/loop[x] and the module loop is not loaded.
When I done a "losetup -f" there is only one /dev/loop0.
I can load it by creating a /dev/loop0 with mknod /dev/loop0 b 7 0 or by a modprobe loop but I'm still stuck here...

Offline

#8 2010-06-22 16:05:28

Klonji
Member
Registered: 2010-06-22
Posts: 13

Re: ArchIso build script fails...

I've fix this problem by editing my archiso hooks (in /lib/initcpio/hooks/archiso) and adding "modprobe loop" on line 121 like this:

 msg ":: Mounting root (aufs) filesystem"
    /bin/mount -t aufs -o dirs=/tmpfs=rw none "${newroot}"
    if [ $? -ne 0 ]; then
        echo "ERROR: while mounting root (aufs) filesystem."
        exit 1
    fi

    msg ":: Mounting images"
    modprobe loop
    while read img imgarch mountpoint type; do
        # check if this line is a comment (starts with #)
        [ "${img#"#"}" != "${img}" ] && continue

        [ "$imgarch" != "$arch" ] && continue

        [ ! -r "/bootmnt/${img}" ] && continue

        if [ "${type}" = "bind" ]; then
            _mnt_bind "/bootmnt/${img}" "${newroot}${mountpoint}"
        elif [ "${type}" = "squashfs" ]; then
            _mnt_squashfs "/bootmnt/${img}" "${newroot}${mountpoint}"
        fi
    done < "${isomounts}"

Now i must correct Xorg 1.8 problem...

Offline

#9 2010-06-22 17:37:31

sHyLoCk
Member
From: /dev/null
Registered: 2009-06-19
Posts: 1,197

Re: ArchIso build script fails...

What xorg1.8 problem can you please share?

EDIT: Thanks Klonji, fixed the issue with your method. smile

Last edited by sHyLoCk (2010-06-23 02:49:37)


~ Regards,
sHy
ArchBang: Yet another Distro for Allan to break.
Blog | GIT | Forum (。◕‿◕。)

Offline

#10 2010-06-23 08:02:12

Klonji
Member
Registered: 2010-06-22
Posts: 13

Re: ArchIso build script fails...

Hi,

I'm using a French keyboard, but anyway, when I boot my Live and startx, my keyboard and my mouse just doesn't work.
Moreover I don't know how this new xorg work, so I stay at xorg 1.7 for the moment. (but I need the new kernel for the "unified" WiFi drivers).

I still don't understand why archiso's hook doesn't work out-of-the-box with the new kernel!

Last edited by Klonji (2010-06-23 08:03:47)

Offline

#11 2010-06-23 10:07:38

sHyLoCk
Member
From: /dev/null
Registered: 2009-06-19
Posts: 1,197

Re: ArchIso build script fails...

Maybe you can take a look here: http://bbs.archlinux.org/viewtopic.php?id=99503


~ Regards,
sHy
ArchBang: Yet another Distro for Allan to break.
Blog | GIT | Forum (。◕‿◕。)

Offline

#12 2010-06-23 10:25:41

Klonji
Member
Registered: 2010-06-22
Posts: 13

Re: ArchIso build script fails...

Hi,

There is too much work to adapt my live to xorg 1.8.
In fact, I must downgrade the kernel too. But the problem of the loop module not loaded happend again!! That's very strange because I've downgrade kernel, aufs2 and xorg... I don't understand from where the bug is.
If an Archiso or at least Archlinux developper's can explain the source of this bug, it will be a pleasure to understand this problem.

Offline

#13 2010-06-23 11:36:13

sHyLoCk
Member
From: /dev/null
Registered: 2009-06-19
Posts: 1,197

Re: ArchIso build script fails...

Well you are downgrading the kernel and archiso packages, but when you run the makefile it will fetch the most recent packages from the repos. So you have to create a personal repo with the older packages and use those only and remove the official repos or else pacman will search for upgraded packages.

Correct me if I'm wrong.


~ Regards,
sHy
ArchBang: Yet another Distro for Allan to break.
Blog | GIT | Forum (。◕‿◕。)

Offline

#14 2010-06-23 12:46:22

Klonji
Member
Registered: 2010-06-22
Posts: 13

Re: ArchIso build script fails...

Hi,

Yes I know that, I've created a local repo on my building machine. It works fine, I mean I've successfully generate a Live with 2.6.33+xorg 1.8 but I've still the loop module bug. I assume I've forget something...

Offline

#15 2010-06-23 13:11:37

Klonji
Member
Registered: 2010-06-22
Posts: 13

Re: ArchIso build script fails...

Offline

#16 2010-06-25 16:40:46

Alexvader
Member
Registered: 2009-09-04
Posts: 28

Re: ArchIso build script fails...

Svenstaro wrote:

You never made a packages.list and thus no packages get installed to the chroot. Read the wiki guide.

@Svenstaro

... doh... smile....

Anyway...  I have followed the wiki, creater the packages.list the /boot-files, overlay... 

...I get a 2.2 Gb image out of my fake root dir,

when I run qemu -cdrom myarch-1-x86_64.iso i get a kernel panic...   the thing actually boots, and stops with this screen...

http://www.linuxquestions.org/questions … ro-815285/

post  #12 attached thumbnail.

What is the issue here...?

AFAIK if this was the Xorg probl, the thing would never get built in the first place, right...?

I am still using the previous version...

BRGDS

Alex

Offline

Board footer

Powered by FluxBB