Site Tools


debian_uboot

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
debian_uboot [2012/01/22 10:38] – Correct root= device to make initramfs work without additional tweaks paulfdebian_uboot [2016/10/24 15:57] – [Debian hardfloat with upstream U-Boot] status updates paulf
Line 1: Line 1:
 +====== Debian hardfloat with upstream U-Boot ======
 +
 Here I'm documenting my progress on using my ac100-116 "the right way". Feel free to reach me on [[help#irc]], my nick is PaulFertser. Here I'm documenting my progress on using my ac100-116 "the right way". Feel free to reach me on [[help#irc]], my nick is PaulFertser.
  
 +**UPDATE 24 Oct 2016**: migrated the system to current upstream U-boot and Linux. Everything seems to be nice and reliable. The limitations section still applies.
 +Some notes on update:
 +  * Needs the latest (from firmware git) ''rt2870.bin'' for stable wifi
 +  * Missing ''nvec_event'' so lid open/close events are not generated
 +  * To be able to use ''synaptics'' X.org driver the ''elantech'' protocol needs to be forced for ''psmouse'' kernel driver
 +  * ''mpv'' works nicely for unaccelerated video playback, including streaming from Youtube and other popular hostings (''ytdl-format=18'' is usually needed)
 +===== Status =====
 +==== What works ====
 +  * Booting (currently fetching kernel+rootfs is a bit slow due to u-boot bug, ~15s)
 +  * Display (both text console and X.org fbdev), keyboard, touchpad
 +  * Wifi
 +  * Bluetooth
 +  * GSM/UMTS data transfer
 +  * Stereo sound both on internal speakers and the headphones
 +  * Webcam
 +  * Integrated digital microphone
 +  * External stereo headset with microphone
 +
 +==== What doesn't ====
 +  * LCD and keyboard in u-boot (pending upstream patches and paz00 integration, http://news.gmane.org/group/gmane.comp.boot-loaders.u-boot/thread=122864, for keyboard NVEC support would be needed)
 +  * Boot from USB in u-boot (http://news.gmane.org/group/gmane.comp.boot-loaders.u-boot/thread=122484)
 +  * Resume from suspend-to-ram (pending u-boot warmboot patches, see http://news.gmane.org/group/gmane.comp.boot-loaders.u-boot/thread=122760)
 +  * Suspend-to-disk/hibernation (not anytime soon, no upstream support for ARMs)
 +  * tegra_wdt watchdog resets the system but it doesn't boot after that for the reasons unknown
 +  * Proprietary drivers for X and OMX-accelerated sound/video decoding (never tried, see https://build.pub.meego.com/package/files?package=nvidia-tegra2&project=home%3Acxl000%3Atrimslice%3AMer%3Atesting , http://ppa.launchpad.net/ac100/ppa/ubuntu/pool/restricted/n/nvidia-graphics-drivers-tegra/ , mplayer-omx, gst-omx etc)
 +
 +===== Installation and initial configuration story =====
 U-boot doesn't support the display yet. Kernel initialises and uses the integrated panel and the backlight properly. It's possible that you'll manage this with a specially prepared bootloader that will boot from external SD automatically without a serial console. U-boot doesn't support the display yet. Kernel initialises and uses the integrated panel and the backlight properly. It's possible that you'll manage this with a specially prepared bootloader that will boot from external SD automatically without a serial console.
  
Line 13: Line 42:
 Logged in, set password to 1, start ''wpa_supplicant -Dnl80211 -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf &'', then ''dhclient eth0''. Installed ''openssh-server'' and switched to that (because the serial console sometimes stops to function). Logged in, set password to 1, start ''wpa_supplicant -Dnl80211 -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf &'', then ''dhclient eth0''. Installed ''openssh-server'' and switched to that (because the serial console sometimes stops to function).
  
-Installed ''gdisk'' and repartitioned from scratch ''/dev/mmcblk0'', creating two partitions there (one for /boot, 32M should be enough), another for LVM pv. Created LVM there, with two (for now) volumes: 1G for swap, and everything else for the rootfs. ''mkfs.nilfs /dev/emmc-lvm/rootfs''. Mounted it, and started to Debootstrap debian armhf according to the official manual (you'll need to read both installing debian and armhf chroot).+Installed ''gdisk'' and repartitioned from scratch ''/dev/mmcblk0'', creating two partitions there (one for /boot, 32M should be enough), another for LVM pv. Created LVM there, with two (for now) volumes: 1G for swap, and everything else for the rootfs. ''mkfs.nilfs /dev/emmc-lvm/rootfs''. Mounted it, and started to Debootstrap debian armhf according to the official manual (you'll need to read both installing debian and armhf chroot, though debian-ports.org repositories are not needed).
  
 Copied ''/lib/firmware/rt2870.bin'' to the newly established system, configured ''/etc/network/interfaces'' to bring up wlan0 for my home wlan automatically. Created a symlink from ''/bin/true'' to ''/usr/sbin/mkfs.nilfs2'' to make the boot happy. Copied ''/lib/firmware/rt2870.bin'' to the newly established system, configured ''/etc/network/interfaces'' to bring up wlan0 for my home wlan automatically. Created a symlink from ''/bin/true'' to ''/usr/sbin/mkfs.nilfs2'' to make the boot happy.
  
-Initramfs is a bit tricky: a workaround from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649288 is needed (it has a typo where .. is used instead of . and also the script should be made +x), and also you need to pay attention to using ''/dev/mapper/emmc--lvm-rootfs'' and not ''/dev/emmc-lvm/rootfs'' for the ''root='' kernel command line argument (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612402) or else initramfs won't call ''vgchange -ay automatically''. Add ''nilfs2'' to ''/etc/initramfs-tools/modules''. Make a symlink from ''initrd-3.0.8'' to ''initramfs'' in ''/boot''.+Initramfs is a bit tricky: a workaround from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649288 is needed (it has a typo where .. is used instead of . and also the script should be made +x), and also you need to pay attention to using ''/dev/mapper/emmc%%--%%lvm-rootfs'' and not ''/dev/emmc-lvm/rootfs'' for the ''root='' kernel command line argument (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612402) or else initramfs won't call ''vgchange -ay automatically''. Add ''nilfs2'' to ''/etc/initramfs-tools/modules'' (if you're using ''MODULES=most''). Make a symlink from ''initrd-3.0.8'' to ''initramfs'' in ''/boot''. You'll also need a custom initramfs-tools addon script to add nilfs_cleanerd to the initramfs or you'll need to start it later from e.g. /etc/rc.local.
  
 The resulting system should be bootable with The resulting system should be bootable with
Line 50: Line 79:
 </code> </code>
  
-To manage lid event i'm using https://github.com/gandro/input-event-daemon, it should listen on /dev/input/event4 for LID:0 and LID:1 events. +And then be sure to read suckless [[tips_and_tricks]].
- +
-Playing mp3's (with libmad-based players) currently is buggy due to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656814 , fix available.+
debian_uboot.txt · Last modified: 2016/10/24 15:59 by paulf