Contributed by johan on 2008-08-08 from the donations-really-do-help dept.

In a recent story we highlighted that Reyk Floeter (reyk@) had asked for an Asus EeePC in order to improve support for newer ath(4) chips. Reyk since received two EeePC donations and has been hard at work improving ath(4). While doing so he encountered some issues with these computers, here is his follow up story...

When I fixed support for a number of newer ath(4) variants, I asked for an EeePC donation to work on the currently unsupported wireless chipset that is integrated in most of these mini-laptops. Just about one week later I got two donations - an EeePC 701 and an EeePC 900. And I had more donation offers from other users, I really appreciate your support! It will need some time to fix the wireless support, but it also helps to work on various other issues that we see on these machines: interrupt routing (with help from kettenis@), camera support (with help from mglocker@), ACPI (with help from marco@) and I also want to improve the lii(4) driver (to be fair, lii was written by the author without documentation since it is a chipset that is now owned by Atheros).

Please read on for the rest of the story...

Both EeePCs require ACPI to work correctly, but for some reason the BIOS still provides APM. ACPI is not enabled by the kernel if APM is detected, so you need to manually disable the apm(4) device to get ACPI on boot. The EeePC 701 can be installed with the normal installation sets, but the EeePC 900 is a little bit trickier; I decided to write a short guide on installing the 900 until we found a way to fix it in the default OpenBSD installer. Create a multi processor (MP) version of bsd.rd on another i386 OpenBSD build machine. The EeePC 900 is a single core machine, but the MP kernel also enables IOAPICs and a slightly different interrupt handling. # cd /usr/src/sys/arch/i386/conf # sed "s/^apm0.*/apm0 at bios0 disabled/" RAMDISK_CD > RAMDISK_CD.eeepc # sed "s/GENERIC/RAMDISK_CD.eeepc/" GENERIC.MP > RAMDISK_CD # cd /usr/src/distrib/special/libstubs && \ make obj && make depend && make all && make install # cd /usr/src/distrib/crunch && \ make obj && make depend && make all && make install # cd /usr/src/distrib/i386/ramdisk_cd && \ make obj && make depend && make all

Create a bootable USB stick (sd1 in this example): # fdisk -i sd1 # disklabel -E sd1 > a a (use the defaults) > w > q # newfs rsd1a # mount /dev/sd1a /mnt # cp /usr/mdec/boot /mnt/boot # /usr/mdec/installboot -v /mnt/boot /usr/mdec/biosboot sd1 # cp /usr/src/distrib/i386/ramdisk_cd/obj/bsd.rd /mnt/bsd # umount /mnt

Install the EeePC900: insert the USB stick and press ESC on boot to get the EeePC BIOS boot dialog. Select the USB device and continue... In the OpenBSD installation make sure to select "bsd.mp" as well.

After installation, make sure to boot bsd.mp with apm(4) disabled boot> boot bsd.mp -c ... UKC> disable apm UKC> quit

Store the bsd.mp settings for the next reboots (if you don't want to compile your own modified kernel): eeepc900# config -ef /bsd.mp > disable apm > quit eeepc900# echo set image bsd.mp > /etc/boot.conf Here is the dmesg of the EeePC 900: OpenBSD 4.4 (GENERIC.MP) #839: Wed Aug 6 00:15:05 MDT 2008 deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC.MP cpu0: Intel(R) Celeron(R) M processor 900MHz ("GenuineIntel" 686-class) 901 MHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CFLUSH,DS, ACPI,MMX,FXSR,SSE,SSE2,SS,TM,SBF real mem = 1064398848 (1015MB) avail mem = 1020715008 (973MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 06/10/08, BIOS32 rev. 0 @ 0xf0010, SMBIOS rev. 2.5 @ 0xf06f0 (37 entries) bios0: vendor American Megatrends Inc. version "0704" date 06/10/2008 bios0: ASUSTeK Computer INC. 900 apm at bios0 function 0x15 not configured acpi0 at bios0: rev 0 acpi0: tables DSDT FACP APIC OEMB MCFG acpi0: wakeup devices P0P3(S4) P0P4(S4) P0P5(S4) P0P6(S4) P0P7(S4) MC97(S4) USB1(S3) USB2(S3) USB3(S3) USB4(S3) EUSB(S3) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: apic clock running at 100MHz ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus 5 (P0P3) acpiprt2 at acpi0: bus 3 (P0P5) acpiprt3 at acpi0: bus 1 (P0P6) acpiec0 at acpi0 acpicpu0 at acpi0 acpicpu0 at acpi0: C3, C2 acpitz0 at acpi0: critical temperature 90 degC acpibat0 at acpi0: BAT0 model "900" serial type LION oem "ASUS" acpiac0 at acpi0: AC unit online acpiasus0 at acpi0 acpibtn0 at acpi0: LID_ acpibtn1 at acpi0: SLPB acpibtn2 at acpi0: PWRB acpivideo at acpi0 not configured bios0: ROM list: 0xc0000/0xf800! pci0 at mainbus0 bus 0: configuration mode 1 (no bios) pchb0 at pci0 dev 0 function 0 "Intel 82915GM Host" rev 0x04 vga1 at pci0 dev 2 function 0 "Intel 82915GM Video" rev 0x04 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) agp0 at vga1: aperture at 0xd0000000, size 0x10000000 drm at vga1 unsupported "Intel 82915GM Video" rev 0x04 at pci0 dev 2 function 1 not configured azalia0 at pci0 dev 27 function 0 "Intel 82801FB HD Audio" rev 0x04: apic 1 int 16 (irq 5) azalia0: codec[s]: Realtek/0x0662 audio0 at azalia0 ppb0 at pci0 dev 28 function 0 "Intel 82801FB PCIE" rev 0x04: apic 1 int 16 (irq 5) pci1 at ppb0 bus 4 ppb1 at pci0 dev 28 function 1 "Intel 82801FB PCIE" rev 0x04: apic 1 int 17 (irq 11) pci2 at ppb1 bus 3 lii0 at pci2 dev 0 function 0 "Attansic Technology L2" rev 0xa0: apic 1 int 17 (irq 11), address 00:1f:c6:8f:0d:ee ukphy0 at lii0 phy 1: Generic IEEE 802.3u media interface, rev. 2: OUI 0x001374, model 0x0002 ppb2 at pci0 dev 28 function 2 "Intel 82801FB PCIE" rev 0x04: apic 1 int 18 (irq 10) pci3 at ppb2 bus 1 ath0 at pci3 dev 0 function 0 "Atheros AR5424" rev 0x01: apic 1 int 18 (irq 10) ath0: AR5424 14.2 phy 7.0 rf 0.0, WOR0W, address 00:15:af:a7:3d:55 uhci0 at pci0 dev 29 function 0 "Intel 82801FB USB" rev 0x04: apic 1 int 23 (irq 3) uhci1 at pci0 dev 29 function 1 "Intel 82801FB USB" rev 0x04: apic 1 int 19 (irq 7) uhci2 at pci0 dev 29 function 2 "Intel 82801FB USB" rev 0x04: apic 1 int 18 (irq 10) uhci3 at pci0 dev 29 function 3 "Intel 82801FB USB" rev 0x04: apic 1 int 16 (irq 5) ehci0 at pci0 dev 29 function 7 "Intel 82801FB USB" rev 0x04: apic 1 int 23 (irq 3) usb0 at ehci0: USB revision 2.0 uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 ppb3 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0xd4 pci4 at ppb3 bus 5 ichpcib0 at pci0 dev 31 function 0 "Intel 82801FBM LPC" rev 0x04: PM disabled pciide0 at pci0 dev 31 function 2 "Intel 82801FBM SATA" rev 0x04: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility wd0 at pciide0 channel 1 drive 0: wd0: 1-sector PIO, LBA, 3847MB, 7880544 sectors wd1 at pciide0 channel 1 drive 1: wd1: 1-sector PIO, LBA, 7695MB, 15761088 sectors wd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 4 wd1(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 4 ichiic0 at pci0 dev 31 function 3 "Intel 82801FB SMBus" rev 0x04: apic 1 int 19 (irq 0) iic0 at ichiic0 spdmem0 at iic0 addr 0x50: 1GB DDR2 SDRAM non-parity PC2-3200CL5 SO-DIMM usb1 at uhci0: USB revision 1.0 uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb2 at uhci1: USB revision 1.0 uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb3 at uhci2: USB revision 1.0 uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1 usb4 at uhci3: USB revision 1.0 uhub4 at usb4 "Intel UHCI root hub" rev 1.00/1.00 addr 1 isa0 at ichpcib0 isadma0 at isa0 pckbc0 at isa0 port 0x60/5 pckbd0 at pckbc0 (kbd slot) pckbc0: using irq 1 for kbd slot wskbd0 at pckbd0: console keyboard, using wsdisplay0 pmsi0 at pckbc0 (aux slot) pckbc0: using irq 12 for aux slot wsmouse0 at pmsi0 mux 0 pcppi0 at isa0 port 0x61 midi0 at pcppi0: spkr0 at pcppi0 npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16 mtrr: Pentium Pro MTRR support umass0 at uhub0 port 5 configuration 1 interface 0 "ENE UB6225" rev 2.00/1.00 addr 2 umass0: using SCSI over Bulk-Only scsibus0 at umass0: 2 targets, initiator 0 sd0 at scsibus0 targ 1 lun 0: SCSI0 0/direct removable sd0: drive offline uvideo0 at uhub4 port 2 configuration 1 interface 0 "Chicony Electronics Co., Ltd. CNF7129" rev 2.00/15.12 addr 2 video0 at uvideo0 softraid0 at root root on wd0a swap on wd0b dump on wd0b

This story really goes to show how important donations are, so please, read through want.html and try to find an item you can donate.