# TinyBSD boots only if serial console port is plugged in!



## WeaponX (Mar 29, 2012)

Hello, 

My tinybsd boots perfectly fine and everything works like ordinary when console cable is plugged in. As soon as I unplug and reboot tinybsd never boots into the system!  

I can't seem to figure out why this is going, can someone please help me out?

1) In /boot/loader.conf, I have:  (I have tried only with console="comconsole", same problem)


```
console="comconsole,vidconsole"
boot_multicons="YES"
```

2) my /etc/ttys looks like this:


```
console none                            unknown off secure
#
ttyv0   "/usr/libexec/getty Pc"         xterm   on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv2   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv3   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv4   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv5   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv6   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv7   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure
# Serial terminals
# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
ttyu0   "/usr/libexec/getty std.9600"   vt100   on  secure
ttyu1   "/usr/libexec/getty std.9600"   dialup  off secure
ttyu2   "/usr/libexec/getty std.9600"   dialup  off secure
ttyu3   "/usr/libexec/getty std.9600"   dialup  off secure
# Dumb console
dcons   "/usr/libexec/getty std.9600"   vt100   off secure
```

3) Copied additional boot files to /boot and it now shows:


```
-r--r--r--   1 root  wheel   9.4k Mar 28 12:11 beastie.4th
-r--r--r--   1 root  wheel   8.0k Mar 28 12:11 boot
-r--r--r--   1 root  wheel   512B Mar 27 09:53 boot0
-r--r--r--   1 root  wheel   512B Mar 28 12:11 boot0sio
-r--r--r--   1 root  wheel   512B Mar 27 09:53 boot1
-r--r--r--   1 root  wheel   7.5k Mar 27 09:53 boot2
-r--r--r--   1 root  wheel   2.9k Mar 28 12:11 brand.4th
-r--r--r--   1 root  wheel   1.2k Mar 28 12:11 cdboot
-r--r--r--   1 root  wheel   5.0k Mar 28 12:11 check-password.4th
-r--r--r--   1 root  wheel   1.8k Mar 28 12:11 color.4th
drwxr-xr-x   2 root  wheel   512B Mar 28 10:42 defaults
-r--r--r--   1 root  wheel   3.8k Mar 28 12:11 delay.4th
-r--r--r--   1 root  wheel   773B Mar 28 11:10 device.hints
drwxr-xr-x   2 root  wheel   512B Mar 28 10:42 firmware
-r--r--r--   1 root  wheel   2.2k Mar 28 12:11 frames.4th
-r--r--r--   1 root  wheel    15k Mar 28 12:11 gptboot
drwxr-xr-x   2 root  wheel   512B Mar 28 11:10 kernel
-r-xr-xr-x   1 root  wheel   236k Mar 27 09:53 loader
-r--r--r--   1 root  wheel   5.6k Mar 27 09:53 loader.4th
-rw-r--r--   1 root  wheel   1.1k Mar 28 12:11 loader.conf
-r--r--r--   1 root  wheel    14k Mar 27 09:53 loader.help
-r-xr-xr-x   1 root  wheel   236k Mar 28 12:11 loader.old
-r--r--r--   1 root  wheel   393B Jan  3 07:56 loader.rc
-r--r--r--   1 root  wheel   512B Mar 27 09:53 mbr
-r--r--r--   1 root  wheel   5.4k Mar 28 12:11 menu-commands.4th
-r--r--r--   1 root  wheel    26k Mar 28 12:11 menu.4th
-r--r--r--   1 root  wheel   2.6k Mar 28 12:11 menu.rc
drwxr-xr-x   2 root  wheel   512B Mar 28 10:42 modules
-r--r--r--   1 root  wheel   512B Mar 28 12:11 pmbr
-r--r--r--   1 root  wheel   238k Mar 28 12:11 pxeboot
-r--r--r--   1 root  wheel   699B Mar 28 12:11 screen.4th
-r--r--r--   1 root  wheel   2.6k Mar 28 12:11 shortcuts.4th
-r--r--r--   1 root  wheel    33k Mar 27 09:53 support.4th
-r--r--r--   1 root  wheel   255k Mar 28 12:11 userboot.so
-r--r--r--   1 root  wheel   2.1k Mar 28 12:11 version.4th
drwxr-xr-x   2 root  wheel   512B Mar 28 10:42 zfs
```


4) My only suspicion is /boot/kernel is mostly empty and only contains a zipped version of the compiled kernel and does not contain and loadable modules etc...


```
# ls -h /boot/kernel/                                      
total 3784
drwxr-xr-x  2 root  wheel   512B Mar 28 11:10 .
drwxr-xr-x  7 root  wheel   1.0k Mar 28 12:11 ..
-r-xr-xr-x  1 root  wheel   3.7M Mar 28 11:10 kernel.gz
```

5) I have tried creating /boot/boot.config and adding -Dh with no luck.
My system boots perfectly without keyboard/monitor attached using the full version of FreeBSD

6) Could it be there is no dumb terminal and boot requires at least a terminal to start?

Any help is greatly appreciated! Please let me know if I need to provide additional information :\


----------



## WeaponX (Mar 30, 2012)

hello,

Here are some more info if anyone can help me. I decided to unplug the console cable and plug the computer through the VGA to see whether I could get additional errors, surprisingly here is what I obtained:

First try, system was already booted (with no serial console or vga attach during boot stage, this is the error that was displaying when I plugged the vga cable):


```
FreeBSD/x86 bootstrap loader, Revision 1.1
Can't work out which disk we are booting from.

Guessed BIOS device 0xffffffff not found by probes, defaulting to disk0:

panic: free: guard1 fail @ 0xbd992130 from /usr/src/sys/boot/i386/loader/../../common/module.c:1004

--> press a key on the console to reboot <--
```


second, third... times, when system was trying to boot with vga cable attached, I kept getting:

```
FreeBSD/x86 bootstrap loader, Revision 1.1
Can't work out which disk we are booting from.

Guessed BIOS device 0xffffffff not found by probes, defaulting to disk0:

Can't load kernel
```


This is really odd as I can boot perfectly fine when serial console cable is attached and don't get any panics!! Any clue anyone?


----------



## WeaponX (Mar 30, 2012)

Update!

I'm getting one step closer... I figured out why it works when console serial cable is plugged the system boots, it's because it detects a keyboard and when I unplug the serial port the system no longer detects a keyboard. This is very odd because my base freebsd FreeBSD does boot without a keyboard on the same system.

Anyways, is there a way to disable keyboard detection or emulate keyboard at second boot stage?

I really feel like I'm getting closer :\


----------



## WeaponX (Mar 30, 2012)

Ok here's where I'm stuck now (this is really tiring...)

System boots perfectly fine tinybsd when serial console is connected because keyboard is detected

System does not boot when vga and keyboard is connected, it gives kernel panic:

```
panic: free: guard1 fail@0xbd992130 from /usr/src/sys/boot/i386/loader/../../common/module.c:1004
```

System does not boot at all when no serial or keyboard connected

On this same exact system, I swap hard drives and use a full freebsd FreeBSD system with no keyboard and system boots perfectly fine!
Does this mean tinybsd is not compiling the boot code properly?


----------

