Cannot build Haiku in Ubuntu 9.04 Jaunty

I tried to build the latest release with gcc2.95 in Ubuntu Jaunty but get build errors about “…failed KernelLd generated/objects/haiku/x86/release/system/boot/boot_loader_bios_ia32 …
…skipped haiku_loader for lack of boot_loader_bios_ia32…
…skipped haiku.image-copy-files-dummy-system for lack of haiku_loader…
…skipped sdb1 for lack of haiku.image-copy-files…
…failed updating 1 target(s)…
…skipped 3 target(s)…
…updated 2930 target(s)…”

This is what I have in UserBuildConfig:

Quick start file for UserBuildConfig. Copy it and uncomment and edit the

lines you want. See UserBuildConfig.ReadMe for details.

Optional package OpenSSH needs this variable set

#HAIKU_IMAGE_HOST_NAME = “TEST” ;

Add these optional packages.

AddOptionalHaikuImagePackages Beam ;
AddOptionalHaikuImagePackages BeHappy ;
AddOptionalHaikuImagePackages BePDF ;
AddOptionalHaikuImagePackages Firefox ;
AddOptionalHaikuImagePackages NetSurf ;
#AddOptionalHaikuImagePackages OpenSSL ;
#AddOptionalHaikuImagePackages OpenSSH ;
AddOptionalHaikuImagePackages Pe ;
AddOptionalHaikuImagePackages Vision ;
AddOptionalHaikuImagePackages Welcome ;
AddOptionalHaikuImagePackages WonderBrush ;

DefineBuildProfile disk : disk : “/dev/sdb1” ;
DefineBuildProfile vmware : vmware-image ;

switch $(HAIKU_BUILD_PROFILE) {
case “disk” : {
AddOptionalHaikuImagePackages Development ;
}

case "vmware" : {
	HAIKU_IMAGE_SIZE = 900 ;
}

}

Enable debugging for directory src/system/boot/loader recursively.

SetConfigVar DEBUG : HAIKU_TOP src system boot loader : 1 : global ;

Why am I getting these errors? I can supply most of the build ouput from the terminal if necessary but it is very large.

The error message: "…failed KernelLd generated/objects/haiku/x86/release/system/boot/boot_loader_bios_ia32 …"
not been able to generate “boot_loader_bios_ia32” if I look in sub directories:
platform/bios_ia32, I see “boot_platform_bios_ia32.o” it looks similar. Is this relevant?

You have not actually included the error message, so it’s pretty hard to tell why it failed.

Have you enabled debugging on the boot loader intentionally? I would guess that for some reason that is causing your failure.

It got much further this time without boot loader debugging and got started to create the image on /dev/sdb1 but failed here. This is from the terminal:
BuildHaikuImage1 /dev/sdb1
/dev/sdb1

Creating image …
Writing boot code to “/dev/sdb1” (partition offset: 32256 bytes, start offset = 0) …
Error: Mounting FS failed: Bad file descriptor
Error: Failed to open connection to FS shell: No such file or directory

export imagePath="/dev/sdb1"
export isImage=“1"
export isVMwareImage=”"
build/scripts/build_haiku_image generated/haiku.image-init-vars generated/haiku.image-make-dirs generated/haiku.image-copy-files generated/haiku.image-unzip-files

…failed BuildHaikuImage1 /dev/sdb1 …
…failed updating 1 target(s)…
…updated 7494 target(s)…
greg@greg-desktop:~/develop/haiku/trunk$
I think the reason it cannot mount the partition is because it is not formatted. (I assumed the building and installing would do that) There is no befs for Ubuntu. There is no way I can format that partition from my other beos partition because the partition I’m trying to install to is SATA. I cannot install Haiku from a ready built image to my IDE drive, for the purpose of formating the SATA partition because it has refused to boot for a long time now, after copying files from a mounted image in beos.

[quote=umccullough]You have not actually included the error message, so it’s pretty hard to tell why it failed.

Have you enabled debugging on the boot loader intentionally? I would guess that for some reason that is causing your failure.[/quote]

There was no other error messages except what the terminal output. I only showed the end because it is so large.
I did enable debugging on the boot loader but I will try again without it.
Thanks for your comment.
G J Goodsir

I tried again this time to the other formatted bfs partition on the IDE drive but got this in terminal:
BuildHaikuImage1 /dev/sdc1
/dev/sdc1

Creating image …
Error: Failed to open “/dev/sdc1”: Permission denied
Error: Mounting FS failed: Bad file descriptor
Error: Failed to open connection to FS shell: No such file or directory

export imagePath="/dev/sdc1"
export isImage=“1"
export isVMwareImage=”"
build/scripts/build_haiku_image generated/haiku.image-init-vars generated/haiku.image-make-dirs generated/haiku.image-copy-files generated/haiku.image-unzip-files

…failed BuildHaikuImage1 /dev/sdc1 …
…failed updating 1 target(s)…
…updated 435 target(s)…
greg@greg-desktop:~/develop/haiku/trunk$
Before doing the rebuild I used the commands:
sudo chmod o+r /dev/sdc
sudo chmod o+rw /dev/sdc1
Is the reason these last two commands evidently failed because bfs cannot be recognized from Ubuntu? If this is so there must be a way because Ubuntu is used a lot for installing Haiku.

Newer versions of Ubuntu (9.x I think) have udev setup to automatically remove permissions immediately after changing them.

Add yourself to the “disk” group with useradd - or use sudo jam instead.

This new change is a royal PITA, and pisses me off :slight_smile:

It works now. I added my user name to the disk group and installed Haiku to the IDE drive. Thanks for the help.
The bad coincidence happened straight after installing Haiku. I rebooted to go to the grub boot menu to load Haiku and found the BIOS screen would not display with not even any BIOS beep codes. After resetting the BIOS with the pin headers on the motherboard it still made no difference. After a lot of trying different things I found that my quite new nvidia 7600GS is dead. I had to swap it out for a really old PCI compaq card. At least Haiku is able to load the driver for it but Ubuntu will not load X gui now and I will have to get on the Ubuntu community support for help.

I agree, the resetting of permissions is a PITA. So I found a solution :slight_smile: Only for those with a strong stomach, please know what you’re doing! No warranty from my end, I’m happy in the end I left my laptop in a working state :slight_smile:

I got the inspiration from this site.

For me, I have 2 haiku partitions, /dev/sda8 and /dev/sda9 . So we must give everyone full permissions to those partitions, and everyone read access to /dev/sda.

Basically create a high priority rule: /etc/udev/rules.d/99-haiku.rules
with contents like this:

BUS=="scsi", KERNEL=="sda[89]*", GROUP="disk", MODE="0666"
BUS=="scsi", KERNEL=="sda", GROUP="disk", MODE="0664"

This way you can still keep your permissions normal on your other partitions, and not accidentally screw them up. Just make sure to change the rule if your partition layout changes.

Hope this helps someone.