AFULTab contest

Wiki page by khorben on 07/03/2012 00:26:17
This page summarizes the status of development with regard to the AFULTab contest.

Configuration

Input handling

Gtk+ configuration

The DeforaOS applications and desktop environment should be compiled, installed and configured as embedded applications:

  • no more menubars;
  • toolbars with icons only;
  • finger-friendly buttons, menu entries, scrollbars, spinners, check boxes...

Generic finger-friendly scrolling should also be provided, if at all possible. Being able to get rid of scrollbars would be a plus.

Right-click emulation

Support for emulating right clicks should be provided, either via Xorg globally, or a Gtk+ plug-in (such as libgtkstylus).

Multimedia support

Sound server

Installing, supporting and pre-configuring a sound server such as pulseaudio(1) may be relevant.

Networking

Network configuration

The dhcpcd-gtk applet for the panel's notification area supports integration with wired interfaces, as well as wpa-supplicant for wireless. While not fully complete, it may be functional enough for the prototype delivered. It would notably:

  • avoid conflicts with both wired and wireless interfaces configured;
  • remove the need for the ifwatchd(8) daemon.

Usability

Boot-time optimization

Installation procedure

A simpler installation procedure than the standard NetBSD installer, "sysinst", should be available. It should ideally:

  • default to a non-interactive, complete and functional installation;
  • support finger-based interaction (including a virtual keyboard)
  • optionally, allow for some settings to be specified during the configuration (hostname, username, packages and default environment, partitioning...)
  • then, allow for some settings to be easily specified beforehand (for installation batches).

Translation to other languages

While development must entirely be performed in English, full support for French will be much appreciated. With frameworks such as gettext, this possibility will easily allow for more translations to be available afterwards.

User manual

The whole installation procedure, as well as the end-user experience should be documented as detailed as relevant and likely.

Known issues

Bugs in DeforaOS

  • [Desktop] Choose (or implement) a window manager
  • [Desktop] Debug and polish the mail client (including the embedded mode)
  • [Desktop] Debug and polish the volume mixer: #43, #44, #45, #46
  • [Desktop] Enhance file management: #42, #47
  • [Desktop] Improve the screen saver: #52, #53, #54
  • [Desktop] Integrate the AppProtocol (and VFS in particular)
  • [Input] Improve finger-based interaction for the web browser
  • [Input] Improve the virtual keyboard: #51
  • [Network] Let the user configure networking graphically (eg wireless...)
  • [Telephony] Improve general support: #48, #50

Bugs in NetBSD

  • [ACPI] The Lenovo IdeaPad S10-3t does not power off
  • [Boot] The system is unstable when booting with genfb
  • [Boot] The WeTab halts during boot if any USB device is already plugged
  • [Graphics] The graphics card on Atom N450 platforms is not accelerated
  • [Graphics] Software acceleration is buggy with modular-xorg-server
  • [Input] The wstablet framework must be updated (and merged)
  • [Input] The touchscreen on the Lenovo IdeaPad S10-3t is not supported
  • [Input] The touchscreen on the WeTab does not work properly
  • [Multimedia] The sound card on the Lenovo IdeaPad S10-3t does not work
  • [Multimedia] The webcam on the Lenovo IdeaPad S10-3t does not work
  • [Telephony] The UMTS device is not identified on the Lenovo IdeaPad S10-3t
  • [Telephony] The UMTS device is not supported on the WeTab
  • [Wireless] The wireless card on the Lenovo IdeaPad S10-3t is not supported

Solving issues in NetBSD

ACPI sub-system

The Lenovo IdeaPad S10-3t does not power off

There seem to be issues with the ACPI sub-system, the most obvious one while attempting to turn off the computer:

# shutdown -p now

which simply doesn't work. The kernel mentions "acpi0: entering state 5" and then locks.

The issue is apparently broader, with "envstat -r" being, at best, extremely slow.

Booting

The system is unstable when booting with genfb

Up until 6.0_BETA booting with genfb (either with or without a splash screen) was very unreliable, and X not starting at all. Since shortly before the netbsd-6 branch it seems to work properly.

However:

  • the colours and/or the logo are usually wrong or corrupted (see PR kern/46189)
  • not every colour depth seems to be supported on every graphics card;
  • the cursor is wrong in some situations (blinking on top left while the solid cursor is active, or containing one of "-\|/" after a progress indicator is over)
  • the kernel sometimes still outputs some text before enabling the splash screen.

The WeTab halts during boot if any USB device is already plugged

It seems that NetBSD can't properly initialize the USB chipset if the firmware has already configured it (eg boot from USB, keyboard support).

Graphics sub-system

The graphics card on Atom N450 platforms is not accelerated

This problem is currently being addressed by Gregoire Sutre, on his netbsd-drmgem branch on github: https://github.com/gsutre/netbsd-drmgem. Both the Lenovo IdeaPad S10-3t and the WeTab are affected by this problem.

The vesa driver is functional on both devices, with a number of limitations though (see below).

Software acceleration is buggy with modular-xorg-server

Using modular-xorg-server with the "vesa" driver (while the accelerated Intel driver gets fixed) is barely usable:

  • the screen resolution is not optimal
  • windows are not fully drawn correctly.
The latter is easily reproduced when running xterm with anti-aliased fonts. It seems to be related to acceleration issues rather than a specific video driver, maybe when no DRI driver could be loaded. I have yet to determine if both EXA and XAA exhibit the issue.

Also noteworthy is the requirement for the Xorg executable to be linked with libpthread for the DRI modules to load correctly.

Input handling

The wstablet framework must be updated (and merged)

The wstablet framework was being worked on as part of a Google Summer of Code project in August 2008, see http://netbsd-soc.sourceforge.net/projects/wscons/.

Unfortunately, it seems that the results of this project have not been merged to NetBSD, nor significant enough to be useful for touchscreen integration here. This issue is therefore closed.

The touchscreen on the Lenovo IdeaPad S10-3t is not supported

This is no longer an issue, as:

  • the uts(4) driver was written, submitted and integrated upstream (PR/45850)
  • the xf86-input-mouse driver was patched for supporting absolute coordinates (PR/45853)
  • the tpcalib and wscons framework was debugged and extended (PR/45872)
Some additional improvements would be to:
  • no longer require root privileges for calibrating the screen;
  • automate calibration when changing screen sizes.

The touchscreen on the WeTab does not work properly

The WeTab contains a similar touchscreen controller as on the Lenovo S10-3t, but with a different firmware and default settings:

  • three HID devices are reported instead of one
  • the first is a mouse emulation, which is not properly calibrated (typically wsmouse0, attached on ums0)
  • the second is a touchscreen, reporting up to 4096x4096 pixels (wsmouse1 on uts0)
  • the third is a touchscreen as well, corresponding to the main screen, reporting up to 32768x32768 pixels (wsmouse2 on uts1)

Although opening explicitely /dev/wsmouse2 should just work, the device does not report any interrupt before being set to "multi-input" mode. This should be performed by the uts(4) driver, but in the meantime this command works as well:

$ usbhidctl -f 0x000e.Finger.Input_Mode=2

The uts(4) driver will be patched to perform this.

Multimedia support

The sound card on the Lenovo IdeaPad S10-3t does not work

The sound card on the Lenovo IdeaPad S10-3t fails to attach correctly, with the following error:

hdaudio0 at pci0 dev 27 function 0: HD Audio Controller
hdaudio0: interrupting at ioapic0 pin 22
hdaudio0: timeout stopping RIRB
hdaudio0: couldn't reset because RIRB is busy
hdaudio0: device driver failed to attach

The root cause of this problem is currently unknown.

The webcam on the Lenovo IdeaPad S10-3t does not work

The webcam on the Lenovo IdeaPad S10-3t is detected and should be functional, however reading it with mplayer locks the machine with a 6.0_BETA kernel:

$ mplayer -tv driver=v4l2 tv://

During later tests the webcam was found to be functional.

Telephony

The UMTS device is not identified on the Lenovo IdeaPad S10-3t

The proper way to access the SIM card and GSM network on the Lenovo IdeaPad S10-3t could not be determined yet.

The UMTS device is not supported on the WeTab

What seems to be the proper device for the USB modem on the WeTab is attached as ugen0, meaning that no driver recognized it as a supported device. This should be investigated.

Wireless support

The wireless card on the Lenovo IdeaPad S10-3t is not supported

The Lenovo IdeaPad S10-3t has an Atheros wireless card, which fails to attach with the following error:

ath0 at pci2 dev 0 function 0: Atheros 9285
ath0: interrupting at ioapic0 pin 17
ath0: unable to attach hardware; HAL status 3

The root cause of this problem has not been identified yet.

Revisions
NameDateAuthorMessage
1.29 (diff)khorben
1.28 (diff)khorben
1.27 (diff)khorben
1.26 (diff)khorben
1.25 (diff)khorben
1.24 (diff)khorben
1.23 (diff)khorben
1.22 (diff)khorben
1.21 (diff)khorben
1.20 (diff)khorben
1.19 (diff)khorben
1.18 (diff)khorben
1.17 (diff)khorben
1.16 (diff)khorben
1.15 (diff)khorben
1.14 (diff)khorben
1.13 (diff)khorben
1.12 (diff)khorben
1.11 (diff)khorben
1.10 (diff)khorben
1.9 (diff)khorben
1.8 (diff)khorben
1.7 (diff)khorben
1.6 (diff)khorben
1.5 (diff)khorben
1.4 (diff)khorben
1.3 (diff)khorben
1.2 (diff)khorben
1.1khorben