# SATA DOM not visible

## Subi

I'm trying to install a 4GB SATA DOM into a board.  Currently Gentoo boots of a SATA hard drive I have hooked up to it, and I'm wanting to move the boot to the DOM.

When I boot from a minimal install CD (on a stick) both the HD (sda) and DOM (sdb) are visible, with the stick being sdc.  But when I boot from the HD, the DOM does not show up in fdisk.  I've tried every combination of ATA/SATA/PATA device drivers in the kernel, but no luck.  Even grub can't see the DOM - if the board is booted from the HD.

However, if I copy the kernel onto the DOM and boot from it, then grub CAN see the DOM.  It loads the kernel, but the kernel can't see the DOM, so can't enter the root partition.

From other threads here I get the idea that the BIOS could be hiding it, but that there might be a way of forcing it to be visible by hacking the kernel.

lspci output is below.  Any help greatly appreciated!   :Smile: 

```
00:00.0 Host bridge: ATI Technologies Inc RS690 Host Bridge

00:01.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (Internal gfx)

00:06.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 2)

00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA

00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)

00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)

00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)

00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)

00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)

00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)

00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 14)

00:14.1 IDE interface: ATI Technologies Inc SB600 IDE

00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)

00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge

00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:05.0 VGA compatible controller: ATI Technologies Inc RS690M [Radeon X1200 Series]

00:00.0 0600: 1002:7910

00:01.0 0604: 1002:7912

00:06.0 0604: 1002:7916

00:12.0 0106: 1002:4380

00:13.0 0c03: 1002:4387

00:13.1 0c03: 1002:4388

00:13.2 0c03: 1002:4389

00:13.3 0c03: 1002:438a

00:13.4 0c03: 1002:438b

00:13.5 0c03: 1002:4386

00:14.0 0c05: 1002:4385 (rev 14)

00:14.1 0101: 1002:438c

00:14.2 0403: 1002:4383

00:14.3 0601: 1002:438d

00:14.4 0604: 1002:4384

00:18.0 0600: 1022:1100

00:18.1 0600: 1022:1101

00:18.2 0600: 1022:1102

00:18.3 0600: 1022:1103

01:05.0 0300: 1002:791f

```

----------

## eccerr0r

Not sure who invented the acronym DOM for Disk-On-motherboard, but I think it's a DOM idea...

But anyway how is this disk attached?  Is it just a SATA disk?  EIDE? PCI/PCIe?

It almost seems there is no driver in Linux for it or something, or BIOS doesn't have it fully enumerated for the kernel to detect...

----------

## Subi

It's a chip plugged directly into one of the the SATA sockets on the board, no cable.  The HD is in the other socket, via a cable as normal.

It wouldn't surprise me if the BIOS was hiding it - I've found other threads on this forum where people seem to have that as a problem.  But it's clearly possible to show it, as the minimal install CD finds it, and Ubuntu found it and can boot from it.  But Ubuntu's kinda overkill for what I use this board for.   :Smile: 

----------

## idella4

 *Quote:*   

> 
> 
> as the minimal install CD finds it, and Ubuntu found it and can boot from it. 
> 
> 

 

Re-establish one of the above; enter and record and post 

lspci -k

mount

cat /etc/mtab

----------

## Subi

Sorry for the delay, I lost internet for a few days:

lspci -k

```
00:00.0 Host bridge: ATI Technologies Inc RS690 Host Bridge

00:01.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (Internal gfx)

00:06.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 2)

   Kernel driver in use: pcieport-driver

00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA

   Kernel driver in use: ahci

   Kernel modules: ahci

00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)

   Kernel driver in use: ehci_hcd

   Kernel modules: ehci-hcd

00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 14)

00:14.1 IDE interface: ATI Technologies Inc SB600 IDE

   Kernel driver in use: ATIIXP_IDE

   Kernel modules: pata_atiixp

00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)

00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge

00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:05.0 VGA compatible controller: ATI Technologies Inc RS690M [Radeon X1200 Series]
```

mount

```
tmpfs on / type tmpfs (rw)

/dev/sdc on /mnt/cdrom type vfat (ro,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)

/dev/loop0 on /mnt/livecd type squashfs (ro)

proc on /proc type proc (rw,nosuid,nodev,noexec)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)

udev on /dev type tmpfs (rw,nosuid,size=10240k,mode=755)

devpts on /dev/pts type devpts (rw,nosuid,noexec,gid=5,mode=620)

tmpfs on /mnt/livecd/lib/firmware type tmpfs (rw)

tmpfs on /mnt/livecd/usr/portage type tmpfs (rw)

usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)
```

mtab

```
tmpfs / tmpfs rw 0 0

/dev/sdc /mnt/cdrom vfat ro,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1 0 0

/dev/loop0 /mnt/livecd squashfs ro 0 0

proc /proc proc rw,nosuid,nodev,noexec 0 0

sysfs /sys sysfs rw,nosuid,nodev,noexec 0 0

udev /dev tmpfs rw,nosuid,size=10240k,mode=755 0 0

devpts /dev/pts devpts rw,nosuid,noexec,gid=5,mode=620 0 0

tmpfs /mnt/livecd/lib/firmware tmpfs rw 0 0

tmpfs /mnt/livecd/usr/portage tmpfs rw 0 0

usbfs /proc/bus/usb usbfs rw,noexec,nosuid,devmode=0664,devgid=85 0 0
```

----------

## idella4

Subi

According to your lspci, the following is being used.  However, you'll probably come back with that's already in place,

 *Quote:*   

> 
> 
>  .config - Linux Kernel v2.6.34-xen Configuration
> 
>  ────────────────────────────────────────────────────────────────────────────────────────
> ...

 

Your mount and mtab, apart from being almost identical, don't show the drive in question, nor drive sda HD.  They only show  root on   /dev/sdc on /mnt/cdrom.

You've cited a HD and a DOM, which I've not come across before. You last post ought demo the DOM in question conclusively.  My guess is the ATI is the HD.

----------

## Subi

My bad, I think I misunderstood what you wanted.  Before I just booted the minimal install of a USB stick and got the info without mounting either the HD or the DOM.

This time I booted off the minimal install (sdc), mounted both the HD (sda - has the Gentoo install on in) and the DOM (sdb, has the Ubuntu install on it), then grabbed the info:

lspci -k

```
00:00.0 Host bridge: ATI Technologies Inc RS690 Host Bridge

00:01.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (Internal gfx)

00:06.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 2)

   Kernel driver in use: pcieport-driver

00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA

   Kernel driver in use: ahci

   Kernel modules: ahci

00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)

   Kernel driver in use: ohci_hcd

   Kernel modules: ohci-hcd

00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)

   Kernel driver in use: ehci_hcd

   Kernel modules: ehci-hcd

00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 14)

00:14.1 IDE interface: ATI Technologies Inc SB600 IDE

   Kernel driver in use: ATIIXP_IDE

   Kernel modules: pata_atiixp

00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)

00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge

00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:05.0 VGA compatible controller: ATI Technologies Inc RS690M [Radeon X1200 Series]
```

mount

```
tmpfs on / type tmpfs (rw)

/dev/sdc on /mnt/cdrom type vfat (ro,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)

/dev/loop0 on /mnt/livecd type squashfs (ro)

proc on /proc type proc (rw,nosuid,nodev,noexec)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)

udev on /dev type tmpfs (rw,nosuid,size=10240k,mode=755)

devpts on /dev/pts type devpts (rw,nosuid,noexec,gid=5,mode=620)

tmpfs on /mnt/livecd/lib/firmware type tmpfs (rw)

tmpfs on /mnt/livecd/usr/portage type tmpfs (rw)

usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)

/dev/sda1 on /mnt/sata_hd type ext2 (rw)

/dev/sdb1 on /mnt/sata_dom type ext4 (rw)
```

mtab

```
tmpfs / tmpfs rw 0 0

/dev/sdc /mnt/cdrom vfat ro,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1 0 0

/dev/loop0 /mnt/livecd squashfs ro 0 0

proc /proc proc rw,nosuid,nodev,noexec 0 0

sysfs /sys sysfs rw,nosuid,nodev,noexec 0 0

udev /dev tmpfs rw,nosuid,size=10240k,mode=755 0 0

devpts /dev/pts devpts rw,nosuid,noexec,gid=5,mode=620 0 0

tmpfs /mnt/livecd/lib/firmware tmpfs rw 0 0

tmpfs /mnt/livecd/usr/portage tmpfs rw 0 0

usbfs /proc/bus/usb usbfs rw,noexec,nosuid,devmode=0664,devgid=85 0 0

/dev/sda1 /mnt/sata_hd ext2 rw 0 0

/dev/sdb1 /mnt/sata_dom ext4 rw 0 0
```

ATI PATA is already selected, although it's compiled into the kernel, not a module.  I did try it as a module just in case, but no luck.  I'm only on 2.6.32-r7 here though, do you think it's worth updating?.

----------

## idella4

Subi;

I just learned a handy tip from another post.  Enter  zcat /proc/config.gz  from within the minimal install cd.  You output the current minimal install  kernel config which captures your desired drive.

copy the hard drive settings to your system config.

Your lspci -k output is the same as the previous post.  No it's probably not requiring updating.

----------

## Subi

Still no luck.  I've tried a few chunks of the generated config file, and they didn't help.  I also tried the entire config file just to see, and that didn't find either drive, so it couldn't boot.   :Smile: 

I've been talking to someone else with the same board, and he says that he had the same problem, and that it's caused by the kernel restarting the SATA controller, but not waiting for the device to some up.  He fixed his by using rootdelay=6 on the kernel start-up line in grub.conf.  However, that doesn't work for me, and looking at the boot log the looks like the pause is being done after the SATA stuff is complete (although I may be wrong on that).  Is there any other way to insert such a delay?

----------

## Subi

I found out what's causing it!

I was trying a .config from a working board, which did see the SATA DOM.  It worked on my board, but I saw that there was no initramfs file specified.  As I use the framebuffer for fbsplash I put one back in and recompiled.  This stopped the DOM from coming up.  So I tried my old .config with the initramfs file taken out, and lo and behold, it could suddenly see the DOM!

So, the thing stopping the DOM from coming up and/or being visible is the use of an initramfs file.  Does anyone know how I can get both?

----------

## eccerr0r

I can't think of why initrd would be a factor.  I was thinking whether or not rootdelay= however was a needed command line option to stop the boot from happening until all disks had a chance to respond to probe detects (SATA working similar to USB).

I'm out of ideas...

----------

## idella4

Subi

by chance I'm doing something completely different involving initrds.  See my post.  I noted some time ago that when I used an initrd on boot, it kernel panicked.  I just took out the initrd and thought little more of it.  I've tried out this other feature which cites using initrd as an option.

I have a few running kernels.  I've just confirmed that the initrd I make for all regular kernels is broken, and it's a different fail feature to yours, in my case the file type.

I've cited the new subject of my thread as mkinitrd not working.  It does work on my xen kernels which very few use.  Regular gentoo style does not use initrd as the norm, so I reckon it's not an issue to be found by most gentoo users.

I re-emerged it.  This gentoo is not fully up to date, which I don't really need to do what I want.

```

idella@gentoo64 ~/bin $ sudo emerge -s mkinitrd

Password:

Searching...

[ Results for search key : mkinitrd ]

[ Applications found : 1 ]

*  sys-apps/mkinitrd

      Latest version available: 4.2.0.3-r1

      Latest version installed: 4.2.0.3-r1

      Size of files: 61 kB

```

This has the makings of a bug submission.  Anyone agree?

----------

