berklix.com logo

berklix.org logo

Brexit Stolen Votes

flag_uk_de_icon_v.gif

BSD-PIE icon

BSD icon

Gnu icon

Linux icon

Eyes

Disclaimer

BSN

Consol

FreeBSD (& now NetBSD) Laptops - Install Tricks & Release Status

http://www.berklix.org/~jhs/hardware/laptops/

By Julian H. Stacey

Index

Introduction

Based on posting of 2007.06.12 to mobile @@ freebsd.org

FreeBSD has progressively broken support for 5 of my older laptops. One needs massive time reading manuals etc, only then to fail anyway, getting beyond FreeBSD-4.11. (Only 1 modern laptop here takes FreeBSD-6.2).

FreeBSD-4.11 is nominally dead, yet on many older laptops is all that Works. Newcomers may give up after FreeBSD-6.2 & dump FreeBSD, not knowing to use FreeBSD-4.11 with working { ATA access, Geom / FDISK, PCMCIA (ether & cdrom), PLIP }.

Developers may use newer laptops or towers, but support for older laptops should not be So damaged as now, many older laptop are still fine as office X terminals, UPS/PBX status monitors etc.

Suggestion: A colossal slow_and_safe option in loader.conf (like a BIOS has), so at least one can install, then until it''s turned off, a grep at boot to mail root reporting machine was deliberately slowed to ensure install. Then installer can disable slow_and_safe and debug- edit on a working platform, not repetitively do 5 floppy installs typing screeds of "set" magic hopefully to loader.

I''m analysing broken-ness since FreeBSD-4.11, & documenting it here: http://www.berklix.org/~jhs/hardware/laptops/ Inc. URL to PLIP failure (where I hope to later try back porting FreeBSD-4.11 PLIP src to FreeBSD-6.2).

Trend / My opinion
FreeBSD in last few years has chased more functionality while breaking & abandoning some existing support. Others will have tried FreeBSD on some older laptops & given up, largely remained silent & left FreeBSD developers in blissful ignorance, thinking all is rosey in the garden. A visitor pointing at slugs eating the strawberries may not be popular, but if no one mentions it, damage persists.

Some old laptops still run OK, eg Julian Elischer''s 1999 Dell Inspiron runs fine on 2007.06 -current

Current status of some laptops may be found in FreeBSD laptop compatibility indexes

Hosts

Manufacturer & Model FreeBSD Release No. & Date Name for my Kernel Config
  Acer Aspire 5741 FreeBSD-8.2 & 9.0 LapR
  ACi Mirage 8700M FreeBSD-4.11 Released 2005.01 LapA
Dell FreeBSD-4.11 Released 2005.01
NetBSD-3.1 released 2006.11.04,
FreeBSD 7.0-PRERELEASE Jan 2008
LapN
  Digital HiNote Ultra2000 FreeBSD-5.2.1 Released 2004.02,
FreeBSD 7.0BETA3-2007.11.25 Installed with Safe Mode= Boot Key 3
FreeBSD 7.0-PRERELEASE Jan 2008.
LapD
  Novatech-8355 FreeBSD-8.1-RC2, July 2010 LapO
  Toshiba Libretto FreeBSD-4.11 Released 2005.01 LapL
  Toshiba Satellite s5100-603 FreeBSD-6.2 Released 2007.01, & 8.2 LapS
  HP Pavilion dm3-1155ea FreeBSD-8.2 LapH

See Also

/boot/loader.conf

Generic

Normal content just: userconfig_script_load="YES"
Live Syntax To Loader
  • hint.acpi.0.disabled=1.
  • At first boot on new disc, you must use loader, & can''t till later edit /boot/loader.conf, so here is a list of syntax options (to be switched on by eg: set Earth=Mars.
  • Beware spelling mistakes as loader does not check & accepts junk, eg set earth=mars.
  • Below is sample syntax for /boot/loader.conf once installed.

Things That May Help Force Old Machines To Boot / Install

From Posting:
Which of those & other options should I add to "BootSafeKey" in /sys/boot/forth/beastie.4th to help a "Safe" boot ? Then I''ll send-pr a diff to extend chance of other older laptops booting. & will roll new floppies(*) & put up for ftp; (no problem, done releases before).
BootSafeKey in 7.0BETA3 /sys/boot/forth/beastie.4th:
dup bootsafekey @  = if
s" arch-i386" environment? if
drop
s" acpi_load" unsetenv
s" 1" s" hint.acpi.0.disabled" setenv
s" 1" s" loader.acpi_disabled_by_user" setenv
s" 1" s" hint.apic.0.disabled" setenv
then
s" 0" s" hw.ata.ata_dma" setenv
s" 0" s" hw.ata.atapi_dma" setenv
s" 0" s" hw.ata.wc setenv
s" 0" s" hw.eisa_slots" setenv
s" 1" s" hint.kbdmux.0.disabled setenv
0 boot
then
dup bootverbosekey  @  = if
See Also "Man Tuning" available in 6.2-RELEASE.
  • beastie_disable="yes"
  • boot_verbose="yes"
  • verbose_loading="yes"
  • debug.bootverbose=1
  • hint.acpi.0.disabled="1"
    • Boot with acpi completely disabled.
    • Referenced by BootSafeKey
    • Set by /sys/boot/forth/beastie.4th:BootSafeKey
    • man 4 acpi -- Advanced Configuration and Power Management support
  • hw.acpi.disable_on_reboot=1
  • hw.acpi.reset_video=1
  • hw.acpi.verbose=1
  • loader.acpi_disabled_by_user=1
  • hint.apm.0.disabled="1"
    • Not referenced by BootSafeKey
    • Found on host=fire with kenv.
  • hint.apic.0.disabled="1"
  • hw.ata.ata_dma=0
    • Referenced by BootSafeKey
    • ATA disk DMA mode control
    • Needed by Digital HiNote Ultra2000
    • Needed by Dell Latitude XPi P133ST (I have confirmed & so previously also said) Ian Freilich , 07.10.2004
    • Referenced by BootSafeKey
    • Referenced by 6.2-RELEASE files:
      sbin/atacontrol/atacontrol.c
      share/man/man4/ata.4
      sys/boot/forth/beastie.4th
      sys/dev/aic7xxx/aic79xx.c
      sys/dev/aic7xxx/aic79xx.h
      sys/dev/aic7xxx/aic79xx_inline.h
      sys/dev/aic7xxx/aic7xxx.c
      sys/dev/aic7xxx/aic7xxx.h
      sys/dev/aic7xxx/aic7xxx_inline.h
      sys/dev/amr/amr.c
      sys/dev/ata/ata-all.c
      sys/dev/ata/ata-all.h
      sys/dev/ata/ata-chipset.c
      sys/dev/ata/ata-disk.c
      sys/dev/ata/ata-dma.c
      sys/dev/ata/ata-lowlevel.c
      sys/dev/ata/ata-pci.c
      sys/dev/ata/ata-pci.h
      sys/dev/ata/ata-raid.c
      sys/dev/ata/atapi-cam.c
      sys/dev/ata/atapi-cd.c
      sys/dev/ata/atapi-fd.c
      sys/dev/ips/ips.c
      sys/dev/ips/ips.h
      sys/dev/ips/ips_commands.c
      sys/dev/ips/ips_disk.c
      sys/dev/isp/isp.c
      sys/dev/isp/ispreg.h
      sys/dev/isp/ispvar.h
      sys/dev/iwi/if_iwi.c
      sys/dev/iwi/if_iwivar.h
      sys/dev/ral/if_ral.c
      sys/dev/ral/if_ralvar.h
      sys/dev/sound/pci/maestro3.c
      sys/dev/sym/sym_hipd.c
      sys/dev/twe/twe_freebsd.c
      sys/gnu/dev/sound/pci/maestro3_reg.h
      sys/pci/if_ti.c
      sys/pci/if_tireg.h
      sys/sys/ata.h
      tools/tools/sysdoc/tunables.mdoc
      
  • hw.ata.atapi_dma=0
    • Referenced by BootSafeKey
    • ATAPI device DMA mode control, for ATA CD & DVD
    • Referenced by BootSafeKey
    • Setting this to 1 might improve music play back direct from physical media. Setting it might also reduce the chance of accesing, inc. booting from, any cd drive that might be non compliant.
  • hw.ata.wc=0
  • hw.eisa_slots=0
  • hint.kbdmux.0.disabled=1
  • hw.pci.enable_io_modes=0
    • Not referenced by BootSafeKey
    • Use if boot hangs after AGP
  • hw.pcic.ignore_pci=1
    • Not referenced by BootSafeKey
    • ignore pci cardbus bridges
  • hw.pcic.intr_path="1"
    • Not referenced by BootSafeKey
    • Normally interrupts for cardbus bridges are routed over the PCI bus (2). However, some laptops will hang when using PCI interrupts due to bugs in this code. Those bugs can be worked around by forcing ISA interrupts (1).
    • Warner wrote: Libretto-50 and Libretto-70 machines have only ISA PCMCIA bridges
    • Needed by host=lapa
  • hw.pcic.irq="0"
    • Not referenced by BootSafeKey
    • Override IRQ configured by system for all pcic devices
    • Needed by host=lapa
  • hw.pcic.pd6729_intr_path
    • Not referenced by BootSafeKey
    • Determine interrupt path or method for Cirrus Logic PD6729 and similar I/O space based pcmcia bridge. Chips on a PCI expansion card need a value of 2, while chips installed in a laptop need a value of 1 (which is also the default). This is similar to hw.pcic.intr_path, but separate so that it can default to ISA when intr_path defaults to PCI.
  • hw.pcic.ti12xx_enable_pci_clock
    • Not referenced by BootSafeKey
    • Some TI-12xx parts need to have the PCI clock enabled. These designs do not provide a clock themselves. Most of the reference boards have the required oscillator parts, so the number of machines that needs this to be set is vanishingly small.
  • machdep.bios.pci=disable
  • machdep.bios.pnp=disable
  • machdep.pccard.pcic_irq="0"

Extra Rescue Hooks

For a better chance of booting an old laptop, try this, eg
mdconfig -a -t vnode -f /pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-BETA4-i386-disc1.iso
mount -t cd9660 -r  /dev/vn0c /mnt
cd /pub/FreeBSD/releases/i386/7.0-RELEASE
(cd /mnt ; tar cf - . ) | tar xf - 
umount /mnt
mdconfig -d -u 0
cd floppies
mdconfig -a -t vnode -f boot.flp
mount /dev/md0 /mnt
cat > /mnt/julian << EOF
set boot_verbose="yes"
set debug.bootverbose=1
set hint.acpi.0.disabled="1"
set hw.acpi.disable_on_reboot=1
set hw.acpi.verbose=1
set loader.acpi_disabled_by_user=1
set verbose_loading="yes"
# Ethernet ?
set if_dc_load="YES"
set hint.apic.0.disabled="1"
set hint.apm.0.disabled="1"
set hw.ata.ata_dma=0
set hw.ata.atapi_dma=0
set hw.ata.wc=0
set hw.eisa_slots=0
set hw.pci.enable_io_modes=0
set hw.pcic.ignore_pci=1 
set hw.pcic.irq="0"
set hw.pcic.pd6729_intr_path
# Debug non working pccard slot:
set hw.cardbus.cis_debug=1
set hw.cardbus.debug=1
set hw.cbb.debug=1
set hw.pccard.cis_debug=1
set hw.pccard.debug=1
set machdep.bios.pci=disable
set machdep.bios.pnp=disable
set machdep.pccard.pcic_irq="0"
EOF
umount /mnt
mdconfig -d -u 0
Boot target host with floppy,
select Escape to loader. Maybe with key 4 ?
include julian
boot -v

To allow USB keyboard in single user mode

set hint.atkbd.0.flags="0x1"

My Host Specific

host=lapa

with BIOS set to PIO=On # From Jim Mock mij @@ geekhouse.net
  • hw.pcic.intr_path="1"
  • hw.pcic.irq="0"

host=lapd

host=lapn

host=lapl

host=laps

loader.conf
Test of wifi cards:
# if_acx_load="YES" # now in my kernel so not here
if_ndis_load="YES"
if_t1130_XP_sys_load="YES"
t1130_XP_sys.ko # man kldstat

/boot/device.hints

First appeared in FreeBSD 5.0

Most (all?) drivers don''t probe for the hardware if you set the variable hint.[device].[instance].disabled="1". For example, to disable probing for p4tcc0, hint.p4tcc.0.disabled="1" in /boot/device.hints

From 6.1-src/src/sys/i386/conf:

# AVM A1 or AVM Fritz!Card options AVM_A1
host=park: Has added:
hint.isic.0.at="isa"
hint.isic.0.port="0x340"
hint.isic.0.irq="5"
hint.isic.0.flags="4"
host=lapl for 4.10, not used on FreeBSD-4.11
# Reassign ep0 from default 5 which only intermittently works, stickily.
hint.ep.0.irq="11"

/boot/kernel.conf

host=lapl 4.10
# The system boots with or without this file present
# di bt0
#       dmesg reports for 4.10-RELEASE LAPL kernel: No such device: bt0
# di ata1
#       dmesg reports for 4.10-RELEASE LAPL kernel: Invalid command or syntax.
# di aic0
#       dmesg reports for 4.10-RELEASE LAPL kernel: No such device: aic0
# di aha0
#       dmesg reports for 4.10-RELEASE LAPL kernel: No such device: aha0
# di adv0
#       dmesg reports for 4.10-RELEASE LAPL kernel: No such device: adv0
q

PLIP - IP on Parallel Port

Seems broken on FreeBSD-5 & 6 last know working on FreeBSD-4.11.
Link to thread on mail list.
Frozen copy
From owner-freebsd-hackers  @@  freebsd.org Sat Jun  9 23:21:12 2007
X-Original-To: hackers  @@  freebsd.org
Delivered-To: freebsd-hackers  @@  FreeBSD.ORG
Message-Id: <200706091602.l59G2psm042173  @@  fire>
To: ghozzy <ghozzy  @@  gmail.com>
From: "Julian H. Stacey" <jhs  @@  berklix.org>
In-reply-to: Your message of "Fri, 08 Jun 2007 22:59:26 +0400."
<a066eefc0706081159t1929b615j4391d91f48df4acc  @@  mail.gmail.com>
Date: Sat, 09 Jun 2007 18:02:51 +0200
Cc: jhs  @@  berklix.org, hackers  @@  freebsd.org
Subject: Re: FreeBSD-6.2 & PLIP - does it still work ?
Reference:
> From:  ghozzy <ghozzy  @@  gmail.com>
> Date:  Fri, 8 Jun 2007 22:59:26 +0400
> Message-id: \
    <a066eefc0706081159t1929b615j4391d91f48df4acc \
  @@  mail.gmail.com>
ghozzy wrote:
> On 6/8/07, Julian H. Stacey <jhs  @@  berklix.org> wrote:
> > Anyone seen PLIP working on FreeBSD-6.2 release ?
> > I''ve tested my PLIP cable between 2 x 4.11 boxes.  I''m trying to
> > install a laptop with 6.2 boot flops (with failed pcmcia/ether
> > recognition) I cant get that laptop & a 6.2 tower to talk to each
> > other.  Neither will those 2 x 6.2 talk to 4.11.  I haven''t quite
> > done all exhaustive tests, (but am exhausted & seems worth asking :-)
> >
> > Julian
>
> It seems to me PLIP has been broken somewhere after branching RELENG_5.
> Between two RELENG_4 it worked fine (used from about 4.3 to latest 4.11).
> If any end was using RELENG_5 or RELENG_6 it didn''t work any more.
> I thought first, maybe there were some incompatible changes in protocol
> or something, i tried to use the same FreeBSD versions on two ends
> (both RELENG_5 or both RELENG_6), but that was not the case.
>
> My tests were not exhaustive either, but i actually tried to fire it up again
> numerous times, enough for my own assurance.
>
> If anybody could shed some light, i would be curious.
> I could also make tests if needed.
Thanks for confirmation ghozzy,
Can anyone say eg "No it works for me" ?
Or now we know PL-IP is broken, Options:
- Post net  @@  freebsd for specialists,
- Post mobile  @@  freebsd (where it most hurts, as PLIP really needed when
pcmcia slots not recognised on older laptops so cant install FreeBSD).
- Send-pr for manual to declare plip broken.
- Read & compare source of 4.11 & 6.2 Release src/sys/dev/ppbus/if_plip.c
(interesting, but short of time, & others who''ve hacked / broken
it might fix quicker ?)
I viewed with /usr/ports/textproc/mgdiff & diff not that big, eg
diff -c 4.11/usr/src/sys/dev/ppbus/if_plip.c.~1~ \
6.1/usr/src/sys/dev/ppbus/if_plip.c.~1~ | wc
481    1466   11651

See Also Dec 2007 ire 7.0BETA4 in base of http://www.berklix.com/~jhs/src/bsd/fixes/FreeBSD/src/gen/share/man/man4/lp.4.REL=ALL.diff

SLIP - Serial Line Internet Protocol

After an install using SLIP with FreeBSD-7.0BETA4,
& subsequent reboot
ifconfig -a shows no sl0 interface
(although /etc/rc.conf does contain eg This problem or fix needs to become a send-pr
pro tem I have
/etc/start_if.sl0 with /sbin/slattach -a -h -l -s 9600 /dev/cuad0
& /etc/rc.local with
    /etc/start_if.sl0 
    sleep 5 # next ifconfig does not work without some sort of sleep 
    ifconfig sl0 10.0.0.1 10.0.0.2

Send-Pr

Problem Reports for FreeBSD.org
  • network.c Send-PR Sent for Installer to Remove -h from slattach. as some cables do not support it.
  • Send-PR Soon for /boot/loader.conf: Add for Safe: hw.ata.ata_dma=0 & also ..... ?
  • Send-PR Soon for PLIP:
  • Send-PR Sent Remove CFLAGS += -pipe from sys.mk, (Ok this does not fix FreeBSD failing to install but it Does prevent old laptops consuming excessive RAM to recompile).

Sound

FreeBSD- 7 PreRelease is sticky playing music (ie music hangs periodically) on at least 2 old laptops: lapd & lapn, this might be to do with a bad lock in moused (Kris diagnosed that) Heres a channel.h patch I wrote (failed to make a difference though)

Berklix.Net Computer Associates Domains Apache: Web Server FreeBSD: Operating System Brexit Stolen Votes