Difference between revisions of "Debian-jessie-armel-odroidxu"
(One intermediate revision by the same user not shown) | |||
Line 68: | Line 68: | ||
=== Steps === | === Steps === | ||
− | + | You don't need to go through these steps if you are able to use the package mentioned above (exynos5-hwcomposer-3.4.75-1_armel.deb) | |
I found mdjr's instructions on how to build hwcomposer on the forum: [http://forum.odroid.com/viewtopic.php?f=61&t=2207 http://forum.odroid.com/viewtopic.php?f=61&t=2207] | I found mdjr's instructions on how to build hwcomposer on the forum: [http://forum.odroid.com/viewtopic.php?f=61&t=2207 http://forum.odroid.com/viewtopic.php?f=61&t=2207] | ||
Line 95: | Line 95: | ||
mount -o ro /dev/mmcblk0p1 /boot | mount -o ro /dev/mmcblk0p1 /boot | ||
# ... | # ... | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | === Install a Window Manager === | ||
+ | |||
+ | You can use the tasksel application and select desktop, for example to get a complete Gnome system -- or you and install something else. I installed lxde like this: | ||
+ | |||
+ | <pre> | ||
+ | apt-get install xorg xorg-server xf86-video-fbdev lxde | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | === Setup a X configuration === | ||
+ | You need an /etc/X11/xorg.conf file. Copy and paste the following into a terminal on the odroid. This copy/paste technique is called a "Here Document". It creates a file called /etc/X11/xorg.conf | ||
+ | |||
+ | <pre> | ||
+ | cat <<EOF >/etc/X11/xorg.conf | ||
+ | Section "Device" | ||
+ | identifier "FBDEV" | ||
+ | Driver "fbdev" | ||
+ | Option "fbdev" "/dev/fb0" | ||
+ | EndSection | ||
+ | |||
+ | Section "Screen" | ||
+ | identifier "Default Screen" | ||
+ | Device "FBDEV" | ||
+ | DefaultDepth 24 | ||
+ | EndSection | ||
+ | EOF | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | === Update boot.ini === | ||
+ | |||
+ | There are two sections to edit in your boot.ini /boot/boot.ini is on the boot partition. debian-jessie-armel-base-7.1-odroidxu uses the up-to-date boot scripts and can be kept up-to-date with the kernel-update.sh kernel updater script (in the root directory on this image) | ||
+ | |||
+ | <pre> | ||
+ | #------------------------------------------------------------------------------------------------------ | ||
+ | # | ||
+ | # Frame buffer size. | ||
+ | # Example.. If you are on LCD Kit set the values bellow to: | ||
+ | # x = 1280 and y = 800 | ||
+ | # Otherwise please set this value below to your wanted resolution | ||
+ | # Values: | ||
+ | # LCD Kit: x = 1280 y = 800 | ||
+ | # --------------------------- | ||
+ | # HDMI: | ||
+ | # 480: x = 720 y = 480 | ||
+ | # 576: x = 720 y = 576 | ||
+ | # 720: x = 1280 y = 720 | ||
+ | # 1080: x = 1920 y = 1080 | ||
+ | # | ||
+ | #------------------------------------------------------------------------------------------------------ | ||
+ | setenv fb_x_res "1920" | ||
+ | setenv fb_y_res "1080" | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | #------------------------------------------------------------------------------------------------------ | ||
+ | # | ||
+ | # Forces a fixed resolution on the HDMI controller. Please make sure that your screen supports and | ||
+ | # It matchs the resolution above! setted the X and Y | ||
+ | # valid values are: 480p60hz 720p60hz 720p50hz 1080p60hz 1080i60hz 1080i50hz 1080p50hz | ||
+ | # 1080p30hz 1080p25hz 1080p24hz | ||
+ | # | ||
+ | #------------------------------------------------------------------------------------------------------ | ||
+ | setenv hdmi_phy_res "1080p60hz" | ||
</pre> | </pre> |
Latest revision as of 02:08, 26 January 2014
Contents
Image Files
First a reminder about my images. *.img.xz means it is a compressed multi-partition image. You need to use xz to decompress it before writing it to SD Card.
- .rootfs.tgz is just the root file system partition contents. Only needed to quickly get back to the original flash contents
- .boot.tgz is just the boot partition contents. Only needed in case you wreck something and can no longer boot.
- .md5sum are md5 checksum files you <should> use to make sure the associated file was downloaded properly.
debian-jessie-armel-base-7.1-odroidxu
Features
Issues
# Install this missing package so kernel-update.sh will work apt-get install initramfs-tools # Mount the boot partition as read/write to let kernel-update.sh write files mount -o remount,rw /boot
s5p_mfc_load_firmware:179: Firmware is not present in the /lib/firmware directory nor compiled in kernel.
Files
Look for the files here: http://odroid.us/odroid/odroidxu/debian/
Details on how the image was built are here: debian-jessie-armel-7.1-odroidxu Build Notes
Kernel Build
There is some issue with the default default config from github, it will not compile. Here is a snippet showing how I worked around it
// Fetch kernel source mkdir -p /usr/src 2>/dev/null cd /usr/src/ git clone --depth 1 https://github.com/hardkernel/linux.git -b odroidxu-3.4.y linux-3.4.y # cd linux-3.4.y # pick up configuration that will build wget http://odroid.us/odroid/odroidxu/patches/odroidxu_ubuntu_more_netfilter_stuff cp odroidxu_ubuntu_more_netfilter_stuff arch/arm/configs # Use the new config make odroidxu_ubuntu_more_netfilter_stuff # make it make -j8 # ...
Add-ons
This section is for items added on to the base image
hwcomposer
We need a daemon to take care of making video data in the framebuffer show up on the HDMI output. This is called exynos5-hwcomposer. I built it natively on the odroidxu and created a Debian package that others can use. (this package is only for odroidxu and only for armel -- soft floating point). The as-built tarball is in the same directory in case you want to rebuild from source.
Get and install the package as root user on the odroidxu:
wget http://odroid.us/odroid/odroidxu/debian/packages/exynos5-hwcomposer-3.4.75-1_armel.deb dpkg -i exynos5-hwcomposer-3.4.75-1_armel.deb <pre> === Steps === You don't need to go through these steps if you are able to use the package mentioned above (exynos5-hwcomposer-3.4.75-1_armel.deb) I found mdjr's instructions on how to build hwcomposer on the forum: [http://forum.odroid.com/viewtopic.php?f=61&t=2207 http://forum.odroid.com/viewtopic.php?f=61&t=2207] This is what I did: <pre> # Get latest version git clone --depth 0 https://github.com/hardkernel/linux.git -b odroidxu-3.4.y odroidxu-3.4.y cd odroidxu-3.4.y/tools/hardkernel/exynos5-hwcomposer sh autogen.sh ./configure --prefix=/usr make -j5
Edit /etc/rc.local so it starts exynos5-hwcomposer at boot, The sleep is necessary to give a chance for other startup processing to be done. I was finding that sometimes hwcomposer would not start -- or I would be nothing on the HDMI
# ... # By default this script does nothing. sleep 5 # Start hwcomposer to route framebuffer output to HDMI /usr/bin/exynos5-hwcomposer & # Mount the boot partition mount -o ro /dev/mmcblk0p1 /boot # ...
Install a Window Manager
You can use the tasksel application and select desktop, for example to get a complete Gnome system -- or you and install something else. I installed lxde like this:
apt-get install xorg xorg-server xf86-video-fbdev lxde
Setup a X configuration
You need an /etc/X11/xorg.conf file. Copy and paste the following into a terminal on the odroid. This copy/paste technique is called a "Here Document". It creates a file called /etc/X11/xorg.conf
cat <<EOF >/etc/X11/xorg.conf Section "Device" identifier "FBDEV" Driver "fbdev" Option "fbdev" "/dev/fb0" EndSection Section "Screen" identifier "Default Screen" Device "FBDEV" DefaultDepth 24 EndSection EOF
Update boot.ini
There are two sections to edit in your boot.ini /boot/boot.ini is on the boot partition. debian-jessie-armel-base-7.1-odroidxu uses the up-to-date boot scripts and can be kept up-to-date with the kernel-update.sh kernel updater script (in the root directory on this image)
#------------------------------------------------------------------------------------------------------ # # Frame buffer size. # Example.. If you are on LCD Kit set the values bellow to: # x = 1280 and y = 800 # Otherwise please set this value below to your wanted resolution # Values: # LCD Kit: x = 1280 y = 800 # --------------------------- # HDMI: # 480: x = 720 y = 480 # 576: x = 720 y = 576 # 720: x = 1280 y = 720 # 1080: x = 1920 y = 1080 # #------------------------------------------------------------------------------------------------------ setenv fb_x_res "1920" setenv fb_y_res "1080"
#------------------------------------------------------------------------------------------------------ # # Forces a fixed resolution on the HDMI controller. Please make sure that your screen supports and # It matchs the resolution above! setted the X and Y # valid values are: 480p60hz 720p60hz 720p50hz 1080p60hz 1080i60hz 1080i50hz 1080p50hz # 1080p30hz 1080p25hz 1080p24hz # #------------------------------------------------------------------------------------------------------ setenv hdmi_phy_res "1080p60hz"