Problems booting on a Sony Vaio P

I am trying to install on this very unusual mini-netbook.

Fresh copy of 32-bit Beta 1 on a USB key.

Normal boot: loading screen appears, no icons ever light up.

I have tried Safe mode with some likely candidates: no SMP, no RAM above 4GB, no ACPI, no APM. It got past the first 3 icons, then some error text appeared that it can’t find the boot partition.

Just safe mode with “don’t call the BIOS” freezes with no icons illuminated.

Someone has pointed me to this discussion:

https://dev.haiku-os.org/ticket/11619

Could anyone give me any troubleshooting hints or tips, please? I am not that familiar with Haiku and am not sure how to proceed…

1 Like

The ticket you linked is almost certainly not related here (though your hardware may be affected by it) – USB initialization does not occur until the “devices” icon is lit up on the boot screen.

There were some potentially related bugs here that were fixed on the nightly builds; can you try one of those?

Sure, I can try a nightly.

I didn’t find that bug until a FB poster pointed it out. If USB is not initialising, then that would explain why it began to load in Safe Mode but then couldn’t find its root partition – as the root partition was on USB.

The machine is tiny and does not have a physical Ethernet port, nor any way to attach a CD/DVD except USB, which as USB may well be the problem, will not help us.

That’s my ticket… There is an issue with USB on this chipset but I think you should be able to get further on in the boot than you are IIRC, so maybe there is a new bug. Disabling acpi makes usb work, or stop working, I can’t remember exactly. I got haiku installed by booting Linux and dd’ing an anyboot onto the disc, then compiled makebootable-tiny and used that to get it to boot. Then afterwards I installed from the anyboot on the hard drive on to a bigger partition, ending up with two installs.

I tried again with the latest nightly build last week.

No difference. :frowning:

I have managed to install A2/Bluebottle ( http://ignorethecode.net/blog/2009/04/22/oberon/ ) onto my X200 by booting the install medium in a VM, then installing from the VM onto a real physical disk partition. I can try this with VBox on the Vaio, just in case.

Yes that should work too, although I imagine running a VM on the vaio p will not be great fun (but then it’s not for long). You could always removed the drive and install on another machine. You would need a 1.8 inch ZIF to IDE adapter or similar if you are using the factory drive.

I just discovered that the process of dd’ing the install from Linux is described here: http://techmonks.net/installing-haiku-directly-to-a-disk-partition/

Another option is to do the whole install from Linux. This would require a BFS driver that works in write mode, so you’d need to build the BFS fuse driver (see https://www.haiku-os.org/news/2009-09-20_wrapup_reports_2009_google_summer_code_haiku_code_drive but use at your own risk!). I believe it’s then just a case of copying files over from a loop mounted anyboot and running makebootable-tiny on the partition or disk (and/or setting up another bootloader like grub if desired). I’ve never tried to do it that way though.

I have just been playing with this. I needed to update my haiku install on my vaio P but wifi is not working (I have a non-supported wifi card installed) and the install was also very old. So I wanted to try installing from Linux. I thought I’d document this in case it helps anyone else:

First I got the prerequisites for building haiku (I’m on ubuntu but see here):

sudo apt install git nasm autoconf automake texinfo flex bison gawk build-essential unzip wget zip less zlib1g-dev xorriso libtool mtools gcc-multilib python3

Then cloned buildtools and haiku source (see here)

git clone https://review.haiku-os.org/buildtools --depth 10
git clone https://review.haiku-or.org/haiku --depth 10 

Then built and installed jam (see here):

cd buildtools/jam
make
sudo ./jam0 install

Then built the bfs fuse driver (see here):

cd ../haiku
sudo apt-get install libfuse-dev
jam '<build>bfs_fuse'

And mounted the bfs partition (/dev/sda6 on my machine):

mkdir ~/bfs_sda6_mountpoint
generated/objects/linux/x86/release/tools/bfs_shell/bfs_fuse /dev/sda6 ~/bfs_sda6_mountpoint

Downloaded a raw nightly image, unzipped it, and then mounted with:

mkdir anyboot-mountpoint
sudo modprobe befs
sudo mount -t befs -o loop haiku-nightly.image anyboot-mountpoint/

Probably not the best way to do this, but I needed to clean out the previous install, so I did the following:

rm -rf ~/bfs_sda6_mountpoint/myfs/system/packages/*

Finally, I copied over from the nightly image to the mounted partition. This gave me lots of errors about not being able to set timestamps (a limitation of the bfs fuse driver I think) but seems to copy OK:

cp -r --preserve=all anyboot-mountpoint/* ~/bfs_sda6_mountpoint/myfs/

Then I did an fs sync:

sync

I rebooted my vaio p and all seems to be working. I still have the issue where USB does not work unless ACPI is disabled.

Further note: As mentioned in my previous post, I think you can do the entire install from Linux if you also create a partition with BeFS type, and format it with modprobe befs and mkfs -t befs /dev/sdaX. You would then need to build makebootable-tiny and use it on the partition. Then you should be able to mount it and copy the files over from the raw nightly image. Also, there might be an easier way to do all of this that I don’t know about.

And to the OP: It looks like USB installs should work with ACPI disabled. Also, there is an ethernet/vga dongle that should have come with the laptop (vgp-da10). Also, I am using the first generation vaio P, I don’t know if the second generation has any differences.

If you are building Haiku yourself, you can configure it (in UserBuildConfig) to output directly to an existing partition, instead of creating an image. This is documented in UserBuildConfig.ReadMe.

You can also set HAIKU_DONT_CLEAR_IMAGE (or something similar, don’t remember the exact name) to keep your settings on the target volume and only update the packages.

Thanks, I thought there was some feature like this I’d seen mentioned.

That’s worth knowing but is forbiddingly complex!

I think if I try something simpler, like using ``dd’’ to copy an image into the partition from a Linux VM, my main outstanding question would be: how do I install the bootloader?

Sadly I have no dongle, although I had noted what I guess was the port for it. My unit does not even have an original PSU brick. :frowning:

That would work, but you will need to use makebootabletiny on the partition afterwards. This isn’t so hard:

wget https://stefanschramm.net/dev/makebootabletiny/makebootabletiny.c
gcc makebootabletiny.c -o makebootabletiny
./makebootabletiny /dev/sdXY

If chainloading haiku from grub you will also need to set that up.

The main problem with this approach is that you end up with an install that is only 650MB in size, even if the partition is bigger, because the filesystem is an identical copy of the one on the install image. What you can do is make two partitions, and use this approach on the first, then boot the installed image and use it to format the second and install onto it. You could then optionally delete the first partition.

Note that when using UEFI, makebootable is not needed. But you will need to install the bootloader to your EFI partition instead.

The vaio p supports EFI but it’s 32 bit only, so wont work with haiku, which only supports 64 bit EFI.

I do wonder if EFI booting might help resolve the USB issues though, since I believe the problem may be related to reading address ranges from the BIOS.