週四 08 12月 2011

週四 08 12月 2011

Ubuntu Hard ware Summit Conference

key note

arm, phone, TV

upstream hardware enablement

Hardware enablement team(HWE)

kernel relate OEM relate

About HWE (HWE) branch from kernel tesm last may Kernel (choice, debug, update) HWE(hardware driver, oem issue, short time)

Issue graphic audio network bluetooth suspend hotkey bios

problems support

  1. driver - market-driven
  2. lack of open official specification

relay on reverse engineering e.g. nouveau legal issues make use of firmware need special toolto active re-distributable?

  1. BIOS designed for windows

non-ACPI is common strange issue: brigtness, hotkeys, suspend, etv. some options: acpi_backlight=vendor, acpi=off, acpi_sleep=nonv, etc. WMI is abused, undocumented, vendors still implement their own custom interface, ACPI, WMI沒有spec可以用到Linux EC 也看不到

fix upstream OEM (Certification, kernel, HWE) upstream (Ubuntu, Linux kernel) certification - testing ok, certified! - certified nexe version, next next version --regration (bug fixed, but arch issue, regration) IHV direct join community, eg. atheros->linux, not atheros->ubuntu->linux

oem bug not public oem bug, found from linux upstream, open bug fix bug send to upstream accept fix commit to next version, after some time(follow stable release flow), commit to current version

Stable Release Updates(SRU) updates , repository update proposed, update for testing workflow of sru for kernel (3 weeks) project: kernel sru workflow...

Certification - QA http://www.ubuntu.com/certification want buy laptop, check this page first... cert, bug, fix, upstream accept, commit to ubuntu

OEM to upstream 的好處....

kernel debug...

ubuntu system arch

early init init/main.c start_kernel()

mm_init // memory magagement

sched_init

init_IRQ // depende on ARCH, kernel source/arch

timers

low level initialization... refer start_kernel from init/main.c

initcalls includes/linux/init.h

marco -> function pointer array (run each function pointer)

module_init() modle_init->__initicall->device_initcall

early_initcall is special, run before smp_initcalls

other initcall do_basic_setup()

initalization memory section wil free after kernel starts

Driver Model bus, device, driver BUS CPU-bus-devices bus ability to know device {Vender ID, DEvice ID } — bus platformbus - vitrualbux - SOCs - legacy devices e.g.: pcspkr, i8042 DEVICE linux/device.h bus_type DRIVER device_driver bus_type probe funtion(device)

match driver - device from bus bus_type match function

probe will call when match check id, do something brfore rally work

Early userspace don't add everying to kernel we need ramdisk(initrd) img kernel mount initrd as rootfs exec init load essential module parse kernel parameters convert UUIS or LABEL start plymouth to hide boot mesg start udev handle crypted rootfs, nfsroot, netboot mount real rootfs chroot rootfs, transfer to init

mkinitfs - initramfs-tools(/usr/share/initramfs-tools)

conf: /etc/initramfs/tools/initramfs.conf MODULES=[most|netboot|dep|list]

upstart ....

UEFI

Unified Extensible Firmware Interface

Advantages Faster boot Support Larger Disk GPT 9.4ZB Process(memory limit...) Services(bootime or runtime) shell (grub.efi..., pre-boot, like dos) driver model()

Ubuntu UEFI readiness replace legacy boot manager — grub.efi GOP Driver Ubuntu 64-bit ok suspend -- ok

Ubuntu test boot, video, s3, s4, s5, reboot

GOP Driver?

Firmware test suite(fwts) — tool to test check BIOS and uefi firmware detect error check function ensure linux and firmware work catch kernel warnings suggest possible work gather firmware data debug

DMI(SMBIOS) check ACPI Control Method CPU Feature Disable ACPI Table check Linux log scanning ....

UEFI Security Boot impact

old convert log: ./08/tag%3E%20calendar%202011%2012)

Comments