週四 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
- driver - market-driven
- lack of open official specification
relay on reverse engineering e.g. nouveau legal issues make use of firmware need special toolto active re-distributable?
- 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