2013-02-23

"I hate to wait so much time while ports compiling" or easy Xorg on Efika MX with FreeBSD

Hope you already done everything I wrote in Easy way to do it (try FreeBSD on Efika MX), and now many lazy guys will say "How to start Xorg here without any movements?" 
Short answer will be "I'm not a Wizard and I don't have magic stick" :)
But I really have few hints for you on how to done it easy and fast.

We need to install packages and Xorg.conf.

Script for packages


#!/bin/sh

export PACKAGESITE=http://people.freebsd.org/~ray/armv6-pkgng/
export ASSUME_ALWAYS_YES=yes

# Install pkgng
pkg
# Update repo (index of packages)
pkg update -f
# Install pre-dependency (dunno why that both ordered wrong, but )
pkg install freetype2 inputproto
# Install everything we need (not we, but need)
pkg install gmake intltool libXaw libXfont libdrm libfontenc libiconv \
    libpciaccess libpthread-stubs libxcb libxkbfile pixman twm xauth \
    xcb-proto xclock xf86-input-keyboard xf86-input-mouse \
    xf86-video-fbdev xf86-video-scfb xinit xorg-fonts xterm

Now run it
sh script_name.sh


Xorg.conf

Location /etc/X11/xorg.conf
------------------------------------------------------------------------------------------------------------------
Section "Files"
EndSection

Section "Module"
    Load        "dbe"
    # We can't do that yet, so disable for now.
    Disable    "dri"
    Disable    "dri2"
    Disable    "glx"
    SubSection  "extmod"
        Option  "omit xfree86-dga"
    EndSubSection
EndSection

Section "ServerFlags"
    Option    "AIGLX"        "false"
    Option    "NoAccel"    "True"
    Option    "NoDRI"        "True"
    Option    "DRI"        "False"
    Option    "DRI2"        "False"
EndSection

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse1"
    Driver      "mouse"
    Option      "Protocol"      "auto"
    Option      "Device"        "/dev/sysmouse"
EndSection

Section "Monitor"
    Identifier  "Monitor"
    Mode "1024x600"
        DotClock        25.175
        HTimings        1024 1048 1148 1200
        VTimings        600 610 620 700
    EndMode
EndSection

Section "Device"
    Identifier  "Generic FB"
    Driver      "scfb"
    Option    "NoAccel"    "True"
EndSection

Section "Screen"
    Identifier  "Screen"
    Device      "Generic FB"
    Monitor     "Monitor"
    DefaultDepth 16
    SubSection "Display"
        Depth           16
        Modes           "1024x600"
    EndSubsection
EndSection

Section "ServerLayout"
    Identifier  "layout"
    Screen      0 "Screen" 0 0
    InputDevice "Mouse1" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"
EndSection
------------------------------------------------------------------------------------------------------------------

Testing :)

Now run:
startx
and you will have:
  1. Best window manager - twm
  2. Best X clock - xclock
  3. and 3 best xterms
Standard startx set :)

2013-02-22

pkgng-ing everything you done some time ago

Just to not forget :)
If you playing with new platform, build many ports and leave it not cleaned, some time later you may find it interesting to share that with other good guys or just to setup same on a different machine.

So how to done that:
1. Find what you build before:
find /usr/ports -name work | sed 's#/usr/ports/##; s#/work##' > ~/work.list

you will get list in format category/name.

2. Load it into shell variable (for /bin/sh)
LIST=$(cat ~/work.list)

3. create shell function (of course you can done it in one command, but it is unreadable)
create ()
{
        pkg=$1; # Only one arg - category/name

        echo "Make package ${pkg}";
        # cd to port dir
        cd "/usr/ports/${pkg}";

        # Remove install and package markers
        rm work/.install* work/.package*;

        # call make to do install and package (it will do build if it not done also)
        make FORCE_PKG_REGISTER=yes package;
}


4. Run over list
for pkg in ${LIST} ; do
        NAME=${pkg##*/};
        # Check if we have such package
        if [ ! -f "/usr/ports/packages/Latest/${NAME}.txz" ]; then
                create "${pkg}";
        fi;
done

5. Time to drink something (coffee, beer, vodka, etc.)

P.S. If you have not broken pkgng database, you may try to just run:
pkg create -a

:)

Good luck with pkgng-ing

2013-02-18

Easy way to do it (try FreeBSD on Efika MX)


I wrote script, just to make your life a bit easy, in case you want to try FreeBSD on Genesi Efika MX of course :)
MAKE_EFIKA_MX.sh                    - script itself
__MAKE_EFIKA_MX_IMAGE.sh    - wrapper to run script on md(memory disk) devices instead of real SD and USB flash.

And here is results:
Efika_MX_SD_card.img.xz        - image for SD (just only U-Boot, but already aligned by 0x1000 for IMX format)
Efika_MX_USB_Flash.img.xz    - full world for 2G+ USB stick (surprisingly small, only 71M in xz)

To make efika mx bootable USB flash (with U-Boot on SD) just run:
./MAKE_EFIKA_MX.sh da0 da4 smartbook

where
    da0    - SD dev
    da4    - USB dev
    smartbook - model (smartbook/smarttop, both have only different
U-Boot binaries)

Let me know anything you have done with that :)

Many thanks to Genesi for hardware and help!
And Genesi's Powerdeveloper program!

Поиск по этому блогу

Readers