Diff for "NC10"


Differences between revisions 69 and 70
Revision 69 as of 2008-12-30 18:16:11
Size: 25132
Editor: client-200
Comment:
Revision 70 as of 2009-01-02 18:37:47
Size: 25324
Editor: softcom
Comment:
Deletions are marked like this. Additions are marked like this.
Line 166: Line 166:

== Fn Key ==
[[http://www.cimitan.com/blog/2008/12/27/samsung-nc10-linux-and-working-hotkeys/||Fn+F5]]
Line 458: Line 461:
Network Manager required some changes: AT+GCAP to ATI and remove +FCLASS=0 from init string (not supported by Samsung HSPA Modem). After this changes modem is detected and can connect to gsm network from applet. Network Manager required some changes: AT+GCAP to ATI and remove +FCLASS=0 from init string (not supported by Samsung HSPA Modem). After this changes modem is detected and can connect to gsm network from applet ([[http://eko.one.pl/files/samsungnc10/samsung_hspa.patch|patch for NetwokManager]]).

Ubuntu Intrepid Ibex 8.10 on the Samsung NC10

Fully functional 'out of the box':

  • Video (with desktop effects)
  • Wired networking
  • USB (for mass storage devices)
  • SD Card reader
  • Webcam
  • Bluetooth
  • Suspend / resume
  • Samsung 3G USB wireless broadband modem (if present)

Fully functional after driver/kernel updates:

  • Wireless networking
  • Audio (internal speakers now turn off when headphones are in use)
  • Internal mic
  • Fn Brightness keys (also workaround available)

Not functional:

  • Fn Buttons (Monitor switching, Screen on/off toggle, Battery, Sleep)
  • Wi-Fi On / off switch
  • Multi-touch

Installation

Prerequisites:

Before you begin you will need the following:

  • A USB drive
  • A downloaded image (iso) of the Ubuntu Intrepid installation CD (not required for UNETBOOTIN method)

Before you begin you will need to know the following:

  • How to use terminal

  • How to edit and save files e.g., by using gedit

Creating USB startup disk:

Method 1: (From an Ubuntu Intrepid computer, or computer running Ubuntu Intrepid Live CD) UBUNTU USB TOOL

Go to System -> Administration and select Create a USB startup disk. Select the Ubuntu image and the USB device, then press the Make startup disk button at the bottom of the window.

(Either of the options at the bottom of the window, regarding saving documents and settings, will work with this method, so pick your preference.)

After it is finished, install from the USB startup disk

Method 2: (From any Windows or Linux Computer) UNETBOOTIN

Download Unetbootin to your computer and plug in your USB drive. Follow the instructions at the UNetbootin website to create a USB startup disk.

When the startup disk is ready, install from the USB startup disk

Installing to NC10 from the USB startup disk:

Plug in your USB startup disk, then reboot the computer. You may need to change your NC10's boot settings so that it will boot from a plugged-in USB disk; to check, press F2 when the Netbook is first turning on to enter BIOS setup.

When you have verified this, save changes and exit BIOS setup.

The computer should then boot from the USB startup disk, offering you an Ubuntu menu. Select Install Ubuntu to begin installation.

Wireless Networking - Atheros

The wireless hardware is detected, but a non-functional driver is loaded when Ubuntu is installed. Installing the latest Madwifi driver resolves this problem.

First, install any available Ubuntu updates by going to System->Administration->Update Manager, clicking Check and then clicking Install Updates. You will need to reboot after the updates are finished.

Then, install the driver. From a terminal:

sudo apt-get install linux-backports-modules-intrepid

After rebooting again, the driver should load and wireless networks should be listed in the Network Manager Applet.

If you still have no wireless service, you may need to disable the older driver as well. In a terminal, enter

sudo su
echo "blacklist ath_pci" >> /etc/modprobe.d/blacklist
echo "blacklist ath_hal" >> /etc/modprobe.d/blacklist

And reboot.

Audio - Alsa Driver

-- These directions work on kernel 2.6.27-7. However several attempts on 2.6.27-9 confirms that they disable all audio and then cannot be rolled back. Further testing needed.

-- Confirmed that driver for mic does not work with kernel 2.6.27-9. Although, other audio playback does work for me. apt-purging the 27-9 kernel and rebooting to see if I can get audio working well again.

Yes, purging back to the 27-9 kernel does let all of the audio work perfectly. I use Skype every day. You may have to jiggle the Sound Options in Skype (try Pulse Audio, or alternate between choices being sure to Test Sound often), but it works fine.

-- By activating the proposed update repositories now there is kernel 2.6.27-11 provided in 8.10 where sound works better now. The internal mic is still not working but the jack sensitivity issue is now gone. Pluging in the headphone will now deactivate the speakers. This works out of the box for me using xubuntu 8.10 with the original Alsa packages provided by ubuntu.

The Alsa audio driver needs to be recompiled since the on-board chipset is a Realtek ID 272 which is not fully supported by Ubuntu 8.10.

When compiling the driver from source the package build-essential is needed. In terminal type:

sudo apt-get install build-essential libncurses-dev gettext xmlto xmltoman linux-headers-`uname -r`

The last Alsa Driver source can be downloaded at here (tested on v. 1.0.18a) Extract it on Desktop and in terminal type:

cd Desktop/alsa-driver-*
./configure --with-cards=hda-intel --with-oss=yes --with-sequencer=yes
make
sudo make install

Set the volume levels in alsamixer - In terminal type:

alsamixer

The internal mic can be made to work for playback and capture by adjusting the Volume Control settings for the Front Mic. To support recording, the Input Source (available by selecting Preferences in the Volume Control) needs to be set to "Front Mic".

Restart the computer. The internal speakers will be disabled when you plug-in a headphone's jack.

Hotkeys

Bugged

For correctly mapping the FN key that are doesn't recognized by default, you have to substitute the file in /usr/share/hotkey-setup/samsung.hk with this lines

setkeycodes e006 238 # Wireless ON/OFF
setkeycodes e008 225 # Brightness UP
setkeycodes e009 224 # Brightness DOWN
setkeycodes e002 $KEY_SWITCHVIDEOMODE # Monitor Switch
setkeycodes e003 236 # Battery

ATTENTION There's a bug opened for this and it may give you some problem with keyboard hang. If you are interested on the solution visit lauchpad.

Fn Brightness Keys - kernel patch

Patch the kernel with that: http://bugzilla.kernel.org/attachment.cgi?id=19301, recompile. After adding these lines to /usr/share/hotkey-setup/samsung.hk:

setkeycodes e008 225 # Brightness UP
setkeycodes e009 224 # Brightness DOWN

Fn+Brightness Keys working.

Fn Brightness Keys - Workaround

Currently it is impossible to map the FN keys. Therefore, two utilities for mapping alternative keys are needed so that screen brightness can be adjusted. From terminal:

sudo apt-get install xbacklight

Download Ubuntu Tweak from here and install it. Now open Ubuntu tweak (Application -> System tools) go to the appropriate section (Personal -> Shortcut) and set the combination that you want for example

Ctrl+UP with:

xbacklight -inc 10

and Ctrl+DOWN

xbacklight -dec 10

To increase and decrease the screen's brightness

Maximum brightness may be quite low if you don't disable the "auto" brightness feature in the BIOS (F2 at start-up).

More Fn Key Workarounds

It is possible to replace more of the non-functional Fn-* keys with Ctrl-* keys. A writeup is available here that needs testing.

Fn Key

http://www.cimitan.com/blog/2008/12/27/samsung-nc10-linux-and-working-hotkeys/

Xorg (optional, work in progress)

Customized xorg.conf file for correctly running compiz and activation of scrolling area of the touchpad:

#Starting from xandros version a customized xorg.conf file for Samsung NC10

Section "ServerLayout"
    Identifier     "Ubuntu"
    Screen      0  "Screen1"
    InputDevice    "keyboard"
    InputDevice    "mouse"
    InputDevice    "Touchpad"  "SendCoreEvents" 
EndSection

Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/X11/misc"
    FontPath     "/usr/share/fonts/X11/Type1"
    FontPath     "/usr/share/fonts/X11/75dpi"
    FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
EndSection

Section "Module"
    Load  "glx"
    Load  "dri"
    Load  "dbe"
    Load  "extmod"
    Load  "synaptics"
EndSection

Section "ServerFlags"
    Option        "AllowMouseOpenFail"
    Option      "BlankTime"        "5"
    Option      "SuspendTime"  "0"
    Option      "StandbyTime"   "0"
    Option      "OffTime"           "10"
EndSection

Section "InputDevice"
    Identifier   "keyboard"
    Driver       "kbd"
    Option      "CoreKeyboard"
    Option      "XkbRules" "xorg"
    Option      "XkbLayout" "us"
    Option      "XkbVariant" ""
EndSection

Section "InputDevice"
    Identifier  "mouse"
    Driver      "mouse"
    Option        "Device" "/dev/input/mice"
    Option        "Protocol" "IMPS/2"
    Option        "Emulate3Buttons" "yes"
    Option        "ZAxisMapping" "4 5"
    Option        "CorePointer"
EndSection

Section "InputDevice"
    Identifier  "Touchpad"
    Driver      "synaptics"
        Option  "Device"        "/dev/psaux"
        Option  "Protocol"      "auto-dev"
        Option  "LeftEdge"      "1700"
        Option  "RightEdge"     "5300"
        Option  "TopEdge"       "1700"
        Option  "BottomEdge"    "4200"
        Option  "FingerLow"     "25"
        Option  "FingerHigh"    "30"
        Option  "MaxTapTime"    "180"
        Option  "MaxTapMove"    "220"
        Option  "VertScrollDelta" "100"
        Option  "MinSpeed"      "0.06"
        Option  "MaxSpeed"      "0.12"
        Option  "AccelFactor" "0.0010"
        Option  "SHMConfig"     "on"
        Option  "VertTwoFingerScroll"   "1"
        Option  "HorizTwoFingerScroll"  "1"

EndSection

Section "Monitor"
    Identifier   "Monitor1"
    VendorName   "Samsung"
    ModelName    "NC10"
    Option       "DPMS"
EndSection

Section "Monitor"
    Identifier    "TV"
    Option        "Ignore"  "True"
EndSection

Section "Device"
    Identifier  "Device1"
    Driver      "intel"
    VendorName  "Intel Corporation"
    BoardName   "Mobile 915GM/GMS/910GML Express Graphics Controller"
    BusID       "PCI:0:2:0"
EndSection

Section "Screen"
    Identifier "Screen1"
    Device     "Device1"
    Monitor    "Monitor1"
    DefaultDepth     24
EndSection

Section "DRI"
    Mode         0666
EndSection

Section "Extensions"
# You may want to enable this.
    Option        "Composite" "Enable"
EndSection

Compiz (optional, work in progress)

Add this line on the bottom of your xorg.conf file if you haven't already added

Section "DRI"
    Mode         0666
EndSection

Section "Extensions"
# You may want to enable this.
    Option        "Composite" "Enable"
EndSection

now you can enable compiz from System->Preference->Visual Effects. You can then install the MacOsX 'like' bar Avant window navigator that can help you to save useful space on the bottom of your screen.

Touchpad (work in progress)

An easy way for correctly detect and config your touchpad is to add some lines to your xorg.conf file. Add this lines in the Inputdevice Section of the touchpad, this will enable your scrolling area.

        Option  "LeftEdge"      "1700"
        Option  "RightEdge"     "5300"
        Option  "TopEdge"       "1700"
        Option  "BottomEdge"    "4200"
        Option  "FingerLow"     "25"
        Option  "FingerHigh"    "30"
        Option  "MaxTapTime"    "180"
        Option  "MaxTapMove"    "220"
        Option  "VertScrollDelta" "100"
        Option  "MinSpeed"      "0.06"
        Option  "MaxSpeed"      "0.12"
        Option  "AccelFactor" "0.0010"
        Option  "SHMConfig"     "on"

HAL

Touchpad (work in progress)

The main problem on the Synaptics Touchpad of NC10 in Ubuntu8.10 is the sensitivity. Vertical and Horizontal sensitivity are not correctly balanced which results in waves. By doing a circle on touchpad you can check the cursor making a "egg-like" movement, because vertical sensitivity is much higher than horizontal. This guide helps to improve the Touchpad, but its not solving it.

At first start checking current Touchpad Configuration by

synclient -l

If the message says to turn SHMConfig "on" you should do this by

sudo gedit /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi

and find following section

<match key="info.product" contains="Synaptics TouchPad">
        <merge key="input.x11_driver" type="string">synaptics</merge>

Now you have to add the line which enables SHMConfig and allows you to change Touchpad Preferences "on the fly"

<match key="info.product" contains="Synaptics TouchPad">
        <merge key="input.x11_driver" type="string">synaptics</merge>
        <merge key="input.x11_options.SHMConfig" type="string">True</merge>

As you may notice, there is already a section called <match key="info.product" contains="bcm5974"> But it doesn't matter because it does not apply to the configuration of the Touchpad.

The next step is to copy that whole configuration and put it under the SHMConfig Option. Your File now should look like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <match key="info.product" contains="Synaptics TouchPad">
        <merge key="input.x11_driver" type="string">synaptics</merge>
        <merge key="input.x11_options.SHMConfig" type="string">True</merge>
        <merge key="input.x11_options.LeftEdge" type="string">1700</merge>
        <merge key="input.x11_options.RightEdge" type="string">5300</merge>
        <merge key="input.x11_options.TopEdge" type="string">1700</merge>
        <merge key="input.x11_options.BottomEdge" type="string">4200</merge>
        <merge key="input.x11_options.MinSpeed" type="string">0.06</merge>
        <merge key="input.x11_options.MaxSpeed" type="string">0.12</merge>
        <merge key="input.x11_options.AccelFactor" type="string">0.0010</merge>
        <!-- Arbitrary options can be passed to the driver using 
             the input.x11_options property since xorg-server-1.5. -->
        <!-- EXAMPLE:
        <merge key="input.x11_options.LeftEdge" type="string">120</merge>
        -->
      </match>
      <match key="info.product" contains="AlpsPS/2 ALPS">
        <merge key="input.x11_driver" type="string">synaptics</merge>
      </match>
      <match key="info.product" contains="appletouch">
        <merge key="input.x11_driver" type="string">synaptics</merge>
      </match>
      <match key="info.product" contains="bcm5974">
        <merge key="input.x11_driver" type="string">synaptics</merge>
        <!-- <merge key="input.x11_options.SHMConfig" type="string">True</merge>
        <merge key="input.x11_options.LeftEdge" type="string">1700</merge>
        <merge key="input.x11_options.RightEdge" type="string">5300</merge>
        <merge key="input.x11_options.TopEdge" type="string">1700</merge>
        <merge key="input.x11_options.BottomEdge" type="string">4200</merge>
        <merge key="input.x11_options.ClickFinger1" type="string">1</merge>
        <merge key="input.x11_options.ClickFinger2" type="string">3</merge>
        <merge key="input.x11_options.ClickFinger3" type="string">2</merge>
        <merge key="input.x11_options.HorizEdgeScroll" type="string">0</merge>
        <merge key="input.x11_options.VertEdgeScroll" type="string">0</merge>
        <merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
        <merge key="input.x11_options.HorizTwoFingerScroll" type="string">1</merge>
        <merge key="input.x11_options.HorizScrollDelta" type="string">0</merge>
        <merge key="input.x11_options.VertScrollDelta" type="string">100</merge>
        <merge key="input.x11_options.PressureMotionMinZ" type="string">10</merge>
        <merge key="input.x11_options.FingerLow" type="string">25</merge>
        <merge key="input.x11_options.FingerHigh" type="string">30</merge>
        <merge key="input.x11_options.FingerPress" type="string">256</merge>
        <merge key="input.x11_options.PalmDetect" type="string">0</merge>
        <merge key="input.x11_options.PalmMinWidth" type="string">10</merge>
        <merge key="input.x11_options.PalmMinZ" type="string">200</merge>
        <merge key="input.x11_options.MinSpeed" type="string">0.06</merge>
        <merge key="input.x11_options.MaxSpeed" type="string">0.12</merge>
        <merge key="input.x11_options.AccelFactor" type="string">0.0010</merge>
        <merge key="input.x11_options.MaxTapMove" type="string">220</merge>
        <merge key="input.x11_options.MaxTapTime" type="string">180</merge>
        <merge key="input.x11_options.MaxDoubleTapTime" type="string">200</merge>
        <merge key="input.x11_options.TapButton1" type="string">0</merge>
        <merge key="input.x11_options.TapButton2" type="string">0</merge>
        <merge key="input.x11_options.TapButton3" type="string">0</merge>
        <merge key="input.x11_options.RTCornerButton" type="string">0</merge>
        <merge key="input.x11_options.RBCornerButton" type="string">0</merge>
        <merge key="input.x11_options.LTCornerButton" type="string">0</merge>
        <merge key="input.x11_options.LBCornerButton" type="string">0</merge> -->
      </match>
    </match>
  </device>
</deviceinfo>

As you can see the settings which improves the touchpad a little bit are already inserted.

Now you should reboot your computer or

sudo /etc/init.d/hal restart

and then CTRL+ALT+BACKSPACE (close all Applications before)

After restart you should see a little improvement. To check if the settings are applied use

synclient -l

Internal 3G modem

Some NC10 models are sold with built-in, internal SAMSUNG HSPA Modem. Such models are in particular available in Poland (they are sold with iPlus wireless internet service). This modem does not appear to work at all. The USB vendor:product id is unknown to google as of 3rd of December 2008. The modem is a USB device and is supported on Windows XP. It's therefore possible to sniff the USB communication and reverse-engineer the drivers for the open source community.

The USB vendor:product id is: 04e8:6773

As the text below says, the modem probably works Inspired by the mini howto I went to debug why does network manager fail to find it. It turns out that ubuntu's patches to network manager are using AT+GCAP to see what the modem supports. After changing that to ATI the modem is immediately detected.

Unfortunately I'm outside of poland ATM so I cannot check if my fixes work but it's very, very close to being 100% usable for regular users!

Modem really works

Network Manager required some changes: AT+GCAP to ATI and remove +FCLASS=0 from init string (not supported by Samsung HSPA Modem). After this changes modem is detected and can connect to gsm network from applet (patch for NetwokManager).

Modem is visible in system as cdc_acm and works with gcom

Mini howto

It's probably possible to initiate modem without gcom, I didn't try other setups becouse this one worked for me.

sudo aptitude install gcom

I've made a rule for udev to always have /dev/ttyACMx linked to /dev/modem

cd /etc/udev/rules.d

and add own rule in for example file named 99-own.rules

SUBSYSTEM=="tty", ATTRS{product}=="SAMSUNG HSPA Modem", SYMLINK+="modem"

after adding new rule you have to restart udev

sudo /etc/init.d/udev restart

make shure your user belongs to group "dip" then you'll be able to make connection without root privilages

gcom

you'll have to insert your pin code

Now you need to configure connection for pppd

cd /dev/ppp/peers
create file named iplus
Add below lines:

noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/iplus-chat"
debug
/dev/modem
921600
defaultroute
noipdefault
usepeerdns

Second file should be placed in /etc/chatscripts/ and named iplus-chat

ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
'' ATZ
OK-AT-OK "AT+CPIN?"
OK ATE1
OK 'AT+cgdcont=1,"IP","www.plusgsm.pl"'
OK-AT-OK "ATDT*99***1#"
CONNECT ''

now you can try to connect

pon iplus

to disconnect use

poff iplus

Modem works fine, and I was really surprised when I've downloaded kernel source with avarage speed at 620kB/s

I'm using debian sid, but this howto will probably work on ubuntu. If you have any questions email me at lolicjusz at gmail . com

Firmware

The last firmware available since now, is the 04CA.MP00.20081211.KTW released on 12/11/2008. You can find it here. Unfortunately the only way for upgrade the firmware is from Windows system, cause it's an executable for this OS. Remind to keep it always at the last available version. You can find more info about you installed firware by accessing your BIOS or simply typing this in a shell:

lshal | grep firmware

External Links

* http://nc10ubuntu.tout57.fr/ - A French blog for all tips and tricks to improve the use of Ubuntu on the Samsung NC10
* http://nc10ubuntu.wordpress.com/ - A blog that considers ways of improving the use of Ubuntu on the NC10
* http://nc10linux.wordpress.com/ - A blog that provides writeups for Ubuntu and Fedora on NC10.
* http://www.netbooknews.it/ubuntu-su-nc10-parte-seconda/ - Italian blog for all netbook-related news and tricks.
* http://www.sammynetbook.com/samsung-nc10-key-information - Dedicated unofficial blog

Ubuntu Hardy Heron 8.04 on the Samsung NC10

Instead of installing Intrepid Ibex I wanted to install Hardy Heron on my Samsung. This is a reflection of my notes so far and thus a work in progress for now. It's not yet complete and needs more work. Only use it if you know what you're doing.


Warning /!\ Edit conflict - other version:


Installation using Alternate installer for encryption

Since this is a highly mobile netbook I want my data to be save and thus I opted for full disk encryption. In order to do so I had to tweak the install with a USB stick a bit. Otherwise the Hardy Heron Alternate Installer would complain about a cdrom drive not being present.


Warning /!\ Edit conflict - your version:



Warning /!\ End of edit conflict


Wireless Networking - Atheros

Make sure the wireless hardware is active. Afaik the blue light of the third led from the right should be lit. Double check your BIOS settings.

Remove the installed driver. Go to System–>Administration–>Hardware Drivers and disable by un-ticking the following option

Atheros Hardware Access Layer (Hal)

Then Reboot your system.

Go into the terminal and install the following:

sudo apt-get install build-essential subversion autoconf automake

Afther this remove any existing wifi mods afaik this should do it:

sudo modprobe -r ath_pci
sudo modprobe -r ath_hal
sudo modprobe -r wlan

To get the correct(according to this comment) madwifi driver I'm using Subversion.

On the terminal issue the following command:

svn co http://svn.madwifi-project.org/madwifi/branches/madwifi-hal-0.10.5.6/ madwifi

Now enter the madwifi directory

cd madwifi 

Compile

make 

then

sudo make install-modules 

Now we can install the modules into the kernel using the following

sudo modprobe ath_pci

Scan for some wireless networks

sudo iwpriv ath0 bgscan 0

You should now be able to use the wireless netwerk.

NB: I used the following from the Macbook instructions so after a resume the network card should automatically start again. Not sure if this is necessary nor that it work correct. Need some more time to test.

echo -e '#!/bin/sh\n/sbin/iwpriv ath0 bgscan 0' | sudo tee -a /etc/acpi/resume.d/99-madwifi-bgscan.sh

And

sudo chmod 755 /etc/acpi/resume.d/99-madwifi-bgscan.sh

External Displays

External displays work out of the box, only requiring a fix to achieve resolutions higher than 1024x768. A writeup is available here for extending the desktop and correcting the resolution problem. It is released under GFDL and can be pasted here if anyone else likes it.

NC10 (last edited 2010-09-25 08:35:56 by host86-141-128-132)